static added - not working

This commit is contained in:
edwin 2025-02-23 17:03:46 +01:00
parent 948a9a76a6
commit c89d6bb4fa

View File

@ -10,6 +10,9 @@ project(main VERSION 1.0.0
# Set C++ standard # Set C++ standard
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_COMPILER "/usr/bin/gpp")
set(BIN_STATIC true)
# Set binary name # Set binary name
set(BIN_NAME "test") set(BIN_NAME "test")
@ -35,6 +38,7 @@ endif()
# SDL2 & SDL2_ttf setup # SDL2 & SDL2_ttf setup
if(BIN_STATIC) if(BIN_STATIC)
set(SDL2_USE_STATIC_LIBS ON) set(SDL2_USE_STATIC_LIBS ON)
add_compile_definitions(SDL_STATIC)
endif() endif()
# List of subprojects to include (e.g., external libraries or modules) # List of subprojects to include (e.g., external libraries or modules)
@ -55,8 +59,15 @@ set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${BIN_NAME} SUFFIX
find_package(SDL2 REQUIRED) find_package(SDL2 REQUIRED)
find_package(SDL2_ttf REQUIRED) find_package(SDL2_ttf REQUIRED)
target_include_directories(${PROJECT_NAME} PRIVATE ${SDL2_INCLUDE_DIRS} ${SDL2_TTF_INCLUDE_DIRS}) if(BIN_STATIC)
target_link_libraries(${PROJECT_NAME} PRIVATE SDL2::SDL2 SDL2_ttf::SDL2_ttf) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++")
target_include_directories(${PROJECT_NAME} PRIVATE STATIC ${SDL2_INCLUDE_DIRS} ${SDL2_TTF_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} PRIVATE SDL2::SDL2-static SDL2_ttf::SDL2_ttf-static)
else()
target_include_directories(${PROJECT_NAME} PRIVATE ${SDL2_INCLUDE_DIRS} ${SDL2_TTF_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} PRIVATE SDL2::SDL2 SDL2_ttf::SDL2_ttf)
endif()
# Loop over the subprojects and link them to the main executable # Loop over the subprojects and link them to the main executable
foreach(Project IN LISTS SubProjects) foreach(Project IN LISTS SubProjects)
@ -66,7 +77,11 @@ foreach(Project IN LISTS SubProjects)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/${Project}) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/${Project})
endif() endif()
target_link_libraries(${PROJECT_NAME} PRIVATE ${Project}) if(BIN_STATIC)
target_link_libraries(${PROJECT_NAME} PRIVATE ${Project} --static)
else()
target_link_libraries(${PROJECT_NAME} PRIVATE ${Project})
endif()
endforeach() endforeach()
# Enable parallel build support # Enable parallel build support