# CMakeLists.txt # Written by JackCarterSmith, 2024 # This file is released under the AST license. cmake_minimum_required(VERSION 3.10) cmake_policy(VERSION 3.10) set(CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR}) # define project #set(APPEND CMAKE_EXE_LINKER_FLAGS "-Wl,-subsystem,console") project(AST VERSION 1.0.0 DESCRIPTION "Arena Survival Tournament" LANGUAGES C) set(AST_NAME AST-${PROJECT_VERSION}) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/config.h @ONLY) include(FindPkgConfig) include(CheckIncludeFile) include(CheckCSourceCompiles) # Find SDL2, SDL2_image and SDL2_gfx libraries find_package(SDL2 REQUIRED) include_directories(SDL2::SDL2) find_package(SDL2_image REQUIRED) include_directories(SDL2_image::SDL2_image) # define src/headers files FILE(GLOB AST_SCRS src/*.c) FILE(GLOB AST_HRDS src/*.h) SOURCE_GROUP("Source Files" FILES ${AST_SCRS}) SOURCE_GROUP("Header Files" FILES ${AST_HRDS}) # begin building AST #set(CMAKE_BUILD_TYPE Debug) #include_directories(${CMAKE_CURRENT_SOURCE_DIR}) add_executable(AST ${AST_SCRS} ${AST_HRDS}) set_property(TARGET AST PROPERTY C_STANDARD 90) set_target_properties(AST PROPERTIES OUTPUT_NAME ${AST_NAME}) if(MSVC) # msvc does not append 'lib' - do it here to have consistent name #set_target_properties(AST PROPERTIES PREFIX "lib") set_target_properties(AST PROPERTIES IMPORT_PREFIX "lib") endif() # Link SDL2::Main, SDL2::Image and SDL2::GFX to our project if(MINGW) # Override mingw32 lib order due to a failure in SDL conan recipe (can't link against WinMain) target_link_libraries(${PROJECT_NAME} mingw32 SDL2::SDL2 SDL2_image::SDL2_image) else() target_link_libraries(${PROJECT_NAME} SDL2::SDL2 SDL2_image::SDL2_image) endif() # install executable install(TARGETS AST RUNTIME DESTINATION bin )