Common.Build.props 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  3. <ItemDefinitionGroup>
  4. <ClCompile>
  5. <PreprocessorDefinitions>%(PreprocessorDefinitions);NOMINMAX;USE_EDGEMODE_JSRT</PreprocessorDefinitions>
  6. <!-- Some of our STDMETHOD can throw
  7. TODO: Code review STDMETHOD and separate out API that can throw and those that can't -->
  8. <PreprocessorDefinitions>%(PreprocessorDefinitions);COM_STDMETHOD_CAN_THROW</PreprocessorDefinitions>
  9. <PreprocessorDefinitions Condition="'$(RuntimeLib)'=='static_library'">%(PreprocessorDefinitions);USE_STATIC_RUNTIMELIB</PreprocessorDefinitions>
  10. <!-- /W4 -->
  11. <WarningLevel>Level4</WarningLevel>
  12. <!-- /WX -->
  13. <TreatWarningAsError>true</TreatWarningAsError>
  14. <!-- /GR- -->
  15. <RuntimeTypeInfo>false</RuntimeTypeInfo>
  16. <!-- /Zi -->
  17. <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
  18. <!-- /EHsc- -->
  19. <ExceptionHandling>SyncCThrow</ExceptionHandling>
  20. <!-- /Gz -->
  21. <CallingConvention Condition="'$(Platform)'=='Win32'">StdCall</CallingConvention>
  22. <!-- /Zp8 -->
  23. <StructMemberAlignment>8Bytes</StructMemberAlignment>
  24. <!-- /GS -->
  25. <BufferSecurityCheck>true</BufferSecurityCheck>
  26. <!-- /Gy -->
  27. <FunctionLevelLinking>true</FunctionLevelLinking>
  28. <!-- /GF -->
  29. <StringPooling>true</StringPooling>
  30. <!-- /MD -->
  31. <RuntimeLibrary Condition="'$(RuntimeLib)'!='static_library'">MultiThreadedDLL</RuntimeLibrary>
  32. <RuntimeLibrary Condition="'$(RuntimeLib)'=='static_library'">MultiThreaded</RuntimeLibrary>
  33. <!-- We don't use any metadata -->
  34. <AdditionalUsingDirectories />
  35. <AdditionalOptions>%(AdditionalOptions) /Zm125</AdditionalOptions>
  36. <AdditionalOptions>%(AdditionalOptions) /Yl$(TargetName)</AdditionalOptions>
  37. <!-- Separate global variable for linker -->
  38. <AdditionalOptions>%(AdditionalOptions) /Gw</AdditionalOptions>
  39. <ProgramDataBaseFileName Condition="'$(ConfigurationType)'=='StaticLibrary'">$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
  40. <ProgramDataBaseFileName Condition="'$(ConfigurationType)'!='StaticLibrary'">$(IntDir)</ProgramDataBaseFileName>
  41. </ClCompile>
  42. <ResourceCompile>
  43. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildNumber)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_NUMBER=$(ChakraVersionBuildNumber)</PreprocessorDefinitions>
  44. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildQFENumber)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_QFE=$(ChakraVersionBuildQFENumber)</PreprocessorDefinitions>
  45. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildCommit)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_COMMIT=$(ChakraVersionBuildCommit)</PreprocessorDefinitions>
  46. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildDate)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_DATE=$(ChakraVersionBuildDate)</PreprocessorDefinitions>
  47. </ResourceCompile>
  48. <MASM>
  49. <!-- /Cx -->
  50. <PreserveIdentifierCase>3</PreserveIdentifierCase>
  51. </MASM>
  52. <Link>
  53. <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
  54. <GenerateDebugInformation>true</GenerateDebugInformation>
  55. <EnableCOMDATFolding Condition="'$(OptimizedBuild)'=='true'">true</EnableCOMDATFolding>
  56. <OptimizeReferences Condition="'$(OptimizedBuild)'=='true'">true</OptimizeReferences>
  57. <MinimumRequiredVersion Condition="'$(NtTargetVersion)'=='$(NtTargetVersion_Win7)'" >6.1</MinimumRequiredVersion>
  58. <MinimumRequiredVersion Condition="'$(NtTargetVersion)'=='$(NtTargetVersion_Win8)'" >6.2</MinimumRequiredVersion>
  59. <MinimumRequiredVersion Condition="'$(NtTargetVersion)'=='$(NtTargetVersion_Win10)'" >10.00</MinimumRequiredVersion>
  60. <!-- Always set the checksum -->
  61. <AdditionalOptions>%(AdditionalOptions) /release</AdditionalOptions>
  62. </Link>
  63. </ItemDefinitionGroup>
  64. <!-- chk build flags -->
  65. <ItemDefinitionGroup Condition="'$(OptimizedBuild)'!='true'">
  66. <ClCompile>
  67. <Optimization>Disabled</Optimization>
  68. <PreprocessorDefinitions>%(PreprocessorDefinitions);_DEBUG;DBG;DBG_DUMP</PreprocessorDefinitions>
  69. </ClCompile>
  70. <ResourceCompile>
  71. <PreprocessorDefinitions>%(PreprocessorDefinitions);DBG;ENABLE_DEBUG_CONFIG_OPTIONS=1</PreprocessorDefinitions>
  72. </ResourceCompile>
  73. </ItemDefinitionGroup>
  74. <!-- fre and fretest build flags -->
  75. <ItemDefinitionGroup Condition="'$(OptimizedBuild)'=='true'">
  76. <ClCompile>
  77. <PreprocessorDefinitions>%(PreprocessorDefinitions);NDEBUG</PreprocessorDefinitions>
  78. <PreprocessorDefinitions Condition="'$(Configuration)'=='Test'">%(PreprocessorDefinitions);ENABLE_DEBUG_CONFIG_OPTIONS=1</PreprocessorDefinitions>
  79. <Optimization>MaxSpeed</Optimization>
  80. <WholeProgramOptimization>true</WholeProgramOptimization>
  81. </ClCompile>
  82. <ResourceCompile>
  83. <PreprocessorDefinitions Condition="'$(Configuration)'=='Test'">%(PreprocessorDefinitions);ENABLE_DEBUG_CONFIG_OPTIONS=1</PreprocessorDefinitions>
  84. </ResourceCompile>
  85. <Link>
  86. <LinkTimeCodeGeneration Condition="'$(PlatformToolset)'=='v120' OR '$(TF_BUILD)'!=''">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
  87. <LinkTimeCodeGeneration Condition="'$(PlatformToolset)'!='v120'">UseFastLinkTimeCodeGeneration</LinkTimeCodeGeneration>
  88. </Link>
  89. <Lib>
  90. <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
  91. </Lib>
  92. </ItemDefinitionGroup>
  93. <ItemGroup Condition="'$(ConfigurationType)'=='DynamicLibrary' OR '$(ConfigurationType)'=='Application'">
  94. <Clean Include="$(OutDir)$(TargetName).lib" />
  95. <Clean Include="$(OutDir)$(TargetName).exp" />
  96. <Clean Include="$(OutDir)$(TargetName).ipdb" />
  97. <Clean Include="$(OutDir)$(TargetName).iobj" />
  98. </ItemGroup>
  99. </Project>