From 8291b2d0a582fd86bdae7cc0243d73a6f71a3a5c Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 3 Feb 2021 16:24:57 +0000 Subject: [PATCH 1/4] Add GHA to get XCode-12 testing. Also adds more comprehensive msvc-14.x testing. --- .github/workflows/ci.yml | 264 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..010318ac --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,264 @@ +# 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, pull_request ] +jobs: + ubuntu-focal: + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + compiler: [ g++-9, g++-10, clang++-9, clang++-10 ] + steps: + - uses: actions/checkout@v2 + 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 + - 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++-9 g++-10 clang-9 clang-10 + - name: Checkout main boost + run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root + - name: Update tools/boostdep + run: git submodule update --init tools/boostdep + working-directory: ../boost-root + - name: Copy files + run: cp -r $GITHUB_WORKSPACE/* libs/config + working-directory: ../boost-root + - name: Install deps + run: python tools/boostdep/depinst/depinst.py 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,2a + working-directory: ../boost-root/libs/config/test + - name: Test + run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,2a + working-directory: ../boost-root/libs/config/test + ubuntu-bionic: + runs-on: ubuntu-18.04 + strategy: + fail-fast: false + matrix: + compiler: [ g++-7, g++-8, clang++-7, clang++-8 ] + steps: + - uses: actions/checkout@v2 + 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 + - 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++-7 g++-8 clang-7 clang-8 + - name: Checkout main boost + run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root + - name: Update tools/boostdep + run: git submodule update --init tools/boostdep + working-directory: ../boost-root + - name: Copy files + run: cp -r $GITHUB_WORKSPACE/* libs/config + working-directory: ../boost-root + - name: Install deps + run: python tools/boostdep/depinst/depinst.py 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 install + run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17 + working-directory: ../boost-root/libs/config/test + - name: Test + run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17 + working-directory: ../boost-root/libs/config/test + macos: + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + toolset: [ clang ] + steps: + - uses: actions/checkout@v2 + 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 tools/boostdep + run: git submodule update --init tools/boostdep + working-directory: ../boost-root + - name: Copy files + run: cp -r $GITHUB_WORKSPACE/* libs/config + working-directory: ../boost-root + - name: Install deps + run: python tools/boostdep/depinst/depinst.py 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 + windows_mingw: + runs-on: windows-latest + defaults: + run: + shell: cmd + strategy: + fail-fast: false + matrix: + toolset: [ gcc ] + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: '0' + - uses: mstachniuk/ci-skip@v1 + with: + commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[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 tools/boostdep + run: git submodule update --init tools/boostdep + working-directory: ../boost-root + - name: Copy files + run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config + working-directory: ../boost-root + - name: Install deps + run: python tools/boostdep/depinst/depinst.py 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=03,11,14,17 address-model=64 toolset=gcc + working-directory: ../boost-root/libs/config/test + - name: Test + run: ..\..\..\b2 --hash address-model=64 toolset=gcc + working-directory: ../boost-root/libs/config/test + windows_msvc_14_0: + runs-on: windows-latest + defaults: + run: + shell: cmd + strategy: + fail-fast: false + matrix: + toolset: [ msvc-14.0 ] + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: '0' + - uses: mstachniuk/ci-skip@v1 + with: + commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[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 tools/boostdep + run: git submodule update --init tools/boostdep + working-directory: ../boost-root + - name: Copy files + run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config + working-directory: ../boost-root + - name: Install deps + run: python tools/boostdep/depinst/depinst.py 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 address-model=64 toolset=msvc-14.0 + working-directory: ../boost-root/libs/config/test + - name: Test + run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17 toolset=msvc-14.0 + working-directory: ../boost-root/libs/config/test + windows_msvc_14_2: + runs-on: windows-latest + defaults: + run: + shell: cmd + strategy: + fail-fast: false + matrix: + toolset: [ msvc-14.2 ] + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: '0' + - uses: mstachniuk/ci-skip@v1 + with: + commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[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 tools/boostdep + run: git submodule update --init tools/boostdep + working-directory: ../boost-root + - name: Copy files + run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config + working-directory: ../boost-root + - name: Install deps + run: python tools/boostdep/depinst/depinst.py 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 address-model=64 toolset=msvc-14.2 + working-directory: ../boost-root/libs/config/test + - name: Test + run: ..\..\..\b2 --hash address-model=64 cxxstd=14,17,20 toolset=msvc-14.2 + working-directory: ../boost-root/libs/config/test From 844f7b096ea17f8837ea9024732d85f1d559bcc6 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 3 Feb 2021 16:48:29 +0000 Subject: [PATCH 2/4] Try again without depinst.py script. --- .github/workflows/ci.yml | 39 ++++++++++++--------------------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 010318ac..7b417bf9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,15 +30,12 @@ jobs: run: sudo apt install g++-9 g++-10 clang-9 clang-10 - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - - name: Update tools/boostdep - run: git submodule update --init tools/boostdep + - 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: Install deps - run: python tools/boostdep/depinst/depinst.py config - working-directory: ../boost-root - name: Bootstrap run: ./bootstrap.sh working-directory: ../boost-root @@ -77,15 +74,12 @@ jobs: run: sudo apt install g++-7 g++-8 clang-7 clang-8 - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - - name: Update tools/boostdep - run: git submodule update --init tools/boostdep + - 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: Install deps - run: python tools/boostdep/depinst/depinst.py config - working-directory: ../boost-root - name: Bootstrap run: ./bootstrap.sh working-directory: ../boost-root @@ -118,15 +112,12 @@ jobs: fail-fast: true - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - - name: Update tools/boostdep - run: git submodule update --init tools/boostdep + - 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: Install deps - run: python tools/boostdep/depinst/depinst.py config - working-directory: ../boost-root - name: Bootstrap run: ./bootstrap.sh working-directory: ../boost-root @@ -165,8 +156,8 @@ jobs: - name: Copy files run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config working-directory: ../boost-root - - name: Install deps - run: python tools/boostdep/depinst/depinst.py config + - 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: Bootstrap run: bootstrap @@ -200,15 +191,12 @@ jobs: fail-fast: true - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - - name: Update tools/boostdep - run: git submodule update --init tools/boostdep + - 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: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config working-directory: ../boost-root - - name: Install deps - run: python tools/boostdep/depinst/depinst.py config - working-directory: ../boost-root - name: Bootstrap run: bootstrap working-directory: ../boost-root @@ -241,15 +229,12 @@ jobs: fail-fast: true - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - - name: Update tools/boostdep - run: git submodule update --init tools/boostdep + - 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: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config working-directory: ../boost-root - - name: Install deps - run: python tools/boostdep/depinst/depinst.py config - working-directory: ../boost-root - name: Bootstrap run: bootstrap working-directory: ../boost-root From 45f7d00813a3bd5d490845c643c01db7d270c234 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 3 Feb 2021 17:46:25 +0000 Subject: [PATCH 3/4] Update libcpp.hpp for C++17 features. Most particularly BOOST_NO_CXX17_HDR_EXECUTION. --- include/boost/config/stdlib/libcpp.hpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/include/boost/config/stdlib/libcpp.hpp b/include/boost/config/stdlib/libcpp.hpp index e8eea911..ed51c058 100644 --- a/include/boost/config/stdlib/libcpp.hpp +++ b/include/boost/config/stdlib/libcpp.hpp @@ -104,8 +104,28 @@ # define BOOST_NO_CXX98_BINDERS #endif -#define BOOST_NO_CXX17_ITERATOR_TRAITS +#ifdef __has_include +#if __has_include() + +#if !defined(__cpp_lib_execution) || (__cpp_lib_execution < 201603L) +# define BOOST_NO_CXX17_HDR_EXECUTION +#endif +#if !defined(__cpp_lib_invoke) || (__cpp_lib_invoke < 201411L) +#define BOOST_NO_CXX17_STD_INVOKE +#endif + +#else #define BOOST_NO_CXX17_STD_INVOKE // Invoke support is incomplete (no invoke_result) +#define BOOST_NO_CXX17_HDR_EXECUTION +#endif +#else +#define BOOST_NO_CXX17_STD_INVOKE // Invoke support is incomplete (no invoke_result) +#define BOOST_NO_CXX17_HDR_EXECUTION +#endif + +#if _LIBCPP_VERSION < 10000 // What's the correct version check here? +#define BOOST_NO_CXX17_ITERATOR_TRAITS +#endif #if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) // This is a bit of a sledgehammer, because really it's just libc++abi that has no From 1953291f72dd66d347b0ce75539607edfde50fca Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 3 Feb 2021 18:21:38 +0000 Subject: [PATCH 4/4] Remove mingw from GHA tests: it's failing even basic programs. --- .github/workflows/ci.yml | 41 ---------------------------------------- 1 file changed, 41 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b417bf9..f39e5b9e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -130,47 +130,6 @@ jobs: - name: Test run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a working-directory: ../boost-root/libs/config/test - windows_mingw: - runs-on: windows-latest - defaults: - run: - shell: cmd - strategy: - fail-fast: false - matrix: - toolset: [ gcc ] - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: '0' - - uses: mstachniuk/ci-skip@v1 - with: - commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[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 tools/boostdep - run: git submodule update --init tools/boostdep - working-directory: ../boost-root - - name: Copy files - run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\config - working-directory: ../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: 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=03,11,14,17 address-model=64 toolset=gcc - working-directory: ../boost-root/libs/config/test - - name: Test - run: ..\..\..\b2 --hash address-model=64 toolset=gcc - working-directory: ../boost-root/libs/config/test windows_msvc_14_0: runs-on: windows-latest defaults: