TU-Programmieren_2/lab1/CMakeLists.txt
2025-04-09 10:22:44 +02:00

47 lines
1.2 KiB
CMake

cmake_minimum_required(VERSION 3.20)
# define project metadata
project(lab1 LANGUAGES CXX
DESCRIPTION "lab1"
HOMEPAGE_URL "https://sgit.iue.tuwien.ac.at/360050/lab1")
# setting required language standards
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_EXTENSIONS OFF)
# misc settings
# avoid ctest dashboard targets
set_property(GLOBAL PROPERTY CTEST_TARGETS_ADDED 1)
# generate a compile_commands.json
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# make all symbols visible on windows (which is default on unix)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
# options
option(BUILD_TESTING "enable testing with ctest" ON)
# testing
include(CTest)
# global includes
include_directories(modules)
# include own targets
add_executable(taskA taskA.cpp)
add_test(NAME taskA COMMAND taskA WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
add_executable(taskB taskB.cpp)
add_test(NAME taskB COMMAND taskB WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
add_executable(taskC taskC.cpp)
add_test(NAME taskC COMMAND taskC WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})