# SDL::SDL was defined on 3.20. cmake_minimum_required(VERSION 3.20) set(TOOLS_PREFIX ${CMAKE_BINARY_DIR}/tools) include(ExternalProject) ExternalProject_Add(tools SOURCE_DIR ${CMAKE_SOURCE_DIR}/tools CMAKE_ARGS -D CMAKE_INSTALL_PREFIX=${TOOLS_PREFIX}) project(rts C) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) if(CMAKE_TOOLCHAIN_FILE MATCHES "ps1") set(PS1_BUILD 1) elseif(CMAKE_TOOLCHAIN_FILE MATCHES "win9x") set(WIN9X_BUILD 1) set(SDL1_2_BUILD 1) else() set(HOST_BUILD 1) set(SDL1_2_BUILD 1) endif() add_executable(${PROJECT_NAME} "src/main.c") if(SDL1_2_BUILD) find_package(SDL 1.2 REQUIRED) find_package(SDL_gfx 2.0 REQUIRED) find_package(SDL_mixer 1.2 REQUIRED) # FindSDL_mixer.cmake does not export any target, so do it here instead. add_library(SDL::SDL_mixer STATIC IMPORTED) set_property(TARGET SDL::SDL_mixer PROPERTY IMPORTED_LOCATION ${SDL_MIXER_LIBRARIES}) target_include_directories(SDL::SDL_mixer INTERFACE ${SDL_MIXER_INCLUDE_DIRS}) target_link_libraries(SDL::SDL_mixer INTERFACE SDL::SDL) endif() if(NOT PS1_BUILD) find_package(ENET 1.3 REQUIRED) endif() set(cdroot ${CMAKE_BINARY_DIR}/cdimg) file(MAKE_DIRECTORY ${cdroot}) if(PS1_BUILD) include("cmake/ps1.cmake") elseif(WIN9X_BUILD) include("cmake/win9x.cmake") elseif(HOST_BUILD) include("cmake/host.cmake") endif() add_subdirectory("res") add_subdirectory("src")