From 5ae6f41e63bae9abd468bcc787e314ca0542f3f3 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Mon, 23 Oct 2023 13:34:53 -0400 Subject: [PATCH] + xo_cxx_toplevel_options() to consolidate boilerplate --- cmake/xo_macros/xo-project-macros.cmake | 2 ++ cmake/xo_macros/xo_cxx.cmake | 30 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 cmake/xo_macros/xo-project-macros.cmake diff --git a/cmake/xo_macros/xo-project-macros.cmake b/cmake/xo_macros/xo-project-macros.cmake new file mode 100644 index 00000000..a18c9b8d --- /dev/null +++ b/cmake/xo_macros/xo-project-macros.cmake @@ -0,0 +1,2 @@ +include(xo_macros/xo_cxx) +include(xo_macros/code-coverage) diff --git a/cmake/xo_macros/xo_cxx.cmake b/cmake/xo_macros/xo_cxx.cmake index 2f9560db..1e308aa0 100644 --- a/cmake/xo_macros/xo_cxx.cmake +++ b/cmake/xo_macros/xo_cxx.cmake @@ -1,4 +1,16 @@ +macro(xo_cxx_toplevel_options) + enable_language(CXX) + xo_toplevel_compile_options() + xo_toplevel_testing_options() +endmacro() + +macro(xo_toplevel_testing_options) + enable_testing() + add_code_coverage() + add_code_coverage_all_targets(EXCLUDE /nix/store* utest/*) +endmacro() + macro(xo_toplevel_compile_options) define_property( TARGET @@ -214,6 +226,24 @@ endmacro() # e.g. # - target=xo_pyutil cmake target name for this library # +macro(xo_add_headeronly_library4 target projectTargets) + add_library(${target} INTERFACE) + + set_property( + TARGET ${target} + PROPERTY xo_deps "${target}") + set_property( + TARGET ${target} + PROPERTY xo_srcdir ${PROJECT_SOURCE_DIR}) + set_property( + TARGET ${target} + PROPERTY xo_bindir ${PROJECT_BINARY_DIR}) + + xo_include_headeronly_options(${target}) + + xo_install_library4(${target} ${projectTargets}) +endmacro() + macro(xo_add_headeronly_library target) add_library(${target} INTERFACE)