33# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
44# gersemi: on
55
6- cmake_minimum_required(VERSION 3.30...4.2 )
6+ cmake_minimum_required(VERSION 3.30...4.3 )
77
88include (./cmake/prelude.cmake)
99
1010# ===================================================
11- project(beman.execution VERSION 0.2 .0 LANGUAGES CXX)
11+ project(beman.execution VERSION 0.3 .0 LANGUAGES CXX)
1212# ===================================================
1313
1414# Modules opt in only on compilers that support it: msvc, g++-15 and clang-20+
1515include (./cmake/cxx-modules-rules.cmake)
1616
17- set(TARGET_NAME beman.execution_headers) # used in src, and docs
18- set(TARGET_NAMESPACE beman) # TODO(CK) : still used in docs, is this really needed?
19- set(TARGET_PREFIX ${PROJECT_NAME}) # NOTE : used in src, and docs?
20- set(TARGETS_EXPORT_NAME ${PROJECT_NAME}-targets) # NOTE : must be set, is important for installation! CK
17+ set(BEMAN_EXECUTION_TARGET_NAME beman.execution_headers) # used in src, and docs
18+ set(BEMAN_EXECUTION_TARGET_PREFIX ${PROJECT_NAME}) # NOTE : used in src, and docs?
2119
2220# ===============================================================================
2321if(BEMAN_USE_MODULES)
@@ -29,31 +27,34 @@ if(BEMAN_USE_MODULES)
2927
3028 # CMake requires the language standard to be specified as compile feature
3129 # when a target provides C++23 modules and the target will be installed
32- add_library(${TARGET_PREFIX } STATIC) # FIXME : only static yet! CK
33- add_library(beman ::execution ALIAS ${TARGET_PREFIX })
30+ add_library(${BEMAN_EXECUTION_TARGET_PREFIX } STATIC) # FIXME : only static yet! CK
31+ add_library(beman ::execution ALIAS ${BEMAN_EXECUTION_TARGET_PREFIX })
3432 target_compile_features(
35- ${TARGET_PREFIX }
33+ ${BEMAN_EXECUTION_TARGET_PREFIX }
3634 PUBLIC cxx_std_${CMAKE_CXX_STANDARD}
3735 )
3836
3937 # TODO(CK): the export header should be used!
4038 include (GenerateExportHeader)
4139 generate_export_header(
42- ${TARGET_PREFIX }
43- BASE_NAME ${TARGET_PREFIX }
40+ ${BEMAN_EXECUTION_TARGET_PREFIX }
41+ BASE_NAME ${BEMAN_EXECUTION_TARGET_PREFIX }
4442 EXPORT_FILE_NAME beman/execution/modules_export.hpp
4543 )
4644 target_sources(
47- ${TARGET_PREFIX }
45+ ${BEMAN_EXECUTION_TARGET_PREFIX }
4846 PUBLIC
4947 FILE_SET HEADERS
5048 BASE_DIRS include ${CMAKE_CURRENT_BINARY_DIR}
5149 FILES
5250 ${CMAKE_CURRENT_BINARY_DIR}/beman/execution/modules_export.hpp
5351 )
54- target_compile_definitions(${TARGET_PREFIX} PUBLIC BEMAN_HAS_MODULES)
52+ target_compile_definitions(
53+ ${BEMAN_EXECUTION_TARGET_PREFIX}
54+ PUBLIC BEMAN_HAS_MODULES
55+ )
5556 set_target_properties(
56- ${TARGET_PREFIX }
57+ ${BEMAN_EXECUTION_TARGET_PREFIX }
5758 PROPERTIES
5859 VERSION ${PROJECT_VERSION}
5960 SOVERSION ${PROJECT_VERSION_MAJOR}
@@ -63,20 +64,29 @@ if(BEMAN_USE_MODULES)
6364 # FIXME: Quickfix only to prevent linker problems on windows dll? CK
6465 if(WIN32 AND BUILD_SHARED_LIBS)
6566 set_target_properties(
66- ${TARGET_PREFIX }
67+ ${BEMAN_EXECUTION_TARGET_PREFIX }
6768 PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON
6869 )
6970 endif()
7071
7172 find_package(Threads REQUIRED)
72- target_link_libraries(${TARGET_PREFIX} PUBLIC Threads ::Threads)
73+ target_link_libraries(
74+ ${BEMAN_EXECUTION_TARGET_PREFIX}
75+ PUBLIC Threads ::Threads
76+ )
7377else()
7478 set(CMAKE_CXX_SCAN_FOR_MODULES OFF)
7579endif()
7680
7781if(BEMAN_USE_MODULES AND BEMAN_HAS_IMPORT_STD)
78- target_compile_definitions(${TARGET_PREFIX} PUBLIC BEMAN_HAS_IMPORT_STD)
79- set_target_properties(${TARGET_PREFIX} PROPERTIES CXX_MODULE_STD ON)
82+ target_compile_definitions(
83+ ${BEMAN_EXECUTION_TARGET_PREFIX}
84+ PUBLIC BEMAN_HAS_IMPORT_STD
85+ )
86+ set_target_properties(
87+ ${BEMAN_EXECUTION_TARGET_PREFIX}
88+ PROPERTIES CXX_MODULE_STD ON
89+ )
8090elseif(BEMAN_USE_MODULES)
8191 message(WARNING "Missing or disabled support for CMAKE_CXX_MODULE_STD!")
8292endif()
@@ -99,8 +109,7 @@ add_subdirectory(src/beman/execution)
99109# ===============================================================================
100110# NOTE: this must be done before tests! CK
101111include (./cmake/beman-install-library.cmake)
102- beman_install_library(${TARGET_PREFIX} TARGETS ${TARGET_NAME} ${TARGET_PREFIX}
103- # TODO: DEPENDENCIES [===[beman.inplace_vector 1.0.0]===] [===[beman.scope 0.0.1 EXACT]===] fmt
112+ beman_install_library(${BEMAN_EXECUTION_TARGET_PREFIX} TARGETS ${BEMAN_EXECUTION_TARGET_NAME} ${BEMAN_EXECUTION_TARGET_PREFIX}
104113 DEPENDENCIES Threads
105114)
106115# ===============================================================================
0 commit comments