2
0

Common.Build.props 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  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. <Midl>
  5. <StructMemberAlignment Condition="'%(Midl.StructMemberAlignment)' == ''">8</StructMemberAlignment>
  6. <DefaultCharType>Unsigned</DefaultCharType>
  7. <IdlType>Ole</IdlType>
  8. <!-- Default Idl type -->
  9. <!-- Force all MIDL compiles to be treated as English unless otherwise specified -->
  10. <LocaleID>1033</LocaleID>
  11. <!-- Disable the settings comment to make the headers more diff-able. Only available in midl 8. razzle build already have this -->
  12. <AdditionalOptions Condition="'$(BuildingWithBuildExe)'!='true'">%(AdditionalOptions) /no_settings_comment</AdditionalOptions>
  13. <!--Disable midl timestamps wherever possible, razzle build already have this-->
  14. <AdditionalOptions Condition="'$(BuildingWithBuildExe)'!='true'">%(AdditionalOptions) /no_stamp</AdditionalOptions>
  15. <SuppressStartupBanner>true</SuppressStartupBanner>
  16. <!-- Other defaults -->
  17. <HeaderFileName>%(Filename).h</HeaderFileName>
  18. <OutputDirectory>$(IntDir)</OutputDirectory>
  19. <!-- ======== makefiledef ======== -->
  20. <AdditionalOptions>%(AdditionalOptions) -sal</AdditionalOptions>
  21. <!-- ======== sources.inc ======== -->
  22. <!-- generates SAL annotations for our interface -->
  23. <AdditionalOptions>%(AdditionalOptions) -sal_local</AdditionalOptions>
  24. <PreprocessorDefinitions>%(PreprocessorDefinitions);WINVER=$(Win32_WinNTVersion)</PreprocessorDefinitions>
  25. </Midl>
  26. <ClCompile>
  27. <PreprocessorDefinitions>%(PreprocessorDefinitions);NOMINMAX;USE_EDGEMODE_JSRT</PreprocessorDefinitions>
  28. <!-- Some of our STDMETHOD can throw
  29. TODO: Code review STDMETHOD and separate out API that can throw and those that can't -->
  30. <PreprocessorDefinitions>%(PreprocessorDefinitions);COM_STDMETHOD_CAN_THROW</PreprocessorDefinitions>
  31. <PreprocessorDefinitions Condition="'$(RuntimeLib)'=='static_library'">%(PreprocessorDefinitions);USE_STATIC_RUNTIMELIB</PreprocessorDefinitions>
  32. <!-- Add any preprocessor definitions passed using msbuild environment -->
  33. <PreprocessorDefinitions Condition="'$(AdditionalPreprocessorDefinitions)'!=''">%(PreprocessorDefinitions);$(AdditionalPreprocessorDefinitions)</PreprocessorDefinitions>
  34. <!-- MIDL generate code uses this define -->
  35. <PreprocessorDefinitions Condition="'$(Platform)'=='ARM'">%(PreprocessorDefinitions);_ARM_</PreprocessorDefinitions>
  36. <!-- /W4 -->
  37. <WarningLevel>Level4</WarningLevel>
  38. <!-- /WX -->
  39. <TreatWarningAsError>true</TreatWarningAsError>
  40. <!-- /GR- -->
  41. <RuntimeTypeInfo>false</RuntimeTypeInfo>
  42. <!-- /Zi -->
  43. <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
  44. <DebugInformationFormat Condition="'%(MultiProcessorCompilation)' == 'true'">OldStyle</DebugInformationFormat>
  45. <!-- /EHsc- -->
  46. <ExceptionHandling>SyncCThrow</ExceptionHandling>
  47. <!-- /Gz -->
  48. <CallingConvention Condition="'$(Platform)'=='Win32' or '$(Platform)'=='chpe'">StdCall</CallingConvention>
  49. <!-- /Zp8 -->
  50. <StructMemberAlignment>8Bytes</StructMemberAlignment>
  51. <!-- /GS -->
  52. <BufferSecurityCheck>true</BufferSecurityCheck>
  53. <!-- /Gy -->
  54. <FunctionLevelLinking>true</FunctionLevelLinking>
  55. <!-- /GF -->
  56. <ControlFlowGuard Condition="'$(Platform)'!='ARM'">Guard</ControlFlowGuard>
  57. <!-- /guard:cf -->
  58. <StringPooling>true</StringPooling>
  59. <!-- /MD -->
  60. <RuntimeLibrary Condition="'$(RuntimeLib)'!='static_library'">MultiThreadedDLL</RuntimeLibrary>
  61. <RuntimeLibrary Condition="'$(RuntimeLib)'=='static_library'">MultiThreaded</RuntimeLibrary>
  62. <!-- We don't use any metadata -->
  63. <AdditionalUsingDirectories />
  64. <AdditionalOptions>%(AdditionalOptions) /Zm125</AdditionalOptions>
  65. <AdditionalOptions>%(AdditionalOptions) /Yl$(TargetName)</AdditionalOptions>
  66. <!-- Separate global variable for linker -->
  67. <AdditionalOptions>%(AdditionalOptions) /Gw</AdditionalOptions>
  68. <!-- Enable warnings not included in W4 by default -->
  69. <AdditionalOptions>%(AdditionalOptions) /w44242 /w44254</AdditionalOptions>
  70. <ProgramDataBaseFileName Condition="'$(ConfigurationType)'=='StaticLibrary'">$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
  71. <ProgramDataBaseFileName Condition="'$(ConfigurationType)'!='StaticLibrary'">$(IntDir)</ProgramDataBaseFileName>
  72. <!-- ======== For Code Coverage ======== -->
  73. <PreprocessorDefinitions Condition="'$(ENABLE_CODECOVERAGE)'=='true'">
  74. %(PreprocessorDefinitions);
  75. BYTECODE_TESTING=1
  76. </PreprocessorDefinitions>
  77. <PreprocessorDefinitions Condition="'$(BuildWabt)'=='true'">%(PreprocessorDefinitions);CAN_BUILD_WABT=1</PreprocessorDefinitions>
  78. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildNumber)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_NUMBER=$(ChakraVersionBuildNumber)</PreprocessorDefinitions>
  79. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildQFENumber)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_QFE=$(ChakraVersionBuildQFENumber)</PreprocessorDefinitions>
  80. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildCommit)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_COMMIT=$(ChakraVersionBuildCommit)</PreprocessorDefinitions>
  81. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildDate)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_DATE=$(ChakraVersionBuildDate)</PreprocessorDefinitions>
  82. <LanguageStandard>stdcpp17</LanguageStandard>
  83. </ClCompile>
  84. <ResourceCompile>
  85. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildNumber)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_NUMBER=$(ChakraVersionBuildNumber)</PreprocessorDefinitions>
  86. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildQFENumber)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_QFE=$(ChakraVersionBuildQFENumber)</PreprocessorDefinitions>
  87. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildCommit)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_COMMIT=$(ChakraVersionBuildCommit)</PreprocessorDefinitions>
  88. <PreprocessorDefinitions Condition="'$(ChakraVersionBuildDate)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_DATE=$(ChakraVersionBuildDate)</PreprocessorDefinitions>
  89. </ResourceCompile>
  90. <MASM>
  91. <!-- /Cx -->
  92. <PreserveIdentifierCase>3</PreserveIdentifierCase>
  93. </MASM>
  94. <Link>
  95. <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
  96. <GenerateDebugInformation>true</GenerateDebugInformation>
  97. <EnableCOMDATFolding Condition="'$(OptimizedBuild)'=='true' AND '$(ENABLE_CODECOVERAGE)'!='true'">true</EnableCOMDATFolding>
  98. <OptimizeReferences Condition="'$(OptimizedBuild)'=='true'">true</OptimizeReferences>
  99. <MinimumRequiredVersion Condition="'$(NtTargetVersion)'=='$(NtTargetVersion_Win7)'" >6.1</MinimumRequiredVersion>
  100. <MinimumRequiredVersion Condition="'$(NtTargetVersion)'=='$(NtTargetVersion_Win8)'" >6.2</MinimumRequiredVersion>
  101. <MinimumRequiredVersion Condition="'$(NtTargetVersion)'=='$(NtTargetVersion_WinBlue)'" >6.3</MinimumRequiredVersion>
  102. <MinimumRequiredVersion Condition="'$(NtTargetVersion)'=='$(NtTargetVersion_Win10)'" >10.00</MinimumRequiredVersion>
  103. <!-- Always set the checksum -->
  104. <AdditionalOptions>%(AdditionalOptions) /release</AdditionalOptions>
  105. <!-- Ignore Linker warning: This object file does not define any previously undefined public symbols -->
  106. <AdditionalOptions>%(AdditionalOptions) /ignore:4221</AdditionalOptions>
  107. <!-- ======== For Code Coverage ======== -->
  108. <AdditionalOptions Condition="'$(ENABLE_CODECOVERAGE)'=='true'">%(AdditionalOptions) /DEBUGTYPE:CV,FIXUP</AdditionalOptions>
  109. </Link>
  110. <Lib>
  111. <!-- Ignore Linker warning: This object file does not define any previously undefined public symbols -->
  112. <AdditionalOptions>%(AdditionalOptions) /ignore:4221</AdditionalOptions>
  113. </Lib>
  114. </ItemDefinitionGroup>
  115. <!--Optimization flags-->
  116. <ItemDefinitionGroup Condition="'$(OptimizedBuild)'!='true' OR '$(ENABLE_CODECOVERAGE)'=='true'">
  117. <ClCompile>
  118. <Optimization>Disabled</Optimization>
  119. </ClCompile>
  120. </ItemDefinitionGroup>
  121. <ItemDefinitionGroup Condition="'$(OptimizedBuild)'=='true' AND '$(ENABLE_CODECOVERAGE)'!='true'">
  122. <ClCompile>
  123. <Optimization>MaxSpeed</Optimization>
  124. <!-- HYB-TODO: When a CHPE toolchain arrives that supports LTCG, remove this condition. -->
  125. <WholeProgramOptimization Condition="'$(Platform)' != 'chpe'">true</WholeProgramOptimization>
  126. </ClCompile>
  127. </ItemDefinitionGroup>
  128. <!-- chk build flags -->
  129. <ItemDefinitionGroup Condition="'$(DebugBuild)'=='true'">
  130. <ClCompile>
  131. <PreprocessorDefinitions>%(PreprocessorDefinitions);_DEBUG;DBG;DBG_DUMP</PreprocessorDefinitions>
  132. </ClCompile>
  133. <ResourceCompile>
  134. <PreprocessorDefinitions>%(PreprocessorDefinitions);DBG;ENABLE_DEBUG_CONFIG_OPTIONS=1</PreprocessorDefinitions>
  135. </ResourceCompile>
  136. <Midl>
  137. <PreprocessorDefinitions>%(PreprocessorDefinitions);DBG</PreprocessorDefinitions>
  138. </Midl>
  139. </ItemDefinitionGroup>
  140. <!-- fre and fretest build flags -->
  141. <ItemDefinitionGroup Condition="'$(DebugBuild)'!='true'">
  142. <ClCompile>
  143. <PreprocessorDefinitions>%(PreprocessorDefinitions);NDEBUG</PreprocessorDefinitions>
  144. <PreprocessorDefinitions Condition="'$(Configuration)'=='Test'">%(PreprocessorDefinitions);ENABLE_DEBUG_CONFIG_OPTIONS=1</PreprocessorDefinitions>
  145. </ClCompile>
  146. <ResourceCompile>
  147. <PreprocessorDefinitions Condition="'$(Configuration)'=='Test'">%(PreprocessorDefinitions);ENABLE_DEBUG_CONFIG_OPTIONS=1</PreprocessorDefinitions>
  148. </ResourceCompile>
  149. <Link>
  150. <LinkTimeCodeGeneration Condition="'$(PlatformToolset)'=='v120' OR '$(TF_BUILD)'!=''">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
  151. <LinkTimeCodeGeneration Condition="'$(PlatformToolset)'!='v120' AND '$(TF_BUILD)'==''">UseFastLinkTimeCodeGeneration</LinkTimeCodeGeneration>
  152. </Link>
  153. <Lib>
  154. <LinkTimeCodeGeneration Condition="'$(Platform)' != 'chpe'">true</LinkTimeCodeGeneration>
  155. </Lib>
  156. </ItemDefinitionGroup>
  157. <ItemGroup Condition="'$(ConfigurationType)'=='DynamicLibrary' OR '$(ConfigurationType)'=='Application'">
  158. <Clean Include="$(OutDir)$(TargetName).lib" />
  159. <Clean Include="$(OutDir)$(TargetName).exp" />
  160. <Clean Include="$(OutDir)$(TargetName).ipdb" />
  161. <Clean Include="$(OutDir)$(TargetName).iobj" />
  162. </ItemGroup>
  163. </Project>