From 21a7814cc8f8c8231174341af1455659ce51385f Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sun, 22 Jun 2025 16:18:13 -0500 Subject: [PATCH] xo-umbrella2: nix dev shell + umbrella docs work --- CMakeLists.txt | 28 ++++++++++++++++++++-------- default.nix | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 57 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aeb45c9e..90d5df2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,11 +2,14 @@ cmake_minimum_required(VERSION 3.10) -project(xo-submodule3 VERSION 1.0) +project(xo-umbrella VERSION 1.0) # ---------------------------------------------------------------- # global build settings +include(GNUInstallDirs) +include(cmake/xo-bootstrap-macros.cmake) + # Adopting submodule builds directly into this cmake. # Submodule builds will pickup dependent xo artifacts directly # from sibling build dirs. @@ -31,15 +34,9 @@ set(XO_UMBRELLA_BINARY_DIR ${CMAKE_BINARY_DIR}) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/xo-cmake/cmake) -# ---------------------------------------------------------------- -# unit test setup - -enable_testing() +xo_cxx_toplevel_options3() # ---------------------------------------------------------------- -# global c++ settings. - -enable_language(CXX) # temporary compiler flags here set(PROJECT_CXX_FLAGS "") @@ -61,6 +58,14 @@ message("-- CMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}") message("-- CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}") message("-- CMAKE_INSTALL_RPATH=${CMAKE_INSTALL_RPATH}") +# ---------------------------------------------------------------- +# +set(DOX_EXCLUDE_PATTERNS [=[ +*/utest/* \ +*/llvm/* \ +*/llvm-c/* +]=]) + # ---------------------------------------------------------------- # xo satellite projects @@ -106,3 +111,10 @@ add_subdirectory(xo-reader) add_subdirectory(xo-jit) add_subdirectory(xo-pyjit) # + +# ---------------------------------------------------------------- +# documentation. must follow add_subdirectory() for satellite projects + +xo_umbrella_doxygen_deps(xo_flatstring xo_ratio) +xo_umbrella_doxygen_config() +xo_umbrella_sphinx_config(index.rst docs/install.rst) diff --git a/default.nix b/default.nix index fb82e250..15461d85 100644 --- a/default.nix +++ b/default.nix @@ -126,6 +126,7 @@ let # xo-packaged version of llvm; fewer packaging features than nixpkgs # but easier to debug/modify llvmXo = llvmXo; + }; in @@ -138,4 +139,39 @@ let ]; }; in -pkgs + +pkgs.mkShell { + # maybe should create a python environment: + # let + # pythonenv = pkgs.python3.withPackages (pset: [ pset.sphinx pset.breathe ..etc.. ]) + # in + # buildInputs = [ pythonenv ..etc.. ]; + # + + buildInputs = [ + pkgs.python3Packages.python + pkgs.python3Packages.pybind11 + pkgs.python3Packages.sphinx-rtd-theme + pkgs.python3Packages.breathe + pkgs.python3Packages.sphinxcontrib-ditaa + pkgs.python3Packages.sphinxcontrib-plantuml + pkgs.python3Packages.pillow + + pkgs.cloc + + pkgs.sphinx + pkgs.graphviz + pkgs.doxygen + + pkgs.llvmPackages_18.llvm.dev + pkgs.libwebsockets + pkgs.jsoncpp + pkgs.eigen + pkgs.cmake + pkgs.catch2 + ]; + + shellHook = '' + echo "xo development environment loaded!" + ''; +}