Bläddra i källkod

Do not build wabt on MSVC 12.0 and before. The new version of wabt uses unsupported features by these compilers

Michael Ferris 9 år sedan
förälder
incheckning
27c73f5b6c

+ 17 - 4
Build/Common.Build.Default.props

@@ -9,10 +9,12 @@
 
   <!-- Auto tool set selection -->
   <PropertyGroup>
-    <PlatformToolset Condition="'$(VisualStudioVersion)'=='11.0' or '$(MSBuildToolsVersion)'=='11.0'">v110</PlatformToolset>
-    <PlatformToolset Condition="'$(VisualStudioVersion)'=='12.0' or '$(MSBuildToolsVersion)'=='12.0'">v120</PlatformToolset>
-    <PlatformToolset Condition="'$(VisualStudioVersion)'=='14.0' or '$(MSBuildToolsVersion)'=='14.0'">v140</PlatformToolset>
-    <PlatformToolset Condition="'$(VisualStudioVersion)'=='15.0' or '$(MSBuildToolsVersion)'=='15.0'">v141</PlatformToolset>
+    <BuildToolVersion>$(VisualStudioVersion)</BuildToolVersion>
+    <BuildToolVersion Condition="'$(BuildToolVersion)'==''">$(MSBuildToolsVersion)</BuildToolVersion>
+    <PlatformToolset Condition="'$(BuildToolVersion)'=='11.0'">v110</PlatformToolset>
+    <PlatformToolset Condition="'$(BuildToolVersion)'=='12.0'">v120</PlatformToolset>
+    <PlatformToolset Condition="'$(BuildToolVersion)'=='14.0'">v140</PlatformToolset>
+    <PlatformToolset Condition="'$(BuildToolVersion)'=='15.0'">v141</PlatformToolset>
   </PropertyGroup>
 
   <!-- Default ChakraDevConfigDir -->
@@ -82,4 +84,15 @@
     <ChakraParserIntDir>$(IntDir)..\Chakra.Parser</ChakraParserIntDir>
     <ChakraJITIDLIntDir>$(IntDir)..\Chakra.JITIDL</ChakraJITIDLIntDir>
   </PropertyGroup>
+
+  <!-- Determine if the build should include wabt -->
+  <PropertyGroup>
+    <BuildWabt>true</BuildWabt>
+    <!-- Only build wabt on x64/x86, the only platform supporting WebAssembly at this time -->
+    <BuildWabt Condition="'$(Platform)'!='x64' and '$(Platform)'!='win32'">false</BuildWabt>
+    <!-- Wabt is a test tool, do not include it in the Release build -->
+    <BuildWabt Condition="'$(Configuration)'!='Debug' and '$(Configuration)'!='Test'">false</BuildWabt>
+    <!-- Wabt uses c++11 features only available in recent toolset (v140 and above) -->
+    <BuildWabt Condition="'$(BuildToolVersion)'&lt;'14.0'">false</BuildWabt>
+  </PropertyGroup>
 </Project>

+ 6 - 4
Build/Common.Build.props

@@ -16,7 +16,7 @@
 
       <!--Disable midl timestamps wherever possible, razzle build already have this-->
       <AdditionalOptions Condition="'$(BuildingWithBuildExe)'!='true'">%(AdditionalOptions) /no_stamp</AdditionalOptions>
-      
+
       <SuppressStartupBanner>true</SuppressStartupBanner>
 
       <!-- Other defaults -->
@@ -25,7 +25,7 @@
 
       <!-- ======== makefiledef ======== -->
       <AdditionalOptions>%(AdditionalOptions) -sal</AdditionalOptions>
-      
+
       <!-- ======== sources.inc ======== -->
       <!-- generates SAL annotations for our interface -->
       <AdditionalOptions>%(AdditionalOptions) -sal_local</AdditionalOptions>
@@ -40,10 +40,10 @@
 
       <!-- Add any preprocessor definitions passed using msbuild environment -->
       <PreprocessorDefinitions Condition="'$(AdditionalPreprocessorDefinitions)'!=''">%(PreprocessorDefinitions);$(AdditionalPreprocessorDefinitions)</PreprocessorDefinitions>
