Add clang passing build

CircleCI Xenial does not come with an up to date version of Clang. It is
therefore required to get the newest version (8). The .pri file has
quickly been edited to be similar to the g++ version check.
This commit is contained in:
Vasily
2019-06-24 19:21:14 +02:00
committed by username223
parent aade86ed47
commit b65657b371
2 changed files with 73 additions and 3 deletions
+60 -3
View File
@@ -1,6 +1,14 @@
version: 2
workflows:
version: 2
gcc_1:
jobs:
- gcc
clang_1:
jobs:
- clang
jobs:
build:
gcc:
docker:
- image: "ubuntu:xenial"
steps:
@@ -47,4 +55,53 @@ jobs:
- run:
name: Run build script
command: './build_scripts/linux/build_linux.sh'
clang:
docker:
- image: circleci/buildpack-deps:xenial
steps:
- checkout
- run:
name: Set up env vars
command: echo 'export QMAKE_SPEC=linux-clang' >> $BASH_ENV; echo 'export QT_SELECT=opt-qt512' >> $BASH_ENV
- run:
name: Update and upgrade
command: 'sudo apt-get update && sudo apt-get upgrade -y'
- run:
name: Get wget
command: 'sudo apt-get install wget -y; sudo apt-get install software-properties-common -y'
- run:
name: Prereqs for clang-format-8
command: wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -; sudo add-apt-repository 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main'
- run:
name: Installing clang-format-8
command: ' sudo apt update -qq; sudo apt install clang-format-8 -y; sudo clang-format-8 --version;'
- run:
name: Installing clang-8
command: 'sudo apt install clang-8 -y; sudo apt install clang -y; clang++ --version;'
- run:
name: Run clang-format
command: 'python ./build_scripts/run-clang-format.py ./src -r --color always --clang-format-executable clang-format-8'
- run:
name: Install g++-7
command: sudo apt-get install -y software-properties-common; sudo add-apt-repository ppa:ubuntu-toolchain-r/test; sudo apt update; sudo apt install g++-7 -y;
- run:
name: Install required packages
command: 'sudo add-apt-repository ppa:kubuntu-ppa/backports -y; sudo add-apt-repository ppa:beineri/opt-qt-5.12.2-xenial -y; sudo apt-get update -qq; sudo apt-get install build-essential libgl1-mesa-dev -y'
- run:
name: Install QT packages
command: 'sudo apt-get install qt512-meta-minimal qt512multimedia qt512declarative qt512quickcontrols2 qt512tools qt512base qtchooser -y'
- run:
name: Install X11 packages
command: ' sudo apt-get install libx11-dev libxt-dev libxtst-dev -y'
- run:
name: Install bear/clang-tidy
command: ' sudo apt-get install bear clang-tidy -y'
- run:
name: Set up QT
command: 'qtchooser -install opt-qt512 /opt/qt512/bin/qmake'
- run:
name: Give build scripts +x
command: 'chmod +x ./build_scripts/linux/build_linux.sh; chmod +x ./build_scripts/linux/format.sh; chmod +x ./build_scripts/linux/run-clang-tidy.sh ;chmod +x ./build_scripts/linux/verify_formatting.sh'
- run:
name: Run build script
command: './build_scripts/linux/build_linux.sh'
+13
View File
@@ -1,3 +1,16 @@
# Makes sure the "clang++" command used to invoke the compilation is abvove version 8.
# If it's at or above version 7 then we can use the default clang++ otherwise we'll
# specifically need clang++-8.
CLANG_VERSION = $$system("clang++ -dumpversion")
!greaterThan(CLANG_VERSION, 7) {
message('clang++' version is not above 8. Manually using 'clang++-8'.)
!system(clang++-8 --version) {
error(At least clang++-8 required.)
}
#clang++-8 is needed for C++17 features. travis does not supply this by default.
QMAKE_CXX = clang++-8
}
include(clang-gcc-common-switches.pri)
QMAKE_CXXFLAGS += -Wmost