nix build: xo-unit: build + install docs + examples

This commit is contained in:
Roland Conybeare 2025-09-22 12:24:57 -04:00
commit 91e972a4cf
3 changed files with 28 additions and 13 deletions

View file

@ -77,8 +77,6 @@ let
in
{
xo-unit = self.callPackage pkgs/xo-unit.nix { buildDocs = true; };
#
xo-expression = self.callPackage pkgs/xo-expression.nix {};
xo-tokenizer = self.callPackage pkgs/xo-tokenizer.nix { buildDocs = true; };
xo-reader = self.callPackage pkgs/xo-reader.nix {};
@ -108,6 +106,7 @@ let
xo-reflect = self.callPackage pkgs/xo-reflect.nix {};
xo-pyreflect = self.callPackage pkgs/xo-pyreflect.nix {};
xo-ratio = self.callPackage pkgs/xo-ratio.nix { buildDocs = true; buildExamples = true; };
xo-unit = self.callPackage pkgs/xo-unit.nix { buildDocs = true; buildExamples = true; };
xo-pyunit = self.callPackage pkgs/xo-pyunit.nix {};
#
xo-callback = self.callPackage pkgs/xo-callback.nix {};

View file

@ -6,9 +6,10 @@
doxygen, sphinx, graphviz,
xo-cmake, xo-ratio, xo-flatstring,
xo-cmake, xo-ratio, xo-flatstring, xo-indentlog,
buildDocs ? false,
buildExamples ? false,
} :
stdenv.mkDerivation (finalattrs:
@ -18,9 +19,13 @@ stdenv.mkDerivation (finalattrs:
src = ../xo-unit;
cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"];
cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"]
++ lib.optionals buildDocs ["-DXO_ENABLE_DOCS=on"]
++ lib.optionals buildExamples ["-DXO_ENABLE_EXAMPLES=on"];
inherit buildDocs;
inherit buildExamples;
doCheck = true;
postBuild = lib.optionalString buildDocs ''
@ -34,6 +39,9 @@ stdenv.mkDerivation (finalattrs:
catch2
xo-cmake
]
++ lib.optionals buildExamples [
xo-indentlog
]
++ lib.optionals buildDocs [
doxygen
sphinx

View file

@ -26,18 +26,26 @@ set(SELF_LIB xo_unit)
xo_add_headeronly_library(${SELF_LIB})
xo_install_library4(${SELF_LIB} ${PROJECT_NAME}Targets)
xo_export_cmake_config(${PROJECT_NAME} ${PROJECT_VERSION} ${PROJECT_NAME}Targets)
xo_headeronly_dependency(${SELF_LIB} xo_flatstring)
xo_headeronly_dependency(${SELF_LIB} xo_ratio)
if (XO_ENABLE_EXAMPLES)
install(TARGETS xo_unit_ex1 DESTINATION bin/xo/example)
install(TARGETS xo_unit_ex2 DESTINATION bin/xo/example)
install(TARGETS xo_unit_ex3 DESTINATION bin/xo/example)
install(TARGETS xo_unit_ex4 DESTINATION bin/xo/example)
install(TARGETS xo_unit_ex5 DESTINATION bin/xo/example)
install(TARGETS xo_unit_ex6 DESTINATION bin/xo/example)
install(TARGETS xo_unit_ex7 DESTINATION bin/xo/example)
install(TARGETS xo_unit_ex8 DESTINATION bin/xo/example)
install(TARGETS xo_unit_ex_qty DESTINATION bin/xo/example)
install(TARGETS xo_unit_ex_su DESTINATION bin/xo/example)
endif()
# ----------------------------------------------------------------
# docs targets depend on all the other library/utest targets
# docs targets depend on all the other library/utest targets,
# must come after them
#
add_subdirectory(docs)
# ----------------------------------------------------------------
# dependencies
# for some reason, this doesn't reliably bring in xo_flatstring dependency
xo_headeronly_dependency(${SELF_LIB} xo_flatstring)
xo_headeronly_dependency(${SELF_LIB} xo_ratio)
# etc..
# end CMakeLists.txt