]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
cmake: Fix b2 build with postfixed compiler versions 62899/head
authorKefu Chai <tchaikov@gmail.com>
Mon, 21 Apr 2025 11:42:58 +0000 (19:42 +0800)
committerKefu Chai <tchaikov@gmail.com>
Tue, 22 Apr 2025 03:35:34 +0000 (11:35 +0800)
commit98b61ace4bbe1d3d36e0f8e6800c00729c7a56e6
treee091a9e930e86c7d2fb99687248e0306f568ad27
parent09391944c4998f7b2041e4adcfe61484ac7556e2
cmake: Fix b2 build with postfixed compiler versions

Previously, the build process used `bootstrap.sh` to build the b2 tool,
which automatically selected the compiler based on the specified toolset.
This failed when the compiler executable had a version postfix (e.g.,
/usr/bin/clang++-19) without a symlink at the expected name, producing
errors like:

```
A C++11 capable compiler is required for building the B2 engine.
Toolset 'clang' does not appear to support C++11.

> clang++ -x c++ -std=c++11 -pthread  check_clib.cpp check_cxx11.cpp
./tools/build/src/engine/build.sh: 120: clang++: not found
> clang++ -x c++ -std=c++11  check_clib.cpp check_cxx11.cpp
./tools/build/src/engine/build.sh: 120: clang++: not found

** Note, the C++11 capable compiler is _only_ required for building the B2
** engine. The B2 build system allows for using any C++ level and any other
** supported language and resource in your projects.

You can specify the toolset as the argument, i.e.:
    ./build.sh [options] gcc
```

The issue occurred because `bootstrap.sh` hardcodes the compiler name
based on the toolset (e.g., `clang++` for Clang) without supporting
postfixed versions.

This commit replaces the `bootstrap.sh` approach with an explicit build
command using Boost's `build.sh` script. We now:
1. Directly specify the full compiler path from CMake variables
2. Manually configure the build with `--cxx=...` and `--toolset=...`
3. Avoid reliance on symlinks or `bootstrap.sh`'s internal detection

This ensures the B2 engine is always built with the user-specified
compiler, even when installed with version postfixes.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
cmake/modules/BuildBoost.cmake