xo-umbrella2: nix dev shell + umbrella docs work

This commit is contained in:
Roland Conybeare 2025-06-22 16:18:13 -05:00
commit 21a7814cc8
2 changed files with 57 additions and 9 deletions

View file

@ -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)

View file

@ -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!"
'';
}