ProtoTank/CMakeLists.txt
2024-09-13 18:51:39 +02:00

35 lines
1.1 KiB
CMake

# CMakeLists.txt
# Written by JackCarterSmith, 2024
# This file is released under the ProtoTank license.
cmake_minimum_required(VERSION 3.23)
cmake_policy(VERSION 3.23)
# define project
project(ProtoTank VERSION 0.1.0 DESCRIPTION "Arcade 80s-style game with tanks" LANGUAGES C;CXX)
#configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/config.h @ONLY)
include(FindPkgConfig)
include(CheckIncludeFile)
include(CheckCSourceCompiles)
# Find libraries
find_package(SFML REQUIRED)
include_directories(sfml::sfml)
# define src/headers files
FILE(GLOB AST_SCRS ./*.cpp)
FILE(GLOB AST_HRDS ./*.h)
SOURCE_GROUP("Source Files" FILES ${AST_SCRS})
SOURCE_GROUP("Header Files" FILES ${AST_HRDS})
# targets declarations
add_executable(${PROJECT_NAME} ${AST_SCRS} ${AST_HRDS})
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 17)
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME}-v${PROJECT_VERSION})
if(MSVC)
# msvc does not append 'lib' - do it here to have consistent name
set_target_properties(AST PROPERTIES IMPORT_PREFIX "lib")
endif()
target_link_libraries(${PROJECT_NAME} sfml::sfml)