diff --git a/default.nix b/default.nix index 5eb886bf..c4578f5b 100644 --- a/default.nix +++ b/default.nix @@ -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 {}; diff --git a/pkgs/xo-unit.nix b/pkgs/xo-unit.nix index 997df9de..d30d45e9 100644 --- a/pkgs/xo-unit.nix +++ b/pkgs/xo-unit.nix @@ -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 diff --git a/xo-unit/CMakeLists.txt b/xo-unit/CMakeLists.txt index 3b88ffcb..14ed05a0 100644 --- a/xo-unit/CMakeLists.txt +++ b/xo-unit/CMakeLists.txt @@ -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