-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
217 lines (208 loc) · 14.3 KB
/
CMakeLists.txt
File metadata and controls
217 lines (208 loc) · 14.3 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# cmake-format: off
# src/beman/execution26/CMakeLists.txt -*-makefile-*-
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# cmake-format: on
add_library(${TARGET_NAME} STATIC)
add_library(${TARGET_ALIAS} ALIAS ${TARGET_NAME})
if(CMAKE_BUILD_TYPE STREQUAL Debug)
target_link_libraries(${TARGET_NAME} PUBLIC $<BUILD_INTERFACE:${TARGET_NAME}_project_options>)
target_link_libraries(${TARGET_NAME} PUBLIC $<BUILD_INTERFACE:${TARGET_NAME}_project_warnings>)
endif()
include(CMakePrintHelpers)
cmake_print_variables(TARGET_ALIAS TARGET_NAME TARGET_PREFIX PROJECT_SOURCE_DIR)
target_sources(
${TARGET_NAME}
PRIVATE execution.cpp
PUBLIC FILE_SET
${TARGET_NAME}_public_headers
TYPE
HEADERS
BASE_DIRS
${PROJECT_SOURCE_DIR}/include
FILES
${PROJECT_SOURCE_DIR}/include/beman/execution26/execution.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/functional.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/stop_token.hpp
PUBLIC FILE_SET
${TARGET_NAME}_detail_headers
TYPE
HEADERS
BASE_DIRS
${PROJECT_SOURCE_DIR}/include
FILES
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/allocator_aware_move.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/almost_scheduler.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/apply_sender.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/as_awaitable.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/as_except_ptr.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/atomic_intrusive_stack.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/await_result_type.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/await_suspend_result.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/awaitable_sender.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/basic_operation.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/basic_receiver.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/basic_sender.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/basic_state.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/call_result_t.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/callable.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/check_type_alias_exist.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/child_type.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/class_type.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/common.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/completion_behaviour.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/completion_domain.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/completion_signature.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/completion_signatures.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/completion_signatures_for.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/completion_signatures_of_t.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/completion_tag.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/connect.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/connect_all.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/connect_all_result.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/connect_awaitable.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/connect_result_t.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/continues_on.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/decayed_same_as.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/decayed_tuple.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/decayed_type_list.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/decayed_typeof.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/decays_to.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/default_domain.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/default_impls.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/emplace_from.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/empty_env.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/env_of_t.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/env_promise.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/env_type.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/error_types_of_t.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/forward_like.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/forwarding_query.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/fwd_env.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/gather_signatures.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_allocator.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_awaiter.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_completion_behaviour.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_completion_scheduler.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_completion_signatures.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_delegation_scheduler.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_domain.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_domain_early.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_domain_late.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_env.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_scheduler.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/get_stop_token.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/has_as_awaitable.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/has_completions.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/immovable.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/impls_for.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/indices_for.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/indirect_meta_apply.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/inplace_stop_source.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/into_variant.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/intrusive_stack.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/is_awaitable.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/is_awaiter.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/join_env.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/just.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/let.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/make_env.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/make_sender.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/matching_sig.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/meta_combine.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/meta_contains.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/meta_filter.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/meta_prepend.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/meta_size.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/meta_to.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/meta_transform.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/meta_unique.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/movable_value.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/never_stop_token.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/nostopstate.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/nothrow_callable.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/notify.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/on.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/on_stop_request.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/operation_state.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/operation_state_task.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/product_type.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/query_with_default.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/queryable.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/read_env.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/receiver.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/receiver_of.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/run_loop.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/sched_attrs.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/sched_env.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/schedule.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/schedule_from.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/schedule_result_t.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/scheduler.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/scheduler_t.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/sender.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/sender_adaptor.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/sender_adaptor_closure.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/sender_awaitable.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/sender_decompose.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/sender_for.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/sender_in.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/sends_stopped.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/set_error.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/set_stopped.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/set_value.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/simple_allocator.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/simple_counting_scope.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/single_sender.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/single_sender_value_type.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/split.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/start.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/starts_on.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/state_type.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/stop_callback_for_t.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/stop_source.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/stop_token_of_t.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/stoppable_source.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/stoppable_token.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/suppress_pop.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/suppress_push.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/suspend_complete.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/sync_wait.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/tag_of_t.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/then.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/transform_sender.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/type_list.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/unspecified_promise.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/unstoppable_token.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/valid_completion_for.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/valid_completion_signatures.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/valid_specialization.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/value_types_of_t.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/variant_or_empty.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/when_all.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/when_all_with_variant.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/with_await_transform.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/with_awaitable_senders.hpp
${PROJECT_SOURCE_DIR}/include/beman/execution26/detail/write_env.hpp
)
# cmake-format: off
get_property(DETAIL_HEADER_FILES TARGET ${TARGET_NAME} PROPERTY HEADER_SET_${TARGET_NAME}_detail_headers)
source_group("Header Files\\detail" FILES ${DETAIL_HEADER_FILES})
set_target_properties(${TARGET_NAME} PROPERTIES VERIFY_INTERFACE_HEADER_SETS ON)
target_compile_features(${TARGET_NAME} PUBLIC
"$<$<COMPILE_FEATURES:cxx_std_26>:cxx_std_26>"
"$<$<NOT:$<COMPILE_FEATURES:cxx_std_26>>:cxx_std_23>"
)
install(
TARGETS ${TARGET_NAME}
EXPORT ${TARGETS_EXPORT_NAME}1
ARCHIVE DESTINATION lib/$<CONFIG>
FILE_SET ${TARGET_NAME}_public_headers
FILE_SET ${TARGET_NAME}_detail_headers
)
# cmake-format: on
install(
EXPORT ${TARGETS_EXPORT_NAME}1
FILE ${TARGETS_EXPORT_NAME}.cmake
DESTINATION "${INSTALL_CONFIGDIR}"
NAMESPACE ${TARGET_NAMESPACE}::
)