-
Notifications
You must be signed in to change notification settings - Fork 76
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
30 lines (23 loc) · 1.58 KB
/
CMakeLists.txt
File metadata and controls
30 lines (23 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
cmake_minimum_required(VERSION 3.15)
project(parallel_programming_course LANGUAGES C CXX)
message(STATUS "Student's tasks")
# ——— Testing options ————————————————————————————————————————
option(USE_FUNC_TESTS "Enable functional tests" OFF)
option(USE_PERF_TESTS "Enable performance tests" OFF)
# Test runner executables
set(FUNC_TEST_EXEC ppc_func_tests)
set(PERF_TEST_EXEC ppc_perf_tests)
# ——— Include helper scripts ——————————————————————————————————————
include(${CMAKE_SOURCE_DIR}/cmake/functions.cmake)
# ——— Initialize test executables —————————————————————————————————————
ppc_add_test(${FUNC_TEST_EXEC} common/runners/functional.cpp USE_FUNC_TESTS)
ppc_add_test(${PERF_TEST_EXEC} common/runners/performance.cpp USE_PERF_TESTS)
# ——— List of implementations ————————————————————————————————————————
set(IMPLEMENTATIONS all mpi omp seq stl tbb)
# ——— Configure each subproject —————————————————————————————————————
file(GLOB subdirs RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/*")
foreach(sub IN LISTS subdirs)
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${sub}" AND NOT sub STREQUAL "common")
ppc_configure_subproject(${sub})
endif()
endforeach()