Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
d62e1fd
adding support -fno-exception
fjtapia Feb 27, 2024
61f794f
Make the library modular usable.
grafikrobot Mar 11, 2024
05c5255
Switch to library requirements instead of source. As source puts extr…
grafikrobot Mar 30, 2024
b961352
Add missing import-search for cconfig/predef checks.
grafikrobot May 5, 2024
52228ac
Add requires-b2 check to top-level build file.
grafikrobot May 5, 2024
e3adb39
Bump B2 require to 5.2
grafikrobot Jun 14, 2024
65bc508
Change all <source> references to <library>.
grafikrobot Jul 21, 2024
e6f9ca6
Update copyright dates.
grafikrobot Jul 21, 2024
968b473
Move inter-lib dependencies to a project variable and into the build …
grafikrobot Jul 24, 2024
9640167
Try and fix GHA setup.
grafikrobot Aug 3, 2024
d1d3830
Try and fix GHA setup.
grafikrobot Aug 3, 2024
61b3613
Try and fix GHA setup.
grafikrobot Aug 3, 2024
5da7ff3
Try and fix GHA setup.
grafikrobot Aug 3, 2024
5827c48
Try and fix GHA setup.
grafikrobot Aug 3, 2024
c3294fc
Try and fix GHA setup.
grafikrobot Aug 3, 2024
f07ab48
Try and fix GHA setup.
grafikrobot Aug 3, 2024
8a2c4b6
Try and fix GHA setup.
grafikrobot Aug 3, 2024
c99bf6a
Try and fix GHA setup.
grafikrobot Aug 3, 2024
b4faded
Try and fix GHA setup.
grafikrobot Aug 3, 2024
457ab17
Merge pull request #84 from grafikrobot/modular
spreadsort Aug 20, 2024
df2e184
Remove unnecessary semicolons for gcc --pedantic mode
nigels-com Aug 26, 2023
d2704d4
Remove unnecessary semicolons for gcc --pedantic mode
Jan 10, 2024
213efe6
Merge pull request #74 from nigels-com/semicolons
fjtapia Aug 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
226 changes: 37 additions & 189 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,200 +17,48 @@ jobs:
fail-fast: false
matrix:
include:
- name: "TOOLSET=gcc CXXSTD=03,11 Job 0"
buildtype: "boost"
packages: ""
packages_to_remove: ""
os: "ubuntu-20.04"
container: "ubuntu:16.04"
cxx: "g++"
sources: ""
llvm_os: ""
llvm_ver: ""
toolset: "gcc"
cxxstd: "03,11"
- name: "TOOLSET=clang CXXSTD=03,11,14,1z Job 1"
buildtype: "boost"
packages: "libstdc++-4.9-dev clang"
packages_to_remove: ""
os: "ubuntu-20.04"
container: "ubuntu:16.04"
cxx: "clang++"
sources: ""
llvm_os: ""
llvm_ver: ""
- name: "g++-13"
os: ubuntu-latest
packages: "g++-13"
toolset: "gcc-13"
- name: "clang-15"
os: ubuntu-latest
packages: "clang-15"
toolset: "clang-15"
- name: "xcode"
os: macos-latest
toolset: "clang"
cxxstd: "03,11,14,1z"

runs-on: ${{ matrix.os }}
container: ${{ matrix.container }}

runs-on: ${{matrix.os}}
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 != ''
- uses: actions/checkout@main
- name: Install
if: matrix.packages
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

- uses: actions/checkout@v2

- name: linux
shell: bash
env:
CXX: ${{ matrix.cxx }}
SOURCES: ${{ matrix.sources }}
LLVM_OS: ${{ matrix.llvm_os }}
LLVM_VER: ${{ matrix.llvm_ver }}
PACKAGES: ${{ matrix.packages }}
PACKAGES_TO_REMOVE: ${{ matrix.packages_to_remove }}
JOB_BUILDTYPE: ${{ matrix.buildtype }}
TOOLSET: ${{ matrix.toolset }}
CXXSTD: ${{ matrix.cxxstd }}
TRAVIS_BRANCH: ${{ github.base_ref }}
TRAVIS_OS_NAME: "linux"
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get -o Acquire::Retries=3 update -y
sudo apt-get -o Acquire::Retries=3 -y install ${{matrix.packages}}
- name: Setup
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
export TRAVIS_BUILD_DIR=$(pwd)
export TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')}
export VCS_COMMIT_ID=$GITHUB_SHA
export GIT_COMMIT=$GITHUB_SHA
export REPO_NAME=$(basename $GITHUB_REPOSITORY)
export USER=$(whoami)
export CC=${CC:-gcc}
export PATH=~/.local/bin:/usr/local/bin:$PATH

