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)