diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9b4c84df8..23e9a1c15 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,11 +17,11 @@ jobs: fail-fast: false matrix: include: - - name: "TOOLSET=gcc COMPILER=g++ CXXSTD=03,11 Job 0" + - name: "TOOLSET=gcc COMPILER=g++ CXXSTD=11 Job 0" buildtype: "boost" packages: "" packages_to_remove: "" - os: "ubuntu-20.04" + os: "ubuntu-latest" container: "ubuntu:16.04" cxx: "g++" sources: "" @@ -29,38 +29,12 @@ jobs: llvm_ver: "" toolset: "gcc" compiler: "g++" - cxxstd: "03,11" - - name: "TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98,0x Job 1" - buildtype: "boost" - packages: "g++-4.4" - packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:14.04" - cxx: "g++" - sources: "" - llvm_os: "" - llvm_ver: "" - toolset: "gcc" - compiler: "g++-4.4" - cxxstd: "98,0x" - - name: "TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x Job 2" - buildtype: "boost" - packages: "g++-4.6" - packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:16.04" - cxx: "g++" - sources: "" - llvm_os: "" - llvm_ver: "" - toolset: "gcc" - compiler: "g++-4.6" - cxxstd: "03,0x" - - name: "TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11 Job 3" + cxxstd: "11" + - name: "TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=11 Job 3" buildtype: "boost" packages: "g++-4.7" packages_to_remove: "" - os: "ubuntu-20.04" + os: "ubuntu-latest" container: "ubuntu:14.04" cxx: "g++-4.7" sources: "" @@ -68,12 +42,12 @@ jobs: llvm_ver: "" toolset: "gcc" compiler: "g++-4.7" - cxxstd: "03,11" - - name: "TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11 Job 4" + cxxstd: "11" + - name: "TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=11 Job 4" buildtype: "boost" packages: "g++-4.8" packages_to_remove: "" - os: "ubuntu-20.04" + os: "ubuntu-latest" container: "ubuntu:14.04" cxx: "g++-4.8" sources: "" @@ -81,12 +55,12 @@ jobs: llvm_ver: "" toolset: "gcc" compiler: "g++-4.8" - cxxstd: "03,11" - - name: "TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11 Job 5" + cxxstd: "11" + - name: "TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=11 Job 5" buildtype: "boost" packages: "g++-4.9" packages_to_remove: "" - os: "ubuntu-20.04" + os: "ubuntu-latest" container: "ubuntu:16.04" cxx: "g++-4.9" sources: "" @@ -94,12 +68,12 @@ jobs: llvm_ver: "" toolset: "gcc" compiler: "g++-4.9" - cxxstd: "03,11" - - name: "TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z Job 6" + cxxstd: "11" + - name: "TOOLSET=gcc COMPILER=g++-5 CXXSTD=11,14,1z Job 6" buildtype: "boost" packages: "g++-5" packages_to_remove: "" - os: "ubuntu-20.04" + os: "ubuntu-latest" container: "ubuntu:16.04" cxx: "g++-5" sources: "" @@ -107,89 +81,77 @@ jobs: llvm_ver: "" toolset: "gcc" compiler: "g++-5" - cxxstd: "03,11,14,1z" - - name: "TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z Job 7" + cxxstd: "11,14,1z" + - name: "TOOLSET=gcc COMPILER=g++-6 CXXSTD=11,14,1z Job 7" buildtype: "boost" packages: "g++-6" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:14.04" + os: "ubuntu-latest" + container: "ubuntu:18.04" cxx: "g++-6" sources: "" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-6" - cxxstd: "03,11,14,1z" - - name: "TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17 Job 8" + cxxstd: "11,14,1z" + - name: "TOOLSET=gcc COMPILER=g++-7 CXXSTD=11,14,17 Job 8" buildtype: "boost" packages: "g++-7" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:16.04" + os: "ubuntu-latest" + container: "ubuntu:18.04" cxx: "g++-7" sources: "" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-7" - cxxstd: "03,11,14,17" - - name: "TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17 Job 9" + cxxstd: "11,14,17" + - name: "TOOLSET=gcc COMPILER=g++-8 CXXSTD=11,14,17,2a Job 9" buildtype: "boost" packages: "g++-8" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:16.04" + os: "ubuntu-latest" + container: "ubuntu:18.04" cxx: "g++-8" sources: "" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-8" - cxxstd: "03,11,14,17,2a" - - name: "TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17 Job 10" + cxxstd: "11,14,17,2a" + - name: "TOOLSET=gcc COMPILER=g++-9 CXXSTD=11,14,17,2a Job 10" buildtype: "boost" packages: "g++-9" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:16.04" + os: "ubuntu-latest" + container: "ubuntu:20.04" cxx: "g++-9" sources: "" llvm_os: "" llvm_ver: "" toolset: "gcc" compiler: "g++-9" - cxxstd: "03,11,14,17,2a" - - name: "TOOLSET=clang COMPILER=clang++ CXXSTD=03,11 Job 11" + cxxstd: "11,14,17,2a" + - name: "TOOLSET=clang COMPILER=clang++ CXXSTD=11 Job 11" buildtype: "boost" - packages: "" + packages: "clang" packages_to_remove: "" - os: "ubuntu-18.04" + os: "ubuntu-latest" + container: "ubuntu:18.04" cxx: "clang++" sources: "" llvm_os: "" llvm_ver: "" toolset: "clang" compiler: "clang++" - cxxstd: "03,11" - - name: "TOOLSET=clang COMPILER=/usr/bin/clang++ CXXST Job 12" - buildtype: "boost" - packages: "clang-3.3" - packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:14.04" - cxx: "/usr/bin/clang++" - sources: "" - llvm_os: "" - llvm_ver: "" - toolset: "clang" - compiler: "/usr/bin/clang++" - cxxstd: "03,11" - - name: "TOOLSET=clang COMPILER=/usr/bin/clang++ CXXST Job 13" + cxxstd: "11" + - name: "TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=11 Job 13" buildtype: "boost" packages: "clang-3.4" packages_to_remove: "" - os: "ubuntu-20.04" + os: "ubuntu-latest" container: "ubuntu:14.04" cxx: "/usr/bin/clang++" sources: "" @@ -197,12 +159,12 @@ jobs: llvm_ver: "" toolset: "clang" compiler: "/usr/bin/clang++" - cxxstd: "03,11" - - name: "TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03, Job 14" + cxxstd: "11" + - name: "TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=11 Job 14" buildtype: "boost" - packages: "clang-3.5 libstdc++-4.9-dev" + packages: "clang-3.5" packages_to_remove: "" - os: "ubuntu-20.04" + os: "ubuntu-latest" container: "ubuntu:14.04" cxx: "clang++-3.5" sources: "" @@ -210,12 +172,12 @@ jobs: llvm_ver: "3.5" toolset: "clang" compiler: "clang++-3.5" - cxxstd: "03,11,14" - - name: "TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03, Job 15" + cxxstd: "11" + - name: "TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=11 Job 15" buildtype: "boost" packages: "clang-3.6" packages_to_remove: "" - os: "ubuntu-20.04" + os: "ubuntu-latest" container: "ubuntu:14.04" cxx: "clang++-3.6" sources: "" @@ -223,141 +185,136 @@ jobs: llvm_ver: "3.6" toolset: "clang" compiler: "clang++-3.6" - cxxstd: "03,11,14" - - name: "TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03, Job 16" + cxxstd: "11" + - name: "TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=11,14 Job 16" buildtype: "boost" packages: "clang-3.7" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:14.04" + os: "ubuntu-latest" + container: "ubuntu:16.04" cxx: "clang++-3.7" sources: "" llvm_os: "precise" llvm_ver: "3.7" toolset: "clang" compiler: "clang++-3.7" - cxxstd: "03,11,14" - - name: "TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03, Job 17" + cxxstd: "11,14" + - name: "TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=11,14 Job 17" buildtype: "boost" - packages: "clang-3.8 libstdc++-4.9-dev" + packages: "clang-3.8" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:14.04" + os: "ubuntu-latest" + container: "ubuntu:16.04" cxx: "clang++-3.8" sources: "" llvm_os: "precise" llvm_ver: "3.8" toolset: "clang" compiler: "clang++-3.8" - cxxstd: "03,11,14" - - name: "TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03, Job 18" + cxxstd: "11,14" + - name: "TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=11,14 Job 18" buildtype: "boost" - packages: "clang-3.9 libstdc++-4.9-dev" + packages: "clang-3.9" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:14.04" + os: "ubuntu-latest" + container: "ubuntu:16.04" cxx: "clang++-3.9" sources: "" llvm_os: "precise" llvm_ver: "3.9" toolset: "clang" compiler: "clang++-3.9" - cxxstd: "03,11,14" - - name: "TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03, Job 19" + cxxstd: "11,14" + - name: "TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=11,14 Job 19" buildtype: "boost" packages: "clang-4.0" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:14.04" + os: "ubuntu-latest" + container: "ubuntu:18.04" cxx: "clang++-4.0" sources: "" llvm_os: "trusty" llvm_ver: "4.0" toolset: "clang" compiler: "clang++-4.0" - cxxstd: "03,11,14" - - name: "TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03, Job 20" + cxxstd: "11,14" + - name: "TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=11,14,1z Job 20" buildtype: "boost" packages: "clang-5.0" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:14.04" + os: "ubuntu-latest" + container: "ubuntu:18.04" cxx: "clang++-5.0" sources: "" llvm_os: "trusty" llvm_ver: "5.0" toolset: "clang" compiler: "clang++-5.0" - cxxstd: "03,11,14,1z" - - name: "TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03, Job 21" + cxxstd: "11,14,1z" + - name: "TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=11,14,17,2a Job 21" buildtype: "boost" packages: "clang-6.0" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:14.04" + os: "ubuntu-latest" + container: "ubuntu:18.04" cxx: "clang++-6.0" sources: "" llvm_os: "trusty" llvm_ver: "6.0" toolset: "clang" compiler: "clang++-6.0" - cxxstd: "03,11,14,17,2a" - - name: "TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11 Job 22" + cxxstd: "11,14,17,2a" + - name: "TOOLSET=clang COMPILER=clang++-7 CXXSTD=11,14,17,2a Job 22" buildtype: "boost" packages: "clang-7" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:16.04" + os: "ubuntu-latest" + container: "ubuntu:18.04" cxx: "clang++-7" sources: "" llvm_os: "xenial" llvm_ver: "7" toolset: "clang" compiler: "clang++-7" - cxxstd: "03,11,14,17,2a" - - name: "TOOLSET=clang COMPILER=clang++-8 CXXSTD=03,11 Job 23" + cxxstd: "11,14,17,2a" + - name: "TOOLSET=clang COMPILER=clang++-8 CXXSTD=11,14,17,2a Job 23" buildtype: "boost" packages: "clang-8" packages_to_remove: "" - os: "ubuntu-20.04" - container: "ubuntu:16.04" + os: "ubuntu-latest" + container: "ubuntu:18.04" cxx: "clang++-8" sources: "" llvm_os: "xenial" llvm_ver: "8" toolset: "clang" compiler: "clang++-8" - cxxstd: "03,11,14,17,2a" - - name: "TOOLSET=clang COMPILER=clang++-libc++ CXXSTD= Job 24" - buildtype: "boost" - packages: " libc++-9-dev libc++abi-9-dev" - packages_to_remove: "libc++-dev libc++abi-dev" - os: "ubuntu-18.04" - cxx: "clang++-libc++" - sources: "" - llvm_os: "xenial" - llvm_ver: "9" - toolset: "clang" - compiler: "clang++-libc++" - cxxstd: "03,11,14,1z" + cxxstd: "11,14,17,2a" runs-on: ${{ matrix.os }} - container: ${{ matrix.container }} + container: + image: ${{matrix.container}} + volumes: + - /node20217:/node20217:rw,rshared + - ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }} steps: - - name: Check if running in container - if: matrix.container != '' - run: echo "GHA_CONTAINER=${{ matrix.container }}" >> $GITHUB_ENV - - name: If running in container, upgrade packages - if: matrix.container != '' + - name: Setup container environment + if: matrix.container + run: | + apt-get update + apt-get -y install sudo python3 git g++ curl xz-utils + + - name: Install nodejs20glibc2.17 + if: ${{ startsWith( matrix.container, 'ubuntu:1' ) }} run: | - apt-get -o Acquire::Retries=3 update && DEBIAN_FRONTEND=noninteractive apt-get -y install tzdata && apt-get -o Acquire::Retries=3 install -y sudo software-properties-common wget curl apt-transport-https make apt-file sudo unzip libssl-dev build-essential autotools-dev autoconf automake g++ libc++-helpers python ruby cpio gcc-multilib g++-multilib pkgconf python3 ccache libpython-dev - sudo apt-add-repository ppa:git-core/ppa - sudo apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 -y install git - python_version=$(python3 -c 'import sys; print("{0.major}.{0.minor}".format(sys.version_info))') - sudo wget https://bootstrap.pypa.io/pip/$python_version/get-pip.py - sudo python3 get-pip.py - sudo /usr/local/bin/pip install cmake + curl -LO https://archives.boost.io/misc/node/node-v20.9.0-linux-x64-glibc-217.tar.xz + tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217 + ldd /__e/node20/bin/node + + - name: Install packages + if: matrix.packages + run: sudo apt-get -y install ${{matrix.packages}} - uses: actions/checkout@v2 @@ -378,31 +335,6 @@ jobs: TRAVIS_OS_NAME: "linux" run: | echo '==================================> SETUP' - echo '==================================> PACKAGES' - set -e - if [ -n "$PACKAGES_TO_REMOVE" ]; then sudo apt-get purge -y $PACKAGES_TO_REMOVE; fi - echo ">>>>> APT: REPO.." - for i in {1..3}; do sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" && break || sleep 2; done - - if test -n "${LLVM_OS}" ; then - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - if test -n "${LLVM_VER}" ; then - sudo -E apt-add-repository "deb http://apt.llvm.org/${LLVM_OS}/ llvm-toolchain-${LLVM_OS}-${LLVM_VER} main" - else - # Snapshot (i.e. trunk) build of clang - sudo -E apt-add-repository "deb http://apt.llvm.org/${LLVM_OS}/ llvm-toolchain-${LLVM_OS} main" - fi - fi - echo ">>>>> APT: UPDATE.." - sudo -E apt-get -o Acquire::Retries=3 update - if test -n "${SOURCES}" ; then - echo ">>>>> APT: INSTALL SOURCES.." - for SOURCE in $SOURCES; do - sudo -E apt-add-repository ppa:$SOURCE - done - fi - echo ">>>>> APT: INSTALL ${PACKAGES}.." - sudo -E DEBIAN_FRONTEND=noninteractive apt-get -o Acquire::Retries=3 -y --no-install-suggests --no-install-recommends install ${PACKAGES} echo '==================================> INSTALL AND COMPILE' set -e @@ -428,7 +360,7 @@ jobs: git submodule update --init tools/boostdep mkdir -p libs/functional cp -r $TRAVIS_BUILD_DIR/* libs/functional - python tools/boostdep/depinst/depinst.py -I forward/test -I factory/test -I overloaded_function/test functional + python3 tools/boostdep/depinst/depinst.py -I forward/test -I factory/test -I overloaded_function/test functional ./bootstrap.sh ./b2 headers @@ -447,10 +379,10 @@ jobs: fail-fast: false matrix: include: - - name: "TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,1 Job 25" + - name: "TOOLSET=clang COMPILER=clang++ CXXSTD=11,1 Job 25" buildtype: "boost" packages: "" - os: "macos-10.15" + os: "macos-15" cxx: "clang++" sources: "" llvm_os: "" @@ -458,19 +390,13 @@ jobs: xcode_version: 11.7 toolset: "clang" compiler: "clang++" - cxxstd: "03,11,14,1z" + cxxstd: "11,14,1z" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - - name: Set DEVELOPER_DIR - if: matrix.xcode_version != '' - run: echo "DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode_version }}.app/Contents/Developer" >> $GITHUB_ENV - - name: Test DEVELOPER_DIR - run: echo $DEVELOPER_DIR - - name: "osx" shell: bash env: @@ -514,7 +440,7 @@ jobs: git submodule update --init tools/boostdep mkdir -p libs/functional cp -r $TRAVIS_BUILD_DIR/* libs/functional - python tools/boostdep/depinst/depinst.py -I forward/test -I factory/test -I overloaded_function/test functional + python3 tools/boostdep/depinst/depinst.py -I forward/test -I factory/test -I overloaded_function/test functional ./bootstrap.sh ./b2 headers diff --git a/build.jam b/build.jam new file mode 100644 index 000000000..15faa37f2 --- /dev/null +++ b/build.jam @@ -0,0 +1,29 @@ +# Copyright René Ferdinand Rivera Morell 2023-2024 +# Distributed under 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) + +require-b2 5.2 ; + +constant boost_dependencies : + /boost/config//boost_config + /boost/core//boost_core + /boost/function//boost_function + /boost/function_types//boost_function_types + /boost/mpl//boost_mpl + /boost/preprocessor//boost_preprocessor + /boost/type_traits//boost_type_traits + /boost/typeof//boost_typeof + /boost/utility//boost_utility ; + +project /boost/functional + ; + +explicit + [ alias boost_functional : : : + : include $(boost_dependencies) ] + [ alias all : boost_functional test factory/test forward/test overloaded_function/test ] + ; + +call-if : boost-library functional + ; diff --git a/factory/test/Jamfile b/factory/test/Jamfile index 7030e9392..e424883b6 100644 --- a/factory/test/Jamfile +++ b/factory/test/Jamfile @@ -8,6 +8,11 @@ import testing ; +project : requirements + /boost/functional//boost_functional + /boost/smart_ptr//boost_smart_ptr + ; + run value_factory.cpp ; run value_factory_args.cpp ; run value_factory_move.cpp ; diff --git a/forward/test/Jamfile b/forward/test/Jamfile index 9169456d9..5a156418a 100644 --- a/forward/test/Jamfile +++ b/forward/test/Jamfile @@ -6,7 +6,8 @@ import testing ; -project forward-tests +project forward-tests : requirements + /boost/functional//boost_functional ; test-suite functional/forward diff --git a/overloaded_function/doc/Jamfile.v2 b/overloaded_function/doc/Jamfile.v2 index 3bcf69b4f..ffecd0e57 100644 --- a/overloaded_function/doc/Jamfile.v2 +++ b/overloaded_function/doc/Jamfile.v2 @@ -9,8 +9,8 @@ import quickbook ; using boostbook ; doxygen reference - : ../../../../boost/functional/overloaded_function.hpp - ../../../../boost/functional/overloaded_function/config.hpp + : ../../include/boost/functional/overloaded_function.hpp + ../../include/boost/functional/overloaded_function/config.hpp : "Reference" PREDEFINED="DOXYGEN" QUIET=YES diff --git a/overloaded_function/test/Jamfile.v2 b/overloaded_function/test/Jamfile.v2 index 3871ee578..a93b90a97 100644 --- a/overloaded_function/test/Jamfile.v2 +++ b/overloaded_function/test/Jamfile.v2 @@ -8,7 +8,9 @@ import testing ; # Sun does not automatically detect type-of emulation (force it). -project : requirements sun:BOOST_TYPEOF_EMULATION ; +project : requirements sun:BOOST_TYPEOF_EMULATION + /boost/functional//boost_functional + ; run functor.cpp ; run make_decl.cpp ; diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index dbe379c0c..e492db6d5 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -4,6 +4,8 @@ import testing ; +project : requirements /boost/functional//boost_functional ; + test-suite functional : [ run function_test.cpp ] ;