Files
space_shoot/CMakeLists.txt
2025-05-28 11:06:27 +08:00

57 lines
1.4 KiB
CMake

cmake_minimum_required(VERSION 3.30)
set(PROJECT_NAME "space_shoot")
project(${PROJECT_NAME} VERSION 0.0.1 LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static")
add_subdirectory(lib/spdlog)
set(CMAKE_PREFIX_PATH "lib/SDL/cmake")
find_package(SDL2 REQUIRED)
find_package(SDL2_image REQUIRED)
find_package(SDL2_ttf REQUIRED)
find_package(SDL2_mixer REQUIRED)
file(GLOB ASSETS src/assets/*)
file(COPY ${ASSETS} DESTINATION "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/assets")
file(GLOB DLL_INCLUDES lib/SDL/x86_64-w64-mingw32/bin/*.dll)
file(COPY ${DLL_INCLUDES} DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
file(GLOB_RECURSE SOURCE_CODE src/**.cpp)
# add no console
add_executable(${PROJECT_NAME} ${SOURCE_CODE})
target_link_libraries(${PROJECT_NAME}
${SDL2_LIBRARIES}
SDL2_mixer::SDL2_mixer
SDL2_ttf::SDL2_ttf
SDL2_image::SDL2_image
spdlog::spdlog
)
# add console
set(PROJECT_NAME "${PROJECT_NAME}-console")
add_executable(${PROJECT_NAME} ${SOURCE_CODE})
target_link_libraries(${PROJECT_NAME}
${SDL2_LIBRARIES}
SDL2_mixer::SDL2_mixer
SDL2_ttf::SDL2_ttf
SDL2_image::SDL2_image
spdlog::spdlog
)
target_link_options(${PROJECT_NAME} PRIVATE -Wl,-subsystem,console)