if [ "$JOB_BUILDTYPE" == "boost" ]; then

echo '==================================> INSTALL'

BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
echo GITHUB_REF: $GITHUB_REF
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
REF=${REF#refs/heads/}
echo REF: $REF
BOOST_BRANCH=develop && ( test "${GITHUB_REF_NAME}" == "master" || test "${GITHUB_REF_NAME}" == "modular" ) && BOOST_BRANCH=${GITHUB_REF_NAME} || true
BOOST_GIT=https://github.com/${GITHUB_REPOSITORY/sort/boost}.git
echo BOOST_GIT: ${BOOST_GIT}
echo BOOST_BRANCH: ${BOOST_BRANCH}
cd ..
git clone -b $BOOST_BRANCH https://github.com/boostorg/boost.git boost-root
git clone -b "${BOOST_BRANCH}" --depth 1 "${BOOST_GIT}" boost-root
cd boost-root
git submodule update --init tools/build
git submodule update --init libs/config
git submodule update --init tools/boostdep
cp -r $TRAVIS_BUILD_DIR/* libs/sort
python tools/boostdep/depinst/depinst.py sort
git submodule update --init --jobs 3 tools/boostdep libs/assert libs/config libs/core libs/test libs/sort
python tools/boostdep/depinst/depinst.py -X test -g "--jobs 3" test
python tools/boostdep/depinst/depinst.py -X test -g "--jobs 3" sort
rm -rf libs/sort/*
cp -r $GITHUB_WORKSPACE/* libs/sort
./bootstrap.sh
./b2 headers

echo '==================================> SCRIPT'

./b2 libs/sort/test toolset=$TOOLSET cxxstd=$CXXSTD

fi
osx:
strategy:
fail-fast: false
matrix:
include:
- name: "TOOLSET=clang CXXSTD=03,11,14,1z Job 2"
buildtype: "boost"
packages: ""
os: "macos-12"
cxx: "clang++"
sources: ""
llvm_os: ""
llvm_ver: ""
xcode_version: 14.2
toolset: "clang"
cxxstd: "03,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:
CXX: ${{ matrix.cxx }}
SOURCES: ${{ matrix.sources }}
LLVM_OS: ${{ matrix.llvm_os }}
LLVM_VER: ${{ matrix.llvm_ver }}
PACKAGES: ${{ matrix.packages }}
JOB_BUILDTYPE: ${{ matrix.buildtype }}
TOOLSET: ${{ matrix.toolset }}
CXXSTD: ${{ matrix.cxxstd }}
TRAVIS_BRANCH: ${{ github.base_ref }}
TRAVIS_OS_NAME: "osx"
./b2 -d0 headers
- name: Test
run: |
echo '==================================> SETUP'
set -e
sudo mv /Library/Developer/CommandLineTools /Library/Developer/CommandLineTools.bck
echo '==================================> PACKAGES'
echo '==================================> INSTALL AND COMPILE'
set -e
export TRAVIS_BUILD_DIR=$(pwd)
export TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')}
export VCS_COMMIT_ID=$GITHUB_SHA
export GIT_COMMIT=$GITHUB_SHA
export REPO_NAME=$(basename $GITHUB_REPOSITORY)
export USER=$(whoami)
export CC=${CC:-gcc}
export PATH=~/.local/bin:/usr/local/bin:$PATH

if [ "$JOB_BUILDTYPE" == "boost" ]; then

echo '==================================> INSTALL'

BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
cd ..
git clone -b $BOOST_BRANCH https://github.com/boostorg/boost.git boost-root
cd boost-root
git submodule update --init tools/build
git submodule update --init libs/config
git submodule update --init tools/boostdep
cp -r $TRAVIS_BUILD_DIR/* libs/sort
python tools/boostdep/depinst/depinst.py sort
./bootstrap.sh
./b2 headers

echo '==================================> SCRIPT'

./b2 libs/sort/test toolset=$TOOLSET cxxstd=$CXXSTD

fi
cd ../boost-root
./b2 -j3 libs/sort/test toolset=${{matrix.toolset}} cxxstd=11,14,17,20
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"githubPullRequests.ignoredPullRequestBranches": [
"develop"
]
}
Loading
Loading