Select Git revision
CMakeLists.txt
CMakeLists.txt 5.44 KiB
cmake_minimum_required(VERSION 3.15)
# Projektname und Sprache
project(ADVANCED_WARS
VERSION 1.0.0
DESCRIPTION "HSFD C++ Project"
LANGUAGES CXX
)
include(FetchContent)
# HighFive einbinden
FetchContent_Declare(
highfive
GIT_REPOSITORY https://github.com/highfive-devs/highfive.git
GIT_TAG v2.10.1
)
set(HIGHFIVE_EXAMPLES OFF)
set(HIGHFIVE_UNIT_TESTS OFF)
FetchContent_MakeAvailable(highfive)
# Box2D einbinden
FetchContent_Declare(
box2d
GIT_REPOSITORY https://github.com/erincatto/box2d.git
GIT_TAG v2.4.2
)
set(BOX2D_BUILD_TESTBED OFF CACHE BOOL "" FORCE)
set(BOX2D_BUILD_UNIT_TESTS OFF CACHE BOOL "" FORCE)
set(BOX2D_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(box2d)
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.71.0 REQUIRED COMPONENTS graph)
# Quellen sammeln
file(GLOB_RECURSE ADVANCED_WARS_SOURCES
"${PROJECT_SOURCE_DIR}/src/game/*.cpp"
"${PROJECT_SOURCE_DIR}/src/game/*.hpp"
)
# C++ Standard festlegen
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wextra -Wpedantic")
set(CMAKE_C_FLAGS_DEBUG "-g -O0 -Wall -Wextra -Wpedantic")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_definitions(-DDEBUG)
# Compiler-Warnungen aktivieren
if(MSVC)
add_compile_options(/W4)
else()
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
# Ressourcen kopieren
set(RES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/res)
set(OUTPUT_RES_DIR ${CMAKE_CURRENT_BINARY_DIR}/res)