Update CMake for MSVC. Fix packaging for macos.

This commit is contained in:
Christoffer Lerno
2022-08-29 11:28:41 +02:00
parent 54d6b1a4ec
commit fffb8a1d0c
2 changed files with 19 additions and 16 deletions

View File

@@ -231,7 +231,7 @@ jobs:
if: matrix.llvm_version == env.LLVM_RELEASE_VERSION if: matrix.llvm_version == env.LLVM_RELEASE_VERSION
run: | run: |
mkdir linux mkdir linux
cp -r lib/ linux cp -r lib linux
cp msvc_build_libraries.py linux cp msvc_build_libraries.py linux
cp build/c3c linux cp build/c3c linux
tar czf c3-linux-${{matrix.build_type}}.tar.gz linux tar czf c3-linux-${{matrix.build_type}}.tar.gz linux
@@ -297,7 +297,7 @@ jobs:
if: matrix.llvm_version == env.LLVM_RELEASE_VERSION if: matrix.llvm_version == env.LLVM_RELEASE_VERSION
run: | run: |
mkdir macos mkdir macos
cp -r lib/ macos cp -r lib macos
cp msvc_build_libraries.py linux cp msvc_build_libraries.py linux
cp build/c3c macos cp build/c3c macos
zip -r c3-macos-${{matrix.build_type}}.zip macos zip -r c3-macos-${{matrix.build_type}}.zip macos
@@ -340,8 +340,8 @@ jobs:
}) })
- uses: actions/download-artifact@v3 - uses: actions/download-artifact@v3
- run: cp -r lib/ c3-windows-Release - run: cp -r lib c3-windows-Release
- run: cp -r lib/ c3-windows-Debug - run: cp -r lib c3-windows-Debug
- run: cp msvc_build_libraries.py c3-windows-Release - run: cp msvc_build_libraries.py c3-windows-Release
- run: cp msvc_build_libraries.py c3-windows-Debug - run: cp msvc_build_libraries.py c3-windows-Debug
- run: cp install_win_reqs.bat c3-windows-Release - run: cp install_win_reqs.bat c3-windows-Release

View File

@@ -8,9 +8,16 @@ set(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC)
set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17) 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_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -gdwarf-3 -O3") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -gdwarf-3 -O3")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -gdwarf-3") 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_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O1 -fsanitize=undefined")
#set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -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") #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/tilde_codegen_type.c
src/compiler/windows_support.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 target_include_directories(c3c PRIVATE
"${CMAKE_SOURCE_DIR}/src/") "${CMAKE_SOURCE_DIR}/src/")
@@ -276,10 +278,11 @@ if(C3_USE_MIMALLOC)
target_link_libraries(c3c mimalloc-static) target_link_libraries(c3c mimalloc-static)
endif() endif()
if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") if(MSVC)
message("Adding MSVC options") message("Adding MSVC options")
target_compile_options(c3c PRIVATE /wd4068 /wd4090 /WX /Wv:18) target_compile_options(c3c PRIVATE /wd4068 /wd4090 /WX /Wv:18)
target_compile_options(c3c_wrappers PUBLIC /wd4624 /wd4267 /wd4244 /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") if(CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_options(c3c PUBLIC /MTd) target_compile_options(c3c PUBLIC /MTd)
target_compile_options(c3c_wrappers 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 PUBLIC /MT)
target_compile_options(c3c_wrappers PUBLIC /MT) target_compile_options(c3c_wrappers PUBLIC /MT)
endif() endif()
else()
endif() message(STATUS "using gcc/clang warning switches")
target_compile_options(c3c PRIVATE -Wall -Werror -Wno-unknown-pragmas -Wno-unused-result
if (WIN32) -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter)
if (CMAKE_C_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_COMPILE_ID STREQUAL "GNU") if (WIN32)
target_link_options(c3c PRIVATE -pthread) target_link_options(c3c PRIVATE -pthread)
target_compile_definitions(c3c PRIVATE USE_PTHREAD=1) target_compile_definitions(c3c PRIVATE USE_PTHREAD=1)
target_compile_options(c3c PRIVATE -mlong-double-64)
endif() endif()
endif() endif()
install(TARGETS c3c DESTINATION bin) install(TARGETS c3c DESTINATION bin)
feature_summary(WHAT ALL) feature_summary(WHAT ALL)