xo-umbrella2/xo-ordinaltree/CMakeLists.txt
Roland Conybeare e952f74a80
Some checks failed
cmake-docker / cmake-build (clang, clang++) (push) Successful in 23m9s
cmake-docker / cmake-build (gcc, g++) (push) Successful in 22m54s
CI / smoke-test (push) Failing after 38m55s
nix build: more fixes [NIX]
2026-08-08 01:09:51 -04:00

51 lines
1.6 KiB
CMake

# xo-ordinaltree/CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(xo_ordinaltree VERSION 0.1)
enable_language(CXX)
# common XO macros (see github:Rconybea/xo-cmake)
include(GNUInstallDirs)
include(cmake/xo-bootstrap-macros.cmake)
xo_cxx_toplevel_options3()
# ----------------------------------------------------------------
# c++ settings
set(PROJECT_CXX_FLAGS "")
add_definitions(${PROJECT_CXX_FLAGS})
# ----------------------------------------------------------------
# output targets
add_subdirectory(utest)
# ----------------------------------------------------------------
# header-only library
set(SELF_LIB xo_ordinaltree)
xo_add_headeronly_library(${SELF_LIB})
# ----------------------------------------------------------------
#
xo_install_library4(${SELF_LIB} ${PROJECT_NAME}Targets)
# (note: ..Targets from xo_install_library2())
# ----------------------------------------------------------------
# input dependencies
# NOTE: dependency set here must be kept consistent with ordinaltree/cmake/xo_ordinaltreeConfig.cmake.in
# xo-ordinaltree is also header-only
xo_headeronly_dependency(${SELF_LIB} xo_allocutil)
xo_headeronly_dependency(${SELF_LIB} randomgen)
# PUBLIC: the tree headers use xo::pp::{scope,xtag,tostr,quot,pad} in
# inline bodies, so consumers need ppsink too.
xo_headeronly_dependency(${SELF_LIB} xo_ppsink)
# NB must follow the xo_dependency() calls above: xo_export_cmake_config()
# generates the installed config's find_dependency() block from the target's
# accumulated deps at the point it is called.
xo_export_cmake_config(${PROJECT_NAME} ${PROJECT_VERSION} ${PROJECT_NAME}Targets)