60 lines
1.8 KiB
CMake
60 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
|
|
# define project metadata
|
|
|
|
project(exercise3 LANGUAGES CXX C
|
|
DESCRIPTION "exercise1"
|
|
HOMEPAGE_URL "https://sgit.iue.tuwien.ac.at/360050/exercise1")
|
|
|
|
# setting required language standards
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
set(CMAKE_C_STANDARD 11)
|
|
set(CMAKE_C_STANDARD_REQUIRED True)
|
|
set(CMAKE_C_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)
|
|
|
|
# get/setup dependencies
|
|
|
|
include_directories(modules)
|
|
|
|
# include own targets
|
|
|
|
find_package(Python3 COMPONENTS Interpreter REQUIRED)
|
|
add_test(NAME task1_py COMMAND ${Python3_EXECUTABLE} task1.test.py WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
|
|
|
|
add_executable(task1_c task1.test.c)
|
|
add_test(NAME task1_c COMMAND task1_c WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
|
|
|
|
add_executable(task1_cpp task1.test.cpp)
|
|
add_test(NAME task1_cpp COMMAND task1_cpp WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
|
|
|
|
add_custom_target(task1)
|
|
add_dependencies(task1 task1_c task1_cpp)
|
|
|
|
add_executable(task2 task2.cpp)
|
|
add_test(NAME task2 COMMAND task2 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
|
|
set_property(TEST task2 PROPERTY PROPERTY_REGULAR_EXPRESSION "6633")
|
|
|
|
add_executable(task3 task3.cpp task3.test.cpp)
|
|
add_test(NAME task3 COMMAND task3 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
|