mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
Jon Parise's work-in-progress to build VC project files
This commit is contained in:
parent
b747b3133e
commit
246ef05c79
@ -6,7 +6,7 @@
|
|||||||
// Template.msvc.pp.
|
// Template.msvc.pp.
|
||||||
//
|
//
|
||||||
|
|
||||||
#define REQUIRED_PPREMAKE_VERSION 1.02
|
#define REQUIRED_PPREMAKE_VERSION 1.12
|
||||||
|
|
||||||
#if $[< $[PPREMAKE_VERSION],$[REQUIRED_PPREMAKE_VERSION]]
|
#if $[< $[PPREMAKE_VERSION],$[REQUIRED_PPREMAKE_VERSION]]
|
||||||
#error You need at least ppremake version $[REQUIRED_PPREMAKE_VERSION] to use BUILD_TYPE msvc.
|
#error You need at least ppremake version $[REQUIRED_PPREMAKE_VERSION] to use BUILD_TYPE msvc.
|
||||||
@ -38,11 +38,7 @@
|
|||||||
|
|
||||||
#defun decygwin frompat,topat,path
|
#defun decygwin frompat,topat,path
|
||||||
#foreach file $[path]
|
#foreach file $[path]
|
||||||
#if $[isfullpath $[file]]
|
|
||||||
$[patsubstw $[frompat],$[topat],$[cygpath_w $[file]]]
|
|
||||||
#else
|
|
||||||
$[patsubstw $[frompat],$[topat],$[osfilename $[file]]]
|
$[patsubstw $[frompat],$[topat],$[osfilename $[file]]]
|
||||||
#endif
|
|
||||||
#end file
|
#end file
|
||||||
#end decygwin
|
#end decygwin
|
||||||
|
|
||||||
@ -54,10 +50,6 @@
|
|||||||
#define install_config_dir $[decygwin %,%,$[install_config_dir]]
|
#define install_config_dir $[decygwin %,%,$[install_config_dir]]
|
||||||
#define install_parser_inc_dir $[decygwin %,%,$[install_parser_inc_dir]]
|
#define install_parser_inc_dir $[decygwin %,%,$[install_parser_inc_dir]]
|
||||||
|
|
||||||
// In the Windows command shell, we need to use double quotes instead
|
|
||||||
// of single quotes.
|
|
||||||
#defer SED ppremake -s "$[script]" <$[source] >$[target]
|
|
||||||
|
|
||||||
// Define this if we want to make .sbr files.
|
// Define this if we want to make .sbr files.
|
||||||
#if $[USE_BROWSEINFO]
|
#if $[USE_BROWSEINFO]
|
||||||
#defer BROWSEINFO_FLAG /Fr"$[osfilename $[target:%.obj=%.sbr]]"
|
#defer BROWSEINFO_FLAG /Fr"$[osfilename $[target:%.obj=%.sbr]]"
|
||||||
@ -65,19 +57,21 @@
|
|||||||
#define BROWSEINFO_FLAG
|
#define BROWSEINFO_FLAG
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define CFLAGS_SHARED
|
||||||
|
|
||||||
// Define LINK_ALL_STATIC to generate static libs instead of DLL's.
|
// Define LINK_ALL_STATIC to generate static libs instead of DLL's.
|
||||||
#if $[LINK_ALL_STATIC]
|
#if $[ne $[LINK_ALL_STATIC],]
|
||||||
#define dlink_all_static LINK_ALL_STATIC
|
#define dlink_all_static LINK_ALL_STATIC
|
||||||
#define build_dlls
|
#define build_dlls
|
||||||
|
#define build_libs yes
|
||||||
#define dlllib lib
|
#define dlllib lib
|
||||||
#else
|
#else
|
||||||
#define dlink_all_static
|
#define dlink_all_static
|
||||||
#define build_dlls yes
|
#define build_dlls yes
|
||||||
|
#define build_libs
|
||||||
#define dlllib dll
|
#define dlllib dll
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CFLAGS_SHARED
|
|
||||||
|
|
||||||
#include $[THISDIRPREFIX]compilerSettings.pp
|
#include $[THISDIRPREFIX]compilerSettings.pp
|
||||||
|
|
||||||
#if $[TEST_INLINING]
|
#if $[TEST_INLINING]
|
||||||
@ -86,16 +80,27 @@
|
|||||||
#define EXTRA_CDEFS FORCE_INLINING $[EXTRA_CDEFS]
|
#define EXTRA_CDEFS FORCE_INLINING $[EXTRA_CDEFS]
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#defer CDEFINES_OPT1 _DEBUG $[dlink_all_static] $[EXTRA_CDEFS] $[CDEFINES_OPT1]
|
// do NOT try to do #defer #defer CDEFINES_OPT1 $[CDEFINES_OPT1] here! it wont let Sources.pp define their own CDEFINES_OPT1! they must use EXTRA_CDEFS!
|
||||||
#defer CDEFINES_OPT2 _DEBUG $[dlink_all_static] $[EXTRA_CDEFS] $[CDEFINES_OPT2]
|
#defer CDEFINES_OPT1 $[if $[NO_DEBUG_CDEF],,_DEBUG] $[dlink_all_static] $[EXTRA_CDEFS]
|
||||||
#defer CDEFINES_OPT3 $[dlink_all_static] $[EXTRA_CDEFS] $[CDEFINES_OPT3]
|
#defer CDEFINES_OPT2 $[if $[NO_DEBUG_CDEF],,_DEBUG] $[dlink_all_static] $[EXTRA_CDEFS]
|
||||||
#defer CDEFINES_OPT4 NDEBUG $[dlink_all_static] $[EXTRA_CDEFS] $[CDEFINES_OPT4]
|
#defer CDEFINES_OPT3 $[dlink_all_static] $[EXTRA_CDEFS]
|
||||||
|
#defer CDEFINES_OPT4 NDEBUG $[dlink_all_static] $[EXTRA_CDEFS]
|
||||||
|
|
||||||
#defer CFLAGS_OPT1 $[CDEFINES_OPT1:%=/D%] $[COMMONFLAGS] $[OPT1FLAGS] $[DEBUGFLAGS]
|
// Opt1 /GZ disables OPT flags, so make sure its OPT1 only
|
||||||
|
#defer CFLAGS_OPT1 $[CDEFINES_OPT1:%=/D%] $[COMMONFLAGS] $[DEBUGFLAGS] $[OPT1FLAGS]
|
||||||
#defer CFLAGS_OPT2 $[CDEFINES_OPT2:%=/D%] $[COMMONFLAGS] $[DEBUGFLAGS] $[OPTFLAGS]
|
#defer CFLAGS_OPT2 $[CDEFINES_OPT2:%=/D%] $[COMMONFLAGS] $[DEBUGFLAGS] $[OPTFLAGS]
|
||||||
#defer CFLAGS_OPT3 $[CDEFINES_OPT3:%=/D%] $[COMMONFLAGS] $[RELEASEFLAGS] $[OPTFLAGS] $[DEBUGPDBFLAGS]
|
#defer CFLAGS_OPT3 $[CDEFINES_OPT3:%=/D%] $[COMMONFLAGS] $[RELEASEFLAGS] $[OPTFLAGS] $[DEBUGPDBFLAGS]
|
||||||
#defer CFLAGS_OPT4 $[CDEFINES_OPT4:%=/D%] $[COMMONFLAGS] $[RELEASEFLAGS] $[OPTFLAGS] $[OPT4FLAGS] $[DEBUGPDBFLAGS]
|
#defer CFLAGS_OPT4 $[CDEFINES_OPT4:%=/D%] $[COMMONFLAGS] $[RELEASEFLAGS] $[OPTFLAGS] $[OPT4FLAGS] $[DEBUGPDBFLAGS]
|
||||||
|
|
||||||
|
//#if $[FORCE_DEBUG_FLAGS]
|
||||||
|
// make them all link with non-debug msvc runtime dlls for this case
|
||||||
|
//#defer DEBUGFLAGS $[subst /MDd,,$[DEBUGFLAGS]]
|
||||||
|
//#defer CFLAGS_OPT3 $[CDEFINES_OPT3:%=/D%] $[COMMONFLAGS] $[RELEASEFLAGS] $[OPTFLAGS] $[DEBUGFLAGS]
|
||||||
|
//#define LINKER_FLAGS $[LINKER_FLAGS] /debug
|
||||||
|
//#else
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
// NODEFAULTLIB ensures static libs linked in will connect to the correct msvcrt, so no debug/release mixing occurs
|
||||||
#defer LDFLAGS_OPT1 $[LINKER_FLAGS] $[LDFLAGS_OPT1]
|
#defer LDFLAGS_OPT1 $[LINKER_FLAGS] $[LDFLAGS_OPT1]
|
||||||
#defer LDFLAGS_OPT2 $[LINKER_FLAGS] $[LDFLAGS_OPT2]
|
#defer LDFLAGS_OPT2 $[LINKER_FLAGS] $[LDFLAGS_OPT2]
|
||||||
#defer LDFLAGS_OPT3 $[LINKER_FLAGS] $[LDFLAGS_OPT3]
|
#defer LDFLAGS_OPT3 $[LINKER_FLAGS] $[LDFLAGS_OPT3]
|
||||||
@ -109,13 +114,26 @@
|
|||||||
// distinction is so important in Windows).
|
// distinction is so important in Windows).
|
||||||
#define dllext $[if $[<= $[OPTIMIZE],2],_d]
|
#define dllext $[if $[<= $[OPTIMIZE],2],_d]
|
||||||
|
|
||||||
|
// note: does NOT include .dll or .lib at end
|
||||||
|
#defun get_dllname dll_basename
|
||||||
|
$[if $[ne $[DONT_USE_PANDA_DLL_NAMING],], $[dll_basename], lib$[dll_basename]$[dllext]]
|
||||||
|
#end get_dllname
|
||||||
|
|
||||||
|
// Because Visual Studio .NET prefers to generate object files using the same
|
||||||
|
// base name as the source file, we don't want an object file prefix.
|
||||||
|
#define obj_prefix
|
||||||
|
|
||||||
|
// Additional global defines for building under Microsoft Visual Studio .NET.
|
||||||
|
#define extra_defines FORCE_INLINING HAVE_DINKUM WIN32_VC WIN32
|
||||||
|
|
||||||
|
// Additional compiler flags.
|
||||||
|
#defer extra_cflags /EHsc /Zm300 $[WARNING_LEVEL_FLAG] $[END_CFLAGS]
|
||||||
|
|
||||||
#defer interrogate_ipath $[decygwin %,-I"%",$[target_ipath]]
|
#defer interrogate_ipath $[decygwin %,-I"%",$[target_ipath]]
|
||||||
#defer interrogate_spath $[decygwin %,-S"%",$[install_parser_inc_dir]]
|
#defer interrogate_spath $[decygwin %,-S"%",$[install_parser_inc_dir]]
|
||||||
|
|
||||||
#defer extra_cflags /EHsc /Zm300 /DWIN32_VC /DWIN32 $[WARNING_LEVEL_FLAG] $[END_CFLAGS]
|
|
||||||
|
|
||||||
#defer DECYGWINED_INC_PATHLIST_ARGS $[decygwin %,/I"%",$[EXTRA_INCPATH] $[ipath] $[WIN32_PLATFORMSDK_INCPATH]]
|
#defer DECYGWINED_INC_PATHLIST_ARGS $[decygwin %,/I"%",$[EXTRA_INCPATH] $[ipath] $[WIN32_PLATFORMSDK_INCPATH]]
|
||||||
#defer MAIN_C_COMPILE_ARGS /nologo /c $[DECYGWINED_INC_PATHLIST_ARGS] $[flags] $[extra_cflags] $[source]
|
#defer MAIN_C_COMPILE_ARGS /nologo /c $[DECYGWINED_INC_PATHLIST_ARGS] $[flags] $[extra_cflags] "$[osfilename $[source]]"
|
||||||
|
|
||||||
#defer COMPILE_C $[COMPILER] /Fo"$[osfilename $[target]]" $[MAIN_C_COMPILE_ARGS]
|
#defer COMPILE_C $[COMPILER] /Fo"$[osfilename $[target]]" $[MAIN_C_COMPILE_ARGS]
|
||||||
#defer COMPILE_C++ $[COMPILE_C]
|
#defer COMPILE_C++ $[COMPILE_C]
|
||||||
@ -123,25 +141,25 @@
|
|||||||
#defer STATIC_LIB_C $[LIBBER] /nologo $[sources] /OUT:"$[osfilename $[target]]"
|
#defer STATIC_LIB_C $[LIBBER] /nologo $[sources] /OUT:"$[osfilename $[target]]"
|
||||||
#defer STATIC_LIB_C++ $[STATIC_LIB_C]
|
#defer STATIC_LIB_C++ $[STATIC_LIB_C]
|
||||||
|
|
||||||
|
#defer COMPILE_IDL midl /nologo /env win32 /Oicf $[DECYGWINED_INC_PATHLIST_ARGS]
|
||||||
|
#defer COMPILE_RC rc /R /D "NDEBUG" /L 0x409 $[DECYGWINED_INC_PATHLIST_ARGS]
|
||||||
|
|
||||||
// if we're attached, use dllbase.txt. otherwise let OS loader resolve dll addrspace collisions
|
// if we're attached, use dllbase.txt. otherwise let OS loader resolve dll addrspace collisions
|
||||||
#if $[ne $[DTOOL],]
|
#if $[ne $[DTOOL],]
|
||||||
// use predefined bases to speed dll loading and simplify debugging
|
// use predefined bases to speed dll loading and simplify debugging
|
||||||
#defer DLLNAMEBASE lib$[TARGET]$[dllext]
|
#defer DLLNAMEBASE $[get_dllname $[TARGET]]
|
||||||
#defer DLLBASEADDRFILENAME dllbase.txt
|
#defer DLLBASEADDRFILENAME dllbase.txt
|
||||||
#defer DLLBASEARG "/BASE:@$[dtool_ver_dir]\$[DLLBASEADDRFILENAME],$[DLLNAMEBASE]"
|
#defer DLLBASEARG "/BASE:@$[dtool_ver_dir]\$[DLLBASEADDRFILENAME],$[DLLNAMEBASE]"
|
||||||
|
|
||||||
#if $[GENERATE_BUILDDATE]
|
|
||||||
#defer ver_resource "$[directory]\ver.res"
|
|
||||||
#else
|
#else
|
||||||
#define ver_resource
|
// requires dtool envvar
|
||||||
#endif
|
|
||||||
|
|
||||||
#else
|
|
||||||
// cant get builddate without dtool envvar
|
|
||||||
#define GENERATE_BUILDDATE
|
#define GENERATE_BUILDDATE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#defer SHARED_LIB_C $[LINKER] /nologo /dll $[LDFLAGS_OPT$[OPTIMIZE]] $[DLLBASEARG] $[sources] $[ver_resource] $[decygwin %,/LIBPATH:"%",$[lpath] $[EXTRA_LIBPATH]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"
|
#defer LINKER_DEF_FILE_ARG $[if $[LINKER_DEF_FILE],/DEF:"$[LINKER_DEF_FILE]",]
|
||||||
|
|
||||||
|
//#defer ver_resource $[directory]\ver.res
|
||||||
|
//#defer SHARED_LIB_C link /nologo /dll /VERBOSE:LIB $[LDFLAGS_OPT$[OPTIMIZE]] /OUT:"$[osfilename $[target]]" $[sources] $[decygwin %,/LIBPATH:"%",$[lpath]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]]
|
||||||
|
#defer SHARED_LIB_C $[LINKER] /nologo /DLL $[LINKER_DEF_FILE_ARG] $[LDFLAGS_OPT$[OPTIMIZE]] $[DLLBASEARG] /OUT:"$[osfilename $[target]]" $[sources] $[decygwin %,/LIBPATH:"%",$[lpath] $[EXTRA_LIBPATH]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]]
|
||||||
#defer SHARED_LIB_C++ $[SHARED_LIB_C]
|
#defer SHARED_LIB_C++ $[SHARED_LIB_C]
|
||||||
|
|
||||||
#defer LINK_BIN_C $[LINKER] /nologo $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] $[decygwin %,/LIBPATH:"%",$[lpath] $[EXTRA_LIBPATH]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"
|
#defer LINK_BIN_C $[LINKER] /nologo $[LDFLAGS_OPT$[OPTIMIZE]] $[sources] $[decygwin %,/LIBPATH:"%",$[lpath] $[EXTRA_LIBPATH]] $[patsubst %.lib,%.lib,%,lib%.lib,$[libs]] /OUT:"$[osfilename $[target]]"
|
||||||
@ -152,4 +170,3 @@
|
|||||||
#defer SHARED_LIB_C++ $[STATIC_LIB_C++]
|
#defer SHARED_LIB_C++ $[STATIC_LIB_C++]
|
||||||
#defer ODIR_SHARED $[ODIR_STATIC]
|
#defer ODIR_SHARED $[ODIR_STATIC]
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user