diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake_win.yml similarity index 54% rename from .github/workflows/cmake.yml rename to .github/workflows/cmake_win.yml index 223ce3efb2..10612718e3 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake_win.yml @@ -102,3 +102,94 @@ jobs: run: | cd $BOOST_ROOT/libs/geometry/__build ctest --output-on-failure --no-tests=error + +############################################################################## + msvc: + name: ${{ matrix.b2_toolset }} + runs-on: windows-latest + + strategy: + fail-fast: false + matrix: + b2_toolset: [ + clang-14 + ] + + include: + - b2_toolset: clang-14 + b2_cxxstd: 14,17,2a + version: "14" + os: ubuntu-22.04 + steps: + - name: Set up environment + id: setenv + run: | + if [[ "$GITHUB_REF" == *master ]]; then + echo "BOOST_BRANCH=master" >> $GITHUB_ENV + else + echo "BOOST_BRANCH=develop" >> $GITHUB_ENV + fi + echo "BOOST_SELF=$(basename $GITHUB_WORKSPACE)" >> $GITHUB_ENV + echo "BOOST_ROOT=$GITHUB_WORKSPACE/boost-root" >> $GITHUB_ENV + echo "boost_self=$(basename $GITHUB_WORKSPACE)" >> "$GITHUB_OUTPUT" + echo "boost_root=$GITHUB_WORKSPACE/boost-root" >> "$GITHUB_OUTPUT" + + - name: Clone boostorg/boost + run: | + git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git $BOOST_ROOT + cd $BOOST_ROOT + git submodule update -q --init libs/headers + git submodule update -q --init tools/boost_install + git submodule update -q --init tools/boostdep + git submodule update -q --init tools/build + mkdir -p libs/$BOOST_SELF + + - uses: actions/checkout@v2 + with: + path: ${{ steps.setenv.outputs.boost_root }}/libs/${{ steps.setenv.outputs.boost_self }} + + - name: Run tools/boostdep/depinst/depinst.py + run: | + cd $BOOST_ROOT + python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools $BOOST_SELF + + - name: Bootstrap boostorg/boost + run: | + gcc --version + cd $BOOST_ROOT + ./bootstrap.sh --with-toolset=gcc + ./b2 headers + test -f /usr/local/bin/b2 && rm -rf /usr/local/bin/b2 + test -f /usr/local/bin/bjam && rm -rf /usr/local/bin/bjam + sudo cp $BOOST_ROOT/b2 /usr/local/bin/ + ls -l /usr/local/bin/b2 + b2 -v + + - name: Set up clang toolset in ~/user-config.jam + run: | + export CXX_NAME=clang++-${{ matrix.version }} + echo ${CXX_NAME} + echo "# $HOME/user-config.jam" > $HOME/user-config.jam + echo "using clang : : $(which clang++-${{ matrix.version }}) ;" > ${HOME}/user-config.jam + test -f $HOME/user-config.jam && cat $HOME/user-config.jam + + - name: Build tests with cmake (c++17) + run: | + cd $BOOST_ROOT/libs/geometry + mkdir __build + cd __build + cmake -DCMAKE_CXX_STANDARD=17 -DBUILD_TESTING=ON .. + cmake --build . --target tests + + - name: Build tests with cmake + run: | + cd $BOOST_ROOT/libs/geometry/__build + rm -rf * + cmake -DBUILD_TESTING=ON .. + cmake --build . --target tests + + - name: Run tests + run: | + cd $BOOST_ROOT/libs/geometry/__build + ctest --output-on-failure --no-tests=error + diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml deleted file mode 100644 index 404cc8b737..0000000000 --- a/.github/workflows/documentation.yml +++ /dev/null @@ -1,100 +0,0 @@ -############################################################################## -# GitHub Actions Workflow for Boost.Geometry to build documentation -# -# Copyright (c) 2020 Mateusz Loskot -# Copyright (c) 2020 Adam Wulkiewicz, Lodz, Poland -# -# This file was modified by Oracle on 2024. -# Modifications copyright (c) 2024 Oracle and/or its affiliates. -# Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle -# -# Use, modification and distribution is 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) -############################################################################## -name: documentation - -on: - push: - branches: - - develop - - master - pull_request: - paths: - - '.github/workflows/documentation.yml' - - 'doc/**' - - 'index.html' - - 'Jamfile*' - - 'meta/libraries.json' - -jobs: - build: - name: Build documentation - runs-on: ubuntu-latest - steps: - - name: Set up environment - id: setenv - run: | - if [[ "$GITHUB_REF" == *master ]]; then - echo "BOOST_BRANCH=master" >> $GITHUB_ENV - else - echo "BOOST_BRANCH=develop" >> $GITHUB_ENV - fi - echo "BOOST_SELF=$(basename $GITHUB_WORKSPACE)" >> $GITHUB_ENV - echo "BOOST_ROOT=$GITHUB_WORKSPACE/boost-root" >> $GITHUB_ENV - echo "boost_self=$(basename $GITHUB_WORKSPACE)" >> "$GITHUB_OUTPUT" - echo "boost_root=$GITHUB_WORKSPACE/boost-root" >> "$GITHUB_OUTPUT" - - - name: Clone boostorg/boost - run: | - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git $BOOST_ROOT - cd $BOOST_ROOT - git submodule update -q --init libs/headers - git submodule update -q --init tools/boost_install - git submodule update -q --init tools/boostbook - git submodule update -q --init tools/boostdep - git submodule update -q --init tools/build - git submodule update -q --init tools/quickbook - mkdir -p libs/$BOOST_SELF - - - uses: actions/checkout@v2 - with: - path: ${{ steps.setenv.outputs.boost_root }}/libs/${{ steps.setenv.outputs.boost_self }} - - - name: Run tools/boostdep/depinst/depinst.py - run: | - cd $BOOST_ROOT - python tools/boostdep/depinst/depinst.py ../tools/quickbook - python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools $BOOST_SELF - - - name: Bootstrap boostorg/boost - run: | - gcc --version - cd $BOOST_ROOT - ./bootstrap.sh --with-toolset=gcc - ./b2 headers - test -f /usr/local/bin/b2 && rm -rf /usr/local/bin/b2 - test -f /usr/local/bin/bjam && rm -rf /usr/local/bin/bjam - sudo cp $BOOST_ROOT/b2 /usr/local/bin/ - ls -l /usr/local/bin/b2 - b2 -v - - - name: Install tools/quickbook - run: | - sudo apt-get -q -y --no-install-suggests --no-install-recommends install docbook-xml docbook-xsl doxygen xsltproc - echo "# $HOME/user-config.jam" > $HOME/user-config.jam - echo "using doxygen ;" >> $HOME/user-config.jam - echo -e "using boostbook\n : /usr/share/xml/docbook/stylesheet/nwalsh\n : /usr/share/xml/docbook/schema/dtd/4.2\n ;" >> $HOME/user-config.jam - echo "using xsltproc ;" >> $HOME/user-config.jam - test -f $HOME/user-config.jam && cat $HOME/user-config.jam - - - name: Build examples - run: | - cd $BOOST_ROOT - $BOOST_ROOT/b2 libs/geometry/doc/src/examples - - - name: Build documentation - run: | - cd $BOOST_ROOT - cd libs/geometry/doc - $BOOST_ROOT/b2 diff --git a/.github/workflows/headers.yml b/.github/workflows/headers.yml deleted file mode 100644 index 3b0bbed3ec..0000000000 --- a/.github/workflows/headers.yml +++ /dev/null @@ -1,71 +0,0 @@ -############################################################################## -# GitHub Actions Workflow for Boost.Geometry to check if all headers compile -# independently -# -# Copyright (c) 2023, Oracle and/or its affiliates. -# Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle -# -# Use, modification and distribution is 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) -############################################################################## -name: headers - -on: [push, pull_request] - -jobs: - build: - name: Compile headers - runs-on: ubuntu-latest - steps: - - name: Set up environment - id: setenv - run: | - if [[ "$GITHUB_REF" == *master ]]; then - echo "BOOST_BRANCH=master" >> $GITHUB_ENV - else - echo "BOOST_BRANCH=develop" >> $GITHUB_ENV - fi - echo "BOOST_SELF=$(basename $GITHUB_WORKSPACE)" >> $GITHUB_ENV - echo "BOOST_ROOT=$GITHUB_WORKSPACE/boost-root" >> $GITHUB_ENV - echo "boost_self=$(basename $GITHUB_WORKSPACE)" >> "$GITHUB_OUTPUT" - echo "boost_root=$GITHUB_WORKSPACE/boost-root" >> "$GITHUB_OUTPUT" - - - name: Clone boostorg/boost - run: | - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git $BOOST_ROOT - cd $BOOST_ROOT - git submodule update -q --init libs/headers - git submodule update -q --init tools/boost_install - git submodule update -q --init tools/boostbook - git submodule update -q --init tools/boostdep - git submodule update -q --init tools/build - git submodule update -q --init tools/quickbook - mkdir -p libs/$BOOST_SELF - - - uses: actions/checkout@v2 - with: - path: ${{ steps.setenv.outputs.boost_root }}/libs/${{ steps.setenv.outputs.boost_self }} - - - name: Run tools/boostdep/depinst/depinst.py - run: | - cd $BOOST_ROOT - python tools/boostdep/depinst/depinst.py ../tools/quickbook - python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools $BOOST_SELF - - - name: Bootstrap boostorg/boost - run: | - gcc --version - cd $BOOST_ROOT - ./bootstrap.sh --with-toolset=gcc - ./b2 headers - test -f /usr/local/bin/b2 && rm -rf /usr/local/bin/b2 - test -f /usr/local/bin/bjam && rm -rf /usr/local/bin/bjam - sudo cp $BOOST_ROOT/b2 /usr/local/bin/ - ls -l /usr/local/bin/b2 - b2 -v - - - name: Build libs/geometry/test/headers - run: | - cd $BOOST_ROOT - $BOOST_ROOT/b2 libs/geometry/test/headers diff --git a/.github/workflows/minimal.yml b/.github/workflows/minimal.yml deleted file mode 100644 index 8e5aba837e..0000000000 --- a/.github/workflows/minimal.yml +++ /dev/null @@ -1,346 +0,0 @@ -############################################################################## -# GitHub Actions Workflow for Boost.Geometry to build minimal tests with Clang -# -# Copyright (c) 2020 Mateusz Loskot -# Copyright (c) 2020-2021 Adam Wulkiewicz, Lodz, Poland -# -# Copyright (c) 2022-2023 Oracle and/or its affiliates. -# Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle -# -# Use, modification and distribution is 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) -############################################################################## -name: minimal - -on: [push, pull_request] - -jobs: - ############################################################################## - clang: - name: ${{ matrix.b2_toolset }} - runs-on: ${{ matrix.os }} - - strategy: - fail-fast: false - matrix: - b2_toolset: [ - clang-3.9, - clang-4.0, - clang-5.0, - clang-6.0, - clang-7, - clang-8, - clang-9, - clang-10, - clang-11, - clang-12, - clang-13, - clang-14 - ] - - include: - - b2_toolset: clang-3.9 - b2_cxxstd: 14 - version: "3.9" - os: ubuntu-20.04 - - b2_toolset: clang-4.0 - b2_cxxstd: 14 - version: "4.0" - os: ubuntu-20.04 - - b2_toolset: clang-5.0 - b2_cxxstd: 14 - version: "5.0" - os: ubuntu-20.04 - - b2_toolset: clang-6.0 - b2_cxxstd: 14 - version: "6.0" - os: ubuntu-20.04 - - b2_toolset: clang-7 - b2_cxxstd: 14,17 - version: "7" - os: ubuntu-20.04 - - b2_toolset: clang-8 - b2_cxxstd: 14,17 - version: "8" - os: ubuntu-20.04 - - b2_toolset: clang-9 - # At some point compilation started to fail with 2a from unknown reason - # It may have something to do with the std library - #b2_cxxstd: 14,17,2a - b2_cxxstd: 14,17 - version: "9" - os: ubuntu-20.04 - - b2_toolset: clang-10 - b2_cxxstd: 14,17,2a - version: "10" - os: ubuntu-20.04 - - b2_toolset: clang-11 - b2_cxxstd: 14,17,2a - version: "11" - os: ubuntu-22.04 - - b2_toolset: clang-12 - b2_cxxstd: 14,17,2a - version: "12" - os: ubuntu-22.04 - - b2_toolset: clang-13 - b2_cxxstd: 14,17,2a - version: "13" - os: ubuntu-22.04 - - b2_toolset: clang-14 - b2_cxxstd: 14,17,2a - version: "14" - os: ubuntu-22.04 - steps: - - name: Set up environment - id: setenv - run: | - if [[ "$GITHUB_REF" == *master ]]; then - echo "BOOST_BRANCH=master" >> $GITHUB_ENV - else - echo "BOOST_BRANCH=develop" >> $GITHUB_ENV - fi - echo "BOOST_SELF=$(basename $GITHUB_WORKSPACE)" >> $GITHUB_ENV - echo "BOOST_ROOT=$GITHUB_WORKSPACE/boost-root" >> $GITHUB_ENV - echo "boost_self=$(basename $GITHUB_WORKSPACE)" >> "$GITHUB_OUTPUT" - echo "boost_root=$GITHUB_WORKSPACE/boost-root" >> "$GITHUB_OUTPUT" - - - name: Clone boostorg/boost - run: | - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git $BOOST_ROOT - cd $BOOST_ROOT - git submodule update -q --init libs/headers - git submodule update -q --init tools/boost_install - git submodule update -q --init tools/boostdep - git submodule update -q --init tools/build - mkdir -p libs/$BOOST_SELF - - - uses: actions/checkout@v2 - with: - path: ${{ steps.setenv.outputs.boost_root }}/libs/${{ steps.setenv.outputs.boost_self }} - - - name: Run tools/boostdep/depinst/depinst.py - run: | - cd $BOOST_ROOT - python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools $BOOST_SELF - - - name: Install - run: | - # Required for compilers not available in ubuntu 20.04 - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 - sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ xenial main" - sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe" - sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ bionic main" - sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ bionic universe" - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt -q -y update - sudo apt -q -y install clang-${{ matrix.version }} g++-multilib - - - name: Bootstrap boostorg/boost - run: | - gcc --version - cd $BOOST_ROOT - ./bootstrap.sh --with-toolset=gcc - ./b2 headers - test -f /usr/local/bin/b2 && rm -rf /usr/local/bin/b2 - test -f /usr/local/bin/bjam && rm -rf /usr/local/bin/bjam - sudo cp $BOOST_ROOT/b2 /usr/local/bin/ - ls -l /usr/local/bin/b2 - b2 -v - - - name: Set up clang toolset in ~/user-config.jam - run: | - export CXX_NAME=clang++-${{ matrix.version }} - echo ${CXX_NAME} - echo "# $HOME/user-config.jam" > $HOME/user-config.jam - echo "using clang : : $(which clang++-${{ matrix.version }}) ;" > ${HOME}/user-config.jam - test -f $HOME/user-config.jam && cat $HOME/user-config.jam - - - name: Build libs/geometry/test//minimal - run: | - cd $BOOST_ROOT - $BOOST_ROOT/b2 toolset=clang cxxstd=${{ matrix.b2_cxxstd }} variant=debug,release address-model=32,64 libs/geometry/test//minimal - - ############################################################################## - gcc: - name: ${{ matrix.b2_toolset }} - runs-on: ${{ matrix.os }} - - strategy: - fail-fast: false - matrix: - b2_toolset: [ - gcc-5, - gcc-6, - gcc-7, - gcc-8, - gcc-9, - gcc-10, - gcc-11 - ] - - include: - - b2_toolset: gcc-5 - b2_cxxstd: 14 - version: "5" - os: ubuntu-20.04 - - b2_toolset: gcc-6 - b2_cxxstd: 14 - version: "6" - os: ubuntu-20.04 - - b2_toolset: gcc-7 - b2_cxxstd: 14,17 - version: "7" - os: ubuntu-20.04 - - b2_toolset: gcc-8 - b2_cxxstd: 14,17 - version: "8" - os: ubuntu-20.04 - - b2_toolset: gcc-9 - b2_cxxstd: 14,17,2a - version: "9" - os: ubuntu-20.04 - - b2_toolset: gcc-10 - b2_cxxstd: 14,17,2a - version: "10" - os: ubuntu-22.04 - - b2_toolset: gcc-11 - b2_cxxstd: 14,17,2a - version: "11" - os: ubuntu-22.04 - - steps: - - name: Set up environment - id: setenv - run: | - if [[ "$GITHUB_REF" == *master ]]; then - echo "BOOST_BRANCH=master" >> $GITHUB_ENV - else - echo "BOOST_BRANCH=develop" >> $GITHUB_ENV - fi - echo "BOOST_SELF=$(basename $GITHUB_WORKSPACE)" >> $GITHUB_ENV - echo "BOOST_ROOT=$GITHUB_WORKSPACE/boost-root" >> $GITHUB_ENV - echo "boost_self=$(basename $GITHUB_WORKSPACE)" >> "$GITHUB_OUTPUT" - echo "boost_root=$GITHUB_WORKSPACE/boost-root" >> "$GITHUB_OUTPUT" - - - name: Clone boostorg/boost - run: | - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git $BOOST_ROOT - cd $BOOST_ROOT - git submodule update -q --init libs/headers - git submodule update -q --init tools/boost_install - git submodule update -q --init tools/boostdep - git submodule update -q --init tools/build - mkdir -p libs/$BOOST_SELF - - - uses: actions/checkout@v2 - with: - path: ${{ steps.setenv.outputs.boost_root }}/libs/${{ steps.setenv.outputs.boost_self }} - - - name: Run tools/boostdep/depinst/depinst.py - run: | - cd $BOOST_ROOT - python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools $BOOST_SELF - - - name: Install - run: | - # Required for compilers not available in ubuntu 20.04 - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 - sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ xenial main" - sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe" - sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ bionic main" - sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ bionic universe" - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt -q -y update - sudo apt -q -y install g++-${{ matrix.version }} g++-${{ matrix.version }}-multilib - - - name: Bootstrap boostorg/boost - run: | - gcc --version - cd $BOOST_ROOT - ./bootstrap.sh --with-toolset=gcc - ./b2 headers - test -f /usr/local/bin/b2 && rm -rf /usr/local/bin/b2 - test -f /usr/local/bin/bjam && rm -rf /usr/local/bin/bjam - sudo cp $BOOST_ROOT/b2 /usr/local/bin/ - ls -l /usr/local/bin/b2 - b2 -v - - - name: Build libs/geometry/test//minimal - run: | - cd $BOOST_ROOT - $BOOST_ROOT/b2 toolset=${{ matrix.b2_toolset }} cxxstd=${{ matrix.b2_cxxstd }} variant=debug,release address-model=32,64 libs/geometry/test//minimal - - ############################################################################## - msvc: - name: ${{ matrix.b2_toolset }} - runs-on: windows-latest - - strategy: - fail-fast: false - matrix: - b2_toolset: [ - msvc-14.3, - msvc-15, - msvc-16, - ] - - include: - - b2_toolset: msvc-14.3 - b2_cxxstd: 14,17,2a - - b2_toolset: msvc-15 - b2_cxxstd: 14,17,2a - - b2_toolset: msvc-16 - b2_cxxstd: 14,17,2a - - steps: - - name: Set up environment - id: setenv - shell: pwsh - run: | - if ("$env:GITHUB_REF" -contains "master") { - echo "BOOST_BRANCH=master" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - } else { - echo "BOOST_BRANCH=develop" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - } - echo "BOOST_SELF=$((Get-Item $env:GITHUB_WORKSPACE).BaseName)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "BOOST_ROOT=$env:GITHUB_WORKSPACE\boost-root" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "boost_self=$((Get-Item $env:GITHUB_WORKSPACE).BaseName)" | Out-File -FilePath $Env:GITHUB_OUTPUT -Encoding utf8 -Append - echo "boost_root=$env:GITHUB_WORKSPACE\boost-root" | Out-File -FilePath $Env:GITHUB_OUTPUT -Encoding utf8 -Append - - - name: Clone boostorg/boost - shell: pwsh - run: | - git clone -b $env:BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git $env:BOOST_ROOT - cd $env:BOOST_ROOT - git submodule update -q --init libs/headers - git submodule update -q --init tools/boost_install - git submodule update -q --init tools/boostdep - git submodule update -q --init tools/build - New-Item -Path libs\$env:BOOST_SELF -ItemType Directory -ErrorAction SilentlyContinue - - - uses: actions/checkout@v2 - with: - path: ${{ steps.setenv.outputs.boost_root }}/libs/${{ steps.setenv.outputs.boost_self }} - - - name: Run tools/boostdep/depinst/depinst.py - shell: pwsh - run: | - cd $env:BOOST_ROOT - python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools $env:BOOST_SELF - - - name: Bootstrap boostorg/boost - shell: pwsh - run: | - cd $env:BOOST_ROOT - .\bootstrap.bat --with-toolset=msvc - .\b2 headers - .\b2 -v - - - name: Build libs/geometry/test//minimal - shell: pwsh - run: | - cd $env:BOOST_ROOT - .\b2 toolset=${{ matrix.b2_toolset }} cxxstd=${{ matrix.b2_cxxstd }} variant=debug,release address-model=32,64 libs/geometry/test//minimal