From e7d36ef4f516fbfc4d50f7874edd40d02e102296 Mon Sep 17 00:00:00 2001 From: Stepanov Igor Date: Wed, 25 Dec 2024 02:43:59 +0300 Subject: [PATCH] Fix static compilation --- CMakeLists.txt | 7 +++++-- CMakePresets.json | 6 +++--- src/CMakeLists.txt | 6 +++--- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e3d7c6f8..9c543a0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,10 @@ option(VOXELENGINE_BUILD_TESTS "" OFF) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) +if (CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") +endif() + add_subdirectory(src) add_executable(${PROJECT_NAME} src/main.cpp) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) @@ -20,7 +24,6 @@ if(MSVC) set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE) endif() if((CMAKE_BUILD_TYPE EQUAL "Release") OR (CMAKE_BUILD_TYPE EQUAL "RelWithDebInfo")) - set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Release>") target_compile_options(${PROJECT_NAME} PRIVATE /W4 /MT /O2) else() target_compile_options(${PROJECT_NAME} PRIVATE /W4) @@ -36,7 +39,7 @@ else() target_compile_options(${PROJECT_NAME} PRIVATE -Og) endif() if (WIN32) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") endif() endif() diff --git a/CMakePresets.json b/CMakePresets.json index e572a4c8..1db1db01 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -25,12 +25,12 @@ "generator": "Ninja Multi-Config", "binaryDir": "${sourceDir}/build", "environment": { - "VCPKG_DEFAULT_TRIPLET": "x64-mingw-static", - "VCPKG_DEFAULT_HOST_TRIPLET": "x64-mingw-static" + "VCPKG_DEFAULT_TRIPLET": "x64-windows-static", + "VCPKG_DEFAULT_HOST_TRIPLET": "x64-windows-static" }, "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", - "VCPKG_TARGET_TRIPLET": "x64-mingw-static", + "VCPKG_TARGET_TRIPLET": "x64-windows-static", "CMAKE_C_COMPILER": "clang", "CMAKE_CXX_COMPILER": "clang", "VOXELENGINE_BUILD_TESTS": "ON" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 34f70806..e6274289 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -6,11 +6,11 @@ file(GLOB_RECURSE HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) list(REMOVE_ITEM SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) -add_library(${PROJECT_NAME} ${SOURCES} ${HEADERS}) +add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS}) find_package(OpenGL REQUIRED) find_package(GLEW REQUIRED) -find_package(OpenAL REQUIRED) +find_package(OpenAL CONFIG REQUIRED) find_package(ZLIB REQUIRED) find_package(PNG REQUIRED) find_package(CURL REQUIRED) @@ -62,4 +62,4 @@ endif() include_directories(${LUA_INCLUDE_DIR}) include_directories(${CURL_INCLUDE_DIR}) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) -target_link_libraries(${PROJECT_NAME} ${LIBS} glfw OpenGL::GL ${OPENAL_LIBRARY} GLEW::GLEW ZLIB::ZLIB PNG::PNG CURL::libcurl ${VORBISLIB} ${LUA_LIBRARIES} ${CMAKE_DL_LIBS}) +target_link_libraries(${PROJECT_NAME} ${LIBS} glfw OpenGL::GL OpenAL::OpenAL GLEW::GLEW ZLIB::ZLIB PNG::PNG CURL::libcurl ${VORBISLIB} ${LUA_LIBRARIES} ${CMAKE_DL_LIBS})