Commit 9bb76f8ce0

Bodie Solomon <bodie@synapsegarden.net>
2020-03-31 16:13:31
Use correct compiler flags in MSVC bootstrap builds of Zig
https://github.com/ziglang/zig/issues/4877 The CMake build of Zig from C++ uses hand-set compiler flags which are not compatible with the Microsoft C/C++ Optimizing Compiler (cl.exe) used by Visual Studio. This commit attempts to conform them to match the Clang/GCC options under MSVC builds. Note that CL does not have a concept of C99 or "-O3", and may imply other optimizations in "/O2" than are implied by Clang/GCC "-O3". Visual Studio 2019 documentation for cl.exe's optimization options: https://docs.microsoft.com/en-us/cpp/build/reference/o-options-optimize-code?view=vs-2019 Visual Studio 2019 doc for cl.exe's C++ standard options: https://docs.microsoft.com/en-us/cpp/build/reference/std-specify-language-standard-version?view=vs-2019
1 parent d34a3c6
Changed files (1)
CMakeLists.txt
@@ -224,7 +224,7 @@ set(EMBEDDED_SOFTFLOAT_SOURCES
 add_library(embedded_softfloat STATIC ${EMBEDDED_SOFTFLOAT_SOURCES})
 if(MSVC)
     set_target_properties(embedded_softfloat PROPERTIES
-        COMPILE_FLAGS "-std=c99 /w"
+        COMPILE_FLAGS "/w /O2"
     )
 else()
     set_target_properties(embedded_softfloat PROPERTIES
@@ -315,7 +315,12 @@ include_directories(
 )
 
 # These have to go before the -Wno- flags
-set(EXE_CFLAGS "-std=c++14")
+if(MSVC)
+  set(EXE_CFLAGS "/std:c++14")
+else(MSVC)
+  set(EXE_CFLAGS "-std=c++14")
+endif(MSVC)
+
 if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
     if(MSVC)
         set(EXE_CFLAGS "${EXE_CFLAGS} /w")
@@ -333,7 +338,11 @@ else()
     endif()
 endif()
 
-set(OPTIMIZED_C_FLAGS "-std=c99 -O3")
+if(MSVC)
+  set(OPTIMIZED_C_FLAGS "/O2")
+else(MSVC)
+  set(OPTIMIZED_C_FLAGS "-std=c99 -O3")
+endif(MSVC)
 
 set(EXE_LDFLAGS " ")
 if(MSVC)