# 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 Rene Rivera 2019-2020. trigger: branches: include: - develop - master - feature/* pr: branches: include: - develop variables: AZP: 1 AZP_REPO_DIR: $(Build.Repository.LocalPath) AZP_BRANCH: $(Build.SourceBranch) AZP_BRANCH_NAME: $(Build.SourceBranchName) AZP_COMMIT: $(Build.SourceVersion) AZP_REPO: $(Build.Repository.Name) AZP_PULL_REQUEST: $(System.PullRequest.PullRequestNumber) stages: - stage: Test jobs: - job: 'Linux' strategy: matrix: GCC 9 (GNU): TOOLSET: gcc CXX: g++-9 PACKAGES: g++-9 B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=gnu' VM_IMAGE: 'ubuntu-18.04' GCC 9 (ISO): TOOLSET: gcc CXX: g++-9 PACKAGES: g++-9 B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=iso' VM_IMAGE: 'ubuntu-18.04' GCC 9: TOOLSET: gcc CXX: g++-9 PACKAGES: g++-9 VM_IMAGE: 'ubuntu-18.04' GCC 8: TOOLSET: gcc CXX: g++-8 PACKAGES: g++-8 VM_IMAGE: 'ubuntu-18.04' GCC 7: TOOLSET: gcc CXX: g++-7 PACKAGES: g++-7 VM_IMAGE: 'ubuntu-18.04' GCC 6: TOOLSET: gcc CXX: g++-6 PACKAGES: g++-6 VM_IMAGE: 'ubuntu-18.04' GCC 5: TOOLSET: gcc CXX: g++-5 PACKAGES: g++-5 VM_IMAGE: 'ubuntu-18.04' GCC 4.9: TOOLSET: gcc CXX: g++-4.9 PACKAGES: g++-4.9 VM_IMAGE: 'ubuntu-16.04' GCC 4.8: TOOLSET: gcc CXX: g++-4.8 PACKAGES: g++-4.8 VM_IMAGE: 'ubuntu-16.04' GCC 4.7: TOOLSET: gcc CXX: g++-4.7 PACKAGES: g++-4.7 VM_IMAGE: 'ubuntu-16.04' Clang 9: TOOLSET: clang CXX: clang++-9 PACKAGES: clang-9 LLVM_REPO: llvm-toolchain-xenial-9 VM_IMAGE: 'ubuntu-18.04' Clang 8: TOOLSET: clang CXX: clang++-8 PACKAGES: clang-8 LLVM_REPO: llvm-toolchain-xenial-8 VM_IMAGE: 'ubuntu-18.04' Clang 7: TOOLSET: clang CXX: clang++-7 PACKAGES: clang-7 LLVM_REPO: llvm-toolchain-xenial-7 VM_IMAGE: 'ubuntu-18.04' Clang 6: TOOLSET: clang CXX: clang++-6.0 PACKAGES: clang-6.0 LLVM_REPO: llvm-toolchain-xenial-6.0 VM_IMAGE: 'ubuntu-18.04' Clang 5: TOOLSET: clang CXX: clang++-5.0 PACKAGES: clang-5.0 LLVM_REPO: llvm-toolchain-xenial-5.0 VM_IMAGE: 'ubuntu-18.04' Clang 4: TOOLSET: clang CXX: clang++-4.0 PACKAGES: clang-4.0 LLVM_REPO: llvm-toolchain-xenial-4.0 VM_IMAGE: 'ubuntu-18.04' Clang 3.9: TOOLSET: clang CXX: clang++-3.9 PACKAGES: clang-3.9 VM_IMAGE: 'ubuntu-18.04' Clang 3.8: TOOLSET: clang CXX: clang++-3.8 PACKAGES: clang-3.8 VM_IMAGE: 'ubuntu-16.04' Clang 3.7: TOOLSET: clang CXX: clang++-3.7 PACKAGES: clang-3.7 VM_IMAGE: 'ubuntu-16.04' Clang 3.6: TOOLSET: clang CXX: clang++-3.6 PACKAGES: clang-3.6 VM_IMAGE: 'ubuntu-16.04' Clang 3.5: TOOLSET: clang CXX: clang++-3.5 PACKAGES: clang-3.5 VM_IMAGE: 'ubuntu-16.04' pool: vmImage: $(VM_IMAGE) steps: - bash: | set -e uname -a sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" if test -n "${LLVM_REPO}" ; then wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - sudo -E apt-add-repository "deb http://apt.llvm.org/xenial/ ${LLVM_REPO} main" fi sudo -E apt-get update sudo -E apt-get -yq --no-install-suggests --no-install-recommends install ${PACKAGES} displayName: 'Install CXX' - bash: | set -e pushd ${HOME} wget -nv https://github.com/boostorg/build/archive/master.tar.gz tar -zxf master.tar.gz cd build-master CXX= ./bootstrap.sh sudo ./b2 install popd displayName: 'Install B2' - bash: | set -e CXX_PATH=`which ${CXX}` echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam pushd test b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} popd displayName: Test - job: 'macOS' strategy: matrix: Xcode 11.4: TOOLSET: clang CXX: clang++ XCODE_APP: /Applications/Xcode_11.4_beta.app VM_IMAGE: 'macOS-10.15' Xcode 11.3.1: TOOLSET: clang CXX: clang++ XCODE_APP: /Applications/Xcode_11.3.1.app VM_IMAGE: 'macOS-10.15' Xcode 11.3: TOOLSET: clang CXX: clang++ XCODE_APP: /Applications/Xcode_11.3.app VM_IMAGE: 'macOS-10.15' Xcode 11.2: TOOLSET: clang CXX: clang++ XCODE_APP: /Applications/Xcode_11.2.app VM_IMAGE: 'macOS-10.15' Xcode 11.1: TOOLSET: clang CXX: clang++ XCODE_APP: /Applications/Xcode_11.1.app VM_IMAGE: 'macOS-10.15' Xcode 11.0: TOOLSET: clang CXX: clang++ XCODE_APP: /Applications/Xcode_11.app VM_IMAGE: 'macOS-10.15' Xcode 10.2.1: TOOLSET: clang CXX: clang++ XCODE_APP: /Applications/Xcode_10.2.1.app VM_IMAGE: 'macOS-10.14' Xcode 10.2: TOOLSET: clang CXX: clang++ XCODE_APP: /Applications/Xcode_10.2.app VM_IMAGE: 'macOS-10.14' Xcode 10.1: TOOLSET: clang CXX: clang++ XCODE_APP: /Applications/Xcode_10.1.app VM_IMAGE: 'macOS-10.14' Xcode 10.0: TOOLSET: clang CXX: clang++ XCODE_APP: /Applications/Xcode_10.app VM_IMAGE: 'macOS-10.14' pool: vmImage: $(VM_IMAGE) steps: - bash: | set -e uname -a sudo xcode-select -switch ${XCODE_APP} which clang++ clang++ --version displayName: 'Install CXX' - bash: | set -e pushd ${HOME} wget -nv https://github.com/boostorg/build/archive/master.tar.gz tar -zxf master.tar.gz cd build-master CXX= ./bootstrap.sh sudo ./b2 install popd displayName: 'Install B2' - bash: | set -e CXX_PATH=`which ${CXX}` echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam pushd test b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} popd displayName: Test - job: 'Windows' strategy: matrix: VS 2019: TOOLSET: msvc TOOLSET_VERSION: 14.2 B2_ARGS: address-model=32,64 cxxstd=14,latest VM_IMAGE: 'windows-2019' VS 2019 (UWP DESKTOP): TOOLSET: msvc TOOLSET_VERSION: 14.2 B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP VM_IMAGE: 'windows-2019' VS 2019 (UWP PHONE): TOOLSET: msvc TOOLSET_VERSION: 14.2 B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP VM_IMAGE: 'windows-2019' VS 2019 (UWP STORE): TOOLSET: msvc TOOLSET_VERSION: 14.2 B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PC_APP VM_IMAGE: 'windows-2019' VS 2019 (UWP SERVER): TOOLSET: msvc TOOLSET_VERSION: 14.2 B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_SERVER VM_IMAGE: 'windows-2019' VS 2019 (UWP SYSTEM): TOOLSET: msvc TOOLSET_VERSION: 14.2 B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_SYSTEM VM_IMAGE: 'windows-2019' VS 2017: TOOLSET: msvc TOOLSET_VERSION: 14.1 VM_IMAGE: 'vs2017-win2016' MinGW 8.1.0: TOOLSET: gcc VM_IMAGE: 'windows-2019' MinGW 8.1.0 (UWP DESKTOP): TOOLSET: gcc B2_ARGS: define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP VM_IMAGE: 'windows-2019' MinGW 8.1.0 (UWP STORE): TOOLSET: gcc B2_ARGS: define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PC_APP VM_IMAGE: 'windows-2019' pool: vmImage: $(VM_IMAGE) steps: - script: | cd %BUILD_SOURCESDIRECTORY%/.. curl "https://github.com/boostorg/build/archive/master.zip" -L -o b2.zip displayName: Download B2 - task: ExtractFiles@1 inputs: archiveFilePatterns: $(Build.SourcesDirectory)/../b2.zip destinationFolder: $(Build.SourcesDirectory)/.. cleanDestinationFolder: false displayName: Extract B2 - script: | echo using %TOOLSET% ^: %TOOLSET_VERSION% ^; > %HOMEDRIVE%%HOMEPATH%/user-config.jam cd %BUILD_SOURCESDIRECTORY%/../build-master cmd.exe /c bootstrap.bat displayName: Install B2 - script: | set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../build-master cd %BUILD_SOURCESDIRECTORY%/test %BUILD_SOURCESDIRECTORY%/../build-master/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS% displayName: Test