xo-alloc/CMakeLists.txt
2025-05-11 01:26:48 -05:00

104 lines
3.1 KiB
CMake

# xo/CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(xo-submodule3 VERSION 1.0)
# ----------------------------------------------------------------
# global build settings
# Adopting submodule builds directly into this cmake.
# Submodule builds will pickup dependent xo artifacts directly
# from sibling build dirs.
# (Contrast with a build that relies on install step).
# In particular, configure step in satellite projects
# needs to avoid using cmake find_package() on sibling xo projects:
# 1. .cmake support files
# fooConfig.cmake
# fooConfigVersion.cmake
# fooTargets.cmake
# won't have been installed
# 2. In any case, they point to final install location;
# we need build location
#
set(XO_SUBMODULE_BUILD True)
# toplevel source directory; used only with XO_SUBMODULE_BUILD
set(XO_UMBRELLA_SOURCE_DIR ${CMAKE_SOURCE_DIR})
set(XO_UMBRELLA_REPO_SUBDIR .)
# toplevel binary directory; used only with XO_SUBMODULE_BUILD
set(XO_UMBRELLA_BINARY_DIR ${CMAKE_BINARY_DIR})
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/xo-cmake/cmake)
# ----------------------------------------------------------------
# unit test setup
enable_testing()
# ----------------------------------------------------------------
# global c++ settings.
enable_language(CXX)
# temporary compiler flags here
set(PROJECT_CXX_FLAGS "")
add_definitions(${PROJECT_CXX_FLAGS})
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 20)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
if(NOT CMAKE_INSTALL_RPATH)
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib CACHE STRING "runpath for installed libraries/executables")
endif()
message("-- CMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}")
message("-- CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}")
message("-- CMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}")
# ----------------------------------------------------------------
# xo satellite projects
add_subdirectory(xo-cmake)
add_subdirectory(xo-indentlog)
add_subdirectory(xo-refcnt)
add_subdirectory(xo-subsys)
add_subdirectory(xo-randomgen)
add_subdirectory(xo-ordinaltree)
add_subdirectory(xo-flatstring)
add_subdirectory(xo-pyutil)
add_subdirectory(xo-reflectutil)
add_subdirectory(xo-reflect)
add_subdirectory(xo-pyreflect)
add_subdirectory(xo-ratio)
add_subdirectory(xo-unit)
add_subdirectory(xo-pyunit)
add_subdirectory(xo-expression)
#add_subdirectory(xo-pyexpression)
#add_subdirectory(xo-tokenizer)
#add_subdirectory(xo-reader)
#add_subdirectory(xo-jit)
#add_subdirectory(xo-pyjit)
#add_subdirectory(xo-callback)
#add_subdirectory(xo-webutil)
#add_subdirectory(xo-pywebutil)
#add_subdirectory(xo-printjson)
#add_subdirectory(xo-pyprintjson)
#add_subdirectory(xo-reactor)
#add_subdirectory(xo-pyreactor)
#add_subdirectory(xo-websock)
#add_subdirectory(xo-pywebsock)
#add_subdirectory(xo-statistics)
#add_subdirectory(xo-distribution)
#add_subdirectory(xo-pydistribution)
#add_subdirectory(xo-simulator)
#add_subdirectory(xo-pysimulator)
#add_subdirectory(xo-process)
#add_subdirectory(xo-pyprocess)
#add_subdirectory(xo-kalmanfilter)
#add_subdirectory(xo-pykalmanfilter)