From f5000c087fbc99c2b28580c9d2c83a1981914804 Mon Sep 17 00:00:00 2001 From: Theo Butler Date: Sat, 18 May 2019 10:38:41 +0200 Subject: [PATCH] merge clang and gcc build into one matrix --- azure-pipelines.yml | 77 +++++++++++++++------------------------------ 1 file changed, 25 insertions(+), 52 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1027cc9..9942ebf 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -21,6 +21,7 @@ phases: sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100 sudo update-alternatives --set c++ /usr/bin/clang++ + displayName: 'Install Build Dependencies' - task: CMake@1 @@ -49,57 +50,26 @@ phases: - phase: Linux queue: name: 'Hosted Ubuntu 1604' - parallel: 2 + parallel: 4 matrix: - Debug: + Clang_6 Debug: + CC: clang-6.0 + CXX: clang++-6.0 BuildType: Debug - Release: + + Clang_6 Release: + CC: clang-6.0 + CXX: clang++-6.0 BuildType: Release - steps: - - script: | - sudo add-apt-repository ppa:ubuntu-toolchain-r/test - sudo apt-get update - sudo apt-get install -y ninja-build libc++-dev libc++abi-dev libc++abi1 libstdc++-7-dev - # sudo apt-get install clang-6.0 clang++-6.0 - - sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-6.0 100 - sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 - sudo update-alternatives --set cc /usr/bin/clang - - sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-6.0 100 - sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100 - sudo update-alternatives --set c++ /usr/bin/clang++ - - displayName: 'Install Build Dependencies' - - - task: CMake@1 - displayName: 'CMake .. -GNinja -DCMAKE_BUILD_TYPE=$(BuildType) -DCMAKE_CXX_FLAGS="-stdlib=libstdc++ -std=c++17"' - inputs: - cmakeArgs: '.. -GNinja -DCMAKE_BUILD_TYPE=$(BuildType) -DCMAKE_CXX_FLAGS="-stdlib=libstdc++ -std=c++17"' - - - script: | - ninja - - workingDirectory: build - failOnStderr: true - displayName: 'Compile' - - - script: | - ctest -j 4 --output-on-failure -C $(BuildType) - - workingDirectory: build - failOnStderr: true - displayName: 'Test' - -- phase: LinuxGCC - queue: - name: 'Hosted Ubuntu 1604' - parallel: 2 - matrix: - Debug: + GCC_7 Debug: + CC: gcc-7 + CXX: g++-7 BuildType: Debug - Release: + + GCC_7 Release: + CC: gcc-7 + CXX: g++-7 BuildType: Release steps: @@ -109,18 +79,21 @@ phases: sudo apt-get install -y ninja-build libc++-dev libc++abi-dev libc++abi1 libstdc++-7-dev gcc-7 g++-7 # sudo apt-get install clang-6.0 clang++-6.0 - sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-7 100 - sudo update-alternatives --set cc /usr/bin/gcc-7 + sudo update-alternatives --install /usr/bin/cc cc /usr/bin/$(CC) 100 + sudo update-alternatives --set cc /usr/bin/$(CC) - sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-7 100 - sudo update-alternatives --set c++ /usr/bin/g++-7 + sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/$(CXX) 100 + sudo update-alternatives --set c++ /usr/bin/$(CXX) + + CMAKE_CXX_FLAGS="-std=c++17" + if [[ "$CXX" == clang++* ]]; then CMAKE_CXX_FLAGS+=" -stdlib=libstdc++"; fi displayName: 'Install Build Dependencies' - task: CMake@1 - displayName: 'CMake .. -GNinja -DCMAKE_BUILD_TYPE=$(BuildType) -DCMAKE_CXX_FLAGS="-std=c++17"' + displayName: 'CMake .. -GNinja -DCMAKE_BUILD_TYPE=$(BuildType) -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS"' inputs: - cmakeArgs: '.. -GNinja -DCMAKE_BUILD_TYPE=$(BuildType) -DCMAKE_CXX_FLAGS="-std=c++17"' + cmakeArgs: '.. -GNinja -DCMAKE_BUILD_TYPE=$(BuildType) -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS"' - script: | ninja