Skip to content
Snippets Groups Projects
Select Git revision
  • c3d085d8b84d7cea26ae845d86d82632f8f6c0ee
  • main default protected
  • leveleditor
  • david-author
  • clang-tidy-cleanup
  • architecture-refactoring
  • cleanUpMenus
  • doxygen-cleanup
  • project-structure-refactoring
  • interpolation
  • buildingFeatures
  • win_end_screen
  • helpMenu
  • leveleditor-placement
  • text-rendering
  • updated_unit_contextmenu
  • level-from-commandline
  • unit_contextmenu
  • player
  • engine-scaling
  • clang-tidy
21 results

CMakeLists.txt

Blame
  • 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)