mirror of
https://github.com/boostorg/config.git
synced 2026-01-19 04:02:17 +00:00
376 lines
15 KiB
YAML
376 lines
15 KiB
YAML
# Copyright 2020 Evan Miller
|
|
# Copyright 2020 Matt Borland
|
|
# Copyright 2021 John Maddock
|
|
# Distributed under the Boost Software License, Version 1.0.
|
|
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
|
|
|
name: CI
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- develop
|
|
- feature/**
|
|
pull_request:
|
|
release:
|
|
types: [published, created, edited]
|
|
jobs:
|
|
ubuntu-noble:
|
|
runs-on: ubuntu-24.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: [ g++-13, g++-14 ]
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: '0'
|
|
- name: Set TOOLSET
|
|
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
|
|
- name: Add repository
|
|
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
|
- name: Install packages
|
|
run: sudo apt install g++-13 g++-14
|
|
- 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 libs/static_assert libs/throw_exception libs/preprocessor
|
|
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: Generate user config
|
|
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam'
|
|
working-directory: ../boost-root
|
|
- name: Config info
|
|
run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17,20
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Test
|
|
run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,20
|
|
working-directory: ../boost-root/libs/config/test
|
|
ubuntu-jammy:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: [ g++-11, g++-12, g++-13 ]
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: '0'
|
|
- name: Set TOOLSET
|
|
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
|
|
- name: Add repository
|
|
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
|
- name: Install packages
|
|
run: sudo apt install g++-11 g++-12 g++-13
|
|
- 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 libs/static_assert libs/throw_exception libs/preprocessor
|
|
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: Generate user config
|
|
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam'
|
|
working-directory: ../boost-root
|
|
- name: Config info
|
|
run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17,20
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Test
|
|
run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,20
|
|
working-directory: ../boost-root/libs/config/test
|
|
ubuntu-jammy-clang:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: [ clang++-15 ]
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: '0'
|
|
- name: Set TOOLSET
|
|
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
|
|
- name: Add repository
|
|
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
|
- name: Install packages
|
|
run: sudo apt install clang-15
|
|
- 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 libs/static_assert libs/throw_exception libs/preprocessor
|
|
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: Generate user config
|
|
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam'
|
|
working-directory: ../boost-root
|
|
- name: Config info
|
|
run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17,20
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Test
|
|
run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,20
|
|
working-directory: ../boost-root/libs/config/test
|
|
macos:
|
|
runs-on: macos-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
toolset: [ clang ]
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: '0'
|
|
- 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 libs/static_assert libs/throw_exception libs/preprocessor
|
|
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,20
|
|
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
|
|
windows_msvc_14_3:
|
|
runs-on: windows-2022
|
|
defaults:
|
|
run:
|
|
shell: cmd
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
toolset: [ msvc-14.3 ]
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: '0'
|
|
- 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 libs/static_assert libs/throw_exception libs/preprocessor
|
|
working-directory: ../boost-root
|
|
- name: Copy files
|
|
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config
|
|
working-directory: ../boost-root
|
|
- name: Bootstrap
|
|
run: bootstrap
|
|
working-directory: ../boost-root
|
|
- name: Generate headers
|
|
run: b2 headers
|
|
working-directory: ../boost-root
|
|
- name: Config info
|
|
run: ..\..\..\b2 print_config_info cxxstd=14,17,20,latest address-model=64 toolset=msvc-14.3
|
|
working-directory: ../boost-root/libs/config/test
|
|
- name: Test
|
|
run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17,20,latest toolset=msvc-14.3
|
|
working-directory: ../boost-root/libs/config/test
|
|
windows_clang_msvc_14_3:
|
|
runs-on: windows-2022
|
|
defaults:
|
|
run:
|
|
shell: cmd
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
toolset: [ clang-msvc-14.3 ]
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: '0'
|
|
- 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 libs/static_assert libs/throw_exception libs/preprocessor
|
|
working-directory: ../boost-root
|
|
- name: Copy files
|
|
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config
|
|
working-directory: ../boost-root
|
|
- name: Bootstrap
|
|
run: bootstrap
|
|
working-directory: ../boost-root
|
|
- name: Generate headers
|
|
run: b2 headers
|
|
working-directory: ../boost-root
|
|
- name: Config info
|
|
run: ..\..\..\b2 print_config_info cxxstd=14,17,latest address-model=64 toolset=clang-win embed-manifest-via=linker
|
|
working-directory: ../boost-root/libs/config/test
|
|
- 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_22_04_gcc:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
qemu_arch: [ aarch64, s390x, ppc64le ]
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- uses: uraimo/run-on-arch-action@v3
|
|
name: Run commands
|
|
id: runcmd
|
|
with:
|
|
arch: ${{ matrix.qemu_arch }}
|
|
distro: ubuntu22.04
|
|
|
|
# Not required, but speeds up builds by storing container images in
|
|
# a GitHub package registry.
|
|
#githubToken: ${{ github.token }}
|
|
|
|
# Set an output parameter `uname` for use in subsequent steps
|
|
run: |
|
|
uname -a
|
|
apt update
|
|
apt -y install gcc g++ git python3
|
|
echo $PWD
|
|
config=$PWD
|
|
cd ..
|
|
git clone -b develop --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
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 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_22_04_clang:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
qemu_arch: [ aarch64, ppc64le ]
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- uses: uraimo/run-on-arch-action@v3
|
|
name: Run commands
|
|
id: runcmd
|
|
with:
|
|
arch: ${{ matrix.qemu_arch }}
|
|
distro: ubuntu22.04
|
|
|
|
# Not required, but speeds up builds by storing container images in
|
|
# a GitHub package registry.
|
|
#githubToken: ${{ github.token }}
|
|
|
|
# Set an output parameter `uname` for use in subsequent steps
|
|
run: |
|
|
uname -a
|
|
apt update
|
|
apt -y install clang gcc g++ git python3
|
|
echo $PWD
|
|
config=$PWD
|
|
cd ..
|
|
git clone -b develop --depth 1 https://github.com/boostorg/boost.git boost-root
|
|
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 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-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: [ emcc ]
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: '0'
|
|
- name: Install Emscripten
|
|
run: |
|
|
uname -a
|
|
echo $PWD
|
|
config=$PWD
|
|
cd ..
|
|
git clone https://github.com/emscripten-core/emsdk.git
|
|
cd emsdk
|
|
git pull
|
|
./emsdk install latest
|
|
./emsdk activate latest
|
|
source ./emsdk_env.sh
|
|
- 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 libs/static_assert libs/throw_exception libs/preprocessor
|
|
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: Test config_info (default)
|
|
working-directory: ../boost-root
|
|
run: |
|
|
source ../emsdk/emsdk_env.sh
|
|
emcc -I. -O3 -o config_info libs/config/test/config_info.cpp
|
|
node config_info
|
|
- name: Test config_test (default)
|
|
working-directory: ../boost-root
|
|
run: |
|
|
source ../emsdk/emsdk_env.sh
|
|
emcc -s EXIT_RUNTIME=1 -s DISABLE_EXCEPTION_CATCHING=0 -I. -O3 -o config_test libs/config/test/config_test.cpp
|
|
node config_test
|
|
- name: Test config_info (-fno-exceptions)
|
|
working-directory: ../boost-root
|
|
run: |
|
|
source ../emsdk/emsdk_env.sh
|
|
emcc -I. -O3 -fno-exceptions -o config_info libs/config/test/config_info.cpp
|
|
node config_info
|
|
- name: Test config_test (-fno-exceptions)
|
|
working-directory: ../boost-root
|
|
run: |
|
|
source ../emsdk/emsdk_env.sh
|
|
emcc -s EXIT_RUNTIME=1 -fno-exceptions -I. -O3 -o config_test libs/config/test/config_test.cpp
|
|
node config_test
|
|
- name: Test config_info (pthread)
|
|
working-directory: ../boost-root
|
|
run: |
|
|
source ../emsdk/emsdk_env.sh
|
|
emcc -pthread -s EXIT_RUNTIME=1 -s PTHREAD_POOL_SIZE=32 -I. -O3 -o config_info_pthread libs/config/test/config_info.cpp
|
|
node config_info_pthread
|
|
- name: Test config_test (pthread)
|
|
working-directory: ../boost-root
|
|
run: |
|
|
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 config_test_pthread
|