cmake: add option to use static runtime (no need for libgcc.dll/libstdc++.dll/libwinpthread.dll

This commit is contained in:
Anonymous Maarten 2021-07-08 17:33:48 +02:00
parent 7c754b8356
commit 183dea9a32
3 changed files with 16 additions and 0 deletions

View File

@ -14,6 +14,8 @@ set(librw_AUTHOR aap)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
set(LIBRW_STATIC_RUNTIME_DEFAULT OFF)
if(WIN32) if(WIN32)
set(LIBRW_PLATFORMS "NULL" "GL3" "D3D9") set(LIBRW_PLATFORMS "NULL" "GL3" "D3D9")
set(LIBRW_PLATFORM_GL3_REQUIRES_OPENGL ON) set(LIBRW_PLATFORM_GL3_REQUIRES_OPENGL ON)
@ -65,6 +67,11 @@ include(CMakeDependentOption)
option(LIBRW_TOOLS "Build librw tools" ${librw_MAINPROJECT}) option(LIBRW_TOOLS "Build librw tools" ${librw_MAINPROJECT})
option(LIBRW_INSTALL "Install librw files" ${librw_MAINPROJECT}) option(LIBRW_INSTALL "Install librw files" ${librw_MAINPROJECT})
cmake_dependent_option(LIBRW_EXAMPLES "Build librw examples" ON "NOT LIBRW_PLATFORM_PS2;NOT LIBRW_PLATFORM_NULL" OFF) cmake_dependent_option(LIBRW_EXAMPLES "Build librw examples" ON "NOT LIBRW_PLATFORM_PS2;NOT LIBRW_PLATFORM_NULL" OFF)
option(LIBRW_STATIC_RUNTIME "Try very hard to link to static libraries" ${LIBRW_STATIC_RUNTIME_DEFAULT})
if(LIBRW_STATIC_RUNTIME)
include(UseStaticRuntime)
endif()
if(LIBRW_INSTALL) if(LIBRW_INSTALL)
include(GNUInstallDirs) include(GNUInstallDirs)

View File

@ -0,0 +1,7 @@
if(CMAKE_C_COMPILER_ID MATCHES "^MSVC$")
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
if(CMAKE_C_COMPILER_ID MATCHES "^(GNU|Clang)$")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
endif()

View File

@ -1,5 +1,7 @@
set(SDL2_STATIC_INIT ON) set(SDL2_STATIC_INIT ON)
set(GLFW3_STATIC_INIT ON) set(GLFW3_STATIC_INIT ON)
set(LIBRW_STATIC_RUNTIME_DEFAULT ON)
function(librw_platform_target TARGET) function(librw_platform_target TARGET)
endfunction() endfunction()