diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ae5fd91..e2f44f43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,12 +82,11 @@ add_subdirectory(xo-cmake) add_subdirectory(xo-indentlog) add_subdirectory(xo-reflectutil) # header-only reflect support add_subdirectory(xo-randomgen) # xoshiro256ss -add_subdirectory(xo-arena) # arena allocator (DArena) -add_subdirectory(xo-facet) # sep iface,data +add_subdirectory(xo-arena) # arena allocator (DArena) +add_subdirectory(xo-facet) # sep iface,data add_subdirectory(xo-allocutil) add_subdirectory(xo-refcnt) add_subdirectory(xo-subsys) -#add_subdirectory(xo-randomgen) add_subdirectory(xo-flatstring) add_subdirectory(xo-pyutil) add_subdirectory(xo-reflect) @@ -96,20 +95,20 @@ add_subdirectory(xo-ratio) add_subdirectory(xo-unit) add_subdirectory(xo-pyunit) add_subdirectory(xo-callback) -add_subdirectory(xo-printable2) # experiment w/ facet object model +add_subdirectory(xo-printable2) # experiment w/ facet object model add_subdirectory(xo-alloc) -add_subdirectory(xo-alloc2) # experiment w/ facet object model -add_subdirectory(xo-gc) +add_subdirectory(xo-alloc2) # experiment w/ facet object model +add_subdirectory(xo-gc) # experiment w/ facet object model add_subdirectory(xo-object) -add_subdirectory(xo-object2) # experiment w/ facet object model -add_subdirectory(xo-procedure2) # schematika procedure abstraction + runtime context (fomo) -add_subdirectory(xo-numeric) # experiment w/ facet object model +add_subdirectory(xo-object2) # experiment w/ facet object model +add_subdirectory(xo-procedure2) # schematika procedure abstraction + runtime context (fomo) +add_subdirectory(xo-numeric) # experiment w/ facet object model add_subdirectory(xo-ordinaltree) # -add_subdirectory(xo-tokenizer2) # schematika tokenizer (fomo) +add_subdirectory(xo-tokenizer2) # schematika tokenizer (fomo) add_subdirectory(xo-expression2) # schematika expressions (fomo) -add_subdirectory(xo-reader2) # schematika expression parser (fomo) -add_subdirectory(xo-interpreter2) # schematika interpreter (fomo) +add_subdirectory(xo-reader2) # schematika expression parser (fomo) +add_subdirectory(xo-interpreter2) # schematika interpreter (fomo) # add_subdirectory(xo-webutil) add_subdirectory(xo-pywebutil) diff --git a/README.md b/README.md index f2f0ba0e..1a3441c6 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ $ nix-shell -A shell0 # just nix stdenv: make,gcc,bash etc. $ nix-shell -A shell1 # stable environment $ nix-shell -A shell2 # stable environment + emacs + lsp $ nix-shell -A shell3 # stable environment + emacs + lsp + xorg/opengl/vulkan/imgui stack (wsl2-only) +$ nix-shell -A shell4-osx # stable environment + emacs + lsp + imgui stack (osx-only) $ nix-shell -A shell4 # wsl2-specific. like shell3, vkcube works (at least on WSL) $ nix-shell -A shell5 # wsl2-specific. uses dxg driver for "hardware acceleration" $ nix-shell -A shell # (deprecated) bleeding edge environment @@ -48,8 +49,9 @@ If `nix` is available, you probably prefer the nix build, unless working on XO i Otherwise continue reading.. ``` -$ cd xo -$ PREFIX=/path/to/say/usr/local +$ PREFIX=/path/to/say/home/local +$ cd xo-umbrella2 +$ (cd xo-cmake && cmake -DCMAKE_INSTALL_PREFIX=$PREFIX -B .build -S . && cmake --install .build) $ cmake -B .build -S . -DCMAKE_INSTALL_PREFIX=${PREFIX} -DXO_ENABLE_EXAMPLES=1 -DXO_ENABLE_DOCS=1 -DCMAKE_BUILD_TYPE=debug $ cmake --build .build --verbose $ cmake --install .build @@ -157,6 +159,12 @@ $ nix-build -A xo-userenv-slow Same result as `$nix-build -A xo-userenv`, but builds each package serially using `xo-build`. +Finally, can also individual XO packages: +``` +$ nix-build -A xo.cmake +... +``` + #### Nix + SDL2 + Vulkan + ImGui Currently (Nov 2025) only affects `xo-umbrella2/xo-imgui`. diff --git a/default.nix b/default.nix index 13c087a7..77c8f1e1 100644 --- a/default.nix +++ b/default.nix @@ -6,8 +6,8 @@ { # official 24.05 release # nearly works on macos, clang17, llvm18 except for sphinx-contrib.ditaa # probably whould be nixos-25.05.tar.gz here -# nixpkgs-path ? fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-24.05.tar.gz", - nixpkgs-path ? ../nixpkgs, + nixpkgs-path ? fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-24.11.tar.gz", +# nixpkgs-path ? ../nixpkgs, # pkgs ? import (fetchTarball { # # 24.05-darwin works on macos, clang17, llvm 18 (copying from xo-nix2) @@ -84,13 +84,19 @@ let # }; # Problem: builds *everything* with llvm18 toolchain, exposes too many compiler nits - llvm-overlay = self: super: { + llvm-overlay = self: super: # use 'super' when you want to override the terms of a package. # use 'self' when pointing to an existing package # - llvmPackages = super.llvmPackages_18; - }; + let + llvmPackages = super.llvmPackages_18; + in let + clangStdenv = super.overrideCC super.stdenv super.llvmPackages_18.clang; + in let + jitStdenv = if super.stdenv.isDarwin then clangStdenv else super.stdenv; + in + { inherit llvmPackages clangStdenv jitStdenv; }; # tests excruciatingly slow mailutils-overlay = self: super: { @@ -133,23 +139,32 @@ let in { - xo-cmake = self.callPackage pkgs/xo-cmake.nix {}; - xo-indentlog = self.callPackage pkgs/xo-indentlog.nix { buildDocs = true; buildExamples = true; }; - xo-refcnt = self.callPackage pkgs/xo-refcnt.nix {}; - xo-subsys = self.callPackage pkgs/xo-subsys.nix {}; - xo-randomgen = self.callPackage pkgs/xo-randomgen.nix { buildExamples = true; }; - xo-ordinaltree = self.callPackage pkgs/xo-ordinaltree.nix {}; - xo-flatstring = self.callPackage pkgs/xo-flatstring.nix { buildDocs = true; buildExamples = true; }; - xo-pyutil = self.callPackage pkgs/xo-pyutil.nix {}; - xo-reflectutil = self.callPackage pkgs/xo-reflectutil.nix {}; - 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-cmake = self.callPackage pkgs/xo-cmake.nix { stdenv = jitStdenv; }; + xo-indentlog = self.callPackage pkgs/xo-indentlog.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; }; + xo-subsys = self.callPackage pkgs/xo-subsys.nix { stdenv = jitStdenv; }; + xo-randomgen = self.callPackage pkgs/xo-randomgen.nix { stdenv = jitStdenv; buildExamples = true; }; + xo-reflectutil = self.callPackage pkgs/xo-reflectutil.nix { stdenv = jitStdenv; }; + xo-flatstring = self.callPackage pkgs/xo-flatstring.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; }; + xo-arena = self.callPackage pkgs/xo-arena.nix { stdenv = jitStdenv; buildDocs = true; }; + xo-facet = self.callPackage pkgs/xo-facet.nix { stdenv = jitStdenv; }; + xo-allocutil = self.callPackage pkgs/xo-allocutil.nix { stdenv = jitStdenv; }; + xo-alloc = self.callPackage pkgs/xo-alloc.nix { stdenv = jitStdenv; buildDocs = true; }; + xo-alloc2 = self.callPackage pkgs/xo-alloc2.nix { stdenv = jitStdenv; buildDocs = true; }; + xo-gc = self.callPackage pkgs/xo-gc.nix { stdenv = jitStdenv; buildDocs = true; }; + xo-object = self.callPackage pkgs/xo-object.nix { stdenv = jitStdenv; }; + xo-object2 = self.callPackage pkgs/xo-object2.nix { stdenv = jitStdenv; }; + xo-refcnt = self.callPackage pkgs/xo-refcnt.nix { stdenv = jitStdenv; }; + xo-ordinaltree = self.callPackage pkgs/xo-ordinaltree.nix { stdenv = jitStdenv; }; + xo-pyutil = self.callPackage pkgs/xo-pyutil.nix { stdenv = jitStdenv; }; + xo-reflect = self.callPackage pkgs/xo-reflect.nix { stdenv = jitStdenv; }; + xo-pyreflect = self.callPackage pkgs/xo-pyreflect.nix { stdenv = jitStdenv; }; + xo-ratio = self.callPackage pkgs/xo-ratio.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; }; + xo-unit = self.callPackage pkgs/xo-unit.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; }; + xo-pyunit = self.callPackage pkgs/xo-pyunit.nix { stdenv = jitStdenv; }; # - xo-callback = self.callPackage pkgs/xo-callback.nix {}; - xo-webutil = self.callPackage pkgs/xo-webutil.nix {}; + xo-callback = self.callPackage pkgs/xo-callback.nix { stdenv = jitStdenv; }; + xo-printable2 = self.callPackage pkgs/xo-printable2.nix { stdenv = jitStdenv; }; + xo-webutil = self.callPackage pkgs/xo-webutil.nix { stdenv = jitStdenv; }; xo-pywebutil = self.callPackage pkgs/xo-pywebutil.nix {}; xo-printjson = self.callPackage pkgs/xo-printjson.nix {}; xo-pyprintjson = self.callPackage pkgs/xo-pyprintjson.nix {}; @@ -244,19 +259,47 @@ let pkgs.libbsd ]; + # emacs + emacs4xo = (pkgs.emacsPackagesFor pkgs.emacs30).emacsWithPackages (epkgs: with epkgs; [ + lsp-mode + lsp-ui + lsp-ivy + flycheck + ivy + rg + transient # magit dep + nix-mode + yaml-mode + htmlize + magit + exec-path-from-shell + highlight + surround + projectile + treemacs + treemacs-projectile + company + cmake-mode + which-key + xterm-color + yasnippet + ]); + # xo ide utils ideutils = [ pkgs.gsettings-desktop-schemas - pkgs.emacs30 -# (pkgs.emacs.pkgs.withPackages (epkgs: [ -# ])) + emacs4xo # pkgs.emacs-pgtk # wayland with treesitter; alternatively pkgs.emacs30 for emacs+tree-sitter pkgs.tree-sitter # CLI tool, but not grammars pkgs.notmuch pkgs.emacsPackages.notmuch pkgs.inconsolata-lgc pkgs.fontconfig +] +++ (if pkgs.stdenv.isLinux then [ pkgs.ghostty +] else []) +++ [ pkgs.timg pkgs.fish pkgs.nushell @@ -273,9 +316,9 @@ let pkgs.lcov pkgs.catch2 - pkgs.gdb ] ++ (if pkgs.stdenv.isLinux then [ + pkgs.gdb pkgs.strace ] else []) ++ [ @@ -287,7 +330,11 @@ let pkgs.openssh pkgs.ccache +] +++ (if pkgs.stdenv.isLinux then [ pkgs.distcc +] else []) + ++ [ pkgs.cmake pkgs.pkg-config pkgs.unzip @@ -336,8 +383,7 @@ let pkgs.lib.optionals pkgs.stdenv.isDarwin [ pkgs.darwin.moltenvk ] ++ - [ - pkgs.vulkan-tools + [ pkgs.vulkan-tools pkgs.vulkan-loader pkgs.vulkan-headers pkgs.vulkan-validation-layers @@ -374,7 +420,7 @@ let # elfutils, ncurses, expat, zstd, zlib, libbsd, gcc.cc.lib) # glxgears runs at ~170fps # - glpath = pkgs.lib.makeLibraryPath [ + glpath = pkgs.lib.makeLibraryPath ([ pkgs.wayland # for libwayland-client.so pkgs.xorg.libXau @@ -388,7 +434,8 @@ let pkgs.libxml2 pkgs.libffi - pkgs.elfutils # for libelf.so + ] ++ (if pkgs.stdenv.isLinux then [ pkgs.elfutils ] else []) + ++ [ pkgs.ncurses # for libtinfo.so pkgs.expat pkgs.zstd @@ -396,7 +443,7 @@ let pkgs.libbsd pkgs.gcc.cc.lib # for libstdc++.so (won't blow up cmake, only touching LD_LIBRARY_PATH) - ]; + ]); in '' # CXENV: cosmetic: coordinates with ~/proj/env/dotfiles/bashrc to drive PS1 @@ -444,11 +491,18 @@ in pkgs = pkgs; xo = { cmake = pkgs.xo-cmake; -# facet = pkgs.xo-facet; indentlog = pkgs.xo-indentlog; refcnt = pkgs.xo-refcnt; subsys = pkgs.xo-subsys; randomgen = pkgs.xo-randomgen; + arena = pkgs.xo-arena; + facet = pkgs.xo-facet; + allocutil = pkgs.xo-allocutil; + alloc = pkgs.xo-alloc; + alloc2 = pkgs.xo-alloc2; + gc = pkgs.xo-gc; + object = pkgs.xo-object; + object2 = pkgs.xo-object2; ordinaltree = pkgs.xo-ordinaltree; flatstring = pkgs.xo-flatstring; pyutil = pkgs.xo-pyutil; @@ -459,6 +513,7 @@ in unit = pkgs.xo-unit; pyunit = pkgs.xo-pyunit; callback = pkgs.xo-callback; + printable2 = pkgs.xo-printable2; webutil = pkgs.xo-webutil; pywebutil = pkgs.xo-pywebutil; printjson = pkgs.xo-printjson; @@ -602,7 +657,7 @@ in # elfutils, ncurses, expat, zstd, zlib, libbsd, gcc.cc.lib) # glxgears runs at ~170fps # - glpath = pkgs.lib.makeLibraryPath [ + glpath = pkgs.lib.makeLibraryPath ([ pkgs.wayland # for libwayland-client.so pkgs.xorg.libXau @@ -615,7 +670,8 @@ in pkgs.libxml2 pkgs.libffi - pkgs.elfutils # for libelf.so + ] ++ (if pkgs.stdenv.isLinux then [ pkgs.elfutils ] else []) + ++ [ pkgs.ncurses # for libtinfo.so pkgs.expat pkgs.zstd @@ -623,7 +679,7 @@ in pkgs.libbsd pkgs.gcc.cc.lib # for libstdc++.so (won't blow up cmake, only touching LD_LIBRARY_PATH) - ]; + ]); in '' # CXENV: cosmetic: coordinates with ~/proj/env/dotfiles/bashrc to drive PS1 @@ -695,11 +751,19 @@ in # 1 - get this to work as standalone copy of shell4-assembly # 2 - merge to look like shell4-wsl / shell4-nvidia # - shell4-osx = pkgs.mkShell { - buildInputs = docutils ++ xodeps ++ devutils ++ ideutils ++ x11utils ++ gldeps ++ vkdeps ++ imguideps; + #shell4-osx = pkgs.mkShell.override { stdenv = pkgs.jitStdenv; } { .. } # very high attack surface area + shell4-osx = + let + clangStdenv = pkgs.overrideCC pkgs.stdenv pkgs.llvmPackages_18.clang; + in + let jitStdenv = if pkgs.stdenv.isDarwin then clangStdenv else pkgs.stdenv; + in + (pkgs.mkShell.override { stdenv = jitStdenv; }) + { + buildInputs = docutils ++ xodeps ++ devutils ++ ideutils ++ x11utils ++ gldeps ++ vkdeps ++ imguideps; - shellHook = - '' + shellHook = + '' export CXENV=$CXENV:xo4-WIP # override SOUCE_DATE_EPOCH to current time (otherwise will get 1980) @@ -720,7 +784,7 @@ in # dependencies on host system libraries # glpath = pkgs.lib.makeLibraryPath [ ]; ''; - }; + }; # like shell4 but drop etc/hostwsl2 symlink dir. # looks like nixpkgs mesa not built for wsl2 dxg diff --git a/index.rst b/index.rst index 3e581fb6..e68572a3 100644 --- a/index.rst +++ b/index.rst @@ -20,6 +20,7 @@ Some features: kalman filters, stochastic processes, complex event processing, s xo-flatstring/docs/index xo-ratio/docs/index xo-unit/docs/index + xo-gc/docs/index xo-tokenizer/docs/index xo-reader/docs/index xo-jit/docs/index diff --git a/pkgs/README.md b/pkgs/README.md new file mode 100644 index 00000000..43ceb7e4 --- /dev/null +++ b/pkgs/README.md @@ -0,0 +1,5 @@ +### Notes + +propagatedBuildInputs: when providing definition for a package xo-foo: +dependencies xo-foo needs, that will also be transitive for some other package +that uses xo-foo. diff --git a/pkgs/xo-alloc.nix b/pkgs/xo-alloc.nix new file mode 100644 index 00000000..51cbda83 --- /dev/null +++ b/pkgs/xo-alloc.nix @@ -0,0 +1,64 @@ +{ + # nixpkgs dependencies + lib, stdenv, cmake, catch2, + doxygen, + + python3Packages, + + sphinx, graphviz, + + # xo dependencies + xo-callback, + xo-unit, + xo-reflect, +# xo-randomgen, + xo-reflectutil, + xo-indentlog, + xo-allocutil, + xo-cmake, + + buildDocs ? false, + doCheck ? true, +} : + +stdenv.mkDerivation (finalattrs: + { + name = "xo-alloc"; + + src = ../xo-alloc; + + cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"] + ++ lib.optionals buildDocs ["-DXO_ENABLE_DOCS=on"] + ++ ["-DENABLE_TESTING=1"]; + + inherit buildDocs; + inherit doCheck; + + postBuild = lib.optionalString buildDocs '' + cmake --build . -- docs + ''; + + nativeBuildInputs = [ + cmake + catch2 + xo-cmake +# xo-randomgen + ] ++ lib.optionals buildDocs [ + doxygen + sphinx + graphviz + python3Packages.sphinx-rtd-theme + python3Packages.breathe + python3Packages.sphinxcontrib-ditaa + python3Packages.sphinxcontrib-plantuml + python3Packages.pillow + ]; + propagatedBuildInputs = [ + xo-callback + xo-unit + xo-reflect + xo-allocutil + xo-reflectutil + xo-indentlog + ]; + }) diff --git a/pkgs/xo-alloc2.nix b/pkgs/xo-alloc2.nix new file mode 100644 index 00000000..0ca4afee --- /dev/null +++ b/pkgs/xo-alloc2.nix @@ -0,0 +1,69 @@ +{ + # nixpkgs dependencies + lib, stdenv, cmake, catch2, + doxygen, + + python3Packages, + + sphinx, graphviz, + + # xo dependencies + xo-facet, + xo-randomgen, + xo-subsys, +# xo-callback, +# xo-unit, +# xo-reflect, +# xo-randomgen, +# xo-reflectutil, +# xo-indentlog, +# xo-allocutil, + xo-cmake, + + buildDocs ? false, + doCheck ? true, +} : + +stdenv.mkDerivation (finalattrs: + { + name = "xo-alloc2"; + + src = ../xo-alloc2; + + cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"] + ++ lib.optionals buildDocs ["-DXO_ENABLE_DOCS=on"] + ++ lib.optionals doCheck ["-DENABLE_TESTING=1"]; + + inherit buildDocs; + inherit doCheck; + + postBuild = lib.optionalString buildDocs '' + cmake --build . -- docs + ''; + + nativeBuildInputs = [ + cmake + catch2 + xo-randomgen + xo-cmake + ] ++ lib.optionals buildDocs [ + doxygen + sphinx + graphviz + python3Packages.sphinx-rtd-theme + python3Packages.breathe + python3Packages.sphinxcontrib-ditaa + python3Packages.sphinxcontrib-plantuml + python3Packages.pillow + ]; + propagatedBuildInputs = [ + xo-facet + xo-subsys +# xo-callback +# xo-unit +# xo-reflect +# xo-allocutil +# xo-reflectutil +# xo-indentlog + ]; + }) diff --git a/pkgs/xo-allocutil.nix b/pkgs/xo-allocutil.nix new file mode 100644 index 00000000..dd66dbd6 --- /dev/null +++ b/pkgs/xo-allocutil.nix @@ -0,0 +1,32 @@ +{ + # nixpkgs dependencies + stdenv, cmake, catch2, + + # xo dependencies + xo-allocutil, + xo-cmake, +# xo-randomgen, +# xo-reflectutil, +# xo-indentlog, +} : + +stdenv.mkDerivation (finalattrs: + { + name = "xo-allocutil"; + + src = ../xo-allocutil; + + cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake" + "-DENABLE_TESTING=1" + ]; + doCheck = true; + nativeBuildInputs = [ + cmake catch2 + xo-cmake +# xo-randomgen + ]; + propagatedBuildInputs = [ +# xo-reflectutil +# xo-indentlog + ]; + }) diff --git a/pkgs/xo-arena.nix b/pkgs/xo-arena.nix new file mode 100644 index 00000000..4b67f35d --- /dev/null +++ b/pkgs/xo-arena.nix @@ -0,0 +1,53 @@ +{ + # nixpkgs dependencies + lib, stdenv, cmake, catch2, + doxygen, + + python3Packages, + + sphinx, graphviz, + + # xo dependencies + xo-randomgen, + xo-reflectutil, + xo-indentlog, + xo-cmake, + + buildDocs ? false, +} : + +stdenv.mkDerivation (finalattrs: + { + name = "xo-arena"; + + src = ../xo-arena; + + cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"] + ++ lib.optionals buildDocs ["-DXO_ENABLE_DOCS=on"] + ++ ["-DENABLE_TESTING=1"]; + + inherit buildDocs; + doCheck = true; + + postBuild = lib.optionalString buildDocs '' + cmake --build . -- docs + ''; + + nativeBuildInputs = [ + cmake catch2 + xo-cmake xo-randomgen + ] ++ lib.optionals buildDocs [ + doxygen + sphinx + graphviz + python3Packages.sphinx-rtd-theme + python3Packages.breathe + python3Packages.sphinxcontrib-ditaa + python3Packages.sphinxcontrib-plantuml + python3Packages.pillow + ]; + propagatedBuildInputs = [ + xo-reflectutil + xo-indentlog + ]; + }) diff --git a/pkgs/xo-facet.nix b/pkgs/xo-facet.nix new file mode 100644 index 00000000..79fec39c --- /dev/null +++ b/pkgs/xo-facet.nix @@ -0,0 +1,30 @@ +{ + # nixpkgs dependencies + stdenv, cmake, catch2, + + # xo dependencies + xo-cmake, + xo-arena, +# xo-reflectutil, +# xo-indentlog, +} : + +stdenv.mkDerivation (finalattrs: + { + name = "xo-facet"; + + src = ../xo-facet; + + cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake" + "-DENABLE_TESTING=1" + ]; + doCheck = true; + nativeBuildInputs = [ + cmake catch2 xo-cmake + ]; + propagatedBuildInputs = [ + xo-arena +# xo-reflectutil +# xo-indentlog + ]; + }) diff --git a/pkgs/xo-gc.nix b/pkgs/xo-gc.nix new file mode 100644 index 00000000..61db7249 --- /dev/null +++ b/pkgs/xo-gc.nix @@ -0,0 +1,61 @@ +{ + # nixpkgs dependencies + lib, stdenv, cmake, catch2, + doxygen, + + python3Packages, + + sphinx, graphviz, + + # xo dependencies + xo-alloc2, + xo-facet, + xo-randomgen, + xo-subsys, +# xo-reflectutil, +# xo-indentlog, + xo-cmake, + + buildDocs ? false, + doCheck ? true, +} : + +stdenv.mkDerivation (finalattrs: + { + name = "xo-gc"; + + src = ../xo-gc; + + cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"] + ++ lib.optionals buildDocs ["-DXO_ENABLE_DOCS=on"] + ++ lib.optionals doCheck ["-DENABLE_TESTING=1"]; + + inherit buildDocs; + inherit doCheck; + + postBuild = lib.optionalString buildDocs '' + cmake --build . -- docs + ''; + + nativeBuildInputs = [ + cmake catch2 + xo-cmake + xo-randomgen + ] ++ lib.optionals buildDocs [ + doxygen + sphinx + graphviz + python3Packages.sphinx-rtd-theme + python3Packages.breathe + python3Packages.sphinxcontrib-ditaa + python3Packages.sphinxcontrib-plantuml + python3Packages.pillow + ]; + propagatedBuildInputs = [ + xo-alloc2 + xo-facet + xo-subsys +# xo-reflectutil +# xo-indentlog + ]; + }) diff --git a/pkgs/xo-object.nix b/pkgs/xo-object.nix new file mode 100644 index 00000000..7d65efe7 --- /dev/null +++ b/pkgs/xo-object.nix @@ -0,0 +1,49 @@ +{ + # nixpkgs dependencies + lib, stdenv, cmake, catch2, + + # xo dependencies +# xo-reflect, +# xo-webutil, + xo-callback, + xo-unit, + xo-refcnt, + xo-reflectutil, + xo-alloc, + xo-randomgen, + xo-cmake, +# xo-printjson, +# xo-ordinaltree, + xo-indentlog, + doCheck ? true, +} : + +stdenv.mkDerivation (finalattrs: + { + name = "xo-object"; + + src = ../xo-object; + + cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"] + ++ lib.optionals doCheck ["-DENABLE_TESTING=1"]; + + inherit doCheck; + + nativeBuildInputs = [ + cmake catch2 + xo-randomgen + xo-cmake + ]; + propagatedBuildInputs = [ + xo-callback + xo-unit + xo-refcnt +# xo-reflect +# xo-webutil +# xo-printjson +# xo-ordinaltree + xo-alloc + xo-reflectutil + xo-indentlog + ]; + }) diff --git a/pkgs/xo-object2.nix b/pkgs/xo-object2.nix new file mode 100644 index 00000000..93de3b0c --- /dev/null +++ b/pkgs/xo-object2.nix @@ -0,0 +1,48 @@ +{ + # nixpkgs dependencies + lib, stdenv, cmake, catch2, + + # xo dependencies +# xo-webutil, +# xo-callback, +# xo-unit, +# xo-refcnt, +# xo-reflectutil, +# xo-alloc, + # xo-randomgen, + xo-reflect, + xo-gc, + xo-printable2, + xo-facet, + xo-subsys, + xo-cmake, +# xo-printjson, +# xo-ordinaltree, +# xo-indentlog, + doCheck ? true, +} : + +stdenv.mkDerivation (finalattrs: + { + name = "xo-object2"; + + src = ../xo-object2; + + cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"] + ++ lib.optionals doCheck ["-DENABLE_TESTING=1"]; + + inherit doCheck; + + nativeBuildInputs = [ + cmake catch2 +# xo-randomgen + xo-cmake + ]; + propagatedBuildInputs = [ + xo-reflect + xo-gc + xo-printable2 + xo-subsys + xo-facet + ]; + }) diff --git a/pkgs/xo-printable2.nix b/pkgs/xo-printable2.nix new file mode 100644 index 00000000..a584fd5e --- /dev/null +++ b/pkgs/xo-printable2.nix @@ -0,0 +1,58 @@ +{ + # nixpkgs dependencies + lib, stdenv, cmake, catch2, + doxygen, + + python3Packages, + + sphinx, graphviz, + + # xo dependencies + xo-facet, +# xo-randomgen, +# xo-reflectutil, +# xo-indentlog, + xo-cmake, + +# buildDocs ? false, +# doCheck ? true, +} : + +stdenv.mkDerivation (finalattrs: + { + name = "xo-printable2"; + + src = ../xo-printable2; + + cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"] +# ++ lib.optionals buildDocs ["-DXO_ENABLE_DOCS=on"] +# ++ ["-DENABLE_TESTING=1"]; + ; + +# inherit buildDocs; +# inherit doCheck; + +# postBuild = lib.optionalString buildDocs '' +# cmake --build . -- docs +# ''; + + nativeBuildInputs = [ + cmake catch2 + xo-cmake +# xo-randomgen +# ] ++ lib.optionals buildDocs [ +# doxygen +# sphinx +# graphviz +# python3Packages.sphinx-rtd-theme +# python3Packages.breathe +# python3Packages.sphinxcontrib-ditaa +# python3Packages.sphinxcontrib-plantuml +# python3Packages.pillow + ]; + propagatedBuildInputs = [ + xo-facet +# xo-reflectutil +# xo-indentlog + ]; + }) diff --git a/pkgs/xo-refcnt.nix b/pkgs/xo-refcnt.nix index 1bbeb924..33c17d35 100644 --- a/pkgs/xo-refcnt.nix +++ b/pkgs/xo-refcnt.nix @@ -3,7 +3,11 @@ stdenv, cmake, catch2, # xo dependencies - xo-cmake, xo-indentlog + xo-reflectutil, + xo-indentlog, + xo-cmake, + + doCheck ? true, } : stdenv.mkDerivation (finalattrs: @@ -14,7 +18,15 @@ stdenv.mkDerivation (finalattrs: src = ../xo-refcnt; cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"]; - doCheck = true; - propagatedBuildInputs = [ xo-indentlog ]; - nativeBuildInputs = [ cmake catch2 xo-cmake ]; + + inherit doCheck; + + propagatedBuildInputs = [ + xo-reflectutil + xo-indentlog + ]; + nativeBuildInputs = [ + cmake + catch2 + xo-cmake ]; }) diff --git a/xo-alloc/cmake/xo_allocConfig.cmake.in b/xo-alloc/cmake/xo_allocConfig.cmake.in index f5afd837..e627df64 100644 --- a/xo-alloc/cmake/xo_allocConfig.cmake.in +++ b/xo-alloc/cmake/xo_allocConfig.cmake.in @@ -1,7 +1,11 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) +find_dependency(xo_allocutil) +find_dependency(xo_unit) find_dependency(indentlog) -#find_dependency(xo_flatstring) +find_dependency(reflect) +find_dependency(callback) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-alloc/include/xo/alloc/Blob.hpp b/xo-alloc/include/xo/alloc/Blob.hpp index 9e3ae44a..205e984b 100644 --- a/xo-alloc/include/xo/alloc/Blob.hpp +++ b/xo-alloc/include/xo/alloc/Blob.hpp @@ -6,7 +6,7 @@ #pragma once #include "Object.hpp" -#include "IAlloc.hpp" +#include namespace xo { /** Use to allocate opaque binary data, diff --git a/xo-alloc/src/alloc/ArenaAlloc.cpp b/xo-alloc/src/alloc/ArenaAlloc.cpp index d7f794f3..dc80eb4e 100644 --- a/xo-alloc/src/alloc/ArenaAlloc.cpp +++ b/xo-alloc/src/alloc/ArenaAlloc.cpp @@ -390,8 +390,10 @@ namespace xo { /* word size for alignment */ constexpr uint32_t c_bpw = sizeof(std::uintptr_t); + (void)c_bpw; std::uintptr_t free_u64 = reinterpret_cast(free_ptr_); + (void)free_u64; assert(free_u64 % c_bpw == 0ul); diff --git a/xo-alloc/src/alloc/GC.cpp b/xo-alloc/src/alloc/GC.cpp index dd17fd3b..f1c52d1b 100644 --- a/xo-alloc/src/alloc/GC.cpp +++ b/xo-alloc/src/alloc/GC.cpp @@ -551,7 +551,7 @@ namespace xo { case generation_result::nursery: if (is_before_checkpoint(parent)) { log && log(xtag("act", "N1->N0 must mlog")); - + // N1->N0, so must log this->mutation_log_[role2int(role::to_space)]->push_back(MutationLogEntry(parent, lhs)); ++(this->gc_statistics_.n_logged_mutation_); @@ -974,12 +974,14 @@ namespace xo { from_entry.fixup_parent_child_moved(child_to); +#ifndef NDEBUG { // verify fixup was effective IObject * child_from2 = from_entry.child(); assert(child_from2 == child_to); } - +#endif + // P->C', loc(C') in {N1', T'} diff --git a/xo-alloc2/cmake/xo_alloc2Config.cmake.in b/xo-alloc2/cmake/xo_alloc2Config.cmake.in index e0b5e0b0..e226be2e 100644 --- a/xo-alloc2/cmake/xo_alloc2Config.cmake.in +++ b/xo-alloc2/cmake/xo_alloc2Config.cmake.in @@ -2,7 +2,8 @@ include(CMakeFindDependencyMacro) #find_dependency(indentlog) -find_depnedency(xo_arena) +find_dependency(xo_arena) find_dependency(xo_facet) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-alloc2/src/alloc2/IAllocIterator_Any.cpp b/xo-alloc2/src/alloc2/IAllocIterator_Any.cpp index 86c2ba72..4ae6c575 100644 --- a/xo-alloc2/src/alloc2/IAllocIterator_Any.cpp +++ b/xo-alloc2/src/alloc2/IAllocIterator_Any.cpp @@ -5,6 +5,7 @@ #include "alloc/IAllocIterator_Any.hpp" #include +#include namespace xo { namespace mm { diff --git a/xo-alloc2/src/alloc2/IAllocator_Any.cpp b/xo-alloc2/src/alloc2/IAllocator_Any.cpp index 864ddf15..9af28ca5 100644 --- a/xo-alloc2/src/alloc2/IAllocator_Any.cpp +++ b/xo-alloc2/src/alloc2/IAllocator_Any.cpp @@ -5,6 +5,7 @@ #include "alloc/IAllocator_Any.hpp" #include +#include namespace xo { using xo::facet::DVariantPlaceholder; diff --git a/xo-alloc2/src/alloc2/IResourceVisitor_Any.cpp b/xo-alloc2/src/alloc2/IResourceVisitor_Any.cpp index 2d9fb12a..0c9cf0e7 100644 --- a/xo-alloc2/src/alloc2/IResourceVisitor_Any.cpp +++ b/xo-alloc2/src/alloc2/IResourceVisitor_Any.cpp @@ -4,6 +4,7 @@ #include "visitor/IResourceVisitor_Any.hpp" #include +#include namespace xo { namespace mm { diff --git a/xo-allocutil/cmake/xo_allocutilConfig.cmake.in b/xo-allocutil/cmake/xo_allocutilConfig.cmake.in index 00b2de9b..a1cc0fc9 100644 --- a/xo-allocutil/cmake/xo_allocutilConfig.cmake.in +++ b/xo-allocutil/cmake/xo_allocutilConfig.cmake.in @@ -3,4 +3,5 @@ include(CMakeFindDependencyMacro) #find_dependency(randomgen) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-arena/CMakeLists.txt b/xo-arena/CMakeLists.txt index 36fbfcb0..0b6c7020 100644 --- a/xo-arena/CMakeLists.txt +++ b/xo-arena/CMakeLists.txt @@ -28,4 +28,9 @@ add_subdirectory(utest) xo_export_cmake_config(${PROJECT_NAME} ${PROJECT_VERSION} ${PROJECT_NAME}Targets) +# ---------------------------------------------------------------- +# docs targets depend on all the other library/utest targets +# +add_subdirectory(docs) + # end CMakeLists.txt diff --git a/xo-arena/cmake/xo_arenaConfig.cmake.in b/xo-arena/cmake/xo_arenaConfig.cmake.in index 1700fb8a..20b8f877 100644 --- a/xo-arena/cmake/xo_arenaConfig.cmake.in +++ b/xo-arena/cmake/xo_arenaConfig.cmake.in @@ -10,4 +10,5 @@ find_dependency(xo_reflectutil) find_dependency(indentlog) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-arena/docs/AllocInfo-reference.rst b/xo-arena/docs/AllocInfo-reference.rst new file mode 100644 index 00000000..05da0eac --- /dev/null +++ b/xo-arena/docs/AllocInfo-reference.rst @@ -0,0 +1,26 @@ +.. _AllocInfo-reference: + +AllocInfo Reference +=================== + +Describes a single allocation. +Requires allocator configured to store per-allocation headers + +Context +------- + +.. ditaa:: + :--scale: 0.99 + + +-----------------------------------------------------+ + | DArena | + | DArenaIterator | + +-----------------------------------------------------+ + | ArenaConfig | + +--------------+------------------------+-------------+ + | | AllocInfo cBLU| | + | +------------------------+ | + | AllocError | AllocHeaderConfig | cmpresult | + | +------------------------+ | + | | AllocHeader | | + +--------------+------------------------+-------------+ diff --git a/xo-arena/docs/cmpresult-reference.rst b/xo-arena/docs/cmpresult-reference.rst index 46998543..ecaa4ba2 100644 --- a/xo-arena/docs/cmpresult-reference.rst +++ b/xo-arena/docs/cmpresult-reference.rst @@ -37,7 +37,7 @@ Class Constructors ------------ -.. doxgyengroup:: mm-cmpresult-ctors +.. doxygengroup:: mm-cmpresult-ctors Methods ------- diff --git a/xo-arena/include/xo/arena/cmpresult.hpp b/xo-arena/include/xo/arena/cmpresult.hpp index 0a9a9110..bf09af57 100644 --- a/xo-arena/include/xo/arena/cmpresult.hpp +++ b/xo-arena/include/xo/arena/cmpresult.hpp @@ -24,7 +24,7 @@ namespace xo { return os; } - /** Result of a generic comparison operation + /** @brief result of a generic comparison operation **/ struct cmpresult { /** @defgroup mm-cmpresult-ctors cmpresult ctors **/ diff --git a/xo-arena/include/xo/arena/hashmap/DArenaHashMapIterator.hpp b/xo-arena/include/xo/arena/hashmap/DArenaHashMapIterator.hpp index ea87c0ce..77c450d7 100644 --- a/xo-arena/include/xo/arena/hashmap/DArenaHashMapIterator.hpp +++ b/xo-arena/include/xo/arena/hashmap/DArenaHashMapIterator.hpp @@ -5,7 +5,7 @@ #pragma once -#include "hashmap/DArenaHashMapUtil.hpp" +#include namespace xo { namespace map { diff --git a/xo-arena/include/xo/arena/hashmap/HashMapStore.hpp b/xo-arena/include/xo/arena/hashmap/HashMapStore.hpp index 6393bb02..23b9d31f 100644 --- a/xo-arena/include/xo/arena/hashmap/HashMapStore.hpp +++ b/xo-arena/include/xo/arena/hashmap/HashMapStore.hpp @@ -5,8 +5,8 @@ #pragma once -#include "hashmap/DArenaHashMapUtil.hpp" -#include "hashmap/ControlGroup.hpp" +#include +#include namespace xo { namespace map { @@ -52,7 +52,7 @@ namespace xo { float load_factor() const noexcept { return size_ / static_cast(n_slot_); } void visit_pools(const MemorySizeVisitor & visitor) const { - // complexity here in service of HashMapStore-specific value for MemorySizeInfo.used + // complexity here in service of HashMapStore-specific value for MemorySizeInfo.used MemorySizeInfo ctl_info; MemorySizeInfo slot_info; diff --git a/xo-callback/cmake/callbackConfig.cmake.in b/xo-callback/cmake/callbackConfig.cmake.in index f7176f38..d6c98d89 100644 --- a/xo-callback/cmake/callbackConfig.cmake.in +++ b/xo-callback/cmake/callbackConfig.cmake.in @@ -3,4 +3,5 @@ include(CMakeFindDependencyMacro) find_dependency(refcnt) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-cmake/CMakeLists.txt b/xo-cmake/CMakeLists.txt index 14226afa..51f2a45a 100644 --- a/xo-cmake/CMakeLists.txt +++ b/xo-cmake/CMakeLists.txt @@ -62,6 +62,7 @@ install( "share/xo-macros/gen-ccov.in" "share/xo-macros/Doxyfile.in" "share/xo-macros/xo-bootstrap-macros.cmake" + "share/xo-macros/xo-reconfigure.in" PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE DESTINATION ${CMAKE_INSTALL_DATADIR}/xo-macros ) diff --git a/xo-cmake/cmake/xo_macros/xo_cxx.cmake b/xo-cmake/cmake/xo_macros/xo_cxx.cmake index 38d01df3..7966559a 100644 --- a/xo-cmake/cmake/xo_macros/xo_cxx.cmake +++ b/xo-cmake/cmake/xo_macros/xo_cxx.cmake @@ -1227,6 +1227,17 @@ macro(xo_export_cmake_config projectname projectversion projecttargets) PERMISSIONS OWNER_READ GROUP_READ WORLD_READ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/cmake/${projectname} ) + # generate Share file that recreates share_${projectname} in consuming projects + file(WRITE "${PROJECT_BINARY_DIR}/${projectname}Share.cmake" + "if(NOT TARGET share_${projectname})\n" + " add_custom_target(share_${projectname})\n" + " set_property(TARGET share_${projectname} PROPERTY path\n" + " \"\${CMAKE_CURRENT_LIST_DIR}/../../../share/${projectname}\")\n" + "endif()\n") + install( + FILES "${PROJECT_BINARY_DIR}/${projectname}Share.cmake" + PERMISSIONS OWNER_READ GROUP_READ WORLD_READ + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/cmake/${projectname}) endmacro() # ---------------------------------------------------------------- @@ -1748,6 +1759,18 @@ function(xo_add_genfacetimpl) if (NOT DEFINED GF_FACET_PKG) message(FATAL_ERROR "xo_add_genfacetimpl: FACET_PKG or FACET_DIR required") else() + # share_${GF_FACET_PKG} is a cmake target created by xo_add_shared_library4() + # or similar when a facet-provider (e.g. xo-gc) builds from source in the same + # cmake context (XO_SUBMODULE_BUILD=True). + # + # It is NOT exported in the installed cmake + # config, so it won't exist when the facet package is consumed as an installed + # dependency (e.g. in a standalone nix build). + # + if(NOT TARGET share_${GF_FACET_PKG}) + message(STATUS "xo_add_genfacetimpl: share_${GF_FACET_PKG} not available; skipping ${GF_TARGET}") + return() + endif() get_target_property(_facet_dir share_${GF_FACET_PKG} path) set(GF_FACET_DIR ${_facet_dir}) endif() diff --git a/xo-cmake/docs/history/2026/cmake-facet-export.rst b/xo-cmake/docs/history/2026/cmake-facet-export.rst new file mode 100644 index 00000000..f2de60d6 --- /dev/null +++ b/xo-cmake/docs/history/2026/cmake-facet-export.rst @@ -0,0 +1,81 @@ +cmake-facet-export +================== + +:date: 2026-02 + +Background +---------- + +``xo_add_genfacetimpl()`` in ``xo_cxx.cmake`` uses ``genfacet`` to regenerate facet +implementation boilerplate from ``.json5`` IDL files. When ``FACET_PKG`` is specified +(e.g. ``FACET_PKG xo_gc``), the macro resolves the IDL directory via a cmake custom target:: + + get_target_property(_facet_dir share_${GF_FACET_PKG} path) + +``share_${PROJECT_NAME}`` is a custom target created by ``xo_cxx_toplevel_options2()`` for +every xo satellite, with its ``path`` property set to ``${PROJECT_SOURCE_DIR}`` (the package +source root). Subdirectory ``idl/`` within that root holds the facet IDL files. + +Problem +------- + +Custom cmake targets are not exportable through the standard ``install(TARGETS ... EXPORT ...)`` +mechanism. As a result, ``share_xo_gc`` and similar targets do not exist when a satellite is +consumed as an installed dependency (e.g. in a standalone nix build or any build that uses +``find_package(xo_gc)`` rather than building xo-gc in the same cmake invocation). + +This caused ``nix-build -A xo.object2`` to fail at cmake configure time with:: + + CMake Error: get_target_property() called with non-existent target "share_xo_gc". + +xo-gc was unaffected because it uses only ``xo_add_genfacet()`` (which does not reference +``share_*`` targets), while xo-object2 uses ``xo_add_genfacetimpl()`` with ``FACET_PKG``. + +Immediate fix (2026-02) +----------------------- + +A guard was added to ``xo_add_genfacetimpl()`` to skip target creation gracefully when the +``share_*`` target is absent, since all callers annotate these as +``# note: manual target; generated code committed to git``:: + + if(NOT TARGET share_${GF_FACET_PKG}) + message(STATUS "xo_add_genfacetimpl: share_${GF_FACET_PKG} not available; skipping") + return() + endif() + +This unblocked the nix build while leaving a forward path to full support. + +Long-term design +---------------- + +To make ``xo_add_genfacetimpl()`` fully functional in standalone builds: + +1. **Export ``share_`` targets universally** — ``xo_export_cmake_config()`` generates and + installs a ``${PROJECT_NAME}Share.cmake`` file for every satellite. This file recreates + ``share_${PROJECT_NAME}`` pointing to the installed data root:: + + if(NOT TARGET share_xo_gc) + add_custom_target(share_xo_gc) + set_property(TARGET share_xo_gc PROPERTY path + "${CMAKE_CURRENT_LIST_DIR}/../../../share/xo_gc") + endif() + + Doing this universally (not only for facet-providers) keeps ``*Config.cmake.in`` templates + consistent and provides future-proofing for other attributes that may be added to + ``share_`` targets. + +2. **Include the Share file** — every ``cmake/${pkg}Config.cmake.in`` adds:: + + include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") + +3. **Install IDL files** — packages whose IDL is consumed by ``xo_add_genfacetimpl()`` + install their ``idl/`` tree:: + + install(DIRECTORY idl/ + DESTINATION share/${PROJECT_NAME}/idl + FILES_MATCHING PATTERN "*.json5") + + This maps to the same relative path that ``genfacet`` would find under the source root. + +The skip-if-absent guard is retained as graceful degradation for older installed packages +that predate this change. diff --git a/xo-cmake/share/xo-macros/xo-reconfigure.in b/xo-cmake/share/xo-macros/xo-reconfigure.in index 41d641c6..d3e55e55 100644 --- a/xo-cmake/share/xo-macros/xo-reconfigure.in +++ b/xo-cmake/share/xo-macros/xo-reconfigure.in @@ -23,7 +23,9 @@ while [[ $# -gt 0 ]]; do *) echo "error: xo-reconfigure: unexpected argument [$1]" echo "usage: xo-reconfigure" - echo " xo-reconfigure [-n] -- CMAKE_ARGS" + echo " xo-reconfigure [-n|--dry-run]" + echo " [--enable-testing|--disable-testing]" + echo " -- CMAKE_ARGS" exit 1 esac diff --git a/xo-distribution/cmake/xo_distributionConfig.cmake.in b/xo-distribution/cmake/xo_distributionConfig.cmake.in index d906d196..dacd949e 100644 --- a/xo-distribution/cmake/xo_distributionConfig.cmake.in +++ b/xo-distribution/cmake/xo_distributionConfig.cmake.in @@ -3,4 +3,5 @@ include(CMakeFindDependencyMacro) find_dependency(refcnt) include("${CMAKE_CURRENT_LIST_DIR}/xo_distributionTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-expression/cmake/xo_expressionConfig.cmake.in b/xo-expression/cmake/xo_expressionConfig.cmake.in index 1560b468..3c6d3b16 100644 --- a/xo-expression/cmake/xo_expressionConfig.cmake.in +++ b/xo-expression/cmake/xo_expressionConfig.cmake.in @@ -4,4 +4,5 @@ include(CMakeFindDependencyMacro) find_dependency(reflect) find_dependency(xo_flatstring) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-expression/utest/type_unifier.test.cpp b/xo-expression/utest/type_unifier.test.cpp index e6e411c2..054f4173 100644 --- a/xo-expression/utest/type_unifier.test.cpp +++ b/xo-expression/utest/type_unifier.test.cpp @@ -146,7 +146,11 @@ namespace xo { .expect_unify_ok_ = true, .expect_unify_id_{type_var::from_chars("a")}, .expect_unify_concrete_ = true, +#ifdef __APPLE__ + .expect_concrete_typename_ = "long long", +#else .expect_concrete_typename_ = "long int", +#endif .expect_unify_variable_ = false, }, /* same, but reverse order */ @@ -157,7 +161,11 @@ namespace xo { .expect_unify_ok_ = true, .expect_unify_id_{type_var::from_chars("a")}, .expect_unify_concrete_ = true, +#ifdef __APPLE__ + .expect_concrete_typename_ = "long long", +#else .expect_concrete_typename_ = "long int", +#endif .expect_unify_variable_ = false, }, /* matching concrete types */ diff --git a/xo-expression2/cmake/xo_expression2Config.cmake.in b/xo-expression2/cmake/xo_expression2Config.cmake.in index 15ff18ff..ca2e2ccb 100644 --- a/xo-expression2/cmake/xo_expression2Config.cmake.in +++ b/xo-expression2/cmake/xo_expression2Config.cmake.in @@ -15,4 +15,5 @@ find_dependency(cmake) find_dependency(indentlog) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-expression2/src/expression2/IExpression_Any.cpp b/xo-expression2/src/expression2/IExpression_Any.cpp index 9557e7e7..fe245c76 100644 --- a/xo-expression2/src/expression2/IExpression_Any.cpp +++ b/xo-expression2/src/expression2/IExpression_Any.cpp @@ -4,6 +4,7 @@ #include "detail/IExpression_Any.hpp" #include +#include namespace xo { namespace scm { diff --git a/xo-expression2/src/expression2/ISymbolTable_Any.cpp b/xo-expression2/src/expression2/ISymbolTable_Any.cpp index 95718429..31d324de 100644 --- a/xo-expression2/src/expression2/ISymbolTable_Any.cpp +++ b/xo-expression2/src/expression2/ISymbolTable_Any.cpp @@ -4,6 +4,7 @@ #include "symtab/ISymbolTable_Any.hpp" #include +#include namespace xo { namespace scm { diff --git a/xo-facet/CMakeLists.txt b/xo-facet/CMakeLists.txt index d8ad41a4..ee21aa64 100644 --- a/xo-facet/CMakeLists.txt +++ b/xo-facet/CMakeLists.txt @@ -35,13 +35,24 @@ xo_export_cmake_config(${PROJECT_NAME} ${PROJECT_VERSION} ${PROJECT_NAME}Targets # ---------------------------------------------------------------- -# Install the generator script +# Install the generator script: install( PROGRAMS codegen/genfacet DESTINATION share/xo-facet/codegen COMPONENT codegen ) +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/genfacet-bin +"#!/bin/bash +exec \"${CMAKE_INSTALL_FULL_DATADIR}/xo-facet/codegen/genfacet\" \"\$@\" +") + +install( + PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/genfacet-bin + DESTINATION bin + RENAME genfacet +) + # Install all .j2 template files install( DIRECTORY codegen/ diff --git a/xo-facet/cmake/xo_facetConfig.cmake.in b/xo-facet/cmake/xo_facetConfig.cmake.in index 23483949..d4ded169 100644 --- a/xo-facet/cmake/xo_facetConfig.cmake.in +++ b/xo-facet/cmake/xo_facetConfig.cmake.in @@ -5,4 +5,5 @@ include(CMakeFindDependencyMacro) find_dependency(xo_arena) find_dependency(xo_reflectutil) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-facet/codegen/iface_facet_any.cpp.j2 b/xo-facet/codegen/iface_facet_any.cpp.j2 index 6ad2d07e..0c8d000e 100644 --- a/xo-facet/codegen/iface_facet_any.cpp.j2 +++ b/xo-facet/codegen/iface_facet_any.cpp.j2 @@ -4,6 +4,7 @@ #include "{{impl_hpp_subdir}}/{{iface_facet_any_hpp_fname}}" #include +#include namespace {{facet_ns1}} { namespace {{facet_ns2}} { diff --git a/xo-flatstring/cmake/xo_flatstringConfig.cmake.in b/xo-flatstring/cmake/xo_flatstringConfig.cmake.in index e5ee1778..c6b988e1 100644 --- a/xo-flatstring/cmake/xo_flatstringConfig.cmake.in +++ b/xo-flatstring/cmake/xo_flatstringConfig.cmake.in @@ -14,4 +14,5 @@ include(CMakeFindDependencyMacro) #find_dependency(callback) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-gc/CMakeLists.txt b/xo-gc/CMakeLists.txt index df57b1e3..573e5acc 100644 --- a/xo-gc/CMakeLists.txt +++ b/xo-gc/CMakeLists.txt @@ -35,12 +35,16 @@ xo_add_genfacet_all(xo-gc-genfacet-all) add_subdirectory(src/gc) add_subdirectory(utest) +install(DIRECTORY idl/ + DESTINATION share/${PROJECT_NAME}/idl + FILES_MATCHING PATTERN "*.json5") + xo_export_cmake_config(${PROJECT_NAME} ${PROJECT_VERSION} ${PROJECT_NAME}Targets) # ---------------------------------------------------------------- # docs targets depend on other library/utest/exec targets above, # --> must come after them. # -#add_subdirectory(docs) +add_subdirectory(docs) # end CMakeLists.txt diff --git a/xo-gc/cmake/xo_gcConfig.cmake.in b/xo-gc/cmake/xo_gcConfig.cmake.in index aebd133c..548eb737 100644 --- a/xo-gc/cmake/xo_gcConfig.cmake.in +++ b/xo-gc/cmake/xo_gcConfig.cmake.in @@ -3,7 +3,9 @@ include(CMakeFindDependencyMacro) find_dependency(xo_alloc2) find_dependency(xo_facet) +find_dependency(subsys) find_dependency(indentlog) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-gc/docs/_static/README b/xo-gc/docs/_static/README new file mode 100644 index 00000000..7297d046 --- /dev/null +++ b/xo-gc/docs/_static/README @@ -0,0 +1 @@ +add any static {.html, .js, ..} files for sphinx to pickup here diff --git a/xo-gc/docs/_static/img/favicon.ico b/xo-gc/docs/_static/img/favicon.ico new file mode 100644 index 00000000..4163dd69 Binary files /dev/null and b/xo-gc/docs/_static/img/favicon.ico differ diff --git a/xo-gc/docs/conf.py b/xo-gc/docs/conf.py new file mode 100644 index 00000000..3d57cb07 --- /dev/null +++ b/xo-gc/docs/conf.py @@ -0,0 +1,39 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'xo gc documentation' +copyright = '2026, Roland Conybeare' +author = 'Roland Conybeare' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +#extensions = [] +extensions = [ "breathe", + "sphinx.ext.mathjax", # inline math + "sphinx.ext.autodoc", # generate info from docstrings + "sphinxcontrib.ditaa", # diagrams-through-ascii-art + "sphinxcontrib.plantuml" # text -> uml diagrams + ] + +# note: breathe requires doxygen xml output -> must have GENERATE_XML = YES in Doxyfile.in +# match project name in Doxyfile.in +breathe_default_project = "xodoxxml" + +templates_path = ['_templates'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +pygments_style = 'sphinx' + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +#html_theme = 'alabaster' +html_theme = 'sphinx_rtd_theme' +html_static_path = ['_static'] +html_favicon = '_static/img/favicon.ico' diff --git a/xo-gc/src/gc/CMakeLists.txt b/xo-gc/src/gc/CMakeLists.txt index 44cef925..985592b0 100644 --- a/xo-gc/src/gc/CMakeLists.txt +++ b/xo-gc/src/gc/CMakeLists.txt @@ -21,4 +21,5 @@ xo_add_shared_library4(${SELF_LIB} ${PROJECT_NAME}Targets ${PROJECT_VERSION} 1 $ # note: deps here must also appear in cmake/xo_alloc2Config.cmake.in xo_dependency(${SELF_LIB} xo_alloc2) xo_dependency(${SELF_LIB} xo_facet) +xo_dependency(${SELF_LIB} subsys) xo_dependency(${SELF_LIB} indentlog) diff --git a/xo-gc/src/gc/ICollector_Any.cpp b/xo-gc/src/gc/ICollector_Any.cpp index 99563bf9..301524fe 100644 --- a/xo-gc/src/gc/ICollector_Any.cpp +++ b/xo-gc/src/gc/ICollector_Any.cpp @@ -5,6 +5,7 @@ #include "detail/ICollector_Any.hpp" #include +#include namespace xo { using xo::facet::DVariantPlaceholder; diff --git a/xo-gc/src/gc/IGCObject_Any.cpp b/xo-gc/src/gc/IGCObject_Any.cpp index 778760ad..95c8cc84 100644 --- a/xo-gc/src/gc/IGCObject_Any.cpp +++ b/xo-gc/src/gc/IGCObject_Any.cpp @@ -4,6 +4,7 @@ #include "detail/IGCObject_Any.hpp" #include +#include namespace xo { namespace mm { diff --git a/xo-indentlog/cmake/indentlogConfig.cmake.in b/xo-indentlog/cmake/indentlogConfig.cmake.in index cc57615e..38c9e093 100644 --- a/xo-indentlog/cmake/indentlogConfig.cmake.in +++ b/xo-indentlog/cmake/indentlogConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/indentlogTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-indentlog/utest/CMakeLists.txt b/xo-indentlog/utest/CMakeLists.txt index 5fa2bf1b..b22b4eb8 100644 --- a/xo-indentlog/utest/CMakeLists.txt +++ b/xo-indentlog/utest/CMakeLists.txt @@ -6,12 +6,10 @@ set(SELF_SOURCE_FILES filename.test.cpp code_location.test.cpp function.test.cpp pretty_vector.test.cpp indentlog_utest_main.cpp log_streambuf.test.cpp toppstr.test.cpp cond.test.cpp) -xo_add_utest_executable(${SELF_EXECUTABLE_NAME} ${SELF_SOURCE_FILES}) - -# ---------------------------------------------------------------- -# 3rd party dependency: catch2 - -xo_self_dependency(${SELF_EXECUTABLE_NAME} indentlog) -xo_external_target_dependency(${SELF_EXECUTABLE_NAME} Catch2 Catch2::Catch2) +if (ENABLE_TESTING) + xo_add_utest_executable(${SELF_EXECUTABLE_NAME} ${SELF_SOURCE_FILES}) + xo_self_dependency(${SELF_EXECUTABLE_NAME} indentlog) + xo_external_target_dependency(${SELF_EXECUTABLE_NAME} Catch2 Catch2::Catch2) +endif() # end CMakeLists.txt diff --git a/xo-indentlog/utest/log_streambuf.test.cpp b/xo-indentlog/utest/log_streambuf.test.cpp index fc3968be..1e38a01e 100644 --- a/xo-indentlog/utest/log_streambuf.test.cpp +++ b/xo-indentlog/utest/log_streambuf.test.cpp @@ -77,7 +77,7 @@ namespace ut { //REQUIRE(sbuf.lo() == sbuf.pbase()); - auto expected = string_view("empty log_streambuf :sbuf.lo 0 :sbuf.hi 0 :sbuf.color_escape_chars 0"); + auto expected = string_view("empty log_streambuf :sbuf.lo 0x0 :sbuf.hi 0x0 :sbuf.color_escape_chars 0"); REQUIRE(string_view(sbuf) == expected); diff --git a/xo-interpreter/cmake/xo_interpreterConfig.cmake.in b/xo-interpreter/cmake/xo_interpreterConfig.cmake.in index 1cf48ccd..a1dba569 100644 --- a/xo-interpreter/cmake/xo_interpreterConfig.cmake.in +++ b/xo-interpreter/cmake/xo_interpreterConfig.cmake.in @@ -4,4 +4,5 @@ include(CMakeFindDependencyMacro) find_dependency(xo_alloc) #find_dependency(xo_flatstring) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-interpreter2/cmake/xo_interpreter2Config.cmake.in b/xo-interpreter2/cmake/xo_interpreter2Config.cmake.in index bea8e9cc..3310d075 100644 --- a/xo-interpreter2/cmake/xo_interpreter2Config.cmake.in +++ b/xo-interpreter2/cmake/xo_interpreter2Config.cmake.in @@ -10,4 +10,5 @@ find_dependency(xo_expression2) find_dependency(xo_gc) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-interpreter2/include/xo/interpreter2/VirtualSchematikaMachine.hpp b/xo-interpreter2/include/xo/interpreter2/VirtualSchematikaMachine.hpp index 75fb968f..0df50ced 100644 --- a/xo-interpreter2/include/xo/interpreter2/VirtualSchematikaMachine.hpp +++ b/xo-interpreter2/include/xo/interpreter2/VirtualSchematikaMachine.hpp @@ -15,6 +15,7 @@ #include #include #include +#include namespace xo { namespace scm { @@ -91,7 +92,7 @@ namespace xo { /** allocator for runtime errors **/ obj error_allocator() const noexcept; - /** true iff parser is at top-level -> does not contain + /** true iff parser is at top-level -> does not contain * state for a incomplete/partial expression **/ bool is_at_toplevel() const noexcept; diff --git a/xo-jit/cmake/xo_jitConfig.cmake.in b/xo-jit/cmake/xo_jitConfig.cmake.in index 26d2315a..a9203adb 100644 --- a/xo-jit/cmake/xo_jitConfig.cmake.in +++ b/xo-jit/cmake/xo_jitConfig.cmake.in @@ -3,4 +3,5 @@ include(CMakeFindDependencyMacro) find_dependency(xo_expression) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-kalmanfilter/cmake/xo_kalmanfilterConfig.cmake.in b/xo-kalmanfilter/cmake/xo_kalmanfilterConfig.cmake.in index 950e70c0..9744c624 100644 --- a/xo-kalmanfilter/cmake/xo_kalmanfilterConfig.cmake.in +++ b/xo-kalmanfilter/cmake/xo_kalmanfilterConfig.cmake.in @@ -14,4 +14,5 @@ find_dependency(Eigen3) #find_dependency(callback) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-numeric/src/numeric/INumeric_Any.cpp b/xo-numeric/src/numeric/INumeric_Any.cpp index 842ae275..08d27cd0 100644 --- a/xo-numeric/src/numeric/INumeric_Any.cpp +++ b/xo-numeric/src/numeric/INumeric_Any.cpp @@ -4,6 +4,7 @@ #include "detail/INumeric_Any.hpp" #include +#include namespace xo { namespace scm { diff --git a/xo-object/cmake/xo_objectConfig.cmake.in b/xo-object/cmake/xo_objectConfig.cmake.in index 32e5b030..df79b605 100644 --- a/xo-object/cmake/xo_objectConfig.cmake.in +++ b/xo-object/cmake/xo_objectConfig.cmake.in @@ -2,7 +2,11 @@ include(CMakeFindDependencyMacro) # reminder: deps here must also appear in xo-object/src/object/CMakeLists.txt -find_dependency(xo_alloc) +find_dependency(xo_reflectutil) +find_dependency(xo_unit) +find_dependency(callback) +#find_dependency(xo_alloc) #find_dependency(xo_flatstring) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-object/src/object/Boolean.cpp b/xo-object/src/object/Boolean.cpp index 20d874b0..424da920 100644 --- a/xo-object/src/object/Boolean.cpp +++ b/xo-object/src/object/Boolean.cpp @@ -4,8 +4,8 @@ */ #include "Boolean.hpp" -#include "TaggedPtr.hpp" -#include "xo/reflect/Reflect.hpp" +#include +#include #include #include #include diff --git a/xo-object/src/object/ObjectConverter.cpp b/xo-object/src/object/ObjectConverter.cpp index a7d0ed4d..5ad36cb5 100644 --- a/xo-object/src/object/ObjectConverter.cpp +++ b/xo-object/src/object/ObjectConverter.cpp @@ -8,8 +8,8 @@ #include "Float.hpp" #include "Boolean.hpp" #include "String.hpp" -#include "TaggedPtr.hpp" -#include "xo/alloc/Blob.hpp" +#include +#include namespace xo { using xo::reflect::Reflect; @@ -145,6 +145,8 @@ namespace xo { // still don't have good solver for this yet assert(false); + + return TaggedPtr::universal_null(); } } diff --git a/xo-object/src/object/String.cpp b/xo-object/src/object/String.cpp index b164c14a..4a457a36 100644 --- a/xo-object/src/object/String.cpp +++ b/xo-object/src/object/String.cpp @@ -5,10 +5,12 @@ #include "String.hpp" #include "GC.hpp" -#include "TaggedPtr.hpp" -#include "xo/reflect/Reflect.hpp" -#include "xo/indentlog/print/quoted.hpp" -#include +#include +#include +#include +#ifdef __linux__ +# include +#endif #include #include #include diff --git a/xo-object2/CMakeLists.txt b/xo-object2/CMakeLists.txt index 4b0962de..af08b267 100644 --- a/xo-object2/CMakeLists.txt +++ b/xo-object2/CMakeLists.txt @@ -193,6 +193,10 @@ xo_add_genfacet_all(xo-object2-genfacet-all) add_subdirectory(src/object2) add_subdirectory(utest) +install(DIRECTORY idl/ + DESTINATION share/${PROJECT_NAME}/idl + FILES_MATCHING PATTERN "*.json5") + xo_export_cmake_config(${PROJECT_NAME} ${PROJECT_VERSION} ${PROJECT_NAME}Targets) # ---------------------------------------------------------------- diff --git a/xo-object2/cmake/xo_object2Config.cmake.in b/xo-object2/cmake/xo_object2Config.cmake.in index 6773adb7..22772095 100644 --- a/xo-object2/cmake/xo_object2Config.cmake.in +++ b/xo-object2/cmake/xo_object2Config.cmake.in @@ -7,4 +7,5 @@ find_dependency(xo_printable2) find_dependency(subsys) find_dependency(indentlog) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-object2/src/object2/ISequence_Any.cpp b/xo-object2/src/object2/ISequence_Any.cpp index 372571f7..77da7d31 100644 --- a/xo-object2/src/object2/ISequence_Any.cpp +++ b/xo-object2/src/object2/ISequence_Any.cpp @@ -3,6 +3,7 @@ **/ #include "sequence/ISequence_Any.hpp" +#include #include namespace xo { diff --git a/xo-ordinaltree/cmake/xo_ordinaltreeConfig.cmake.in b/xo-ordinaltree/cmake/xo_ordinaltreeConfig.cmake.in index 9884d371..594156f1 100644 --- a/xo-ordinaltree/cmake/xo_ordinaltreeConfig.cmake.in +++ b/xo-ordinaltree/cmake/xo_ordinaltreeConfig.cmake.in @@ -4,4 +4,5 @@ include(CMakeFindDependencyMacro) find_dependency(randomgen) find_dependency(xo_allocutil) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-printable2/CMakeLists.txt b/xo-printable2/CMakeLists.txt index 7d3990be..602fce5e 100644 --- a/xo-printable2/CMakeLists.txt +++ b/xo-printable2/CMakeLists.txt @@ -31,6 +31,10 @@ xo_add_genfacet( add_subdirectory(src/printable2) #add_subdirectory(utest) +install(DIRECTORY idl/ + DESTINATION share/${PROJECT_NAME}/idl + FILES_MATCHING PATTERN "*.json5") + xo_export_cmake_config(${PROJECT_NAME} ${PROJECT_VERSION} ${PROJECT_NAME}Targets) # ---------------------------------------------------------------- diff --git a/xo-printable2/cmake/xo_printable2Config.cmake.in b/xo-printable2/cmake/xo_printable2Config.cmake.in index 985fc324..3bcd63df 100644 --- a/xo-printable2/cmake/xo_printable2Config.cmake.in +++ b/xo-printable2/cmake/xo_printable2Config.cmake.in @@ -4,4 +4,5 @@ include(CMakeFindDependencyMacro) find_dependency(indentlog) find_dependency(xo_facet) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-printable2/src/printable2/IPrintable_Any.cpp b/xo-printable2/src/printable2/IPrintable_Any.cpp index 8ff043f1..46b0bddc 100644 --- a/xo-printable2/src/printable2/IPrintable_Any.cpp +++ b/xo-printable2/src/printable2/IPrintable_Any.cpp @@ -4,6 +4,7 @@ #include "detail/IPrintable_Any.hpp" #include +#include namespace xo { namespace print { @@ -38,4 +39,4 @@ IPrintable_Any::_valid } /*namespace print*/ } /*namespace xo*/ -/* end IPrintable_Any.cpp */ \ No newline at end of file +/* end IPrintable_Any.cpp */ diff --git a/xo-printjson/cmake/printjsonConfig.cmake.in b/xo-printjson/cmake/printjsonConfig.cmake.in index 9417e239..82e349a8 100644 --- a/xo-printjson/cmake/printjsonConfig.cmake.in +++ b/xo-printjson/cmake/printjsonConfig.cmake.in @@ -4,4 +4,5 @@ include(CMakeFindDependencyMacro) find_dependency(reflect) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-procedure2/cmake/xo_procedure2Config.cmake.in b/xo-procedure2/cmake/xo_procedure2Config.cmake.in index 867a3535..fa6ee3cd 100644 --- a/xo-procedure2/cmake/xo_procedure2Config.cmake.in +++ b/xo-procedure2/cmake/xo_procedure2Config.cmake.in @@ -11,4 +11,5 @@ find_dependency(xo_gc) find_dependency(subsys) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-procedure2/src/procedure2/IProcedure_Any.cpp b/xo-procedure2/src/procedure2/IProcedure_Any.cpp index dcdf9eeb..8ff611c7 100644 --- a/xo-procedure2/src/procedure2/IProcedure_Any.cpp +++ b/xo-procedure2/src/procedure2/IProcedure_Any.cpp @@ -4,6 +4,7 @@ #include "detail/IProcedure_Any.hpp" #include +#include namespace xo { namespace scm { diff --git a/xo-procedure2/src/procedure2/IRuntimeContext_Any.cpp b/xo-procedure2/src/procedure2/IRuntimeContext_Any.cpp index 1ea5859a..195bd135 100644 --- a/xo-procedure2/src/procedure2/IRuntimeContext_Any.cpp +++ b/xo-procedure2/src/procedure2/IRuntimeContext_Any.cpp @@ -4,6 +4,7 @@ #include "detail/IRuntimeContext_Any.hpp" #include +#include namespace xo { namespace scm { diff --git a/xo-process/cmake/processConfig.cmake.in b/xo-process/cmake/processConfig.cmake.in index dc6207c5..c8ec3a92 100644 --- a/xo-process/cmake/processConfig.cmake.in +++ b/xo-process/cmake/processConfig.cmake.in @@ -10,4 +10,5 @@ find_dependency(reactor) find_dependency(printjson) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pydistribution/cmake/xo_pydistributionConfig.cmake.in b/xo-pydistribution/cmake/xo_pydistributionConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-pydistribution/cmake/xo_pydistributionConfig.cmake.in +++ b/xo-pydistribution/cmake/xo_pydistributionConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pyexpression/cmake/xo_pyexpressionConfig.cmake.in b/xo-pyexpression/cmake/xo_pyexpressionConfig.cmake.in index dc1d5e3d..0d02261b 100644 --- a/xo-pyexpression/cmake/xo_pyexpressionConfig.cmake.in +++ b/xo-pyexpression/cmake/xo_pyexpressionConfig.cmake.in @@ -4,4 +4,5 @@ include(CMakeFindDependencyMacro) find_dependency(xo_expression) find_dependency(xo_pyreflect) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pyjit/cmake/xo_pyjitConfig.cmake.in b/xo-pyjit/cmake/xo_pyjitConfig.cmake.in index 5d7de08a..8ffcf9dc 100644 --- a/xo-pyjit/cmake/xo_pyjitConfig.cmake.in +++ b/xo-pyjit/cmake/xo_pyjitConfig.cmake.in @@ -4,4 +4,5 @@ include(CMakeFindDependencyMacro) find_dependency(xo_jit) find_dependency(xo_pyexpression) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pykalmanfilter/cmake/xo_pykalmanfilterConfig.cmake.in b/xo-pykalmanfilter/cmake/xo_pykalmanfilterConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-pykalmanfilter/cmake/xo_pykalmanfilterConfig.cmake.in +++ b/xo-pykalmanfilter/cmake/xo_pykalmanfilterConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pyprintjson/cmake/xo_pyprintjsonConfig.cmake.in b/xo-pyprintjson/cmake/xo_pyprintjsonConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-pyprintjson/cmake/xo_pyprintjsonConfig.cmake.in +++ b/xo-pyprintjson/cmake/xo_pyprintjsonConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pyprocess/cmake/xo_pyprocessConfig.cmake.in b/xo-pyprocess/cmake/xo_pyprocessConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-pyprocess/cmake/xo_pyprocessConfig.cmake.in +++ b/xo-pyprocess/cmake/xo_pyprocessConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pyreactor/cmake/xo_pyreactorConfig.cmake.in b/xo-pyreactor/cmake/xo_pyreactorConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-pyreactor/cmake/xo_pyreactorConfig.cmake.in +++ b/xo-pyreactor/cmake/xo_pyreactorConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pyreflect/cmake/xo_pyreflectConfig.cmake.in b/xo-pyreflect/cmake/xo_pyreflectConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-pyreflect/cmake/xo_pyreflectConfig.cmake.in +++ b/xo-pyreflect/cmake/xo_pyreflectConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pyrprintjson/cmake/xo_pyprintjsonConfig.cmake.in b/xo-pyrprintjson/cmake/xo_pyprintjsonConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-pyrprintjson/cmake/xo_pyprintjsonConfig.cmake.in +++ b/xo-pyrprintjson/cmake/xo_pyprintjsonConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pysimulator/cmake/xo_pysimulatorConfig.cmake.in b/xo-pysimulator/cmake/xo_pysimulatorConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-pysimulator/cmake/xo_pysimulatorConfig.cmake.in +++ b/xo-pysimulator/cmake/xo_pysimulatorConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pyunit/cmake/xo_pyunitConfig.cmake.in b/xo-pyunit/cmake/xo_pyunitConfig.cmake.in index 18187c96..bf479a08 100644 --- a/xo-pyunit/cmake/xo_pyunitConfig.cmake.in +++ b/xo-pyunit/cmake/xo_pyunitConfig.cmake.in @@ -8,4 +8,5 @@ find_dependency(refcnt) find_dependency(indentlog) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pyutil/cmake/xo_pyutilConfig.cmake.in b/xo-pyutil/cmake/xo_pyutilConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-pyutil/cmake/xo_pyutilConfig.cmake.in +++ b/xo-pyutil/cmake/xo_pyutilConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pywebsock/cmake/xo_pywebsockConfig.cmake.in b/xo-pywebsock/cmake/xo_pywebsockConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-pywebsock/cmake/xo_pywebsockConfig.cmake.in +++ b/xo-pywebsock/cmake/xo_pywebsockConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-pywebutil/cmake/xo_pywebutilConfig.cmake.in b/xo-pywebutil/cmake/xo_pywebutilConfig.cmake.in index 18eaf04d..fd1c4b68 100644 --- a/xo-pywebutil/cmake/xo_pywebutilConfig.cmake.in +++ b/xo-pywebutil/cmake/xo_pywebutilConfig.cmake.in @@ -3,4 +3,5 @@ include(CMakeFindDependencyMacro) find_dependency(xo_pyutil) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-randomgen/cmake/randomgenConfig.cmake.in b/xo-randomgen/cmake/randomgenConfig.cmake.in index e66430b0..d835ad0d 100644 --- a/xo-randomgen/cmake/randomgenConfig.cmake.in +++ b/xo-randomgen/cmake/randomgenConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/randomgenTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-ratio/cmake/xo_ratioConfig.cmake.in b/xo-ratio/cmake/xo_ratioConfig.cmake.in index b7a5a0a2..6f4bfb56 100644 --- a/xo-ratio/cmake/xo_ratioConfig.cmake.in +++ b/xo-ratio/cmake/xo_ratioConfig.cmake.in @@ -14,4 +14,5 @@ find_dependency(xo_flatstring) #find_dependency(callback) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-reactor/cmake/reactorConfig.cmake.in b/xo-reactor/cmake/reactorConfig.cmake.in index 19ea52a2..6079b76a 100644 --- a/xo-reactor/cmake/reactorConfig.cmake.in +++ b/xo-reactor/cmake/reactorConfig.cmake.in @@ -13,4 +13,5 @@ find_dependency(printjson) find_dependency(callback) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-reader/cmake/xo_readerConfig.cmake.in b/xo-reader/cmake/xo_readerConfig.cmake.in index 6eadeb07..94b1811e 100644 --- a/xo-reader/cmake/xo_readerConfig.cmake.in +++ b/xo-reader/cmake/xo_readerConfig.cmake.in @@ -5,4 +5,5 @@ find_dependency(xo_expression) find_dependency(xo_tokenizer) #find_dependency(subsys) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-reader2/cmake/xo_reader2Config.cmake.in b/xo-reader2/cmake/xo_reader2Config.cmake.in index 06d291b4..14dec967 100644 --- a/xo-reader2/cmake/xo_reader2Config.cmake.in +++ b/xo-reader2/cmake/xo_reader2Config.cmake.in @@ -14,4 +14,5 @@ find_dependency(xo_expression2) find_dependency(subsys) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-reader2/src/reader2/ISyntaxStateMachine_Any.cpp b/xo-reader2/src/reader2/ISyntaxStateMachine_Any.cpp index 393fea04..4fa59332 100644 --- a/xo-reader2/src/reader2/ISyntaxStateMachine_Any.cpp +++ b/xo-reader2/src/reader2/ISyntaxStateMachine_Any.cpp @@ -4,6 +4,7 @@ #include "ssm/ISyntaxStateMachine_Any.hpp" #include +#include namespace xo { namespace scm { diff --git a/xo-reader2/utest/SchematikaParser.test.cpp b/xo-reader2/utest/SchematikaParser.test.cpp index 18d1c0ee..274cca2f 100644 --- a/xo-reader2/utest/SchematikaParser.test.cpp +++ b/xo-reader2/utest/SchematikaParser.test.cpp @@ -711,6 +711,7 @@ namespace xo { log && fixture.log_memory_layout(&log); } +#ifdef OBSOLETE TEST_CASE("SchematikaParser-interactive-arith3-bad", "[reader2][SchematikaParser]") { const auto & testname = Catch::getResultCapture().getCurrentTestName(); @@ -781,6 +782,7 @@ namespace xo { log && fixture.log_memory_layout(&log); } +#endif TEST_CASE("SchematikaParser-interactive-cmp", "[reader2][SchematikaParser]") { diff --git a/xo-refcnt/cmake/refcntConfig.cmake.in b/xo-refcnt/cmake/refcntConfig.cmake.in index 5b38fa74..4df193f6 100644 --- a/xo-refcnt/cmake/refcntConfig.cmake.in +++ b/xo-refcnt/cmake/refcntConfig.cmake.in @@ -1,6 +1,8 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) +find_dependency(xo_reflectutil) find_dependency(indentlog) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-reflect/cmake/reflectConfig.cmake.in b/xo-reflect/cmake/reflectConfig.cmake.in index ce449a35..b7c79684 100644 --- a/xo-reflect/cmake/reflectConfig.cmake.in +++ b/xo-reflect/cmake/reflectConfig.cmake.in @@ -5,4 +5,5 @@ find_dependency(refcnt) find_dependency(indentlog) find_dependency(subsys) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-reflectutil/cmake/xo_reflectutilConfig.cmake.in b/xo-reflectutil/cmake/xo_reflectutilConfig.cmake.in index 26df0fc7..b57e2bb5 100644 --- a/xo-reflectutil/cmake/xo_reflectutilConfig.cmake.in +++ b/xo-reflectutil/cmake/xo_reflectutilConfig.cmake.in @@ -9,4 +9,5 @@ include(CMakeFindDependencyMacro) #find_dependency(xo_flatstring) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-simulator/cmake/simulatorConfig.cmake.in b/xo-simulator/cmake/simulatorConfig.cmake.in index 4f721e9f..c6853935 100644 --- a/xo-simulator/cmake/simulatorConfig.cmake.in +++ b/xo-simulator/cmake/simulatorConfig.cmake.in @@ -10,4 +10,5 @@ find_dependency(reactor) #find_dependency(callback) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-statistics/cmake/xo_statisticsConfig.cmake.in b/xo-statistics/cmake/xo_statisticsConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-statistics/cmake/xo_statisticsConfig.cmake.in +++ b/xo-statistics/cmake/xo_statisticsConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-subsys/cmake/subsysConfig.cmake.in b/xo-subsys/cmake/subsysConfig.cmake.in index 9c15f36a..eb9a3b16 100644 --- a/xo-subsys/cmake/subsysConfig.cmake.in +++ b/xo-subsys/cmake/subsysConfig.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-symboltable/cmake/xo_symboltableConfig.cmake.in b/xo-symboltable/cmake/xo_symboltableConfig.cmake.in index 32e5b030..204efa7f 100644 --- a/xo-symboltable/cmake/xo_symboltableConfig.cmake.in +++ b/xo-symboltable/cmake/xo_symboltableConfig.cmake.in @@ -5,4 +5,5 @@ include(CMakeFindDependencyMacro) find_dependency(xo_alloc) #find_dependency(xo_flatstring) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-tokenizer/cmake/xo_tokenizerConfig.cmake.in b/xo-tokenizer/cmake/xo_tokenizerConfig.cmake.in index f13d9e2b..e1b8fe7a 100644 --- a/xo-tokenizer/cmake/xo_tokenizerConfig.cmake.in +++ b/xo-tokenizer/cmake/xo_tokenizerConfig.cmake.in @@ -5,4 +5,5 @@ include(CMakeFindDependencyMacro) find_dependency(indentlog) #find_dependency(subsys) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-tokenizer2/cmake/xo_tokenizer2Config.cmake.in b/xo-tokenizer2/cmake/xo_tokenizer2Config.cmake.in index 13f1dac1..eccd2745 100644 --- a/xo-tokenizer2/cmake/xo_tokenizer2Config.cmake.in +++ b/xo-tokenizer2/cmake/xo_tokenizer2Config.cmake.in @@ -10,4 +10,5 @@ find_dependency(xo_arena) find_dependency(indentlog) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-unit/cmake/xo_unitConfig.cmake.in b/xo-unit/cmake/xo_unitConfig.cmake.in index 849efa07..79865d60 100644 --- a/xo-unit/cmake/xo_unitConfig.cmake.in +++ b/xo-unit/cmake/xo_unitConfig.cmake.in @@ -9,4 +9,5 @@ find_dependency(indentlog) #find_dependency(callback) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-websock/cmake/websockConfig.cmake.in b/xo-websock/cmake/websockConfig.cmake.in index 3e03d576..c926812b 100644 --- a/xo-websock/cmake/websockConfig.cmake.in +++ b/xo-websock/cmake/websockConfig.cmake.in @@ -11,4 +11,5 @@ find_dependency(webutil) find_dependency(Libwebsockets) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@") diff --git a/xo-webutil/cmake/webutilConfig.cmake.in b/xo-webutil/cmake/webutilConfig.cmake.in index 79a9df3d..6867c0da 100644 --- a/xo-webutil/cmake/webutilConfig.cmake.in +++ b/xo-webutil/cmake/webutilConfig.cmake.in @@ -3,4 +3,5 @@ include(CMakeFindDependencyMacro) find_dependency(callback) include("${CMAKE_CURRENT_LIST_DIR}/webutilTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Share.cmake") check_required_components("@PROJECT_NAME@")