From a20ba446c3034c53de13d1899f85a7ad1e8b900a Mon Sep 17 00:00:00 2001 From: Martijn Govers Date: Tue, 9 Jun 2026 11:55:41 +0200 Subject: [PATCH 1/4] update ubuntu example setup for quicker start Signed-off-by: Martijn Govers Update docs/advanced_documentation/build-guide.md Signed-off-by: Martijn Govers Co-authored-by: Santiago Figueroa Manrique <22895394+figueroa1395@users.noreply.github.com> Signed-off-by: Martijn Govers Update docs/advanced_documentation/build-guide.md Signed-off-by: Martijn Govers Signed-off-by: Martijn Govers Update docs/advanced_documentation/build-guide.md Signed-off-by: Martijn Govers Signed-off-by: Martijn Govers Signed-off-by: Martijn Govers --- docs/advanced_documentation/build-guide.md | 45 +++++++++------------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/docs/advanced_documentation/build-guide.md b/docs/advanced_documentation/build-guide.md index a026661334..5e770fbdfb 100644 --- a/docs/advanced_documentation/build-guide.md +++ b/docs/advanced_documentation/build-guide.md @@ -30,7 +30,7 @@ In this repository there are three builds: To build the library from source, you need to first prepare the compiler toolchains and the build dependencies. In this section a list of general requirements are given. -After this section there are examples of setup in Linux (Ubuntu 24.04), Windows 11, and macOS (Tahoe). +After this section there are examples of setup in Linux (Ubuntu 26.04), Windows 11, and macOS (Tahoe). ### Architecture Support @@ -230,46 +230,37 @@ Usage: ./build.sh -p [-c] [-e] [-i] [-t] To list the available presets, run `./build.sh -h`. -## Example Setup for Ubuntu 24.04 (in WSL or physical/virtual machine) +## Example Setup for Ubuntu 26.04 (in WSL or physical/virtual machine) -In this section an example is given for setup in Ubuntu 24.04. +In this section an example is given for setup in Ubuntu 26.04. You can use this example in Windows Subsystem for Linux (WSL), or in a physical/virtual machine. -### Ubuntu Software Packages +While you can use `apt`, setup via [Homebrew](https://brew.sh) has proved to be much simpler. +In addition, the recommended way to get the [C++ packages](#c) and `uv` is via [Homebrew](https://brew.sh). -Install the minimum required packages: +### Set-up Homebrew -```shell -sudo apt update && sudo apt -y upgrade -sudo apt install -y build-essential gcc g++ clang-18 make ninja-build pkg-config -``` +Follow the setup guidelines in [Homebrew](https://brew.sh). +For optimal user experience on Linux, also consider installing the +[requirements](https://docs.brew.sh/Homebrew-on-Linux#requirements) as well. -The following packages are optional depending on your use case: +At the time of writing, the set-up is done as follows: ```shell -sudo apt install -y gcovr lcov # For coverage reports -sudo apt install -y gdb # For debugging -sudo apt install -y wget curl zip unzip tar git # General use tools +sudo apt update && sudo apt -y upgrade # make sure you're up to date +sudo apt install build-essential procps curl file git # install the requirements for Homebrew ``` -### C++ Dependencies for CMake - -The recommended way to get the [C++ packages](#c) and `uv` is via [Homebrew](https://brew.sh): - -```shell -brew install boost eigen nlohmann-json msgpack-cxx doctest cmake uv -``` +Then install Homebrew using the setup recommendations in [Homebrew](https://brew.sh). -### Environment variables +### C++ Dependencies + Build Requirements -Append the following lines into the file `${HOME}/.bashrc`. +The recommended way to get the [C++ packages](#c) and `uv` is via [Homebrew](https://brew.sh): ```shell -export CXX=clang++-18 # or g++-14 -export CC=clang-18 # or gcc-14 -export CMAKE_PREFIX_PATH=/home/linuxbrew/.linuxbrew # only needed for CMake builds -export LLVM_COV=llvm-cov-18 # only if you want to use one of the llvm features -export CLANG_TIDY=clang-tidy-18 # only if you want to use one of the clang-tidy presets +brew install \ + gcc llvm gdb gcovr lcov lld cmake ninja \ + boost eigen nlohmann-json msgpack-cxx doctest cmake uv ``` ### Build Python Library from Source From 8dfb72b62cd8f7a0ff84bafd4aa84985c13046f9 Mon Sep 17 00:00:00 2001 From: Martijn Govers Date: Tue, 9 Jun 2026 15:09:25 +0200 Subject: [PATCH 2/4] resolve comments Signed-off-by: Martijn Govers --- docs/advanced_documentation/build-guide.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/advanced_documentation/build-guide.md b/docs/advanced_documentation/build-guide.md index 5e770fbdfb..54f992a17b 100644 --- a/docs/advanced_documentation/build-guide.md +++ b/docs/advanced_documentation/build-guide.md @@ -263,6 +263,13 @@ brew install \ boost eigen nlohmann-json msgpack-cxx doctest cmake uv ``` +Append the following lines into the file `${HOME}/.bashrc` (required for `scikit-build` for the Python installation): + +```shell +export CXX=clang++ # or g++ or g++-15 or ... +export CC=clang # or gcc or gcc-15 or ... +``` + ### Build Python Library from Source Go to the root folder you prefer to save the repositories. From 5f5dcb07c28de6bd7920f1f9cb007b925288790f Mon Sep 17 00:00:00 2001 From: Martijn Govers Date: Wed, 10 Jun 2026 12:26:31 +0200 Subject: [PATCH 3/4] Apply suggestion from @mgovers Signed-off-by: Martijn Govers Signed-off-by: Martijn Govers --- docs/advanced_documentation/build-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/advanced_documentation/build-guide.md b/docs/advanced_documentation/build-guide.md index 54f992a17b..ce66d59d10 100644 --- a/docs/advanced_documentation/build-guide.md +++ b/docs/advanced_documentation/build-guide.md @@ -260,7 +260,7 @@ The recommended way to get the [C++ packages](#c) and `uv` is via [Homebrew](htt ```shell brew install \ gcc llvm gdb gcovr lcov lld cmake ninja \ - boost eigen nlohmann-json msgpack-cxx doctest cmake uv + boost eigen nlohmann-json msgpack-cxx doctest uv ``` Append the following lines into the file `${HOME}/.bashrc` (required for `scikit-build` for the Python installation): From 6f31db4e99c6ef2b55ae24cb015fd7c084e5e814 Mon Sep 17 00:00:00 2001 From: Santiago Figueroa Manrique <22895394+figueroa1395@users.noreply.github.com> Date: Tue, 16 Jun 2026 14:35:04 +0200 Subject: [PATCH 4/4] ubuntu 24.04, gcc (++) 14 Co-authored-by: Santiago Figueroa Manrique <22895394+figueroa1395@users.noreply.github.com> Signed-off-by: Santiago Figueroa Manrique <22895394+figueroa1395@users.noreply.github.com> --- docs/advanced_documentation/build-guide.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/advanced_documentation/build-guide.md b/docs/advanced_documentation/build-guide.md index ce66d59d10..b51d2e4c7b 100644 --- a/docs/advanced_documentation/build-guide.md +++ b/docs/advanced_documentation/build-guide.md @@ -30,7 +30,7 @@ In this repository there are three builds: To build the library from source, you need to first prepare the compiler toolchains and the build dependencies. In this section a list of general requirements are given. -After this section there are examples of setup in Linux (Ubuntu 26.04), Windows 11, and macOS (Tahoe). +After this section there are examples of setup in Linux (Ubuntu 24.04), Windows 11, and macOS (Tahoe). ### Architecture Support @@ -230,9 +230,9 @@ Usage: ./build.sh -p [-c] [-e] [-i] [-t] To list the available presets, run `./build.sh -h`. -## Example Setup for Ubuntu 26.04 (in WSL or physical/virtual machine) +## Example Setup for Ubuntu 24.04 (in WSL or physical/virtual machine) -In this section an example is given for setup in Ubuntu 26.04. +In this section an example is given for setup in Ubuntu 24.04. You can use this example in Windows Subsystem for Linux (WSL), or in a physical/virtual machine. While you can use `apt`, setup via [Homebrew](https://brew.sh) has proved to be much simpler. @@ -248,7 +248,7 @@ At the time of writing, the set-up is done as follows: ```shell sudo apt update && sudo apt -y upgrade # make sure you're up to date -sudo apt install build-essential procps curl file git # install the requirements for Homebrew +sudo apt install build-essential gcc g++ clang-18 procps curl file git # install initial dependencies ``` Then install Homebrew using the setup recommendations in [Homebrew](https://brew.sh). @@ -259,15 +259,17 @@ The recommended way to get the [C++ packages](#c) and `uv` is via [Homebrew](htt ```shell brew install \ - gcc llvm gdb gcovr lcov lld cmake ninja \ + gdb gcovr lcov lld cmake ninja \ boost eigen nlohmann-json msgpack-cxx doctest uv ``` Append the following lines into the file `${HOME}/.bashrc` (required for `scikit-build` for the Python installation): ```shell -export CXX=clang++ # or g++ or g++-15 or ... -export CC=clang # or gcc or gcc-15 or ... +export CXX=clang++ # or g++ or g++-14 or ... +export CC=clang # or gcc or gcc-14 or ... +export LLVM_COV=llvm-cov-18 # only if you want to use one of the llvm features +export CLANG_TIDY=clang-tidy-18 # only if you want to use one of the clang-tidy presets ``` ### Build Python Library from Source @@ -456,7 +458,6 @@ As a quick start, from the root of the repository: ```{note} Test coverage is not supported on macOS. -``` ## Package tests