File tree Expand file tree Collapse file tree 2 files changed +49
-20
lines changed
Expand file tree Collapse file tree 2 files changed +49
-20
lines changed Original file line number Diff line number Diff line change @@ -76,7 +76,7 @@ install(
7676 PATTERN "${CMAKE_CURRENT_BINARY_DIR} /include/beman/any_view/*.hpp"
7777)
7878
79- macro (beman_add_executable)
79+ function (beman_add_executable)
8080 set (options )
8181 set (oneValueArgs CATEGORY TARGET )
8282 set (multiValueArgs SOURCES LIBRARIES)
@@ -90,13 +90,8 @@ macro(beman_add_executable)
9090 )
9191
9292 # [CMAKE.TARGET_NAMES]
93- set (target
94- "beman.any_view.${beman_executable_CATEGORY} .${beman_executable_TARGET} "
95- )
96-
97- if (NOT beman_executable_SOURCES)
98- set (beman_executable_SOURCES "${beman_executable_TARGET} .cpp" )
99- endif ()
93+ set (category beman.any_view.${beman_executable_CATEGORY} )
94+ set (target ${category} .${beman_executable_TARGET} )
10095
10196 add_executable (${target} )
10297 # [CMAKE.PASSIVE_PROJECTS]
@@ -107,7 +102,13 @@ macro(beman_add_executable)
107102 ${target}
108103 PRIVATE beman::any_view ${beman_executable_LIBRARIES}
109104 )
110- endmacro ()
105+
106+ if (NOT TARGET ${category} )
107+ add_custom_target (${category} )
108+ endif ()
109+
110+ add_dependencies (${category} ${target} )
111+ endfunction ()
111112
112113if (BEMAN_ANY_VIEW_BUILD_TESTS)
113114 enable_testing ()
Original file line number Diff line number Diff line change @@ -20,19 +20,47 @@ FetchContent_MakeAvailable(benchmark googletest)
2020
2121include (GoogleTest)
2222
23- function (beman_add_benchmark)
24- beman_add_executable(${ARGN} CATEGORY benchmarks LIBRARIES benchmark::benchmark)
23+ function (beman_add_benchmark name )
24+ beman_add_executable(
25+ TARGET ${name}
26+ SOURCES ${name} .benchmark.cpp ${ARGN}
27+ CATEGORY benchmarks
28+ LIBRARIES benchmark::benchmark
29+ )
2530endfunction ()
2631
27- function (beman_add_test)
28- beman_add_executable(${ARGN} CATEGORY tests LIBRARIES GTest::gtest GTest::gtest_main)
29- gtest_discover_tests(${target} )
32+ function (beman_add_tests)
33+ foreach (name ${ARGN} )
34+ beman_add_executable(
35+ TARGET ${name}
36+ SOURCES ${name} .test .cpp
37+ CATEGORY tests
38+ LIBRARIES GTest::gtest GTest::gtest_main
39+ )
40+ gtest_discover_tests(beman.any_view.tests.${name} )
41+ endforeach ()
3042endfunction ()
3143
32- beman_add_benchmark(TARGET all SOURCES all .benchmark.cpp detail/eager.cpp detail/fused.cpp detail/lazy.cpp detail/products.cpp detail/reserved.cpp)
33- beman_add_benchmark(TARGET take SOURCES take.benchmark.cpp detail/eager.cpp detail/fused.cpp detail/lazy.cpp detail/products.cpp detail/reserved.cpp)
44+ beman_add_benchmark(
45+ all
46+ detail/eager.cpp
47+ detail/fused.cpp
48+ detail/lazy.cpp
49+ detail/products.cpp
50+ detail/reserved.cpp
51+ )
52+ beman_add_benchmark(
53+ take
54+ detail/eager.cpp
55+ detail/fused.cpp
56+ detail/lazy.cpp
57+ detail/products.cpp
58+ detail/reserved.cpp
59+ )
3460
35- beman_add_test(TARGET concepts SOURCES concepts.test .cpp)
36- beman_add_test(TARGET constexpr SOURCES constexpr.test .cpp)
37- beman_add_test(TARGET sfinae SOURCES sfinae.test .cpp)
38- beman_add_test(TARGET type_traits SOURCES type_traits.test .cpp)
61+ beman_add_tests(
62+ concepts
63+ constexpr
64+ sfinae
65+ type_traits
66+ )
You can’t perform that action at this time.
0 commit comments