Modular Boost and big CI update.

* Make the library modular usable.

* Add missing import-search for cconfig/predef checks.

* Add requires-b2 check to top-level build file.

* Bump B2 require to 5.2

* Remove boost-root target refs.

* Change all <source> references to <library>.

* Update copyright dates.

* Fix library global (relative) references.

* Move inter-lib dependencies to a project variable and into the build targets.

* Add Boost.StaticAssert transitive dep module.

* Only test on latest macOS.

* Add Boost.ThrowExceptions transitive dep module.

* Add Boost.Preprocessor transitive dep module.

* Change MacOS Clang std version to 20 from 2a

* Disable ranges on MacOS.
Remove CUDA testing - I just can't get CUDA to install any more.

* Update drone checkouts.

---------

Co-authored-by: Rene Rivera <grafikrobot@gmail.com>
This commit is contained in:
jzmaddock
2025-04-15 10:40:21 +01:00
committed by GitHub
parent 404c7831d9
commit cc87b132f8
7 changed files with 83 additions and 128 deletions

View File

@@ -25,6 +25,9 @@ git submodule update --init libs/detail
git submodule update --init libs/core
git submodule update --init libs/assert
git submodule update --init libs/type_traits
git submodule update --init libs/throw_exception
git submodule update --init libs/static_assert
git submodule update --init libs/preprocessor
cp -r $TRAVIS_BUILD_DIR/* libs/config
./bootstrap.sh
./b2 headers

View File

@@ -38,7 +38,7 @@ jobs:
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
working-directory: ../boost-root
- name: Copy files
run: cp -r $GITHUB_WORKSPACE/* libs/config
@@ -82,7 +82,7 @@ jobs:
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
working-directory: ../boost-root
- name: Copy files
run: cp -r $GITHUB_WORKSPACE/* libs/config
@@ -126,7 +126,7 @@ jobs:
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
working-directory: ../boost-root
- name: Copy files
run: cp -r $GITHUB_WORKSPACE/* libs/config
@@ -170,7 +170,7 @@ jobs:
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
working-directory: ../boost-root
- name: Copy files
run: cp -r $GITHUB_WORKSPACE/* libs/config
@@ -190,43 +190,8 @@ jobs:
- name: Test
run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,2a
working-directory: ../boost-root/libs/config/test
macos_11:
runs-on: macos-11
strategy:
fail-fast: false
matrix:
toolset: [ clang, gcc-11, gcc-10 ]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[linux];[Linux];[LINUX]'
commit-filter-separator: ';'
fail-fast: true
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
working-directory: ../boost-root
- name: Copy files
run: cp -r $GITHUB_WORKSPACE/* libs/config
working-directory: ../boost-root
- name: Bootstrap
run: ./bootstrap.sh
working-directory: ../boost-root
- name: Generate headers
run: ./b2 headers
working-directory: ../boost-root
- name: Config info
run: ../../../b2 print_config_info toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a
working-directory: ../boost-root/libs/config/test
- name: Test
run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a
working-directory: ../boost-root/libs/config/test
macos_12:
runs-on: macos-12
macos:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
@@ -243,7 +208,7 @@ jobs:
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
working-directory: ../boost-root
- name: Copy files
run: cp -r $GITHUB_WORKSPACE/* libs/config
@@ -255,7 +220,7 @@ jobs:
run: ./b2 headers
working-directory: ../boost-root
- name: Config info
run: ../../../b2 print_config_info toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a
run: ../../../b2 print_config_info toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,20
working-directory: ../boost-root/libs/config/test
- name: Test
run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a
@@ -281,7 +246,7 @@ jobs:
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
working-directory: ../boost-root
- name: Copy files
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config
@@ -319,7 +284,7 @@ jobs:
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
working-directory: ../boost-root
- name: Copy files
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config
@@ -357,7 +322,7 @@ jobs:
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
working-directory: ../boost-root
- name: Copy files
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config
@@ -395,7 +360,7 @@ jobs:
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
working-directory: ../boost-root
- name: Copy files
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config
@@ -412,20 +377,20 @@ jobs:
- name: Test
run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17,latest toolset=clang-win embed-manifest-via=linker
working-directory: ../boost-root/libs/config/test
non_intel_ubuntu_20_04_gcc:
runs-on: ubuntu-20.04
non_intel_ubuntu_22_04_gcc:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
qemu_arch: [ aarch64, s390x, ppc64le ]
steps:
- uses: actions/checkout@v3
- uses: uraimo/run-on-arch-action@v2
- uses: uraimo/run-on-arch-action@v3
name: Run commands
id: runcmd
with:
arch: ${{ matrix.qemu_arch }}
distro: ubuntu20.04
distro: ubuntu22.04
# Not required, but speeds up builds by storing container images in
# a GitHub package registry.
@@ -435,7 +400,7 @@ jobs:
run: |
uname -a
apt update
apt -y install gcc g++ git python
apt -y install gcc g++ git python3
echo $PWD
config=$PWD
cd ..
@@ -443,25 +408,25 @@ jobs:
cd boost-root
rm -rf libs/config/*
cp -r $config/* libs/config
git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
./bootstrap.sh
./b2 headers
./b2 toolset=gcc libs/config/test//print_config_info libs/config/test//print_math_info
cd libs/config/test && ../../../b2 toolset=gcc cxxstd=03,11,14,17
non_intel_ubuntu_20_04_clang:
runs-on: ubuntu-20.04
non_intel_ubuntu_22_04_clang:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
qemu_arch: [ aarch64, ppc64le ]
steps:
- uses: actions/checkout@v3
- uses: uraimo/run-on-arch-action@v2
- uses: uraimo/run-on-arch-action@v3
name: Run commands
id: runcmd
with:
arch: ${{ matrix.qemu_arch }}
distro: ubuntu20.04
distro: ubuntu22.04
# Not required, but speeds up builds by storing container images in
# a GitHub package registry.
@@ -471,7 +436,7 @@ jobs:
run: |
uname -a
apt update
apt -y install clang gcc g++ git python
apt -y install clang gcc g++ git python3
echo $PWD
config=$PWD
cd ..
@@ -479,14 +444,14 @@ jobs:
cd boost-root
rm -rf libs/config/*
cp -r $config/* libs/config
git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
./bootstrap.sh
./b2 headers
./b2 toolset=clang libs/config/test//print_config_info libs/config/test//print_math_info
cd libs/config/test
../../../b2 toolset=clang cxxstd=03,11,14,17
emscripten_wasm:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
@@ -515,7 +480,7 @@ jobs:
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits libs/static_assert libs/throw_exception libs/preprocessor
working-directory: ../boost-root
- name: Copy files
run: cp -r $GITHUB_WORKSPACE/* libs/config
@@ -562,58 +527,3 @@ jobs:
source ../emsdk/emsdk_env.sh
emcc -pthread -s EXIT_RUNTIME=1 -s PTHREAD_POOL_SIZE=32 -s DISABLE_EXCEPTION_CATCHING=0 -I. -O3 -o config_test_pthread libs/config/test/config_test.cpp
node --experimental-wasm-threads config_test_pthread
ubuntu-cuda:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
std: [ 11, 14, 17 ]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
commit-filter-separator: ';'
fail-fast: true
- uses: Jimver/cuda-toolkit@v0.2.4
- name: Add repository
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- name: Install packages
run: sudo apt install g++-11 clang-11
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update Dependencies
run: git submodule update --init tools/build tools/boost_install libs/headers libs/detail libs/core libs/assert libs/type_traits
working-directory: ../boost-root
- name: Copy files
run: cp -r $GITHUB_WORKSPACE/* libs/config
working-directory: ../boost-root
- name: Bootstrap
run: ./bootstrap.sh
working-directory: ../boost-root
- name: Generate headers
run: ./b2 headers
working-directory: ../boost-root
- name: nvcc version
run: nvcc --version
working-directory: ../boost-root/libs/config/test
- name: Config info nvcc
run: nvcc -std=c++${{ matrix.std }} -o config_info -I../../.. config_info.cpp && ./config_info
working-directory: ../boost-root/libs/config/test
- name: Config_test nvcc
run: nvcc -std=c++${{ matrix.std }} -o config_test -I../../.. config_test.cpp && ./config_test
working-directory: ../boost-root/libs/config/test
- name: Config_test nvcc-cuda
run: nvcc -c -std=c++${{ matrix.std }} -I../../.. config_test.cu
working-directory: ../boost-root/libs/config/test
- name: Config info nvcc+clang
run: nvcc -std=c++${{ matrix.std }} --compiler-bindir=clang++ -o config_info -I../../.. config_info.cpp && ./config_info
working-directory: ../boost-root/libs/config/test
- name: Config_test nvcc+clang
run: nvcc -std=c++${{ matrix.std }} --compiler-bindir=clang++ -o config_test -I../../.. config_test.cpp -latomic && ./config_test
working-directory: ../boost-root/libs/config/test
- name: Config_test clang-cuda
run: clang++ -nocudalib --no-cuda-version-check -c --cuda-gpu-arch=sm_75 -std=c++${{ matrix.std }} -I../../.. config_test.cu
working-directory: ../boost-root/libs/config/test

32
build.jam Normal file
View File

@@ -0,0 +1,32 @@
# Copyright René Ferdinand Rivera Morell 2023-2024
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
require-b2 5.2 ;
path-constant BOOST_CONFIG_ROOT : . ;
import-search $(BOOST_CONFIG_ROOT)/checks ;
project /boost/config
: common-requirements
<include>include
;
explicit
[ alias boost_config : : : : <library>$(boost_dependencies) ]
[ alias all : boost_config test ]
[ alias testing
: # sources
: # requirements
: # default-buidl
: # usage-requirements
<include>test
]
;
call-if : boost-library config
;
use-project /boost/architecture : checks/architecture ;

View File

@@ -177,4 +177,9 @@
#endif
#endif
#if _LIBCPP_VERSION <= 170006
// no std::ranges::join_view
# define BOOST_NO_CXX20_HDR_RANGES
#endif
// --- end ---

View File

@@ -10,15 +10,20 @@
import feature ;
import testing ;
import notfile ;
project
: requirements
<toolset>gcc:<cxxflags>-Wno-deprecated-declarations
<library>/boost/core//boost_core
<library>/boost/detail//boost_detail
<library>/boost/type_traits//boost_type_traits
;
import modules ;
import ../checks/config : requires ;
import-search /boost/config/checks ;
import config : requires ;
local is_unix = [ modules.peek : UNIX ] ;
@@ -98,7 +103,7 @@ test-suite config
<threading>single
<define>BOOST_DYN_LINK=1
<define>BOOST_CONFIG_NO_LIB=1
<target-os>vxworks:<link>shared
<target-os>vxworks:<link>shared
:
config_link_test
]

View File

@@ -1,12 +1,12 @@
# copyright John Maddock 2003
# Use, modification and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# Use, modification and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
project
: requirements
: requirements
# threading tests require thread support turned on:
<threading>multi
;
local test-requirements = <library>../../test/build//boost_test_exec_monitor ;
local test-requirements = <library>/boost/test//boost_test_exec_monitor ;

View File

@@ -1,11 +1,11 @@
# Copyright John Maddock 2005.
# Use, modification and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# Use, modification and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
run generate.cpp
../../regex/build//boost_regex
../../filesystem/build//boost_filesystem ../../system/build//boost_system
run generate.cpp
/boost/regex//boost_regex
/boost/filesystem//boost_filesystem /boost/system//boost_system
: ../../..
;