Merge pull request #2247 from mikedn/safeseh
[platform/upstream/coreclr.git] / clr.props
1 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2   <!--*****************************************************-->
3   <!--This MSBuild project file was automatically generated-->
4   <!--from the original SOURCES/DIRS file by the KBC tool.-->
5   <!--*****************************************************-->
6   <!--Import the settings-->
7   <Import Project="$(_NTDRIVE)$(_NTROOT)\InternalAPIs\NDP_Common\inc\Microsoft.Ndp.Settings.targets" />
8
9   <!--Leaf project Properties-->
10   <PropertyGroup>
11     <Clrbase>$(_NTDRIVE)$(_NTROOT)\ndp\clr</Clrbase>
12     <ClrSrcDirectory>$(Clrbase)\src\</ClrSrcDirectory>
13
14     <ClrLibDest Condition="('$(BuildProjectName)' == '')">$(IntraPartitionAPIsPath)\$(LibSubPath)</ClrLibDest>
15     <ClrLibDest Condition="('$(BuildProjectName)' == 'CoreCLR' or '$(BuildProjectName)' == 'CoreSys')">$(IntraPartitionAPIsPath)\CORElib\$(InterApiType)\$(RealBuildArchitecture)</ClrLibDest>
16     <ClrLibPath>$(ClrLibDest)</ClrLibPath>
17     
18     <!-- Use IntermediateOutputDirectory as our Output, and also set BinplaceRoot to the BinariesDirectory.
19          This prevents us publishing a bunch of files we don't really need into the BinariesDirectory,
20          such as extra PDBs, .mt files, etc.  See clr.targets for the managed story which works differently.
21     -->
22     <BinariesDirectory Condition="'$(BinariesSubDirectory)' != ''">$(BinariesDirectory)\$(BinariesSubDirectory)</BinariesDirectory>
23     <OutputPath>$(IntermediateOutputDirectory)\</OutputPath>
24     <BinplaceRoot>$(BinariesDirectory)</BinplaceRoot>
25     <BinplaceSymbols>true</BinplaceSymbols>
26     <OutputLibPath>$(ClrLibPath)</OutputLibPath> 
27     <UsePdbToCompile>true</UsePdbToCompile>
28     <UseIncrementalCompiling>true</UseIncrementalCompiling>
29     <RootOutputPath>$(BinariesDirectory)</RootOutputPath>
30
31     <!-- Tags to detect illegal usage -->
32     <ObjectDirectory>**##ILLEGAL_ ObjectDirectory##**</ObjectDirectory>
33     <ObjectDirectoryPhase0>**##ILLEGAL_ ObjectDirectory0##**</ObjectDirectoryPhase0>
34     <ObjectDirectoryPhase1>**##ILLEGAL_ ObjectDirectory1##**</ObjectDirectoryPhase1>
35     <ObjectDirectoryPhase2>**##ILLEGAL_ ObjectDirectory2##**</ObjectDirectoryPhase2>
36
37
38     <!-- Enable this when we're ready to handle P2P -->
39     <BuildProjectReferences>true</BuildProjectReferences>
40
41     <!-- Use the CLR warning suppression instead of the devdiv one-->
42     <ClEnforceStandardScoping>true</ClEnforceStandardScoping>
43     <ForcedIncludeFiles>WarningControl.h</ForcedIncludeFiles>
44     
45     <ClForcedIncludeFiles>$(ForcedIncludeFiles)</ClForcedIncludeFiles>
46     <Fullcxxeh>Async</Fullcxxeh>
47     <Synccxxeh>Sync</Synccxxeh>
48     <Sehonly>Disabled</Sehonly>
49     <ClNativeExceptionHandling>$(Fullcxxeh)</ClNativeExceptionHandling>
50     <ClExternCNeverThrowsException>false</ClExternCNeverThrowsException>
51
52     <!-- Use iso volatile semantics for better performance -->
53     <ClIsoVolatile>true</ClIsoVolatile>
54
55     <!-- Originally, src\tools\I386mk.inc turned FPO off by default because it makes ETW stack crawling bad.  -->
56     <Fpo>0</Fpo>
57
58     <!-- Ensure that we're not setting /DNT_UP=1 which disables multiprocessor builds -->
59     <NtUp Condition="'$(NtUp)' == ''">0</NtUp>
60
61     <ClrBuildError>*** CLR Build Error:</ClrBuildError>
62     <ClrBuildTrace>*** CLR Trace:</ClrBuildTrace>
63
64     <ClAdditionalOptions Condition="'$(NoClMpFlag)'!='true'">$(ClAdditionalOptions) /MP</ClAdditionalOptions>
65     <ClAdditionalOptions>$(ClAdditionalOptions) /GS /d2Zi+</ClAdditionalOptions>
66     <ClBufferSecurityCheck>true</ClBufferSecurityCheck>
67     
68          
69     <!-- In Dbg and Chk builds, set /homeparams on x64 -->
70     <ClAdditionalOptions Condition="'$(BuildArchitecture)' == 'amd64' and ('$(BuildType)' == 'Checked' or '$(BuildType)' == 'Debug')">$(ClAdditionalOptions) /homeparams</ClAdditionalOptions>
71     
72     <!-- Warning Try not use _BuildArch if is not specific to build system. Cross-compilation requires to make distiction between build arhitecture
73         and target arhitecture.
74         Use _BuildArch only when you need to trigger, use the tools of some arhitecture.
75         Use TargetArch for anything else: feature selection, files selection, etc.
76     -->
77     <_BuildArch>$(_BUILDARCH)</_BuildArch>
78
79     <TargetArch Condition="'$(TargetArch)' == '' and '$(CrossTargetArchitecture)'!=''">$(CrossTargetArchitecture)</TargetArch>
80     <TargetArch Condition="'$(TargetArch)' == ''">$(BuildArchitecture)</TargetArch>
81
82     <TargetArch Condition="'$(TargetArch)'=='AMD64'">amd64</TargetArch>
83     
84     <!-- Enable X86-ARM cross-plat defines --> 
85     <CDefines Condition="'$(TargetArch)' == 'i386'">$(CDefines);_TARGET_X86_=1;</CDefines>
86     <CDefines Condition="'$(TargetArch)' == 'amd64'">$(CDefines);_TARGET_AMD64_=1;</CDefines>
87     <CDefines Condition="'$(TargetArch)' == 'arm'">$(CDefines);_TARGET_ARM_=1;</CDefines>
88     <CDefines Condition="'$(TargetArch)' == 'arm64'">$(CDefines);_TARGET_ARM64_=1;</CDefines>
89
90     <AsmSuffix Condition="'$(BuildArchitecture)' == 'i386' or '$(BuildArchitecture)' == 'amd64'">asm</AsmSuffix>
91
92     <CDefines Condition="'$(BuildArchitecture)' == 'amd64' or '$(BuildArchitecture)' == 'arm64'">$(CDefines);BIT64</CDefines>
93
94     <!-- Note: ClrProduct can be set prior to this file to 'Standalone'. -->
95     <ClrProduct Condition="(('$(BuildProjectName)' == 'CoreCLR' or '$(BuildProjectName)' == 'CoreSys')) and ('$(ClrProduct)' == '' or '$(CoreTarget)' == 'true')">core_clr</ClrProduct>
96     <ClrProduct Condition="('$(BuildProjectName)' == '') and ('$(ClrProduct)' == '')">desktop_clr</ClrProduct>
97
98     <ClAdditionalOptions>$(ClAdditionalOptions) /Zm200</ClAdditionalOptions>
99     <TargetDefines Condition="'$(BuildArchitecture)'=='i386'">$(BuildArchitecture);_X86_</TargetDefines>
100     <TargetDefines Condition="'$(BuildArchitecture)'=='amd64'">$(BuildArchitecture);_AMD64_</TargetDefines>
101     <TargetDefines Condition="'$(BuildArchitecture)'=='arm'">$(BuildArchitecture);_ARM_</TargetDefines>
102     <TargetDefines Condition="'$(BuildArchitecture)'=='arm64'">$(BuildArchitecture);_ARM64_</TargetDefines>
103
104     <TargetCpu Condition="('$(TargetArch)' == 'i386')">i386</TargetCpu>
105     <TargetCpu Condition="('$(TargetArch)' == 'amd64')">amd64</TargetCpu>
106     <TargetCpu Condition="('$(TargetArch)' == 'arm')">arm</TargetCpu>
107     <TargetCpu Condition="('$(TargetArch)' == 'arm64')">arm64</TargetCpu>
108     
109     <GeneratePlacefileFromFilelist>true</GeneratePlacefileFromFilelist>
110     
111   </PropertyGroup>
112
113
114   <PropertyGroup Condition="'$(DoPrefastBuild)' == 'true'">
115     <PrefastClToolPath>$(ToolsPath)\$(ToolsArchitecture)\prefast\scripts</PrefastClToolPath>
116     <PrefastClToolExe>prefast.exe $(ClToolPath)\$(ClToolExe)</PrefastClToolExe>
117   </PropertyGroup>
118
119
120   <!-- CLR Feature Settings.  We set the default values here, allow leaf projects to override, and then
121        set the CDefines based on these properties in clr.targets
122   -->
123   <Import Project="$(MSBuildThisFileDirectory)clr.desktop.props" />
124   <Import Project="$(MSBuildThisFileDirectory)clr.coreclr.props" />
125
126   <PropertyGroup Condition="'$(CrossGenCompile)'=='true'">
127     <!-- Override settings of certain features to disable them for crossgen unconditionally -->
128     <!-- If you add new features to this list make sure that they are not affecting codegen or content of datastructures persisted in NGen image -->
129     <EnCSupported>false</EnCSupported>
130     <PerfcountersSupportedBuild>false</PerfcountersSupportedBuild>
131     <FeatureAppXBinder>false</FeatureAppXBinder>
132     <FeatureCasPolicy>false</FeatureCasPolicy>
133     <FeatureEventTrace>false</FeatureEventTrace>
134     <FeatureFusion>false</FeatureFusion>
135     <FeatureIncludeAllInterfaces>false</FeatureIncludeAllInterfaces>
136     <FeatureLoaderOptimization>false</FeatureLoaderOptimization>
137     <FeatureMdaSupported>false</FeatureMdaSupported>
138     <FeatureMergeJitAndEngine>true</FeatureMergeJitAndEngine>
139     <FeatureMulticoreJIT>false</FeatureMulticoreJIT>
140     <FeatureRandomizedStringHashing>false</FeatureRandomizedStringHashing>
141     <FeatureReflectionOnlyLoad>false</FeatureReflectionOnlyLoad>
142     <FeatureStackProbe>false</FeatureStackProbe>
143     <FeatureReJIT>false</FeatureReJIT>
144     <FeaturePls>false</FeaturePls>
145     <FeatureVersioningLog>false</FeatureVersioningLog>
146     <FeatureNativeImageGeneration>true</FeatureNativeImageGeneration>
147     <FeatureReadyToRunCompiler Condition="'$(FeatureReadyToRun)' == 'true'">true</FeatureReadyToRunCompiler>
148     <!-- Turn on MDIL generation support in crossgen for phone -->
149     <MDILGenerator Condition="'$(BuildForCoreSystem)' == 'true' and '$(TargetArch)'=='arm'">true</MDILGenerator>
150     <!-- Link crossgen with static CRT to make it standalone .exe -->
151     <LinkUseCMT>true</LinkUseCMT>
152     <UseMsvcrt>false</UseMsvcrt>
153   </PropertyGroup>
154
155   <PropertyGroup Condition="'$(ClrProduct)'=='Standalone'">
156     <!--
157         No features enabled by design - turn them on in your project file either:
158           - before including this file, or 
159           - after via <ClAdditionalOptions>$(ClAdditionalOptions) -DFEATURE_YourFeatureName</ClAdditionalOptions>.
160         Created primarily for standalone MetaData DLLs for WinRT - file:src\DLLs\StandaloneMD-RO and file:src\DLLs\StandaloneMD-RW
161         
162         By default uses statically linked CRT:
163             <UseMsvcrt>false</UseMsvcrt>
164             <LinkUseCMT>true</LinkUseCMT>
165     -->
166   </PropertyGroup>
167   
168   <PropertyGroup>
169     <MainClrModuleName Condition="'$(FeatureCoreclr)'=='true'">coreclr</MainClrModuleName>
170     <MainClrModuleName Condition="'$(FeatureCoreclr)'!='true'">clr</MainClrModuleName>
171     <MainDacMouleName Condition="'$(FeatureCoreclr)'=='true'">mscordaccore</MainDacMouleName>
172     <MainDacMouleName Condition="'$(FeatureCoreclr)'!='true'">mscordacwks</MainDacMouleName>
173   </PropertyGroup>
174
175   <PropertyGroup>
176     <DebugBuild Condition="'$(NTDEBUG)' == '' or '$(NTDEBUG)'=='ntsdnodbg'">false</DebugBuild>
177     <DebugBuild Condition="'$(NTDEBUG)' != '' and '$(NTDEBUG)'!='ntsdnodbg'">true</DebugBuild>
178   </PropertyGroup>
179   
180   <Choose>
181     <When Condition="$(DebugBuild)">
182       <PropertyGroup>
183         <CDefines>$(CDefines);NTMAKEENV;_DEBUG</CDefines>
184         <DebugCrts>true</DebugCrts>
185       </PropertyGroup>
186       
187       <PropertyGroup Condition="'$(_BUILDOPT)' == 'no opt'">
188         <CDefines>$(CDefines);WRITE_BARRIER_CHECK=1</CDefines> 
189         <Optimize>false</Optimize> 
190       </PropertyGroup>
191     </When>
192     <Otherwise>
193       <PropertyGroup>
194         <CDefines>$(CDefines);NTMAKEENV;NDEBUG;PERF_TRACKING</CDefines> 
195       </PropertyGroup>
196     </Otherwise>
197   </Choose>
198
199   <PropertyGroup>
200     <!--  "/Oi"  --> 
201     <ClIntrinsicFunctions>true</ClIntrinsicFunctions> 
202
203     <!-- "Disabled"=="/Od" "MinSpace"=="/O1" "MaxSpeed"=="/O2"  --> 
204     <ClOptimization Condition="'$(_BUILDOPT)' == 'full opt'">MinSpace</ClOptimization>
205     <ClOptimization Condition="'$(_BUILDOPT)' != 'full opt'">Disabled</ClOptimization>
206
207     <!-- Size == "/Os"  Speed == "/Ot" Disabled == "" --> 
208     <ClFavorSizeOrSpeed>Disabled</ClFavorSizeOrSpeed>
209   </PropertyGroup>
210   
211   <PropertyGroup>
212     <CDefines>$(CDefines);_BLD_CLR</CDefines> 
213
214     <ClAdditionalOptions>$(ExceptionHandling) $(ClAdditionalOptions) /we4640</ClAdditionalOptions> 
215
216     <!-- Desktop CLR, starting with version 4.5, supports Win2k8 R1 and higher on server, and Win7 and higher on client.
217          So across server & client, 0x0600 is the default minimum required WINVER -->
218     <Win32WinNt>0x0600</Win32WinNt>
219
220     <!-- CoreSys supports Win8 and higher -->
221     <Win32WinNt Condition="'$(BuildForCoreSystem)' == 'true' and '$(CrossTargetArchitecture)' == ''">0x0602</Win32WinNt>
222
223     <!-- When building cross-target binaries, they must be able to run on pre-Win8 OS and thus, should have subsystem version 6.00. so, override the Subsystem setting
224          specified in tools\Microsoft.DevDiv.targets.
225     -->
226     <SubsystemVersion Condition="'$(BuildForCoreSystem)' == 'true' and '$(AllowCrossTargeting)' == 'true'">6.00</SubsystemVersion>
227     
228     <!-- Some special projects under CLR, like clr\src\DLLS\culture\mscorwks\culture.nativeproj and
229          clr\src\DLLS\normalization\mscorwks\normalization.nativeproj need to be compiled with 
230          a special WINVER, so respect their requests -->
231     <Win32WinNt Condition="'$(ClrOverriddenWin32WinNt)' != ''">$(ClrOverriddenWin32WinNt)</Win32WinNt>
232     
233     <!-- Now make sure WINVER matches Win32WinNt -->
234     <CDefines Condition="'$(Win32WinNt)' != ''">$(CDefines);WINVER=$(Win32WinNt)</CDefines>
235
236
237     <LinkLibIgnore Condition="'$(TargetArch)' == 'i386'">4013</LinkLibIgnore> 
238     <ClrBuildLeanAndMean>true</ClrBuildLeanAndMean>
239     <LinkLibIgnore Condition="!('$(TargetArch)' == 'i386')">4197,4013</LinkLibIgnore>  
240     <LinkLibIgnore>$(LinkLibIgnore);4254</LinkLibIgnore>
241     <UseVsVersion Condition="'$(UseVsVersion)' == ''">false</UseVsVersion>
242     <LibWarnAsError>true</LibWarnAsError>
243
244     <CoreSystemSdkPath Condition="'$(TargetArch)' != 'arm64'">$(ExternalAPIsPath)\Win8CoreSystem</CoreSystemSdkPath>
245     <CoreSystemSdkPath Condition="'$(TargetArch)' == 'arm64'">$(ExternalAPIsPath)\Win9CoreSystem</CoreSystemSdkPath>
246     
247     <UserIncludes>$(Clrbase)\src\inc; $(Clrbase)\src\strongname\inc; $(IntraPartitionAPIsPath)\inc; $(UserIncludes); $(ClrIncPath)</UserIncludes> 
248     <UserIncludes Condition="'$(BuildForCoreSystem)' != 'true' or  '$(CrossTargetArchitecture)' != ''">$(UserIncludes); $(VCToolsIncPath); $(VCPublicIncPath);</UserIncludes>
249     <UserIncludes Condition="'$(BuildForCoreSystem)' == 'true' and '$(CrossTargetArchitecture)' == ''">$(UserIncludes); $(CoreSystemSdkPath)\inc; $(CoreSystemSdkPath)\inc\crt;</UserIncludes>
250     <UserIncludes Condition="'$(UseVsVersion)' == 'false'">$(UserIncludes); $(NdpRootIncPath); $(NDP_CommonIncPath)</UserIncludes>
251     <UserIncludes Condition="'$(FeatureCominterop)' == 'true'">$(Clrbase)\src\inc\WinRT; $(UserIncludes)</UserIncludes>
252
253     <PogoInstrument>false</PogoInstrument> 
254     <PogoOptimize>false</PogoOptimize> 
255     <PogoUpdate>false</PogoUpdate> 
256     <PogoExePhase>1</PogoExePhase>
257     
258     <ResgenDefines Condition="'$(FeatureImpersonation)' == '1'">$(ResgenDefines) /define:FEATURE_IMPERSONATION</ResgenDefines> 
259     <ResgenDefines Condition="'$(FeatureCrypto)' == '1'">$(ResgenDefines) /define:FEATURE_CRYPTO</ResgenDefines> 
260     <ResgenDefines Condition="'$(FeatureIsostore)' == '1'">$(ResgenDefines) /define:FEATURE_ISOSTORE</ResgenDefines> 
261     <ResgenDefines Condition="'$(FeatureMacl)' == '1'">$(ResgenDefines) /define:FEATURE_MACL</ResgenDefines> 
262     <ResgenDefines Condition="'$(FeatureCasPolicy)' == '1'">$(ResgenDefines) /define:FEATURE_CAS_POLICY</ResgenDefines> 
263     <ResgenDefines Condition="'$(FeatureRemoting)' == '1'">$(ResgenDefines) /define:FEATURE_REMOTING</ResgenDefines> 
264     <ResgenDefines Condition="'$(FeatureSerialization)' == '1'">$(ResgenDefines) /define:FEATURE_SERIALIZATION</ResgenDefines> 
265     <ResgenDefines Condition="'$(FeatureIdentityReference)' == '1'">$(ResgenDefines) /define:FEATURE_IDENTITY_REFERENCE</ResgenDefines> 
266     <ResgenDefines Condition="'$(FeatureDisplayCultureInfo)' == '1'">$(ResgenDefines) /define:FEATURE_DISPLAY_CULTURE_INFO</ResgenDefines> 
267     <ResgenDefines Condition="'$(FeatureDisplayRegionInfo)' == '1'">$(ResgenDefines) /define:FEATURE_DISPLAY_REGION_INFO</ResgenDefines> 
268
269     <RootOutputPath>$(BinariesDirectory)</RootOutputPath>
270
271
272     <!-- Explicitly disable UninitializedVariableCheck and StackFrameCheck since the DevDiv targets sets them as default on and it
273     breaks the build when optimizations are enabled
274     -->
275     <NoRtc>true</NoRtc>
276     <NoBuildTypeDefines>true</NoBuildTypeDefines>
277
278     <!-- 
279         The DevDiv targets define these to stuff we don't use if they're left blank and there's no easy way to keep them off 
280         of the CL.exe command line.   
281     -->
282     <OakIncPath >.</OakIncPath>
283     <ConfigIncPath >.</ConfigIncPath>
284     <VSCommonIncPath >.</VSCommonIncPath>
285     
286     <!-- Devdiv targets have a slightly different semantics for debug defines like DBG.  Defined as 
287          BuildType == Debug || BuildType == Checked && DebugBuild == True.  In CLR, Checked has DBG
288          defined so we override to preserve ntbuild behaviour
289     -->
290     <CDefines Condition="'$(BuildType)' == 'Checked' or '$(BuildType)' == 'Debug'">$(CDefines);DBG=1</CDefines>
291
292     <!-- Note: This defines only name of the lib 'ClrCrtLib'. Project has to use it explicitly like this: <LibCLib>$(ClrCrtLib)</LibCLib> -->
293     <ClrCrtLib Condition="'$(BuildForCoreSystem)' != 'true'">$(CrtLibPath)\msvcrt$(BuildSuffix)_clr.lib</ClrCrtLib>
294
295     <RefAsmOutputDirectory>$(BinariesDirectory)\ref\</RefAsmOutputDirectory>
296
297   </PropertyGroup>
298
299   <PropertyGroup Condition="'$(BuildForCoreSystem)' == 'true' and ('$(HostMachineOS)'=='' or '$(HostMachineOS)' == 'OneCore' or '$(HostMachineOS)'=='OneCoreWin7Compat')">
300     <!--
301         For the most part we build against CoreSystem in the same way as we do against full Windows. But
302         linking is very different. There are a different set of import libraries (in sdk\lib\CoreSystem) and
303         we pick up the system CRT (from sdk rather than vc).
304
305         There are 3 different variations of linking we might use:
306         CoreSystem forwarder libraries - This links against mincore_fw.lib, which causes the binaries to reference
307            a bunch of small forwarder dlls at runtime. These forwarders redirect CoreSystem api-set imports back
308            to standard win32 API exports. Binaries linked this way can run on any CoreSystem OS + Win7, however
309            all the forwarder dlls must be present on the LoadLibrary search path.
310         CoreSystem stand alone libraries - This links against mincore.lib (and maybe others like mincore_legacy.lib).
311            These binaries can run on OneCore OS or Win8+ and don't have any dependency on forwarders.
312         Win32 APIs - This links against the traditional win32 libraries such as kernel32 and the VC CRT. These
313            binaries run on Win7+ but don't work on pure OneCore SKUs. 
314
315         Most of the binaries we build in the CoreSystem build get linked using the forwarder libraries. To do
316         that we need to set $(BuildForCoreSystem)=true and $(BuildForWindows7)=true. All the binaries in this
317         group have never set the $(HostMachineOS) property. On ARM we don't support win7, so in that case we
318         use the stand alone library linkage, $(BuildForWindows7)=false.
319         
320         Some of the binaries we build are cross compiled, such as some debugging related binaries. In this scenario
321         we are debugging a CoreSystem coreclr, but the debugger may be running on a different machine. Because
322         these libraries can be loaded via LoadLibrary and won't have forwarder libraries available, we use some of
323         the alternate linkages. All binaries in this set have set the $(HostMachineOS) to something...
324         $(HostMachineOS)=='windows' => we want Win32 API and won't enter this conditional
325         $(HostMachineOS)=='OneCore' => we want the stand alone libraries
326         $(HostMachineOS)=='OneCoreWin7Compat' => we want the forwarders
327     -->
328     <BuildForWindows7 Condition="'$(BuildForWindows7)'==''">true</BuildForWindows7>
329     <BuildForWindows7 Condition="'$(HostMachineOS)'=='OneCore'">false</BuildForWindows7>
330     <BuildForWindows7 Condition="'$(TargetArch)'=='arm' or '$(TargetArch)'=='arm64'">false</BuildForWindows7>
331
332     <SdkLibPath>$(CoreSystemSdkPath)\sdk\lib\mincore\$(BuildArchitecture)</SdkLibPath>
333     <SdkLibPath Condition="'$(BuildForWindows7)' == 'true'">$(ExternalAPIsPath)\Windows\Win7\$(BuildArchitecture)</SdkLibPath>
334
335     <CoreSystemCrt>$(SdkLibPath)\msvcrt.lib</CoreSystemCrt>
336     <CrtSecureDeprecate>true</CrtSecureDeprecate>
337     <LinkNoLibraries>true</LinkNoLibraries>
338     <LinkNoWin32Libraries>true</LinkNoWin32Libraries>
339     <NoWinXPSP3NXCompat>true</NoWinXPSP3NXCompat>
340   </PropertyGroup>
341 </Project>