Browse Source

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.
Scott Przybylski 12 years ago
parent
commit
b04f060ede

+ 7 - 1
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 )
     {

+ 6 - 0
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 );

+ 7 - 2
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 )

+ 5 - 5
Tools/projectGenerator/templates/vc2010_dll_proj.tpl

@@ -95,11 +95,11 @@
       <AdditionalIncludeDirectories>{foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>{foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>{foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir){$projOutName}_DEBUG.dll</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <AdditionalLibraryDirectories>{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
       <ModuleDefinitionFile>{$projModuleDefinitionFile}</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>$(IntDir)$(ProjectName).pdb</ProgramDatabaseFile>
@@ -147,11 +147,11 @@
       <AdditionalIncludeDirectories>{foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>{foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>{foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir){$projOutName}_OPTIMIZEDDEBUG.dll</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <AdditionalLibraryDirectories>{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
       <ModuleDefinitionFile>{$projModuleDefinitionFile}</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>$(IntDir)$(ProjectName).pdb</ProgramDatabaseFile>
@@ -203,7 +203,7 @@
       <OutputFile>$(OutDir){$projOutName}.dll</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <AdditionalLibraryDirectories>{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
       <ModuleDefinitionFile>{$projModuleDefinitionFile}</ModuleDefinitionFile>
       <GenerateDebugInformation>false</GenerateDebugInformation>
       <ProgramDatabaseFile>$(IntDir)$(ProjectName).pdb</ProgramDatabaseFile>

+ 5 - 5
Tools/projectGenerator/templates/vc2010_proj.tpl

@@ -95,11 +95,11 @@
       <AdditionalIncludeDirectories>{foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>{foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>{foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir){$projOutName}_DEBUG.dll</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <AdditionalLibraryDirectories>{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
       <ModuleDefinitionFile>{$projModuleDefinitionFile}</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>$(IntDir)$(ProjectName).pdb</ProgramDatabaseFile>
@@ -147,11 +147,11 @@
       <AdditionalIncludeDirectories>{foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>{foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>{foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir){$projOutName}_OPTIMIZEDDEBUG.dll</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <AdditionalLibraryDirectories>{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
       <ModuleDefinitionFile>{$projModuleDefinitionFile}</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>$(IntDir)$(ProjectName).pdb</ProgramDatabaseFile>
@@ -203,7 +203,7 @@
       <OutputFile>$(OutDir){$projOutName}.dll</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <AdditionalLibraryDirectories>{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
       <ModuleDefinitionFile>{$projModuleDefinitionFile}</ModuleDefinitionFile>
       <GenerateDebugInformation>false</GenerateDebugInformation>
       <ProgramDatabaseFile>$(IntDir)$(ProjectName).pdb</ProgramDatabaseFile>

+ 5 - 5
Tools/projectGenerator/templates/vc2010_shared.tpl

@@ -95,11 +95,11 @@
       <AdditionalIncludeDirectories>{foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>{foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>{foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir){$projOutName}_DEBUG.exe</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <AdditionalLibraryDirectories>{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>$(IntDir)$(ProjectName).pdb</ProgramDatabaseFile>
       <SubSystem>{if $projSubSystem == 1}Console{else}Windows{/if}</SubSystem>
@@ -146,11 +146,11 @@
       <AdditionalIncludeDirectories>{foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
     <Link>
-      <AdditionalDependencies>{foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>{foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir){$projOutName}_OPTIMIZEDDEBUG.exe</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <AdditionalLibraryDirectories>{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <ProgramDatabaseFile>$(IntDir)$(ProjectName).pdb</ProgramDatabaseFile>
       <SubSystem>{if $projSubSystem == 1}Console{else}Windows{/if}</SubSystem>
@@ -201,7 +201,7 @@
       <OutputFile>$(OutDir){$projOutName}.exe</OutputFile>
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <AdditionalLibraryDirectories>{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+      <IgnoreSpecificDefaultLibraries>LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
       <GenerateDebugInformation>false</GenerateDebugInformation>
       <ProgramDatabaseFile>$(IntDir)$(ProjectName).pdb</ProgramDatabaseFile>
       <SubSystem>{if $projSubSystem == 1}Console{else}Windows{/if}</SubSystem>

+ 17 - 17
Tools/projectGenerator/templates/vc2k8_dll_proj.tpl

@@ -78,7 +78,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="{foreach item=def from=$projLibs}{$def} {/foreach}"
+				AdditionalDependencies="{foreach item=def from=$projLibsDebug}{$def} {/foreach}"
             
             {if $uniformOutputFile eq 1}
 				   OutputFile="{$projectOffset}../../{$gameFolder}/{$projOutName}.dll"
@@ -89,7 +89,7 @@
 				LinkIncremental="2"
 				SuppressStartupBanner="true"
 				AdditionalLibraryDirectories="{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2k8.$(ConfigurationName).$(PlatformName);"
-				IgnoreDefaultLibraryNames="LIBC,LIBCD"
+				IgnoreDefaultLibraryNames="LIBC,LIBCD{foreach item=def from=$projLibsIgnore},{$def}{/foreach}"
 				ModuleDefinitionFile="{$projModuleDefinitionFile}"
 				GenerateDebugInformation="true"
 				ProgramDatabaseFile="$(OutDir)/$(ProjectName)_DEBUG.pdb"
@@ -188,7 +188,7 @@
 			/>
          <Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="{foreach item=def from=$projLibs}{$def} {/foreach}"
+				AdditionalDependencies="{foreach item=def from=$projLibsDebug}{$def} {/foreach}"
             
             {if $uniformOutputFile eq 1}
 				   OutputFile="{$projectOffset}../../{$gameFolder}/{$projOutName}.dll"
@@ -196,19 +196,19 @@
                OutputFile="{$projectOffset}../../{$gameFolder}/{$projOutName}_OPTIMIZEDDEBUG.dll"
             {/if}
 
-				LinkIncremental="1"
-				SuppressStartupBanner="true"
-				AdditionalLibraryDirectories="{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2k8.$(ConfigurationName).$(PlatformName);"
-				IgnoreDefaultLibraryNames="LIBC,LIBCD"
-				ModuleDefinitionFile="{$projModuleDefinitionFile}"
-				GenerateDebugInformation="true"
-				ProgramDatabaseFile="$(OutDir)/$(ProjectName)_OPTIMIZEDDEBUG.pdb"
-				SubSystem="2"
-				TargetMachine="1"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-			/>
-         <Tool
+              LinkIncremental="1"
+              SuppressStartupBanner="true"
+              AdditionalLibraryDirectories="{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2k8.$(ConfigurationName).$(PlatformName);"
+              IgnoreDefaultLibraryNames="LIBC,LIBCD{foreach item=def from=$projLibsIgnore},{$def}{/foreach}"
+              ModuleDefinitionFile="{$projModuleDefinitionFile}"
+              GenerateDebugInformation="true"
+              ProgramDatabaseFile="$(OutDir)/$(ProjectName)_OPTIMIZEDDEBUG.pdb"
+              SubSystem="2"
+              TargetMachine="1"
+              RandomizedBaseAddress="1"
+              DataExecutionPrevention="0"
+        />
+        <Tool
 				Name="VCALinkTool"
 			/>
          <Tool
@@ -303,7 +303,7 @@
 				LinkIncremental="1"
 				SuppressStartupBanner="true"
 				AdditionalLibraryDirectories="{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2k8.$(ConfigurationName).$(PlatformName);"
-				IgnoreDefaultLibraryNames="LIBC,LIBCD"
+				IgnoreDefaultLibraryNames="LIBC,LIBCD{foreach item=def from=$projLibsIgnore},{$def}{/foreach}"
 				ModuleDefinitionFile="{$projModuleDefinitionFile}"
 				GenerateDebugInformation="false"
 				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"

+ 5 - 5
Tools/projectGenerator/templates/vc2k8_proj.tpl

@@ -79,12 +79,12 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="{foreach item=def from=$projLibs}{$def} {/foreach}"
+				AdditionalDependencies="{foreach item=def from=$projLibsDebug}{$def} {/foreach}"
 				OutputFile="{$projectOffset}../../{$gameFolder}/{$projOutName}_DEBUG.exe"
 				LinkIncremental="2"
 				SuppressStartupBanner="true"
 				AdditionalLibraryDirectories="{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2k8.$(ConfigurationName).$(PlatformName);"
-				IgnoreDefaultLibraryNames="LIBC,LIBCD"
+				IgnoreDefaultLibraryNames="LIBC,LIBCD{foreach item=def from=$projLibsIgnore},{$def}{/foreach}"
 				GenerateDebugInformation="true"
 				ProgramDatabaseFile="$(OutDir)/$(ProjectName)_DEBUG.pdb"
 				SubSystem="{$projSubSystem}"
@@ -182,12 +182,12 @@
 			/>
          <Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="{foreach item=def from=$projLibs}{$def} {/foreach}"
+				AdditionalDependencies="{foreach item=def from=$projLibsDebug}{$def} {/foreach}"
 				OutputFile="{$projectOffset}../../{$gameFolder}/{$projOutName}_OPTIMIZEDDEBUG.exe"
 				LinkIncremental="1"
 				SuppressStartupBanner="true"
 				AdditionalLibraryDirectories="{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2k8.$(ConfigurationName).$(PlatformName);"
-				IgnoreDefaultLibraryNames="LIBC,LIBCD"
+				IgnoreDefaultLibraryNames="LIBC,LIBCD{foreach item=def from=$projLibsIgnore},{$def}{/foreach}"
 				GenerateDebugInformation="true"
 				ProgramDatabaseFile="$(OutDir)/$(ProjectName)_OPTIMIZEDDEBUG.pdb"
 				SubSystem="{$projSubSystem}"
@@ -290,7 +290,7 @@
 				LinkIncremental="1"
 				SuppressStartupBanner="true"
 				AdditionalLibraryDirectories="{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2k8.$(ConfigurationName).$(PlatformName);"
-				IgnoreDefaultLibraryNames="LIBC"
+				IgnoreDefaultLibraryNames="LIBC{foreach item=def from=$projLibsIgnore},{$def}{/foreach}"
 				GenerateDebugInformation="false"
 				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="{$projSubSystem}"

+ 5 - 5
Tools/projectGenerator/templates/vc2k8_shared.tpl

@@ -78,12 +78,12 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="{foreach item=def from=$projLibs}{$def} {/foreach}"
+				AdditionalDependencies="{foreach item=def from=$projLibsDebug}{$def} {/foreach}"
 				OutputFile="{$projectOffset}../../{$gameFolder}/{$projOutName}_DEBUG.exe"
 				LinkIncremental="2"
 				SuppressStartupBanner="true"
 				AdditionalLibraryDirectories="{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2k8.$(ConfigurationName).$(PlatformName);"
-				IgnoreDefaultLibraryNames="LIBC,LIBCD"
+				IgnoreDefaultLibraryNames="LIBC,LIBCD{foreach item=def from=$projLibsIgnore},{$def}{/foreach}"
 				GenerateDebugInformation="true"
 				ProgramDatabaseFile="$(OutDir)/$(ProjectName)_DEBUG.pdb"
 				SubSystem="{$projSubSystem}"
@@ -181,12 +181,12 @@
 			/>
          <Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="{foreach item=def from=$projLibs}{$def} {/foreach}"
+				AdditionalDependencies="{foreach item=def from=$projLibsDebug}{$def} {/foreach}"
 				OutputFile="{$projectOffset}../../{$gameFolder}/{$projOutName}_OPTIMIZEDDEBUG.exe"
 				LinkIncremental="1"
 				SuppressStartupBanner="true"
 				AdditionalLibraryDirectories="{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2k8.$(ConfigurationName).$(PlatformName);"
-				IgnoreDefaultLibraryNames="LIBC,LIBCD"
+				IgnoreDefaultLibraryNames="LIBC,LIBCD{foreach item=def from=$projLibsIgnore},{$def}{/foreach}"
 				GenerateDebugInformation="true"
 				ProgramDatabaseFile="$(OutDir)/$(ProjectName)_OPTIMIZEDDEBUG.pdb"
 				SubSystem="{$projSubSystem}"
@@ -289,7 +289,7 @@
 				LinkIncremental="1"
 				SuppressStartupBanner="true"
 				AdditionalLibraryDirectories="{foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2k8.$(ConfigurationName).$(PlatformName);"
-				IgnoreDefaultLibraryNames="LIBC"
+				IgnoreDefaultLibraryNames="LIBC{foreach item=def from=$projLibsIgnore},{$def}{/foreach}"
 				GenerateDebugInformation="false"
 				ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
 				SubSystem="{$projSubSystem}"