diff --git a/.ci/azp-linux-test.yml b/.ci/azp-linux-test.yml new file mode 100644 index 0000000000..a49f3afcce --- /dev/null +++ b/.ci/azp-linux-test.yml @@ -0,0 +1,41 @@ +steps: +- bash: | + set -e + uname -a + ./.ci/linux-cxx-install.sh + displayName: Install +- bash: | + set -e + cd src/engine + set PATH=${PATH};${CXX_PATH} + ./build.sh ${TOOLSET} --cxx=${CXX} + ./b2 -v + cd ../.. + displayName: Build +- bash: | + set -e + CXX_PATH=`which ${CXX}` + cd test + echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam + python test_all.py ${TEST_TOOLSET} + cd .. + displayName: Test +- bash: | + set -e + CXX_PATH=`which ${CXX}` + echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam + ./src/engine/b2 b2 warnings-as-errors=on variant=debug,release address-model=32,64 toolset=${TEST_TOOLSET} + displayName: "No Warnings" +- bash: | + set -e + CXX_PATH=`which ${CXX}` + echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam + ./bootstrap.sh ${TOOLSET} + ./b2 --prefix=$HOME/temp/.b2 install ${TEST_TOOLSET} + rm ./b2 + export PATH=$HOME/temp/.b2/bin:$PATH + cd $HOME + touch build.jam + b2 -v + b2 -n --debug-configuration + displayName: Bootstrap diff --git a/.ci/azp-macos-test.yml b/.ci/azp-macos-test.yml new file mode 100644 index 0000000000..2841b83e09 --- /dev/null +++ b/.ci/azp-macos-test.yml @@ -0,0 +1,41 @@ +steps: +- bash: | + set -e + uname -a + sudo xcode-select -switch ${XCODE_APP} + which clang++ + displayName: Install +- bash: | + set -e + cd src/engine + ./build.sh ${TOOLSET} --cxx=${CXX} + ./b2 -v + cd ../.. + displayName: Build +- bash: | + set -e + CXX_PATH=`which ${CXX}` + cd test + echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam + python test_all.py ${TEST_TOOLSET} + cd .. + displayName: Test +- bash: | + set -e + CXX_PATH=`which ${CXX}` + echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam + ./src/engine/b2 b2 warnings-as-errors=on variant=debug,release address-model=32,64 toolset=${TEST_TOOLSET} + displayName: "No Warnings" +- bash: | + set -e + CXX_PATH=`which ${CXX}` + echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam + ./bootstrap.sh ${TOOLSET} + ./b2 --prefix=$HOME/temp/.b2 install ${TEST_TOOLSET} + rm ./b2 + export PATH=$HOME/temp/.b2/bin:$PATH + cd $HOME + touch build.jam + b2 -v + b2 -n --debug-configuration + displayName: Bootstrap diff --git a/.ci/azp-windows-test.yml b/.ci/azp-windows-test.yml new file mode 100644 index 0000000000..25aaf8f837 --- /dev/null +++ b/.ci/azp-windows-test.yml @@ -0,0 +1,34 @@ +steps: +- powershell: | + cd src/engine + $env:path += ';' + $env:CXX_PATH + cmd /c build.bat $env:TOOLSET + ./b2.exe -v + cd ../.. + displayName: Build +- powershell: | + $env:HOME = $env:HOMEDRIVE + $env:HOMEPATH + cd test + echo "using" $env:TEST_TOOLSET ":" ":" $env:CXX ";" > ${env:HOME}/user-config.jam + python test_all.py $env:TEST_TOOLSET + cd .. + displayName: Test +- powershell: | + $env:HOME = $env:HOMEDRIVE + $env:HOMEPATH + $env:path += ';' + $env:CXX_PATH + echo "using" $env:TEST_TOOLSET ":" ":" $env:CXX ";" > ${env:HOME}/user-config.jam + ./src/engine/b2.exe --debug-configuration b2 warnings-as-errors=on variant=debug,release toolset=$env:TEST_TOOLSET + displayName: "No Warnings" +- powershell: | + $env:HOME = $env:HOMEDRIVE + $env:HOMEPATH + $env:path += ';' + $env:CXX_PATH + echo "using" $env:TEST_TOOLSET ":" ":" $env:CXX ";" > ${env:HOME}/user-config.jam + ./bootstrap.bat $env:TOOLSET + ./b2.exe --debug-configuration --prefix=${env:HOME}/temp/.b2 install toolset=$env:TEST_TOOLSET + Remove-Item ./b2.exe + $env:path += $env:HOME + '/temp/.b2/bin' + ';' + $env:PATH + cd $env:HOME + echo $null >> build.jam + b2 -v + b2 -n --debug-configuration + displayName: Bootstrap diff --git a/.ci/linux-cxx-install.sh b/.ci/linux-cxx-install.sh new file mode 100755 index 0000000000..c92a333882 --- /dev/null +++ b/.ci/linux-cxx-install.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# Usage: +# LLVM_OS: LLVM OS release to obtain clang binaries. Only needed for clang install. +# LLVM_VER: The LLVM toolset version to point the repo at. +# PACKAGES: Compiler packages to install. + +set -e +echo ">>>>>" +echo ">>>>> APT: REPO.." +echo ">>>>>" +sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" +if test -n "${LLVM_OS}" ; 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/${LLVM_OS}/ llvm-toolchain-${LLVM_OS}-${LLVM_VER} main" +fi +echo ">>>>>" +echo ">>>>> APT: UPDATE.." +echo ">>>>>" +sudo -E apt-get -o Acquire::Retries=3 update +echo ">>>>>" +echo ">>>>> APT: INSTALL ${PACKAGES}.." +echo ">>>>>" +sudo -E apt-get -o Acquire::Retries=3 -yq --no-install-suggests --no-install-recommends install ${PACKAGES} + +# Use, modification, and distribution are +# subject to the Boost Software License, Version 1.0. (See accompanying +# file LICENSE.txt) +# +# Copyright Rene Rivera 2020. diff --git a/.cirrus.yml b/.cirrus.yml new file mode 100644 index 0000000000..d90f76c488 --- /dev/null +++ b/.cirrus.yml @@ -0,0 +1,44 @@ +# Use, modification, and distribution are +# subject to the Boost Software License, Version 1.0. (See accompanying +# file LICENSE.txt) +# +# Copyright René Ferdinand Rivera Morell 2020. + +freebsd_task: + # All the GCC's and Clang's currently supported by FreeBSD ports. + matrix: + - { name: 'FreeBSD, GCC 11', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++11', PACKAGE: 'gcc11-devel' }, freebsd_instance: { image_family: 'freebsd-13-0-snap' } } + - { name: 'FreeBSD, GCC 10', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++10', PACKAGE: 'gcc10-devel' }, freebsd_instance: { image_family: 'freebsd-13-0-snap' } } + - { name: 'FreeBSD, GCC 9', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++9', PACKAGE: 'gcc9-devel' }, freebsd_instance: { image_family: 'freebsd-13-0-snap' } } + - { name: 'FreeBSD, GCC 8', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++8', PACKAGE: 'gcc8-devel' }, freebsd_instance: { image_family: 'freebsd-13-0-snap' } } + - { name: 'FreeBSD, GCC 7', env: { TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: 'g++7', PACKAGE: 'gcc7' }, freebsd_instance: { image_family: 'freebsd-13-0-snap' } } + - { name: 'FreeBSD, Clang 10', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++10', PACKAGE: 'llvm10' }, freebsd_instance: { image_family: 'freebsd-13-0-snap' } } + - { name: 'FreeBSD, Clang 9', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++90', PACKAGE: 'llvm90' }, freebsd_instance: { image_family: 'freebsd-13-0-snap' } } + - { name: 'FreeBSD, Clang 8', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++80', PACKAGE: 'llvm80' }, freebsd_instance: { image_family: 'freebsd-13-0-snap' } } + - { name: 'FreeBSD, Clang 7', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++70', PACKAGE: 'llvm70' }, freebsd_instance: { image_family: 'freebsd-13-0-snap' } } + - { name: 'FreeBSD, Clang 6', env: { TOOLSET: clang, TEST_TOOLSET: clang, CXX: 'clang++60', PACKAGE: 'llvm60' }, freebsd_instance: { image_family: 'freebsd-13-0-snap' } } + # To install with ports we need to initialize the package manager. To avoid + # confirmation prompts we need to set an env var. + install_script: [ + "uname -a", + "env ASSUME_ALWAYS_YES=YES pkg bootstrap", + "env ASSUME_ALWAYS_YES=YES pkg install ${PACKAGE}" + ] + # Build the engine. + build_script: [ + "set -e", + "cd src/engine", + "set PATH=${PATH};${CXX_PATH}", + "./build.sh ${TOOLSET}", + "./b2 -v", + "cd ../.." + ] + # Run the core tests. + test_script: [ + "set -e", + "CXX_PATH=`which ${CXX}`", + "cd test", + "echo \"using ${TEST_TOOLSET} : : ${CXX_PATH} ;\" > ${HOME}/user-config.jam", + "python2 test_all.py ${TEST_TOOLSET}", + "cd ..", + ] diff --git a/.vscode/launch.json b/.vscode/launch.json index 608af29b10..227e0c62d2 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -16,5 +16,43 @@ "externalConsole": true, "MIMode": "lldb" }, + { + "name": "(gdb) Launch: example/hello", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/.build/clang-linux-10.0.0/debug/cxxstd-11-iso/b2", + "args": ["-n", "toolset=clang"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}/example/hello", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "(gdb) Launch: home/tmp/prebuild", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/.build/gcc-10.1.0/debug/cxxstd-11-iso/b2", + "args": ["-n","-sBOOST_BUILD_PATH=/home/grafik/Sync/DevRoots/B2/mainline/test/..","debug","release","-j1","-d2","toolset=gcc"], + "stopAtEntry": false, + "cwd": "/home/grafik/tmp/prebuilt-1", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, ] } \ No newline at end of file diff --git a/README.adoc b/README.adoc index 2ca949fcb3..35650f2a47 100644 --- a/README.adoc +++ b/README.adoc @@ -14,9 +14,9 @@ file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Continuously tested on: -* Linux Clang 3.5, 3.6, 3.7, 3.8, 3.9, 4, 5, 6, 7, 8 -* Linux GCC 4.7, 4.8, 4.9, 5, 6, 7, 8, 9 -* macOS Xcode 8.3.3, 9.0, 9.0.1, 9.1, 9.2, 9.3, 9.3.1, 9.4, 9.4.1, 10.0, 10.1, 10.2, 10.2.1, 11.0, 11.1, 11.2, 11.3, 11.3.1 +* Linux Clang 3.5, 3.6, 3.7, 3.8, 3.9, 4, 5, 6, 7, 8, 9, 10 +* Linux GCC 4.7, 4.8, 4.9, 5, 6, 7, 8, 9, 10 +* macOS Xcode 10.0, 10.1, 10.2, 10.2.1, 11.2.1, 11.3, 11.3.1, 11.4.1, 11.5, 11.6, 11.7 * Windows MinGW 8.1.0 * Windows VS 2013, 2015, 2017, 2019 diff --git a/appveyor.yml b/appveyor.yml index 4e175514b6..078e5fa667 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -22,6 +22,12 @@ environment: TOOLSET: vc12 TEST_TOOLSET: msvc APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + # - job_name: 'Cygwin 3.1.7, Test' + # job_group: 'Test' + # TOOLSET: + # TEST_TOOLSET: gcc + # APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 + # CXX_PATH: C:/cygwin/bin build_script: - cmd: | @@ -55,7 +61,7 @@ for: echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> NO WARNINGS" echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" - src\engine\b2.exe --debug-configuration b2 warnings-as-errors=on toolset=%TEST_TOOLSET% + src\engine\b2.exe --debug-configuration b2 warnings-as-errors=on variant=debug,release address-model=32,64 toolset=%TEST_TOOLSET% - cmd: | echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> BOOTSTRAP" diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fc67c0a7c5..3594abd433 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,7 +2,7 @@ # 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 2015-2019. +# Copyright Rene Rivera 2015-2020. trigger: branches: @@ -13,6 +13,7 @@ trigger: paths: exclude: - appveyor.yml + - .cirrus.yml pr: branches: include: @@ -23,429 +24,193 @@ pr: stages: -- stage: Test +- stage: Core jobs: - - job: 'Linux' - pool: - vmImage: 'ubuntu-16.04' + - job: 'Linux_Default_Build' strategy: matrix: - GCC 9: - TOOLSET: gcc - TEST_TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - GCC 8: - TOOLSET: gcc - TEST_TOOLSET: gcc - CXX: g++-8 - PACKAGES: g++-8 - GCC 7: - TOOLSET: gcc - TEST_TOOLSET: gcc - CXX: g++-7 - PACKAGES: g++-7 - GCC 6: - TOOLSET: gcc - TEST_TOOLSET: gcc - CXX: g++-6 - PACKAGES: g++-6 - GCC 5: - TOOLSET: gcc - TEST_TOOLSET: gcc - CXX: g++-5 - PACKAGES: g++-5 - GCC 4.9: - TOOLSET: gcc - TEST_TOOLSET: gcc - CXX: g++-4.9 - PACKAGES: g++-4.9 - GCC 4.8: - TOOLSET: gcc - TEST_TOOLSET: gcc - CXX: g++-4.8 - PACKAGES: g++-4.8 - GCC 4.7: - TOOLSET: gcc - TEST_TOOLSET: gcc - CXX: g++-4.7 - PACKAGES: g++-4.7 - Clang 9: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++-9 - PACKAGES: clang-9 - LLVM_REPO: llvm-toolchain-xenial-9 - Clang 8: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++-8 - PACKAGES: clang-8 - LLVM_REPO: llvm-toolchain-xenial-8 - Clang 7: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++-7 - PACKAGES: clang-7 - LLVM_REPO: llvm-toolchain-xenial-7 - Clang 6: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++-6.0 - PACKAGES: clang-6.0 - LLVM_REPO: llvm-toolchain-xenial-6.0 - Clang 5: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++-5.0 - PACKAGES: clang-5.0 - LLVM_REPO: llvm-toolchain-xenial-5.0 - Clang 4: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++-4.0 - PACKAGES: clang-4.0 - LLVM_REPO: llvm-toolchain-xenial-4.0 - Clang 3.9: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++-3.9 - PACKAGES: clang-3.9 - Clang 3.8: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++-3.8 - PACKAGES: clang-3.8 - Clang 3.7: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++-3.7 - PACKAGES: clang-3.7 - Clang 3.6: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++-3.6 - PACKAGES: clang-3.6 - Clang 3.5: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++-3.5 - PACKAGES: clang-3.5 + Clang 10: {PACKAGES: clang-10, LLVM_OS: bionic, LLVM_VER: 10, VM_IMAGE: 'ubuntu-18.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 -o Acquire::Retries=3 update - sudo -E apt-get -o Acquire::Retries=3 -yq --no-install-suggests --no-install-recommends install ${PACKAGES} + set -e + uname -a + ./.ci/linux-cxx-install.sh displayName: Install - bash: | - set -e - cd src/engine - set PATH=${PATH};${CXX_PATH} - ./build.sh ${TOOLSET} - ./b2 -v - cd ../.. + set -e + ./src/engine/build.sh --verbose displayName: Build + + - job: 'Linux_Clang_Only_Build' + strategy: + matrix: + Clang 10: {PACKAGES: clang-10, LLVM_OS: bionic, LLVM_VER: 10, VM_IMAGE: 'ubuntu-18.04'} + pool: + vmImage: $(VM_IMAGE) + steps: - bash: | - set -e - CXX_PATH=`which ${CXX}` - cd test - echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam - python test_all.py ${TEST_TOOLSET} - cd .. - displayName: Test - - bash: | - set -e - CXX_PATH=`which ${CXX}` - echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam - ./src/engine/b2 b2 warnings-as-errors=on toolset=${TEST_TOOLSET} - displayName: "No Warnings" + set -e + uname -a + ./.ci/linux-cxx-install.sh + sudo apt remove gcc g++ + displayName: Install - bash: | - set -e - CXX_PATH=`which ${CXX}` - echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam - ./bootstrap.sh ${TOOLSET} - ./b2 --prefix=./.b2 install ${TEST_TOOLSET} - displayName: Bootstrap + set -e + ./src/engine/build.sh --verbose + displayName: Build + + - job: 'Linux_Latest' + strategy: + matrix: + GCC 10: {TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-18.04'} + pool: + vmImage: $(VM_IMAGE) + steps: + - template: .ci/azp-linux-test.yml + + - job: 'Windows_Latest' + strategy: + matrix: + VS 2019: {TOOLSET: vc142, TEST_TOOLSET: msvc, VM_IMAGE: 'windows-2019'} + pool: + vmImage: $(VM_IMAGE) + steps: + - template: .ci/azp-windows-test.yml + + - job: 'macOS' + strategy: + matrix: + Xcode 12.3: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.3.app, VM_IMAGE: 'macOS-10.15'} + pool: + vmImage: $(VM_IMAGE) + steps: + - template: .ci/azp-macos-test.yml + +- stage: Compilers + dependsOn: [Core] + jobs: + + - job: 'Linux' + strategy: + matrix: + GCC 9: {TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: g++-9, PACKAGES: g++-9, VM_IMAGE: 'ubuntu-18.04'} + GCC 8: {TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: g++-8, PACKAGES: g++-8, VM_IMAGE: 'ubuntu-18.04'} + GCC 7: {TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: g++-7, PACKAGES: g++-7, VM_IMAGE: 'ubuntu-18.04'} + GCC 6: {TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: g++-6, PACKAGES: g++-6, VM_IMAGE: 'ubuntu-18.04'} + GCC 5: {TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: g++-5, PACKAGES: g++-5, VM_IMAGE: 'ubuntu-18.04'} + GCC 4.9: {TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: g++-4.9, PACKAGES: g++-4.9, VM_IMAGE: 'ubuntu-16.04'} + GCC 4.8: {TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: g++-4.8, PACKAGES: g++-4.8, VM_IMAGE: 'ubuntu-16.04'} + GCC 4.7: {TOOLSET: gcc, TEST_TOOLSET: gcc, CXX: g++-4.7, PACKAGES: g++-4.7, VM_IMAGE: 'ubuntu-16.04'} + Clang 10: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-10, PACKAGES: clang-10, LLVM_OS: bionic, LLVM_VER: 10, VM_IMAGE: 'ubuntu-18.04'} + Clang 9: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-9, PACKAGES: clang-9, LLVM_OS: bionic, LLVM_VER: 9, VM_IMAGE: 'ubuntu-18.04'} + Clang 8: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-8, PACKAGES: clang-8, LLVM_OS: bionic, LLVM_VER: 8, VM_IMAGE: 'ubuntu-18.04'} + Clang 7: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-7, PACKAGES: clang-7, LLVM_OS: bionic, LLVM_VER: 7, VM_IMAGE: 'ubuntu-18.04'} + Clang 6: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-6.0, PACKAGES: clang-6.0, LLVM_OS: bionic, LLVM_VER: 6.0, VM_IMAGE: 'ubuntu-18.04'} + Clang 5: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-5.0, PACKAGES: clang-5.0, LLVM_OS: bionic, LLVM_VER: 5.0, VM_IMAGE: 'ubuntu-18.04'} + Clang 4: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-4.0, PACKAGES: clang-4.0, LLVM_OS: xenial, LLVM_VER: 4.0, VM_IMAGE: 'ubuntu-16.04'} + Clang 3.9: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-3.9, PACKAGES: clang-3.9, VM_IMAGE: 'ubuntu-16.04'} + Clang 3.8: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-3.8, PACKAGES: clang-3.8, VM_IMAGE: 'ubuntu-16.04'} + Clang 3.7: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-3.7, PACKAGES: clang-3.7, VM_IMAGE: 'ubuntu-16.04'} + Clang 3.6: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-3.6, PACKAGES: clang-3.6, VM_IMAGE: 'ubuntu-16.04'} + Clang 3.5: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++-3.5, PACKAGES: clang-3.5, VM_IMAGE: 'ubuntu-16.04'} + pool: + vmImage: $(VM_IMAGE) + steps: + - template: .ci/azp-linux-test.yml - job: 'Windows' strategy: matrix: - VS 2019: - TOOLSET: vc142 - TEST_TOOLSET: msvc - VM_IMAGE: 'windows-2019' - VS 2017: - TOOLSET: vc141 - TEST_TOOLSET: msvc - VM_IMAGE: 'vs2017-win2016' - MinGW 8.1.0: - TOOLSET: mingw - TEST_TOOLSET: gcc - VM_IMAGE: 'vs2017-win2016' + VS 2017: {TOOLSET: vc141, TEST_TOOLSET: msvc, VM_IMAGE: 'vs2017-win2016'} + MinGW 8.1.0: {TOOLSET: mingw, TEST_TOOLSET: gcc, VM_IMAGE: 'vs2017-win2016'} pool: vmImage: $(VM_IMAGE) steps: - - powershell: | - cd src/engine - $env:path += ';' + $env:CXX_PATH - cmd /c build.bat $env:TOOLSET - ./b2.exe -v - cd ../.. - displayName: Build - - powershell: | - $env:HOME = $env:HOMEDRIVE + $env:HOMEPATH - cd test - echo "using" $env:TEST_TOOLSET ":" ":" $env:CXX ";" > $env:HOME/user-config.jam - python test_all.py $env:TEST_TOOLSET - cd .. - displayName: Test - - powershell: | - $env:HOME = $env:HOMEDRIVE + $env:HOMEPATH - $env:path += ';' + $env:CXX_PATH - echo "using" $env:TEST_TOOLSET ":" ":" $env:CXX ";" > $env:HOME/user-config.jam - ./src/engine/b2.exe --debug-configuration b2 warnings-as-errors=on toolset=$env:TEST_TOOLSET - displayName: "No Warnings" - - powershell: | - $env:HOME = $env:HOMEDRIVE + $env:HOMEPATH - $env:path += ';' + $env:CXX_PATH - echo "using" $env:TEST_TOOLSET ":" ":" $env:CXX ";" > $env:HOME/user-config.jam - ./bootstrap.bat $env:TOOLSET - ./b2.exe --debug-configuration --prefix=./.b2 install toolset=$env:TEST_TOOLSET - displayName: Bootstrap + - template: .ci/azp-windows-test.yml - job: 'macOS' strategy: matrix: - Xcode 11.4: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.4_beta.app - VM_IMAGE: 'macOS-10.15' - Xcode 11.3.1: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.1.app - VM_IMAGE: 'macOS-10.15' - Xcode 11.3: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.app - VM_IMAGE: 'macOS-10.15' - Xcode 11.2: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.2.app - VM_IMAGE: 'macOS-10.15' - Xcode 11.1: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.1.app - VM_IMAGE: 'macOS-10.15' - Xcode 11.0: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.app - VM_IMAGE: 'macOS-10.15' - Xcode 10.2.1: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_10.2.1.app - VM_IMAGE: 'macOS-10.14' - Xcode 10.2: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_10.2.app - VM_IMAGE: 'macOS-10.14' - Xcode 10.1: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_10.1.app - VM_IMAGE: 'macOS-10.14' - Xcode 10.0: - TOOLSET: clang - TEST_TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_10.app - VM_IMAGE: 'macOS-10.14' + Xcode 12.2: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.2.app, VM_IMAGE: 'macOS-10.15'} + Xcode 12.1.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.1.1.app, VM_IMAGE: 'macOS-10.15'} + Xcode 12.0.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.0.1.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.7: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.6: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.6.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.5: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.5.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.4.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.4.1.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.3.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.3.1.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.3: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.3.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.2.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.2.1.app, VM_IMAGE: 'macOS-10.15'} + Xcode 10.2.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_10.2.1.app, VM_IMAGE: 'macOS-10.14'} + Xcode 10.2: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_10.2.app, VM_IMAGE: 'macOS-10.14'} + Xcode 10.1: {TOOLSET: clang, TEST_TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_10.1.app, VM_IMAGE: 'macOS-10.14'} + Xcode 10.0: {TOOLSET: clang, TEST_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++ - displayName: Install - - bash: | - set -e - cd src/engine - ./build.sh ${TOOLSET} - ./b2 -v - cd ../.. - displayName: Build - - bash: | - set -e - CXX_PATH=`which ${CXX}` - cd test - echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam - python test_all.py ${TEST_TOOLSET} - cd .. - displayName: Test - - bash: | - set -e - CXX_PATH=`which ${CXX}` - echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam - ./src/engine/b2 b2 warnings-as-errors=on toolset=${TEST_TOOLSET} - displayName: "No Warnings" - - bash: | - set -e - CXX_PATH=`which ${CXX}` - echo "using ${TEST_TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam - ./bootstrap.sh ${TOOLSET} - ./b2 --prefix=./.b2 install ${TEST_TOOLSET} - displayName: Bootstrap + - template: .ci/azp-macos-test.yml -- stage: Boost +- stage: Boost_Dev + dependsOn: [Core] jobs: - - job: 'Release_Linux' - displayName: 'Release Linux' + - job: 'Dev_Linux' + displayName: 'Dev Linux' pool: vmImage: 'ubuntu-latest' strategy: matrix: - 1.72.0 .. GCC 9: - BOOST_VERSION: 1.72.0 - BOOST_VERSION_U: 1_72_0 - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - 1.71.0 .. GCC 9: - BOOST_VERSION: 1.71.0 - BOOST_VERSION_U: 1_71_0 - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - 1.70.0 .. GCC 9: - BOOST_VERSION: 1.70.0 - BOOST_VERSION_U: 1_70_0 - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - 1.69.0 .. GCC 9: - BOOST_VERSION: 1.69.0 - BOOST_VERSION_U: 1_69_0 - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - 1.68.0 .. GCC 9: - BOOST_VERSION: 1.68.0 - BOOST_VERSION_U: 1_68_0 - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - 1.67.0 .. GCC 9: - BOOST_VERSION: 1.67.0 - BOOST_VERSION_U: 1_67_0 - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - 1.66.0 .. GCC 9: - BOOST_VERSION: 1.66.0 - BOOST_VERSION_U: 1_66_0 - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 + Master .. GCC 10: {BOOST_BRANCH: master, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} + Master .. Clang 10: {BOOST_BRANCH: master, TOOLSET: clang, CXX: clang++-10, PACKAGES: clang-10, LLVM_OS: bionic, LLVM_VER: 10} + Develop .. GCC 10: {BOOST_BRANCH: develop, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} + Develop .. Clang 10: {BOOST_BRANCH: develop, TOOLSET: clang, CXX: clang++-10, PACKAGES: clang-10, LLVM_OS: bionic, LLVM_VER: 10} 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 -o Acquire::Retries=3 update - sudo -E apt-get -o Acquire::Retries=3 -yq --no-install-suggests --no-install-recommends install ${PACKAGES} + set -e + uname -a + ./.ci/linux-cxx-install.sh displayName: Install - bash: | - set -e - cd src/engine - ./build.sh ${TOOLSET} - ./b2 -v + set -e + cd src/engine + ./build.sh ${TOOLSET} --cxx=${CXX} + ./b2 -v displayName: Build - bash: | - set -e - pushd ${HOME} - git clone -b boost-${BOOST_VERSION} --single-branch --recurse-submodules https://github.com/boostorg/boost.git boost_${BOOST_VERSION_U} - cd boost_${BOOST_VERSION_U} - CXX_PATH=`which ${CXX}` - echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam - "${BUILD_SOURCESDIRECTORY}/src/engine/b2" "--boost-build=${BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=${TOOLSET} install - popd + set -e + pushd ${HOME} + git clone --recursive https://github.com/boostorg/boost.git + cd boost + git checkout ${BOOST_BRANCH} + CXX_PATH=`which ${CXX}` + echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam + "${BUILD_SOURCESDIRECTORY}/src/engine/b2" "--boost-build=${BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=${TOOLSET} install + popd displayName: Test - - job: 'Dev_Linux' - displayName: 'Dev Linux' + - job: 'Dev_macOS' + displayName: 'Dev macOS' pool: - vmImage: 'ubuntu-latest' + vmImage: 'macOS-latest' strategy: matrix: - Master .. GCC 9: - BOOST_BRANCH: master - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - Master .. Clang 8: - BOOST_BRANCH: master - TOOLSET: clang - CXX: clang++-8 - PACKAGES: clang-8 - LLVM_REPO: llvm-toolchain-xenial-8 - Develop .. GCC 9: - BOOST_BRANCH: develop - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - Develop .. Clang 8: - BOOST_BRANCH: develop - TOOLSET: clang - CXX: clang++-8 - PACKAGES: clang-8 - LLVM_REPO: llvm-toolchain-xenial-8 + Master .. Xcode 11.7: {BOOST_BRANCH: master, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} + Develop .. Xcode 11.7: {BOOST_BRANCH: develop, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} 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 -o Acquire::Retries=3 update - sudo -E apt-get -o Acquire::Retries=3 -yq --no-install-suggests --no-install-recommends install ${PACKAGES} + set -e + uname -a + sudo xcode-select -switch ${XCODE_APP} + which clang++ displayName: Install - bash: | - set -e - cd src/engine - ./build.sh ${TOOLSET} - ./b2 -v + set -e + cd src/engine + ./build.sh ${TOOLSET} --cxx=${CXX} + ./b2 -v displayName: Build - bash: | set -e @@ -459,65 +224,65 @@ stages: popd displayName: Test - - job: 'Release_macOS' - displayName: 'Release macOS' + - job: 'Dev_Windows' + displayName: 'Dev Windows' pool: - vmImage: 'macOS-latest' + vmImage: 'windows-latest' + strategy: + matrix: + Master .. VS 2019: {BOOST_BRANCH: master, TOOLSET: vc142} + Develop .. VS 2019: {BOOST_BRANCH: develop, TOOLSET: vc142} + steps: + - powershell: | + cd src/engine + $env:path += ';' + ${env:CXX_PATH} + cmd /c build.bat ${env:TOOLSET} + ./b2.exe -v + cd ../.. + displayName: Build + - powershell: | + $env:HOME = "$env:HOMEDRIVE" + "$env:HOMEPATH" + cd "${env:HOME}" + git clone --recursive https://github.com/boostorg/boost.git + cd boost + $OriginalErrorActionPreference = $ErrorActionPreference + $ErrorActionPreference= 'silentlycontinue' + git checkout "${env:BOOST_BRANCH}" + $ErrorActionPreference = $OriginalErrorActionPreference + echo "using" "msvc" ";" > "${env:HOME}/user-config.jam" + & "${env:BUILD_SOURCESDIRECTORY}\src\engine\b2.exe" "--boost-build=${env:BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=msvc install + displayName: Test + +- stage: Boost_Release + dependsOn: [Boost_Dev] + jobs: + + - job: 'Release_Linux' + displayName: 'Release Linux' + pool: + vmImage: 'ubuntu-latest' strategy: matrix: - 1.72.0 .. Xcode 11.3.1: - BOOST_VERSION: 1.72.0 - BOOST_VERSION_U: 1_72_0 - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.1.app - 1.71.0 .. Xcode 11.3.1: - BOOST_VERSION: 1.71.0 - BOOST_VERSION_U: 1_71_0 - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.1.app - 1.70.0 .. Xcode 11.3.1: - BOOST_VERSION: 1.70.0 - BOOST_VERSION_U: 1_70_0 - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.1.app - 1.69.0 .. Xcode 11.3.1: - BOOST_VERSION: 1.69.0 - BOOST_VERSION_U: 1_69_0 - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.1.app - 1.68.0 .. Xcode 11.3.1: - BOOST_VERSION: 1.68.0 - BOOST_VERSION_U: 1_68_0 - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.2.app - 1.67.0 .. Xcode 11.3.1: - BOOST_VERSION: 1.67.0 - BOOST_VERSION_U: 1_67_0 - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.1.app - 1.66.0 .. Xcode 11.3.1: - BOOST_VERSION: 1.66.0 - BOOST_VERSION_U: 1_66_0 - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.1.app + 1.75.0 .. GCC 10: {BOOST_VERSION: 1.75.0, BOOST_VERSION_U: 1_75_0, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} + 1.74.0 .. GCC 10: {BOOST_VERSION: 1.74.0, BOOST_VERSION_U: 1_74_0, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} + 1.73.0 .. GCC 10: {BOOST_VERSION: 1.73.0, BOOST_VERSION_U: 1_73_0, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} + 1.72.0 .. GCC 10: {BOOST_VERSION: 1.72.0, BOOST_VERSION_U: 1_72_0, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} + 1.71.0 .. GCC 10: {BOOST_VERSION: 1.71.0, BOOST_VERSION_U: 1_71_0, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} + 1.70.0 .. GCC 10: {BOOST_VERSION: 1.70.0, BOOST_VERSION_U: 1_70_0, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} + 1.69.0 .. GCC 10: {BOOST_VERSION: 1.69.0, BOOST_VERSION_U: 1_69_0, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} + 1.68.0 .. GCC 10: {BOOST_VERSION: 1.68.0, BOOST_VERSION_U: 1_68_0, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} + 1.67.0 .. GCC 10: {BOOST_VERSION: 1.67.0, BOOST_VERSION_U: 1_67_0, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} + 1.66.0 .. GCC 10: {BOOST_VERSION: 1.66.0, BOOST_VERSION_U: 1_66_0, TOOLSET: gcc, CXX: g++-10, PACKAGES: g++-10} steps: - bash: | set -e uname -a - sudo xcode-select -switch ${XCODE_APP} - which clang++ + ./.ci/linux-cxx-install.sh displayName: Install - bash: | set -e cd src/engine - ./build.sh ${TOOLSET} + ./build.sh ${TOOLSET} --cxx=${CXX} ./b2 -v displayName: Build - bash: | @@ -531,22 +296,22 @@ stages: popd displayName: Test - - job: 'Dev_macOS' - displayName: 'Dev macOS' + - job: 'Release_macOS' + displayName: 'Release macOS' pool: vmImage: 'macOS-latest' strategy: matrix: - Master .. Xcode 11.3.1: - BOOST_BRANCH: master - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.1.app - Develop .. Xcode 11.3.1: - BOOST_BRANCH: develop - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.1.app + 1.75.0 .. Xcode 11.7: {BOOST_VERSION: 1.75.0, BOOST_VERSION_U: 1_75_0, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} + 1.74.0 .. Xcode 11.7: {BOOST_VERSION: 1.74.0, BOOST_VERSION_U: 1_74_0, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} + 1.73.0 .. Xcode 11.7: {BOOST_VERSION: 1.73.0, BOOST_VERSION_U: 1_73_0, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} + 1.72.0 .. Xcode 11.7: {BOOST_VERSION: 1.72.0, BOOST_VERSION_U: 1_72_0, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} + 1.71.0 .. Xcode 11.7: {BOOST_VERSION: 1.71.0, BOOST_VERSION_U: 1_71_0, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} + 1.70.0 .. Xcode 11.7: {BOOST_VERSION: 1.70.0, BOOST_VERSION_U: 1_70_0, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} + 1.69.0 .. Xcode 11.7: {BOOST_VERSION: 1.69.0, BOOST_VERSION_U: 1_69_0, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} + 1.68.0 .. Xcode 11.7: {BOOST_VERSION: 1.68.0, BOOST_VERSION_U: 1_68_0, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} + 1.67.0 .. Xcode 11.7: {BOOST_VERSION: 1.67.0, BOOST_VERSION_U: 1_67_0, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} + 1.66.0 .. Xcode 11.7: {BOOST_VERSION: 1.66.0, BOOST_VERSION_U: 1_66_0, TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app} steps: - bash: | set -e @@ -557,15 +322,14 @@ stages: - bash: | set -e cd src/engine - ./build.sh ${TOOLSET} + ./build.sh ${TOOLSET} --cxx=${CXX} ./b2 -v displayName: Build - bash: | set -e pushd ${HOME} - git clone --recursive https://github.com/boostorg/boost.git - cd boost - git checkout ${BOOST_BRANCH} + git clone -b boost-${BOOST_VERSION} --single-branch --recurse-submodules https://github.com/boostorg/boost.git boost_${BOOST_VERSION_U} + cd boost_${BOOST_VERSION_U} CXX_PATH=`which ${CXX}` echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam "${BUILD_SOURCESDIRECTORY}/src/engine/b2" "--boost-build=${BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=${TOOLSET} install @@ -578,38 +342,16 @@ stages: vmImage: 'windows-latest' strategy: matrix: - 1.73.0 .. VS 2019: - BOOST_VERSION: 1.73.0 - BOOST_VERSION_U: 1_73_0 - TOOLSET: vc142 - 1.72.0 .. VS 2019: - BOOST_VERSION: 1.72.0 - BOOST_VERSION_U: 1_72_0 - TOOLSET: vc142 - 1.71.0 .. VS 2019: - BOOST_VERSION: 1.71.0 - BOOST_VERSION_U: 1_71_0 - TOOLSET: vc142 - 1.70.0 .. VS 2019: - BOOST_VERSION: 1.70.0 - BOOST_VERSION_U: 1_70_0 - TOOLSET: vc142 - 1.69.0 .. VS 2019: - BOOST_VERSION: 1.69.0 - BOOST_VERSION_U: 1_69_0 - TOOLSET: vc142 - 1.68.0 .. VS 2019: - BOOST_VERSION: 1.68.0 - BOOST_VERSION_U: 1_68_0 - TOOLSET: vc142 - 1.67.0 .. VS 2019: - BOOST_VERSION: 1.67.0 - BOOST_VERSION_U: 1_67_0 - TOOLSET: vc142 - 1.66.0 .. VS 2019: - BOOST_VERSION: 1.66.0 - BOOST_VERSION_U: 1_66_0 - TOOLSET: vc142 + 1.75.0 .. VS 2019: {BOOST_VERSION: 1.75.0, BOOST_VERSION_U: 1_75_0, TOOLSET: vc142} + 1.74.0 .. VS 2019: {BOOST_VERSION: 1.74.0, BOOST_VERSION_U: 1_74_0, TOOLSET: vc142} + 1.73.0 .. VS 2019: {BOOST_VERSION: 1.73.0, BOOST_VERSION_U: 1_73_0, TOOLSET: vc142} + 1.72.0 .. VS 2019: {BOOST_VERSION: 1.72.0, BOOST_VERSION_U: 1_72_0, TOOLSET: vc142} + 1.71.0 .. VS 2019: {BOOST_VERSION: 1.71.0, BOOST_VERSION_U: 1_71_0, TOOLSET: vc142} + 1.70.0 .. VS 2019: {BOOST_VERSION: 1.70.0, BOOST_VERSION_U: 1_70_0, TOOLSET: vc142} + 1.69.0 .. VS 2019: {BOOST_VERSION: 1.69.0, BOOST_VERSION_U: 1_69_0, TOOLSET: vc142} + 1.68.0 .. VS 2019: {BOOST_VERSION: 1.68.0, BOOST_VERSION_U: 1_68_0, TOOLSET: vc142} + 1.67.0 .. VS 2019: {BOOST_VERSION: 1.67.0, BOOST_VERSION_U: 1_67_0, TOOLSET: vc142} + 1.66.0 .. VS 2019: {BOOST_VERSION: 1.66.0, BOOST_VERSION_U: 1_66_0, TOOLSET: vc142} steps: - powershell: | cd src/engine @@ -627,51 +369,19 @@ stages: & "${env:BUILD_SOURCESDIRECTORY}\src\engine\b2.exe" "--boost-build=${env:BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=msvc install displayName: Test - - job: 'Dev_Windows' - displayName: 'Dev Windows' - pool: - vmImage: 'windows-latest' - strategy: - matrix: - Master .. VS 2019: - BOOST_BRANCH: master - TOOLSET: vc142 - Develop .. VS 2019: - BOOST_BRANCH: develop - TOOLSET: vc142 - steps: - - powershell: | - cd src/engine - $env:path += ';' + ${env:CXX_PATH} - cmd /c build.bat ${env:TOOLSET} - ./b2.exe -v - cd ../.. - displayName: Build - - powershell: | - $env:HOME = "$env:HOMEDRIVE" + "$env:HOMEPATH" - cd "${env:HOME}" - git clone --recursive https://github.com/boostorg/boost.git - cd boost - $OriginalErrorActionPreference = $ErrorActionPreference - $ErrorActionPreference= 'silentlycontinue' - git checkout "${env:BOOST_BRANCH}" - $ErrorActionPreference = $OriginalErrorActionPreference - echo "using" "msvc" ";" > "${env:HOME}/user-config.jam" - & "${env:BUILD_SOURCESDIRECTORY}\src\engine\b2.exe" "--boost-build=${env:BUILD_SOURCESDIRECTORY}/src" --debug-configuration --build-type=complete --layout=versioned -n -d1 toolset=msvc install - displayName: Test - -- stage: WebsiteUpdate +- stage: Website_Update + dependsOn: [Core] displayName: 'Website Update' condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop') jobs: - job: Documentation pool: - vmImage: 'ubuntu-16.04' + vmImage: 'ubuntu-latest' steps: - task: UsePythonVersion@0 inputs: - versionSpec: '2.x' + versionSpec: '3.x' - task: UseRubyVersion@0 - bash: | pip install --user Pygments diff --git a/bootstrap.sh b/bootstrap.sh index 37bc9502f6..b0b22f2e95 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -10,7 +10,7 @@ # Build b2 echo "Building the B2 engine.." pwd=`pwd` -( cd "./src/engine" && ./build.sh "$*" ) +"${pwd}/src/engine/build.sh" "$*" if [ $? -ne 0 ]; then echo echo "Failed to build the B2 engine." 1>&2 diff --git a/doc/jamfile.jam b/doc/jamfile.jam index 2583d3f02a..579650ca58 100644 --- a/doc/jamfile.jam +++ b/doc/jamfile.jam @@ -35,6 +35,7 @@ project b2doc ; path-constant PYGMENTS_DIR : src/pygments ; +path-constant STYLES_DIR : src/styles ; doc-dir = [ MATCH "--doc-dir=(.*)" : [ modules.peek : ARGV ] ] ; doc-dir ?= html ; @@ -56,12 +57,28 @@ html index : src/standalone.adoc : --trace --verbose $(PYGMENTS_DIR)/pygments_init.rb + # "-a stylesheet=amber.css" + # "-a stylesdir=$(STYLES_DIR)" + # linkcss ; explicit index ; install html : index : $(doc-dir) website-html ; explicit html ; +make index.html : : @make_redir_html : .. ; +REDIR_HTML = " + +Automatic redirection failed, please go to doc/html/index.html. + + +" ; +actions make_redir_html +{ + echo @($(<):O=F:E=$(REDIR_HTML)) +} +explicit index.html ; + alias standalone-html : html ; if $(website) @@ -117,5 +134,5 @@ actions website-publish alias boostdoc ; explicit boostdoc ; -alias boostrelease : standalone-html ; +alias boostrelease : standalone-html index.html ; explicit boostrelease ; diff --git a/doc/src/bjam.adoc b/doc/src/bjam.adoc index 2404c20dbc..5505f05dd0 100644 --- a/doc/src/bjam.adoc +++ b/doc/src/bjam.adoc @@ -59,209 +59,179 @@ The supported toolsets, and whether they are auto-detected, are: |=== |Script |Platform |Toolset |Detection and Notes -|`build.bat` -|Windows NT, 2000, and XP -|http://www.codegear.com/downloads/free/cppbuilder[`borland`], -http://www.borland.com/[Borland] {CPP}Builder (BCC 5.5) +h|`build.bat` 3+h|Windows + +| | |`vc142` a| -* Common install location: `C:\Borland\BCC55` -* `BCC32.EXE` in `PATH` +Microsoft Visual Studio {CPP} 2019 -| | |http://www.comeaucomputing.com/[`como`], Comeau Computing C/{CPP} | +* Uses `vswhere` utility. -| | |http://gcc.gnu.org/[`gcc`], GNU GCC | +| | |`vc141` +a| +Microsoft Visual Studio {CPP} 2017 -| | |http://gcc.gnu.org/[`gcc-nocygwin`], GNU GCC | +* Uses `vswhere` utility. +* Common install location: `%ProgramFiles%\Microsoft Visual Studio\2017\Enterprise\VC\` +* Common install location: `%ProgramFiles%\Microsoft Visual Studio\2017\Professional\VC\` +* Common install location: `%ProgramFiles%\Microsoft Visual Studio\2017\Community\VC\` -| | -|http://www.intel.com/software/products/compilers/c60[`intel-win32`], -Intel {CPP} Compiler for Windows +| | |`vc14` a| -* `ICL.EXE` in `PATH` +Microsoft Visual Studio {CPP} 2015 -| | |http://www.metrowerks.com/[`metrowerks`], MetroWerks CodeWarrior -C/{CPP} 7.x, 8.x, 9.x -a| -* `CWFolder` variable configured -* `MWCC.EXE` in PATH +* Env var `%VS140COMNTOOLS%` +* Common install location: `%ProgramFiles%\Microsoft Visual Studio 14.0\VC\` -| | |http://www.mingw.org/[`mingw`], GNU http://gcc.gnu.org/[GCC] as the -http://www.mingw.org/[MinGW] configuration +| | |`vc12` a| -* Common install location: `C:\MinGW` +Microsoft Visual Studio {CPP} 2013 -| | |http://msdn.microsoft.com/visualc/[`msvc`], Microsoft Visual {CPP} -6.x +* Env var `%VS120COMNTOOLS%` +* Common install location: `%ProgramFiles%\Microsoft Visual Studio 12.0\VC\` + +| | |`borland` a| -* `VCVARS32.BAT` already configured -* `%MSVCDir%` is present in environment -* Common install locations: `%ProgramFiles%\Microsoft Visual Studio`, -`%ProgramFiles%\Microsoft Visual {CPP}` -* `CL.EXE` in `PATH` +Embarcadero {CPP}Builder + +* `bcc32c.exe` in `PATH` -| | |http://msdn.microsoft.com/visualc/[`vc7`], Microsoft Visual {CPP} 7.x +| | +|`intel-win32` a| -* `VCVARS32.BAT` or `VSVARS32.BAT` already configured -* `%VS71COMNTOOLS%` is present in environment -* `%VCINSTALLDIR%` is present in environment -* Common install locations: `%ProgramFiles%\Microsoft Visual Studio .NET`, - `%ProgramFiles%\Microsoft Visual Studio .NET 2003` -* `CL.EXE` in `PATH` - -| | |http://msdn.microsoft.com/visualc/[`vc8` and `vc9`], Microsoft -Visual {CPP} 8.x and 9.x +Intel {CPP} Compiler for Windows + +* `icl.exe` in `PATH` + +| | |`mingw` a| -Detection: +GNU GCC as the MinGW configuration -* `VCVARSALL.BAT` already configured -* `%VS90COMNTOOLS%` is present in environment -* Common install location: `%ProgramFiles%\Microsoft Visual Studio 9` -* `%VS80COMNTOOLS%` is present in environment -* Common install location: `%ProgramFiles%\Microsoft Visual Studio 8` -* `CL.EXE` in `PATH` +* Common install location: `C:\MinGW` -Notes: +| | |`como` | Comeau Computing C/{CPP} -* If `VCVARSALL.BAT` -is called to set up the toolset, it is passed all the extra arguments, -see below for what those arguments are. This can be used to build, for -example, a Win64 specific version of `b2`. Consult the VisualStudio -documentation for what the possible argument values to the `VCVARSALL.BAT` -are. +| | |`gcc`, | GNU GCC -|`build.sh` |Unix, Linux, Cygwin, etc. |http://www.hp.com/go/c++[`acc`], -HP-UX aCC +| | |`clang` | Clang LLVM + +| | |`gcc-nocygwin` | GNU GCC + +h|`build.sh` 3+h|Unix, Linux, Cygwin, Windows Bash, etc. + +| | |`gcc` a| -* `aCC` in `PATH` -* `uname` is "HP-UX" +GNU GCC + +* `g++` in `PATH` -| | |http://www.comeaucomputing.com/[`como`], Comeau Computing C/{CPP} +| | |`clang` a| -* `como` in `PATH` +Clang LLVM -| | |http://gcc.gnu.org/[`gcc`], GNU GCC +* `clang++` in `PATH` + +| | |`intel-linux` a| -* `gcc` in `PATH` +Intel {CPP} (oneAPI) for Linux + +* `icpx` in `PATH` +* `icc` in `PATH` +* `icpc` in `PATH` +* `setvars.sh` in common install locations: `$HOME/intel/oneapi`, + `/opt/intel/oneapi`, `/opt/intel/inteloneapi` +* `iccvars.sh` in common install locations: `/opt/intel/cc/9.0/bin`, + `/opt/intel_cc_80/bin` | | -|http://www.intel.com/software/products/compilers/c60l/[`intel-linux`], -Intel {CPP} for Linux +|`mipspro` a| -* `icc` in `PATH` -* Common install locations: `/opt/intel/cc/9.0`, `/opt/intel_cc_80`, - `/opt/intel/compiler70`, `/opt/intel/compiler60`, `/opt/intel/compiler50` +SGI MIPSpro {CPP} + +* `uname` is "IRIX" or "IRIX64" and `CC` in `PATH` -| | |`kcc`, Intel KAI {CPP} +| | |`true64cxx` a| -* `KCC` in `PATH` +Compaq {CPP} Compiler for True64 UNIX -| | |http://www.codegear.com/downloads/free/cppbuilder[`kylix`], -http://www.borland.com/[Borland] {CPP}Builder +* `uname` is "OSF1" and `cc` in `PATH` + +| | |`qcc` a| -* `bc++` in `PATH` +QNX Neutrino -| | -|http://www.sgi.com/developers/devtools/languages/mipspro.html[`mipspro`], -SGI MIPSpro C +* `uname` is "QNX" and `QCC` in `PATH` + +| | |`xlcpp` and `vacpp` a| -* `uname` is "IRIX" or "IRIX64" +IBM VisualAge {CPP} -| | |`sunpro`, Sun Workshop 6 {CPP} +* `uname` is "Linux" and `xlC_r` in `PATH` (`xlcpp` or `vacpp` depending on + machine endian) +* `uname` is "AIX" and `xlC_r` in `PATH` (`vacpp`) + +| | |`pgi` a| -* Standard install location: `/opt/SUNWspro` +PGI Compilers + +* `pgc++` in `PATH` -| | |`qcc`, http://www.qnx.com/[QNX Neutrino] +| | |`pathscale` a| -* `uname` is "QNX" and `qcc` in `PATH` +Pathscale {CPP} + +* `pathCC` in `PATH` -| | |http://www.tru64unix.compaq.com/cplus/[`true64cxx`], Compaq {CPP} -Compiler for True64 UNIX +| | |`como` a| -* `uname` is "OSF1" +Comeau Computing C/{CPP} + +* `como` in `PATH` -| | |http://www.ibm.com/software/awdtools/vacpp/[`vacpp`], IBM VisualAge -{CPP} +| | |`kylix` a| -* `xlc` in `PATH` +Borland {CPP} -| |MacOS X |http://developer.apple.com/tools/compilers.html[`darwin`], -Apple MacOS X GCC +* `bc++` in `PATH` (`kylix`) + +| | |`acc` a| -* `uname` is "Darwin" +HP-UX aCC + +* `aCC` in `PATH` -| |Windows NT, 2000, and XP |http://www.mingw.org/[`mingw`], GNU -http://gcc.gnu.org/[GCC] as the http://www.mingw.org/[MinGW] -configuration with the MSYS shell +| | |`sunpro` a| -* Common install location: `/mingw` +Sun Workshop 6 {CPP} -|=== +* Standard install location: `/opt/SUNWspro/bin/CC` -The built executables are placed in a subdirectory specific to your -platform. For example, in Linux running on an Intel x86 compatible chip, -the executables are placed in: `bin.linuxx86`. The `b2[.exe]` -executable can be used to invoke B2. +|=== -The build scripts support additional invocation arguments for use by -developers of Boost.Jam and for additional setup of the toolset. The -extra arguments come after the toolset: +The built executables are placed in the `src/engine` directory. -* Arguments not in the form of an option, before option arguments, are -used for extra setup to toolset configuration scripts. -* Arguments of the form `--option`, which are passed to the -`build.jam` build script. -* Arguments not in the form of an option, after the options, which are -targets for the `build.jam` script. +The `build.sh` script supports additional invocation options used to +control the the build and custom compilers: ---- -build [toolset] [setup*] [--option+ target*] +build.sh [--option|--option=x] [toolset] ---- -The arguments immediately after the toolset are passed directly to the -setup script of the toolset, if available and if it needs to be invoked. -This allows one to configure the toolset ass needed to do non-default -builds of `b2`. For example to build a Win64 version with `vc8`. See the -toolset description above for when particular toolsets support this. - -The arguments starting with the `--option` forms are passed to the -`build.jam` script and are used to further customize what gets built. -Options and targets supported by the `build.jam` script: - -`---`:: - Empty option when one wants to only specify a target. -`--release`:: - The default, builds the optimized executable. +`--help`:: + Shows some help information, including these options. +`--verbose`:: + Show messages about what this script is doing. `--debug`:: - Builds debugging versions of the executable. When built they are - placed in their own directory `bin./platform/.debug`. -`--grammar`:: - Normally the Jam language grammar parsing files are not regenerated. - This forces building of the grammar, although it may not force the - regeneration of the grammar parser. If the parser is out of date it - will be regenerated and subsequently built. -`--with-python=path`:: - Enables Python integration, given a path to the Python libraries. -`--gc`:: - Enables use of the Boehm Garbage Collector. The build will look for - the Boehm-GC source in a "boehm_gc" subdirectory from the `b2` - sources. -`--duma`:: - Enables use of the DUMA (Detect Unintended Memory Access) debugging - memory allocator. The build expects to find the DUMA source files in a - "duma" subdirectory from the `b2` sources. -`--toolset-root=path`:: - Indicates where the toolset used to build is located. This option is - passed in by the bootstrap (`build.bat` or `build.sh`) script. -`--show-locate-target`:: - For information, prints out where it will put the built executable. -`--noassert`:: - Disable debug assertions, even if building the debug version of the - executable. -`dist`:: - Generate packages (compressed archives) as appropriate for - distribution in the platform, if possible. -`clean`:: - Remove all the built executables and objects. + Builds debugging versions of the executable. The default is to build an + optimized executable. +`--guess-toolset`:: + Print the toolset we can detect for building. This is used by external + scripts, like the Boost Libraries main bootstrap script. +`--cxx=CXX`:: + The compiler exec to use instead of the detected compiler exec. +`--cxxflags=CXXFLAGS`:: + The compiler flags to use in addition to the flags for the detected + compiler. [[jam.language]] == Language @@ -1355,8 +1325,20 @@ Assign _value_ to the variable if it is unset. Concatenate list elements into single element, separated by _joinval_. +`:O=value`:: +Sets semantic options for the evaluation of the variable. The format of the +_value_ is specific to either variable or generated file expansion. + On VMS, `$(var:P)` is the parent directory of `$(var:D)`. +`:<=value`:: +After evaluating the expansion of the variable prefixes the given _value_ +to the elements of the expanded expression values. + +`:>=value`:: +After evaluating the expansion of the variable postfixes the given _value_ +to the elements of the expanded expression values. + [[jam.language.variables.local_for_loop_variables]] ==== Local For Loop Variables @@ -1383,7 +1365,22 @@ the form `@(filename:E=filecontents)` and replaces the expression with `filecontents`. This is useful for creating compiler response files, and other "internal" files. The expansion works both during parsing and action execution. Hence it is possible to create files during any of the -three build phases. +three build phases. This expansion follows the same modifiers as variable +expansion. The generated file expansion accepts these (`:O=`) expansion +option values: + +`F`:: +Always replace the `@()` reference with the name of the file generated. + +`C`:: +Always replace the `@()` reference with the contents, i.e. the _value_ +in the `:E=value` expression. + +`FC` or `CF`:: +Replace with either the file or contents depending on the length of the +contents (`:E=value`). It will replace with the contents in an action +if the length of the command is shorter than the allowed command length +limit. Otherwise the reference is replaced with the filename. [[jam.language.variables.builtins]] ==== Built-in Variables diff --git a/doc/src/history.adoc b/doc/src/history.adoc index 68105bad45..1d6e16299d 100644 --- a/doc/src/history.adoc +++ b/doc/src/history.adoc @@ -1,6 +1,75 @@ [[b2.history]] = History +== Version 4.4.1 + +Minor patch to correct missing fix for macOS default engine compiler. + +* Fix engine build defaulting to gcc instead of clang on macOX/Xcode. + -- _René Ferdinand Rivera Morell_ + +== Version 4.4.0 + +Along with a variety of fixes this version introduces "dynamic" response file +support for some toolsets. This means that under most circumtances, if +supported by the toolset, response files are not generated. Instead the +command is expanded to include the options directly. + +* *New:* Add `response-file` feature to control the kind of response file usage in + toolset action. + -- _René Ferdinand Rivera Morell_ +* *New:* Add `:O=value` variable modifier for `@()` expansion. + -- _René Ferdinand Rivera Morell_ +* *New:* Add `:<=value` and `:>=value` variable modifiers for prefix and postfix + values *after* the complete expansion of variable references. + -- _René Ferdinand Rivera Morell_ +* *New:* Implement PCH on clang-win and clang-darwin. + -- _Nikita Kniazev_ +* *New:* Add support for Intel oneAPI release to intel-linux toolset. + -- _René Ferdinand Rivera Morell_ +* *New:* Add support for Intel oneAPI release to intel-windows toolset. + -- _Edward Diener_ +* Remove one at time linking limit. Once upon a time this was a performance + tweak as hardware and software was not up to doing multiple links at once. + Common setups are better equipped. + -- _René Ferdinand Rivera Morell_ +* Fix building engine with GCC on AIX. + -- _René Ferdinand Rivera Morell_ +* Support building engine as either 32 or 64 bit addressing model. + -- _René Ferdinand Rivera Morell_ +* Basic support for building b2 engine on GNU/Hurd. + -- _Pino Toscano_ +* Update "borland" toolset to bcc32c for building B2. + -- _Tanzinul Islam_ +* Ensure Embarcadero toolset name is only "embtc". + -- _Tanzinul Islam_ +* Adapt for Emscripten 2.0 change of default behaviour for archives. + -- _Basil Fierz_ +* Fix path to bootstrap for back compat. + -- _René Ferdinand Rivera Morell_ +* Add missing BOOST_ROOT to boot strap search. + -- _René Ferdinand Rivera Morell_ +* Fix for engine compile on FreeBSD. + -- _René Ferdinand Rivera Morell_ +* Default MSVC to a native platform, and remove ambiguous implicit + address-model ARM/ARM64 values. + -- _Nikita Kniazev_ +* Fix detection of MIPS32 for b2 engine build. + -- _Ivan Melnikov_ +* Enable building b2 engine with clang on Windows. + -- _Gei0r_ +* Fix building b2 engine with Intel Linux icpc. + -- _Alain Miniussi_ +* Rework `build.sh` to fix many bugs and to avoid use of common env vars. + -- _René Ferdinand Rivera Morell_ +* Remove limitation of relevant features for configure checks. + -- _René Ferdinand Rivera Morell_ +* Reformat configure check output to inform the variants of the checks in a + reasonably brief form. + -- _René Ferdinand Rivera Morell_ +* Support building engine on Windows Bash with Mingw. + -- _René Ferdinand Rivera Morell_ + == Version 4.3.0 There are many invidual fixes in this release. Many thanks for the diff --git a/doc/src/howto.adoc b/doc/src/howto.adoc index 38a31f3c7c..4310f405d5 100644 --- a/doc/src/howto.adoc +++ b/doc/src/howto.adoc @@ -13,9 +13,3 @@ If there's anything you find unclear in this documentation, report the problem directly in the https://github.com/boostorg/build/issues[issue tracker]. For more general questions, please post them to our mailing list (http://boost.org/more/mailing_lists.htm#jamboost[]). - -**** -Copyright 2006, 2014 http://vladimirprus.com[Vladimir Prus]. 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) -**** \ No newline at end of file diff --git a/doc/src/reference.adoc b/doc/src/reference.adoc index dc646d9dfd..15098317bd 100644 --- a/doc/src/reference.adoc +++ b/doc/src/reference.adoc @@ -277,6 +277,7 @@ include::../../src/tools/features/visibility-feature.jam[tag=doc] include::../../src/tools/features/warnings-feature.jam[tag=doc] include::../../src/tools/features/translate-path-feature.jam[tag=doc] include::../../src/tools/features/lto-feature.jam[tag=doc] +include::../../src/tools/features/response-file-feature.jam[tag=doc] [[bbv2.reference.tools]] == Builtin tools diff --git a/doc/src/standalone.adoc b/doc/src/standalone.adoc index 9b7c0b4b1c..147dc2ec39 100644 --- a/doc/src/standalone.adoc +++ b/doc/src/standalone.adoc @@ -1,14 +1,17 @@ = B2 User Manual -:copyright: Copyright 2018 Rene Rivera; Copyright 2006, 2014 Vladimir Prus -:author: Rene Rivera, Vladimir Prus, Steven Watanabe +:copyright: Copyright 2018-2021 René Ferdinand Rivera Morell; Copyright 2006, 2014 Vladimir Prus +:author: René Ferdinand Rivera Morell, Vladimir Prus, Steven Watanabe :toc: left -:toclevels: 3 +:toclevels: 2 :sectanchors: :sectnums: :nofooter: +// :source-highlighter: rouge :source-highlighter: pygments :source-language: jam :highlightjsdir: hljs +:pygments-style: native +// :rouge-style: native :pygments-style: friendly :caution-caption: ⚑ :important-caption: ‼ @@ -17,6 +20,8 @@ :warning-caption: ⚠ :CPP: C++ +== Introduction + ifdef::backend-html5[] ++++