From b04f060ede765bf516e02568daf4a0ac3e580f4a Mon Sep 17 00:00:00 2001 From: Scott Przybylski Date: Thu, 20 Dec 2012 21:23:58 -0800 Subject: [PATCH] Added support for debug and ignored libraries Updated Project Generator to allow adding different Release/Debug libraries. Also added ability to specify libraries for Ignore Default Libraries field. Only Visual Studio templates have been updated. --- Tools/projectGenerator/classes/Generator.php | 8 ++++- Tools/projectGenerator/classes/Project.php | 6 ++++ Tools/projectGenerator/projectGenUtils.inc | 9 +++-- .../templates/vc2010_dll_proj.tpl | 10 +++--- .../templates/vc2010_proj.tpl | 10 +++--- .../templates/vc2010_shared.tpl | 10 +++--- .../templates/vc2k8_dll_proj.tpl | 34 +++++++++---------- .../projectGenerator/templates/vc2k8_proj.tpl | 10 +++--- .../templates/vc2k8_shared.tpl | 10 +++--- 9 files changed, 62 insertions(+), 45 deletions(-) diff --git a/Tools/projectGenerator/classes/Generator.php b/Tools/projectGenerator/classes/Generator.php index fde25460d..586936e3d 100644 --- a/Tools/projectGenerator/classes/Generator.php +++ b/Tools/projectGenerator/classes/Generator.php @@ -255,10 +255,16 @@ class Generator array_push( self::$project_cur->lib_dirs, $dir ); } - static function addProjectLibInput( $lib ) + static function addProjectLibInput( $lib, $libDebug = null ) { array_push( self::$project_cur->libs, $lib ); + array_push( self::$project_cur->libsDebug, $libDebug != null ? $libDebug : $lib ); } + + static function addProjectIgnoreDefaultLib( $lib ) + { + array_push( self::$project_cur->libsIgnore, $lib ); + } static function includeLib( $lib ) { diff --git a/Tools/projectGenerator/classes/Project.php b/Tools/projectGenerator/classes/Project.php index 6d409aef7..d94749a78 100644 --- a/Tools/projectGenerator/classes/Project.php +++ b/Tools/projectGenerator/classes/Project.php @@ -44,6 +44,8 @@ class Project public $disabledWarnings; // Additional warnings to disable public $includes; // Additional include paths public $libs; // Additional libraries to link against + public $libsDebug; // Additional Debug build libraries to link against + public $libsIgnore; // Ignore Specific Default Libraries public $lib_dirs; // Additional library search paths public $lib_includes; // libs to include (generated by modules) public $additionalExePath; // Additional section to inject into executable path @@ -81,6 +83,8 @@ class Project $this->defines = array(); $this->includes = array(); $this->libs = array(); + $this->libsDebug = array(); + $this->libsIgnore = array(); $this->lib_dirs = array(); $this->lib_includes = array(); $this->outputs = array(); @@ -330,6 +334,8 @@ class Project $tpl->assign_by_ref( 'projDisabledWarnings', $this->disabledWarnings ); $tpl->assign_by_ref( 'projIncludes', $this->includes ); $tpl->assign_by_ref( 'projLibs', $this->libs ); + $tpl->assign_by_ref( 'projLibsDebug',$this->libsDebug); + $tpl->assign_by_ref( 'projLibsIgnore',$this->libsIgnore); $tpl->assign_by_ref( 'projLibDirs', $this->lib_dirs ); $tpl->assign_by_ref( 'projDepend', $this->dependencies ); $tpl->assign_by_ref( 'gameProjectName', $gameProjectName ); diff --git a/Tools/projectGenerator/projectGenUtils.inc b/Tools/projectGenerator/projectGenUtils.inc index e5d066495..b82657827 100644 --- a/Tools/projectGenerator/projectGenUtils.inc +++ b/Tools/projectGenerator/projectGenUtils.inc @@ -305,9 +305,14 @@ function addProjectLibDir( $dir ) Generator::addProjectLibDir( $dir ); } -function addProjectLibInput( $lib_name ) +function addProjectLibInput( $lib_name, $libDebug = null ) { - Generator::addProjectLibInput( $lib_name ); + Generator::addProjectLibInput( $lib_name, $libDebug ); +} + +function addProjectIgnoreDefaultLib( $lib ) +{ + Generator::addProjectIgnoreDefaultLib( $lib ); } function addProjectDependency( $pd ) diff --git a/Tools/projectGenerator/templates/vc2010_dll_proj.tpl b/Tools/projectGenerator/templates/vc2010_dll_proj.tpl index a59461590..cd520d051 100644 --- a/Tools/projectGenerator/templates/vc2010_dll_proj.tpl +++ b/Tools/projectGenerator/templates/vc2010_dll_proj.tpl @@ -95,11 +95,11 @@ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories) - {foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies) + {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies) $(OutDir){$projOutName}_DEBUG.dll true {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries) + LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries) {$projModuleDefinitionFile} true $(IntDir)$(ProjectName).pdb @@ -147,11 +147,11 @@ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories) - {foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies) + {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies) $(OutDir){$projOutName}_OPTIMIZEDDEBUG.dll true {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories) - LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries) + LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries) {$projModuleDefinitionFile} true $(IntDir)$(ProjectName).pdb @@ -203,7 +203,7 @@ $(OutDir){$projOutName}.dll true {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries) + LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries) {$projModuleDefinitionFile} false $(IntDir)$(ProjectName).pdb diff --git a/Tools/projectGenerator/templates/vc2010_proj.tpl b/Tools/projectGenerator/templates/vc2010_proj.tpl index 18fa80c98..2067c3012 100644 --- a/Tools/projectGenerator/templates/vc2010_proj.tpl +++ b/Tools/projectGenerator/templates/vc2010_proj.tpl @@ -95,11 +95,11 @@ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories) - {foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies) + {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies) $(OutDir){$projOutName}_DEBUG.dll true {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories) - LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries) + LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries) {$projModuleDefinitionFile} true $(IntDir)$(ProjectName).pdb @@ -147,11 +147,11 @@ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories) - {foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies) + {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies) $(OutDir){$projOutName}_OPTIMIZEDDEBUG.dll true {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories) - LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries) + LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries) {$projModuleDefinitionFile} true $(IntDir)$(ProjectName).pdb @@ -203,7 +203,7 @@ $(OutDir){$projOutName}.dll true {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories) - LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries) + LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries) {$projModuleDefinitionFile} false $(IntDir)$(ProjectName).pdb diff --git a/Tools/projectGenerator/templates/vc2010_shared.tpl b/Tools/projectGenerator/templates/vc2010_shared.tpl index f94cb2c07..9cd2df58a 100644 --- a/Tools/projectGenerator/templates/vc2010_shared.tpl +++ b/Tools/projectGenerator/templates/vc2010_shared.tpl @@ -95,11 +95,11 @@ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories) - {foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies) + {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies) $(OutDir){$projOutName}_DEBUG.exe true {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories) - LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries) + LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries) true $(IntDir)$(ProjectName).pdb {if $projSubSystem == 1}Console{else}Windows{/if} @@ -146,11 +146,11 @@ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories) - {foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies) + {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies) $(OutDir){$projOutName}_OPTIMIZEDDEBUG.exe true {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories) - LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries) + LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries) true $(IntDir)$(ProjectName).pdb {if $projSubSystem == 1}Console{else}Windows{/if} @@ -201,7 +201,7 @@ $(OutDir){$projOutName}.exe true {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories) - LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries) + LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries) false $(IntDir)$(ProjectName).pdb {if $projSubSystem == 1}Console{else}Windows{/if} diff --git a/Tools/projectGenerator/templates/vc2k8_dll_proj.tpl b/Tools/projectGenerator/templates/vc2k8_dll_proj.tpl index b550752d8..f9d02a7eb 100644 --- a/Tools/projectGenerator/templates/vc2k8_dll_proj.tpl +++ b/Tools/projectGenerator/templates/vc2k8_dll_proj.tpl @@ -78,7 +78,7 @@ /> - +