############################################################################## # GitHub Actions Workflow for Boost.Geometry to build tests with cmake # # 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: cmake on: [push] jobs: ############################################################################## clang: name: ${{ matrix.b2_toolset }} runs-on: ${{ matrix.os }} 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