-      
+
       <!-- MIDL generate code uses this define -->
       <PreprocessorDefinitions Condition="'$(Platform)'=='ARM'">%(PreprocessorDefinitions);_ARM_</PreprocessorDefinitions>
-            
+
       <!-- /W4 -->
       <WarningLevel>Level4</WarningLevel>
       <!-- /WX -->
@@ -86,6 +86,8 @@
         %(PreprocessorDefinitions);
         BYTECODE_TESTING=1
       </PreprocessorDefinitions>
+      <PreprocessorDefinitions Condition="'$(BuildWabt)'=='true'">%(PreprocessorDefinitions);EXCLUDE_WABT=0</PreprocessorDefinitions>
+      <PreprocessorDefinitions Condition="'$(BuildWabt)'!='true'">%(PreprocessorDefinitions);EXCLUDE_WABT=1</PreprocessorDefinitions>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions Condition="'$(ChakraVersionBuildNumber)'!=''">%(PreprocessorDefinitions);CHAKRA_VERSION_BUILD_NUMBER=$(ChakraVersionBuildNumber)</PreprocessorDefinitions>

+ 6 - 1
lib/Common/CommonDefines.h

@@ -633,9 +633,14 @@
 // xplat-todo: once all the wasm tests are passing on xplat, enable it for release builds
 #if defined(_WIN32) || (defined(__clang__) && defined(ENABLE_DEBUG_CONFIG_OPTIONS))
 #define ENABLE_WASM
-#ifdef ENABLE_DEBUG_CONFIG_OPTIONS
+
+#ifndef EXCLUDE_WABT 
+#define EXCLUDE_WABT 0
+#endif
+#if defined(ENABLE_DEBUG_CONFIG_OPTIONS) && !EXCLUDE_WABT
 #define ENABLE_WABT
 #endif
+
 #endif
 #endif
 

+ 1 - 1
lib/Runtime/Library/Chakra.Runtime.Library.vcxproj

@@ -342,7 +342,7 @@
     <ProjectReference Include="..\..\JITIDL\Chakra.JITIDL.vcxproj">
       <Project>{0db5ecbc-9385-4a65-be2c-4ef7c65cb719}</Project>
     </ProjectReference>
-    <ProjectReference Condition="('$(Platform)'=='x64' or '$(Platform)'=='win32') and ('$(Configuration)'=='Debug' or '$(Configuration)'=='Test')" Include="..\..\wabt\wabt.vcxproj">
+    <ProjectReference Condition="'$(BuildWabt)'=='true'" Include="..\..\wabt\wabt.vcxproj">
       <Project>{f48b3491-81df-4f49-b35f-3308cbe6a379}</Project>
     </ProjectReference>
   </ItemGroup>

+ 1 - 1
lib/Runtime/Library/Chakra.Runtime.Library.vcxproj.filters

@@ -118,7 +118,7 @@
     <ClCompile Include="$(MSBuildThisFileDirectory)WebAssemblyModule.cpp" />
     <ClCompile Include="$(MSBuildThisFileDirectory)WebAssemblyTable.cpp" />
     <ClCompile Include="$(MSBuildThisFileDirectory)WebAssemblyEnvironment.cpp" />
-    <ClCompile Include="WabtInterface.cpp" />
+    <ClCompile Include="$(MSBuildThisFileDirectory)WabtInterface.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\InternalPropertyList.h" />

+ 2 - 1
lib/wabt/wabt.vcxproj

@@ -30,7 +30,8 @@
       <TreatWarningAsError>false</TreatWarningAsError>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemGroup>
+  <!-- Do not build wabt with old toolset -->
+  <ItemGroup Condition="'$(BuildWabt)'=='true'">
     <ClCompile Include="$(MSBuildThisFileDirectory)src\ast.cc" />
     <ClCompile Include="$(MSBuildThisFileDirectory)src\ast-parser-lexer-shared.cc" />
     <ClCompile Include="$(MSBuildThisFileDirectory)src\prebuilt\ast-lexer-gen.cc" />