1# Copyright 2018 Tom Hughes 2# Distributed under the Boost Software License, Version 1.0. 3# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) 4 5build_steps: &build_steps 6 steps: 7 - run: 8 name: Setup 9 command: | 10 PLATFORM=`uname` 11 if [ "${PLATFORM}" == "Linux" ]; then 12 sudo apt-get install -y software-properties-common apt-transport-https 13 14 # https://github.com/ilikenwf/apt-fast 15 sudo add-apt-repository -y ppa:apt-fast/stable 16 sudo apt-get update 17 sudo apt-get -y install apt-fast 18 19 sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test 20 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - 21 echo "deb https://apt.llvm.org/trusty/ llvm-toolchain-trusty-4.0 main" | sudo tee -a /etc/apt/sources.list 22 echo "deb https://apt.llvm.org/trusty/ llvm-toolchain-trusty-5.0 main" | sudo tee -a /etc/apt/sources.list 23 echo "deb https://apt.llvm.org/trusty/ llvm-toolchain-trusty-6.0 main" | sudo tee -a /etc/apt/sources.list 24 sudo apt-fast update 25 sudo apt-fast install -y $COMPILER 26 fi 27 - checkout 28 - run: 29 name: Install 30 command: | 31 BOOST_BRANCH=develop && [ "$CIRCLE_BRANCH" == "master" ] && BOOST_BRANCH=master || true 32 cd .. 33 git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root 34 cd boost-root 35 git submodule update --init tools/build 36 git submodule update --init libs/config 37 git submodule update --init tools/boostdep 38 mkdir -p libs/thread 39 cp -r $HOME/project/* libs/thread 40 python tools/boostdep/depinst/depinst.py thread 41 ./bootstrap.sh 42 ./b2 headers 43 - run: 44 name: Build 45 command: | 46 echo "using $TOOLSET : : $COMPILER : <cxxflags>-std=$CXXSTD <cxxflags>$CXXFLAGS <cxxflags>$DEFINES ;" > ~/user-config.jam 47 cd ../boost-root 48 ./b2 -d2 -j8 -l60 libs/thread/test toolset=$TOOLSET 49 50mac_build: &mac_build 51 macos: 52 xcode: "9.2.0" 53 <<: *build_steps 54 55linux_build: &linux_build 56 docker: 57 - image: circleci/buildpack-deps:trusty 58 <<: *build_steps 59 60 61version: 2 62jobs: 63 linux-g++-c++11: 64 <<: *linux_build 65 environment: 66 - TOOLSET: "gcc" 67 - COMPILER: "g++" 68 - CXXSTD: "c++11" 69 70 linux-g++-7-c++98: 71 <<: *linux_build 72 environment: 73 - TOOLSET: "gcc" 74 - COMPILER: "g++-7" 75 - CXXSTD: "c++98" 76 77 linux-g++-7-c++11: 78 <<: *linux_build 79 environment: 80 - TOOLSET: "gcc" 81 - COMPILER: "g++-7" 82 - CXXSTD: "c++11" 83 84 linux-g++-7-c++14: 85 <<: *linux_build 86 environment: 87 - TOOLSET: "gcc" 88 - COMPILER: "g++-7" 89 - CXXSTD: "c++14" 90 91 linux-g++-7-c++1z: 92 <<: *linux_build 93 environment: 94 - TOOLSET: "gcc" 95 - COMPILER: "g++-7" 96 - CXXSTD: "c++1z" 97 98 linux-clang++-4.0-c++98: 99 <<: *linux_build 100 environment: 101 - TOOLSET: "clang" 102 - COMPILER: "clang++-4.0" 103 - CXXSTD: "c++98" 104 105 linux-clang++-4.0-c++11: 106 <<: *linux_build 107 environment: 108 - TOOLSET: "clang" 109 - COMPILER: "clang++-4.0" 110 - CXXSTD: "c++11" 111 112 linux-clang++-4.0-c++14: 113 <<: *linux_build 114 environment: 115 - TOOLSET: "clang" 116 - COMPILER: "clang++-4.0" 117 - CXXSTD: "c++14" 118 119 linux-clang++-4.0-c++1z: 120 <<: *linux_build 121 environment: 122 - TOOLSET: "clang" 123 - COMPILER: "clang++-4.0" 124 - CXXSTD: "c++1z" 125 126 mac-clang++-c++98: 127 <<: *mac_build 128 environment: 129 - TOOLSET: "clang" 130 - COMPILER: "clang++" 131 - CXXSTD: "c++98" 132 - DEFINES: "-DBOOST_THREAD_TEST_TIME_MS=100" 133 134 mac-clang++-c++11: 135 <<: *mac_build 136 environment: 137 - TOOLSET: "clang" 138 - COMPILER: "clang++" 139 - CXXSTD: "c++11" 140 - CXXFLAGS: "-Wno-unusable-partial-specialization" 141 - DEFINES: "-DBOOST_THREAD_TEST_TIME_MS=100" 142 143 mac-clang++-c++14: 144 <<: *mac_build 145 environment: 146 - TOOLSET: "clang" 147 - COMPILER: "clang++" 148 - CXXSTD: "c++14" 149 - DEFINES: "-DBOOST_THREAD_TEST_TIME_MS=100" 150 151 mac-clang++-c++1z: 152 <<: *mac_build 153 environment: 154 - TOOLSET: "clang" 155 - COMPILER: "clang++" 156 - CXXSTD: "c++1z" 157 - CXXFLAGS: "-Wno-unusable-partial-specialization" 158 - DEFINES: "-DBOOST_THREAD_TEST_TIME_MS=100" 159 160workflows: 161 version: 2 162 continous: 163 jobs: 164 - linux-g++-c++11 165 - linux-g++-7-c++98 166 - linux-g++-7-c++11 167 - linux-g++-7-c++14 168 - linux-g++-7-c++1z 169 - linux-clang++-4.0-c++98 170 - linux-clang++-4.0-c++11 171 - linux-clang++-4.0-c++14 172 - linux-clang++-4.0-c++1z 173 - mac-clang++-c++98 174 - mac-clang++-c++11 175 - mac-clang++-c++14 176 - mac-clang++-c++1z 177 178