diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e6d5d63c8..78869d543 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -231,7 +231,7 @@ jobs: if: matrix.llvm_version == env.LLVM_RELEASE_VERSION run: | mkdir linux - cp -r lib/ linux + cp -r lib linux cp msvc_build_libraries.py linux cp build/c3c linux tar czf c3-linux-${{matrix.build_type}}.tar.gz linux @@ -297,7 +297,7 @@ jobs: if: matrix.llvm_version == env.LLVM_RELEASE_VERSION run: | mkdir macos - cp -r lib/ macos + cp -r lib macos cp msvc_build_libraries.py linux cp build/c3c macos zip -r c3-macos-${{matrix.build_type}}.zip macos @@ -340,8 +340,8 @@ jobs: }) - uses: actions/download-artifact@v3 - - run: cp -r lib/ c3-windows-Release - - run: cp -r lib/ c3-windows-Debug + - run: cp -r lib c3-windows-Release + - run: cp -r lib c3-windows-Debug - run: cp msvc_build_libraries.py c3-windows-Release - run: cp msvc_build_libraries.py c3-windows-Debug - run: cp install_win_reqs.bat c3-windows-Release diff --git a/CMakeLists.txt b/CMakeLists.txt index 318723596..8cfe305cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,9 +8,16 @@ set(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) +if(MSVC) + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /O2") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /O2") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /Od /Zi") +else() set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -gdwarf-3 -O3") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -gdwarf-3") +endif() #set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O1 -fsanitize=undefined") #set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O1 -fsanitize=undefined") #set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -gdwarf-3 -O3 -fsanitize=undefined") @@ -246,11 +253,6 @@ add_executable(c3c src/compiler/tilde_codegen_type.c src/compiler/windows_support.c) -if(NOT CMAKE_C_COMPILER_ID STREQUAL "MSVC") - message(STATUS "using gcc/clang warning switches") - target_compile_options(c3c PRIVATE -Wall -Werror -Wno-unknown-pragmas -Wno-unused-result - -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter) -endif() target_include_directories(c3c PRIVATE "${CMAKE_SOURCE_DIR}/src/") @@ -276,10 +278,11 @@ if(C3_USE_MIMALLOC) target_link_libraries(c3c mimalloc-static) endif() -if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") +if(MSVC) message("Adding MSVC options") target_compile_options(c3c PRIVATE /wd4068 /wd4090 /WX /Wv:18) target_compile_options(c3c_wrappers PUBLIC /wd4624 /wd4267 /wd4244 /WX /Wv:18) + target_link_options(c3c_wrappers PUBLIC /ignore:4099) if(CMAKE_BUILD_TYPE STREQUAL "Debug") target_compile_options(c3c PUBLIC /MTd) target_compile_options(c3c_wrappers PUBLIC /MTd) @@ -287,17 +290,17 @@ if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") target_compile_options(c3c PUBLIC /MT) target_compile_options(c3c_wrappers PUBLIC /MT) endif() - -endif() - -if (WIN32) - if (CMAKE_C_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_COMPILE_ID STREQUAL "GNU") +else() + message(STATUS "using gcc/clang warning switches") + target_compile_options(c3c PRIVATE -Wall -Werror -Wno-unknown-pragmas -Wno-unused-result + -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter) + if (WIN32) target_link_options(c3c PRIVATE -pthread) target_compile_definitions(c3c PRIVATE USE_PTHREAD=1) - target_compile_options(c3c PRIVATE -mlong-double-64) endif() endif() + install(TARGETS c3c DESTINATION bin) feature_summary(WHAT ALL)