CMakeLists.txt 1.1 KB
Newer Older
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
cmake_minimum_required(VERSION 3.13)
project(predictable_parallel_patterns
        VERSION 0.0.1
        DESCRIPTION "predictable parallel patterns for scalable smart systems using work stealing")

set(CMAKE_CXX_STANDARD 11)

# seperate library and test/example executable output paths.
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
set(LIBRARY_OUTPUT_PATH  ${CMAKE_BINARY_DIR}/lib)

# specific setup code is located in individual files.
include(cmake/DisabelInSource.cmake)
include(cmake/SetupOptimizationLevel.cmake)
include(cmake/SetupThreadingSupport.cmake)

# make our internal cmake script collection avaliable in the build process.
list(APPEND CMAKE_PREFIX_PATH "${PROJECT_SOURCE_DIR}/cmake")

# Include external libraries within the project structure (prefered, as no instalation is reqired).
# Each library has an own CMakeLists.txt that should make it avaliabale as a library target,
# thus allowing one to include it as any cmake dependency later on.
add_subdirectory(extern/catch2)

# Include all internal subprojects (library, examples, testing).
add_subdirectory(lib/pls)

add_subdirectory(app/playground)