diff --git a/.circleci/circle1.0.yml b/.circleci/circle1.0.yml deleted file mode 100644 index 0ea722a069..0000000000 --- a/.circleci/circle1.0.yml +++ /dev/null @@ -1,180 +0,0 @@ -# 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) -# -# Copyright Antony Polukhin 2014. -# Copyright Adam Wulkiewicz 2015-2018. - -general: - branches: - only: - - master - - develop - - test - -machine: - environment: - # define tests list, if parallelism is enabled they are run in parallel - TESTS: test index/test - TESTS0: test/core test/concepts test/geometries test/arithmetic test/algorithms test/formulas test/iterators - TESTS1: test/srs test/strategies test/policies test/io test/util test/views index/test - - # this is not fully bulletproof, ideally one should check - # if the current branch originates in master or develop - # but it's good enough - # test library using corresponding branch of Boost repository - BOOST_BRANCH: $([[ "$CIRCLE_BRANCH" = "master" ]] && echo master || echo develop) - - # required directories - BOOST_DIR: boost-local - COVERAGE_DIR: coverage-local - - # helper variables - PROJECT_ROOT: $HOME/$CIRCLE_PROJECT_REPONAME - BOOST_ROOT: $PROJECT_ROOT/$BOOST_DIR - COVERAGE_ROOT: $PROJECT_ROOT/$COVERAGE_DIR - #COVERAGE_ROOT: $CIRCLE_ARTIFACTS - -dependencies: - pre: - - sudo apt-get update || true - - # gcc, g++, gcov - - sudo apt-get install gcc-4.9 g++-4.9 build-essential - #- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 10 - #- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 10 - - sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-4.9 10 - #- sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 20 - #- sudo update-alternatives --set cc /usr/bin/gcc - #- sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 20 - #- sudo update-alternatives --set c++ /usr/bin/g++ - #- sudo update-alternatives --config gcc - #- sudo update-alternatives --config g++ - - sudo update-alternatives --config gcov - - # coveralls-lcov for lcov *.info to JSON conversion - - gem install coveralls-lcov - - # jq for JSON handling - - sudo apt-get install jq - - # curl for HTTP - - sudo apt-get install curl - - # clone boost repository - - mkdir $BOOST_ROOT - - cd $BOOST_ROOT && git init . - - cd $BOOST_ROOT && git remote add --no-tags -t $BOOST_BRANCH origin https://github.com/boostorg/boost.git - - cd $BOOST_ROOT && git fetch --depth=1 - - cd $BOOST_ROOT && git checkout $BOOST_BRANCH - - cd $BOOST_ROOT && git submodule update --init --merge - - cd $BOOST_ROOT && git remote set-branches --add origin $BOOST_BRANCH - - cd $BOOST_ROOT && git pull --recurse-submodules - - cd $BOOST_ROOT && git submodule update --init - - cd $BOOST_ROOT && git checkout $BOOST_BRANCH - - cd $BOOST_ROOT && git submodule foreach "git reset --quiet --hard; git clean -fxd" - - cd $BOOST_ROOT && git reset --hard; git clean -fxd - - cd $BOOST_ROOT && git status - # replace the content of the library with the currently tested repo - - cd $BOOST_ROOT && rm -rf libs/geometry/ - - mkdir $BOOST_ROOT/libs/geometry - - cp -R `ls -A | grep -v $BOOST_DIR` $BOOST_ROOT/libs/geometry/ - # build b2 and create headers - - cd $BOOST_ROOT && ./bootstrap.sh - - cd $BOOST_ROOT && ./b2 headers - - # wait with the modifications of the project directory until now - # to avoid copying into the $BOOST_ROOT/libs/geometry/ - - # download and install the latest lcov - # do not use the old one from sources - - curl -fLO https://sourceforge.net/projects/ltp/files/Coverage%20Analysis/LCOV-1.12/lcov-1.12.tar.gz || curl -fLO https://downloads.sourceforge.net/project/ltp/Coverage%20Analysis/LCOV-1.12/lcov-1.12.tar.gz || wget http://sourceforge.mirrorservice.org/l/project/lt/ltp/Coverage%20Analysis/LCOV-1.12/lcov-1.12.tar.gz || wget -O lcov-1.12.tar.gz http://launchpad.net/ubuntu/+archive/primary/+files/lcov_1.12.orig.tar.gz - - tar xvzf lcov-1.12.tar.gz - - cd lcov-1.12 && sudo make install - - # create a direcotry for temporary coverage data - - if [ ! -d $COVERAGE_ROOT ]; then mkdir $COVERAGE_ROOT; fi - -test: - override: - # `--coverage` flags required to generate coverage info for Coveralls - # temporary for test purposes - #- cd $BOOST_ROOT/libs/geometry && ../../b2 cxxflags="--coverage" linkflags="--coverage" test/algorithms - #- cd $BOOST_ROOT/libs/geometry && ../../b2 cxxflags="--coverage" linkflags="--coverage" test/algorithms/detail - #- cd $BOOST_ROOT/libs/geometry && ../../b2 cxxflags="--coverage" linkflags="--coverage" test/algorithms/relational_operations - #- cd $BOOST_ROOT/libs/geometry && ../../b2 cxxflags="--coverage" linkflags="--coverage" test - #- cd $BOOST_ROOT/libs/geometry && ../../b2 cxxflags="--coverage" linkflags="--coverage" index/test/algorithms - #- cd $BOOST_ROOT/libs/geometry && ../../b2 cxxflags="--coverage" linkflags="--coverage" index/test/rtree/exceptions - # this is the first step of the first approach to automatic balancing - # the problem is that first the upper-level dir is handled - # then the tests from lower dir are executed, so the tests in various containers overlap - #- cd $BOOST_ROOT/libs/geometry && index=0 ; run_tests() { for i in "$1"/* ; do if [ -f "$i"/Jamfile* ] ; then ((index++)) ; echo "$index - $i" ; ../../b2 cxxflags="--coverage" linkflags="--coverage" "$i" ; run_tests "$i" ; fi ; done } ; run_tests test - - # so for now just run the tests from the list - #- cd $BOOST_ROOT/libs/geometry && status=0; index=0 ; for t in ${TESTS[@]} ; do if [ $(((index++)%CIRCLE_NODE_TOTAL)) == $CIRCLE_NODE_INDEX ] ; then ../../b2 -j2 cxxflags="--coverage" linkflags="--coverage" $t ; fi || status=$? ; done ; exit $status : - # parallel: true - - # so for now just run the tests from 2 lists - - cd $BOOST_ROOT/libs/geometry && status=0; case $CIRCLE_NODE_INDEX in 0) for t in ${TESTS0[@]} ; do ../../b2 -j2 cxxflags="--coverage" linkflags="--coverage" $t || status=$? ; done ;; 1) for t in ${TESTS1[@]} ; do ../../b2 -j2 cxxflags="--coverage" linkflags="--coverage" $t || status=$? ; done ;; esac ; exit $status : - parallel: true - - post: - ## Copying Coveralls data to a separate folder - #- find $BOOST_ROOT/bin.v2/ -name "*.gcda" -exec mv "{}" $COVERAGE_ROOT \; - #- find $BOOST_ROOT/bin.v2/ -name "*.gcno" -exec mv "{}" $COVERAGE_ROOT \; - # upgraded version - change the file name if exists - - find $BOOST_ROOT/bin.v2/ -name "*.gcda" -exec bash -c 'filen=$(basename $1) ; filen=${filen%.*} ; dirn=$(dirname $1) ; dstfilen=$filen ; while [ -f $COVERAGE_ROOT/$dstfilen.gcda ]; do dstfilen=$filen.$RANDOM ; done ; mv $dirn/$filen.gcda $COVERAGE_ROOT/$dstfilen.gcda ; mv $dirn/$filen.gcno $COVERAGE_ROOT/$dstfilen.gcno ; echo $dstfilen' bash "{}" \; : - parallel: true - - ## Preparing Coveralls data by - - ## ... changind data format to a readable one - - - cd $BOOST_ROOT/libs/geometry && lcov --directory $COVERAGE_ROOT --base-directory ./ --capture --output-file $COVERAGE_ROOT/coverage.info : - parallel: true - - ## ... erasing /usr and unneeded directories data - - lcov --remove $COVERAGE_ROOT/coverage.info "/usr*" "*/libs/geometry/*" -o $COVERAGE_ROOT/coverage.info : - parallel: true - - ## ... erasing data that is not related to this project directly - - ls $BOOST_ROOT/boost | sed -r '/(geometry.*)/d' | sed -r 's/(.+)/"*\/boost\/\1\/*"/g' | sed -r 's/(.+\.hpp)\/\*/\1/g' | sed ':a;N;$!ba;s/\n/ /g' | xargs lcov --remove $COVERAGE_ROOT/coverage.info -o $COVERAGE_ROOT/coverage.info : - parallel: true - - ## ... sanity check - - ls -lah $COVERAGE_ROOT : - parallel: true - - ## Sending data to Coveralls - - ## ... gather all files in one container - - if [ $CIRCLE_NODE_INDEX = 0 ]; then mv $COVERAGE_ROOT/coverage.info $COVERAGE_ROOT/coverage0.info ; else scp $COVERAGE_ROOT/coverage.info node0:$COVERAGE_ROOT/coverage$CIRCLE_NODE_INDEX.info ; fi : - parallel: true - - ## ... merge info files - - lcov `ls $COVERAGE_ROOT/coverage*.info | sed -r 's/(.+)/--add-tracefile \1/g'` -o $COVERAGE_ROOT/coverage.info - - ## ... handle sending manually - ## ... convert data with coveralls-lcov - - coveralls-lcov --repo-token=$COVERALLS_REPO_TOKEN -v -n $COVERAGE_ROOT/coverage.info > $COVERAGE_ROOT/coverage.json #: - #parallel: true - - ## ... alter the json file - - jq -c ".service_name = \"circle-ci\" | .service_number = \"$CIRCLE_BUILD_NUM\" | .git .branch =\"$CIRCLE_BRANCH\"" $COVERAGE_ROOT/coverage.json > $COVERAGE_ROOT/processed.json - #- jq -c ".service_name = \"circle-ci\" | .service_number = \"$CIRCLE_BUILD_NUM\" | .parallel = true | .git .branch =\"$CIRCLE_BRANCH\"" $COVERAGE_ROOT/coverage.json > $COVERAGE_ROOT/processed.json #: - #parallel: true - - ## ... send it to Coveralls - - curl --retry 3 -F "json_file=@$COVERAGE_ROOT/processed.json" 'https://coveralls.io/api/v1/jobs' #: - #parallel: true - - ## ... notify Coveralls that the parallel build has ended - # this doesn't work - Coveralls returns an error - #- echo "{\"payload\":{\"build_num\":\"$CIRCLE_BUILD_NUM\",\"status\":\"done\"}}" > $COVERAGE_ROOT/payload.json && curl --retry 3 -F "json_file=@$COVERAGE_ROOT/payload.json" "https://coveralls.io/webhook?repo_token=$COVERALLS_REPO_TOKEN" - #- echo "{\"payload\":{\"build_num\":\"$CIRCLE_BUILD_NUM\",\"status\":\"done\"}}" > $COVERAGE_ROOT/payload.json && curl --retry 3 -d "@$COVERAGE_ROOT/payload.json" "https://coveralls.io/webhook?repo_token=$COVERALLS_REPO_TOKEN" - -## This doesn't work - no effect -#notify: -# webhooks: - # Notify Coveralls that the build has ended - #- url: https://coveralls.io/webhook?repo_token=$COVERALLS_REPO_TOKEN diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 7bb7c847b1..0000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,692 +0,0 @@ -############################################################################## -# CircleCI 2.0 for Boost.Geometry -# -# Copyright (c) 2018 Mateusz Loskot -# Copyright (c) 2018-2021 Adam Wulkiewicz, Lodz, Poland -# -# This file was modified by Oracle on 2023. -# Modifications 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) -############################################################################## -version: 2 - -# Environment variables -environment: &environment - environment: - BOOST_DIR: shared-boost - COVERAGE_DIR: shared-coverage - -# Docker image -docker: &docker - docker: - # gcc-9.3, ruby-2.3, sudo, curl - - image: cimg/base:stable-20.04 - -# Build configuration -config: &config - <<: *docker - <<: *environment - -# Workspace -attach_workspace: &attach_workspace - attach_workspace: - at: ~/project - -persist_boost_coverage: &persist_boost_coverage - persist_to_workspace: - root: ~/project - paths: - - shared-boost - - shared-coverage - -#persist_coverage: &persist_coverage -# persist_to_workspace: -# root: ~/project -# paths: -# - shared-coverage - -jobs: - bootstrap: - <<: *config - steps: - - checkout - - run: - name: Checkout Boost - command: | - git clone -b `[[ "$CIRCLE_BRANCH" = "master" ]] && echo master || echo develop` --depth 1 https://github.com/boostorg/boost.git $BOOST_DIR - rm -rf $BOOST_DIR/libs/geometry/* - mv -t $BOOST_DIR/libs/geometry/ `ls -A | grep -v $BOOST_DIR` - cd $BOOST_DIR - git submodule update --init tools/build - git submodule update --init libs/config - git submodule update --init tools/boostdep - python3 tools/boostdep/depinst/depinst.py geometry -I index/test - ./bootstrap.sh - ./b2 headers - - run: mkdir $COVERAGE_DIR - - *persist_boost_coverage - - algorithms: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms test/algorithms//boost-geometry-algorithms - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms - algorithms_area: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_area test/algorithms/area - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_area - algorithms_buffer: - <<: *config - steps: - - *attach_workspace - # 1 test at a time to avoid fatal error: ... No space left on device - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_buffer test/algorithms/buffer 1 - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_buffer - algorithms_closest_points: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_closest_points test/algorithms/closest_points 1 - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_closest_points - algorithms_convex_hull: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_convex_hull test/algorithms/convex_hull - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_convex_hull - algorithms_covered_by: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_covered_by test/algorithms/covered_by - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_covered_by - algorithms_crosses: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_crosses test/algorithms/crosses - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_crosses - algorithms_detail: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_detail test/algorithms/detail - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_detail - algorithms_disjoint: - <<: *config - steps: - - *attach_workspace - # 1 test at a time to decrease memory consumption causing gcc internal error - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_disjoint test/algorithms/disjoint 1 - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_disjoint - algorithms_distance: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_distance test/algorithms/distance - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_distance - algorithms_envelope: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_envelope test/algorithms/envelope_expand - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_envelope - algorithms_equals: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_equals test/algorithms/equals - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_equals - algorithms_intersects: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_intersects test/algorithms/intersects - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_intersects - algorithms_length: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_length test/algorithms/length - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_length - algorithms_overlaps: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_overlaps test/algorithms/overlaps - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_overlaps - algorithms_overlay: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_overlay test/algorithms/overlay - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_overlay - algorithms_perimeter: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_perimeter test/algorithms/perimeter - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_perimeter - algorithms_relate: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_relate test/algorithms/relate - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_relate - algorithms_set: - <<: *config - steps: - - *attach_workspace - # 1 test at a time to decrease memory consumption causing gcc internal error - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_set test/algorithms/set_operations 1 - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_set - algorithms_similarity: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_similarity test/algorithms/similarity - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_similarity - algorithms_touches: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_touches test/algorithms/touches - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_touches - algorithms_within: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh algorithms_within test/algorithms/within - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/algorithms_within - arithmetic: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh arithmetic test/arithmetic - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/arithmetic - concepts: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh concepts test/concepts - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/concepts - core: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh core test/core - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/core - cs_undefined: - <<: *config - steps: - - *attach_workspace - # 1 test at a time to decrease memory consumption causing gcc internal error - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh cs_undefined test/cs_undefined 1 - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/cs_undefined - formulas: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh formulas test/formulas - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/formulas - geometries: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh geometries test/geometries - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/geometries - io: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh io test/io - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/io - iterators: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh iterators test/iterators - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/iterators - policies: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh policies test/policies - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/policies - robustness: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh robustness test/robustness - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/robustness - srs: - <<: *config - steps: - - *attach_workspace - # 1 test at a time to decrease memory consumption causing gcc internal error - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh srs test/srs 1 - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/srs - strategies: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh strategies test/strategies - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/strategies - util: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh util test/util - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/util - views: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh views test/views - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/views - - index_algorithms: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh index_algorithms index/test/algorithms - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/index_algorithms - index_rtree: - <<: *config - steps: - - *attach_workspace - # 1 test at a time to decrease memory consumption causing gcc internal error - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh index_rtree index/test/rtree//boost-geometry-index-rtree 1 - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/index_rtree - index_rtree_b2d: - <<: *config - steps: - - *attach_workspace - # 1 test at a time to decrease memory consumption causing gcc internal error - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh index_rtree_b2d index/test/rtree/generated/b2d 1 - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/index_rtree_b2d - index_rtree_exceptions: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh index_rtree_exceptions index/test/rtree/exceptions - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/index_rtree_exceptions - index_detail: - <<: *config - steps: - - *attach_workspace - - run: ./$BOOST_DIR/libs/geometry/.circleci/run_test.sh index_detail index/test//boost-geometry-index-detail - - persist_to_workspace: - root: ~/project - paths: - - shared-coverage/index_detail - - coverage: - <<: *config - steps: - - *attach_workspace - - run: ls -lah $COVERAGE_DIR - - run: sudo apt-get update - - run: sudo apt-get install lcov - - run: lcov --directory $COVERAGE_DIR --base-directory $BOOST_DIR --capture --output-file $COVERAGE_DIR/coverage.info - - run: lcov --extract $COVERAGE_DIR/coverage.info "*/boost/geometry/*" "*/libs/geometry/include/*" --output-file $COVERAGE_DIR/coverage.info - - run: sed -i 's/SF:.*boost\/geometry/SF:boost\/geometry/g' $COVERAGE_DIR/coverage.info -#Coveralls - - run: sudo apt-get install rubygems - - run: sudo gem install coveralls-lcov - - run: sudo apt-get install jq - - run: cd $BOOST_DIR/libs/geometry/include && coveralls-lcov --repo-token=$COVERALLS_REPO_TOKEN -v -n ../../../../$COVERAGE_DIR/coverage.info > ../../../../$COVERAGE_DIR/coverage.json - - run: jq -c ".service_name = \"circle-ci\" | .service_number = \"$CIRCLE_BUILD_NUM\" | .git .branch =\"$CIRCLE_BRANCH\"" $COVERAGE_DIR/coverage.json > $COVERAGE_DIR/processed.json - - run: curl --retry 3 -F "json_file=@$COVERAGE_DIR/processed.json" 'https://coveralls.io/api/v1/jobs' -#Codecov - - run: curl -s https://codecov.io/bash > .codecov - - run: chmod +x .codecov - - run: cd $BOOST_DIR/libs/geometry/include && ../../../../.codecov -t $CODECOV_TOKEN -f ../../../../$COVERAGE_DIR/coverage.info -x gcov - - minimal: - <<: *config - steps: - - *attach_workspace - - run: cd $BOOST_DIR && ./b2 libs/geometry/test//boost-geometry-minimal - -requires_0: &requires_0 - requires: - - bootstrap - -requires_1: &requires_1 - requires: - - concepts - - core - - geometries - - util - -requires_2: &requires_2 - requires: - - algorithms_detail - - arithmetic - - formulas - - io - - iterators - - policies - - robustness - - strategies - - views - -requires_3: &requires_3 - requires: - - algorithms - - algorithms_area - - algorithms_buffer - - algorithms_closest_points - - algorithms_convex_hull - - algorithms_covered_by - - algorithms_crosses - - algorithms_disjoint - - algorithms_distance - - algorithms_envelope - - algorithms_equals - - algorithms_intersects - - algorithms_length - - algorithms_overlaps - - algorithms_overlay - - algorithms_perimeter - - algorithms_relate - - algorithms_set - - algorithms_similarity - - algorithms_touches - - algorithms_within - - srs - - index_algorithms - -requires_4: &requires_4 - requires: - - index_rtree - - index_rtree_b2d - - index_rtree_exceptions - - index_detail - - cs_undefined - -only_master_develop: &only_master_develop - filters: - branches: - only: - - develop - - master - -ignore_master_develop: &ignore_master_develop - filters: - branches: - ignore: - - develop - - master - -workflows: - version: 2 - workflow: - jobs: -# all branches: level 0, bootstrap - - bootstrap - -# master, develop: level 1 - - concepts: - <<: *requires_0 - <<: *only_master_develop - - core: - <<: *requires_0 - <<: *only_master_develop - - geometries: - <<: *requires_0 - <<: *only_master_develop - - util: - <<: *requires_0 - <<: *only_master_develop -# master, develop: level 2 - - algorithms_detail: - <<: *requires_1 - <<: *only_master_develop - - arithmetic: - <<: *requires_1 - <<: *only_master_develop - - formulas: - <<: *requires_1 - <<: *only_master_develop - - io: - <<: *requires_1 - <<: *only_master_develop - - iterators: - <<: *requires_1 - <<: *only_master_develop - - policies: - <<: *requires_1 - <<: *only_master_develop - - robustness: - <<: *requires_1 - <<: *only_master_develop - - strategies: - <<: *requires_1 - <<: *only_master_develop - - views: - <<: *requires_1 - <<: *only_master_develop -# master, develop: level 3 - - algorithms: - <<: *requires_2 - <<: *only_master_develop - - algorithms_area: - <<: *requires_2 - <<: *only_master_develop - - algorithms_buffer: - <<: *requires_2 - <<: *only_master_develop - - algorithms_closest_points: - <<: *requires_2 - <<: *only_master_develop - - algorithms_convex_hull: - <<: *requires_2 - <<: *only_master_develop - - algorithms_covered_by: - <<: *requires_2 - <<: *only_master_develop - - algorithms_crosses: - <<: *requires_2 - <<: *only_master_develop - - algorithms_disjoint: - <<: *requires_2 - <<: *only_master_develop - - algorithms_distance: - <<: *requires_2 - <<: *only_master_develop - - algorithms_envelope: - <<: *requires_2 - <<: *only_master_develop - - algorithms_equals: - <<: *requires_2 - <<: *only_master_develop - - algorithms_intersects: - <<: *requires_2 - <<: *only_master_develop - - algorithms_length: - <<: *requires_2 - <<: *only_master_develop - - algorithms_overlaps: - <<: *requires_2 - <<: *only_master_develop - - algorithms_overlay: - <<: *requires_2 - <<: *only_master_develop - - algorithms_perimeter: - <<: *requires_2 - <<: *only_master_develop - - algorithms_relate: - <<: *requires_2 - <<: *only_master_develop - - algorithms_set: - <<: *requires_2 - <<: *only_master_develop - - algorithms_similarity: - <<: *requires_2 - <<: *only_master_develop - - algorithms_touches: - <<: *requires_2 - <<: *only_master_develop - - algorithms_within: - <<: *requires_2 - <<: *only_master_develop - - srs: - <<: *requires_2 - <<: *only_master_develop - - index_algorithms: - <<: *requires_2 - <<: *only_master_develop -# master, develop: level 4 - - index_rtree: - <<: *requires_3 - <<: *only_master_develop - - index_rtree_b2d: - <<: *requires_3 - <<: *only_master_develop - - index_rtree_exceptions: - <<: *requires_3 - <<: *only_master_develop - - index_detail: - <<: *requires_3 - <<: *only_master_develop - - cs_undefined: - <<: *requires_3 - <<: *only_master_develop -# master, develop: level 5, coverage - - coverage: - <<: *requires_4 - <<: *only_master_develop - -# other branches: level 1, minimal - - minimal: - <<: *requires_0 - <<: *ignore_master_develop diff --git a/.circleci/run_test.sh b/.circleci/run_test.sh deleted file mode 100755 index cba1dc47b1..0000000000 --- a/.circleci/run_test.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -if [ "$#" -lt 2 ]; then - echo 'Intended usage' - echo ' run_test TEST_NAME TEST_DIR [NPARALLEL]' - echo '' - echo '$BOOST_DIR and $COVERAGE_DIR must be defined.' - exit -fi - -TEST_NAME=$1 -TEST_DIR=$2 - -TEST_NPARALLEL=2 -if [ "$#" -ge 3 ]; then - TEST_NPARALLEL=$3 -fi - -cd $BOOST_DIR - -./b2 -j$TEST_NPARALLEL toolset=gcc cxxflags="--coverage" linkflags="--coverage" libs/geometry/$TEST_DIR - -EXIT_STATUS=$? - -cd .. - -mkdir $COVERAGE_DIR/$TEST_NAME - -files=$(find $BOOST_DIR/bin.v2/ -name "*.gcda") -for file in $files; do - filen=${file##*/} - filen=${filen%.*} - dirn=${file%/*} - dstfilen=$filen - while [ -f $COVERAGE_DIR/$dstfilen.gcda ]; do - dstfilen=$filen.$RANDOM - done - mv $dirn/$filen.gcda $COVERAGE_DIR/$TEST_NAME/$dstfilen.gcda - mv $dirn/$filen.gcno $COVERAGE_DIR/$TEST_NAME/$dstfilen.gcno -done - -exit $EXIT_STATUS diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml deleted file mode 100644 index 223ce3efb2..0000000000 --- a/.github/workflows/cmake.yml +++ /dev/null @@ -1,104 +0,0 @@ -############################################################################## -# 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 diff --git a/.github/workflows/cmake_win.yml b/.github/workflows/cmake_win.yml new file mode 100644 index 0000000000..f938241c73 --- /dev/null +++ b/.github/workflows/cmake_win.yml @@ -0,0 +1,99 @@ +############################################################################## +# 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: + 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 tests with cmake + shell: pwsh + run: | + mkdir $env:BOOST_ROOT/libs/geometry/__build + cd $env:BOOST_ROOT/libs/geometry/__build + Remove-Item -Recurse -Force -Path * + cmake -DBUILD_TESTING=ON -S .. -B . + ls + pwd + $msbuild_path = & "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe + & $msbuild_path boost_geometry.sln /p:Configuration=Release + + - name: Run tests + shell: pwsh + run: | + cd $env:BOOST_ROOT/libs/geometry/__build + ctest --output-on-failure --no-tests=error -C Release + 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