From c89d6bb4fa0c26a5713f960b0cd3947c2c85f694 Mon Sep 17 00:00:00 2001 From: edwin Date: Sun, 23 Feb 2025 17:03:46 +0100 Subject: [PATCH] static added - not working --- CMakeLists.txt | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f28019..bfdbe07 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,9 @@ project(main VERSION 1.0.0 # Set C++ standard set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_COMPILER "/usr/bin/gpp") + +set(BIN_STATIC true) # Set binary name set(BIN_NAME "test") @@ -35,6 +38,7 @@ endif() # SDL2 & SDL2_ttf setup if(BIN_STATIC) set(SDL2_USE_STATIC_LIBS ON) + add_compile_definitions(SDL_STATIC) endif() # 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_ttf REQUIRED) -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) +if(BIN_STATIC) + 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 foreach(Project IN LISTS SubProjects) @@ -65,8 +76,12 @@ foreach(Project IN LISTS SubProjects) # Add the subproject's directory to the build (if not already added) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lib/${Project}) 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() # Enable parallel build support