summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2017-06-30 12:49:47 -0700
committerKonstantin Käfer <mail@kkaefer.com>2017-07-13 12:05:17 +0200
commit99ef3f9800c9a22ae2e2dfcaa183492001dc4dbf (patch)
tree1ba476e60dd9a96299e03de13ae75e3bc2301a16
parent871e2a71295729488d1557cc55dd69faab4b7dc3 (diff)
downloadqtlocation-mapboxgl-upstream/update-circle-images.tar.gz
[build] add ccache + Circle CI cachingupstream/update-circle-images
-rw-r--r--.gitignore1
-rw-r--r--CMakeLists.txt30
-rw-r--r--circle.yml491
-rwxr-xr-xscripts/check-cxx11abi.sh4
-rw-r--r--scripts/launch-c.in10
-rw-r--r--scripts/launch-cxx.in10
6 files changed, 256 insertions, 290 deletions
diff --git a/.gitignore b/.gitignore
index 653ff30c45..b6a8498460 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,4 @@ xcuserdata
/documentation
test/fixtures/api/assets.zip
test/fixtures/storage/assets.zip
+/.circle-week
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e0d60240cd..a4a6e4d8c9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.4)
project(mbgl LANGUAGES CXX C)
set(CMAKE_CXX_STANDARD 14)
@@ -86,6 +86,34 @@ elseif(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fext-numeric-literals")
endif()
+# Technique from https://crascit.com/2016/04/09/using-ccache-with-cmake/
+find_program(CCACHE_PROGRAM ccache)
+if(CCACHE_PROGRAM)
+ set(C_LAUNCHER "${CCACHE_PROGRAM}")
+ set(CXX_LAUNCHER "${CCACHE_PROGRAM}")
+ configure_file(scripts/launch-c.in launch-c)
+ configure_file(scripts/launch-cxx.in launch-cxx)
+ execute_process(COMMAND chmod a+rx "${CMAKE_BINARY_DIR}/launch-c" "${CMAKE_BINARY_DIR}/launch-cxx")
+
+ if(CMAKE_GENERATOR STREQUAL "Xcode")
+ # Set Xcode project attributes to route compilation and linking through our scripts
+ set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/launch-c")
+ set(CMAKE_XCODE_ATTRIBUTE_CXX "${CMAKE_BINARY_DIR}/launch-cxx")
+ set(CMAKE_XCODE_ATTRIBUTE_LD "${CMAKE_BINARY_DIR}/launch-c")
+ set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CMAKE_BINARY_DIR}/launch-cxx")
+ else()
+ # Support Unix Makefiles and Ninja
+ set(CMAKE_C_COMPILER_LAUNCHER "${CMAKE_BINARY_DIR}/launch-c")
+ set(CMAKE_CXX_COMPILER_LAUNCHER "${CMAKE_BINARY_DIR}/launch-cxx")
+ endif()
+
+ if(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
+ # ccache splits up the compile steps, so we end up with unused arguments in some steps.
+ # Clang also thinks that ccache isn't interactive, so we explicitly need to enable color.
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -fcolor-diagnostics")
+ endif()
+endif()
+
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/platform/${MBGL_PLATFORM}/config.cmake)
message(ERROR "Can't find config.cmake file for platform ${MBGL_PLATFORM}")
endif()
diff --git a/circle.yml b/circle.yml
index 6a6404aab2..f19507663d 100644
--- a/circle.yml
+++ b/circle.yml
@@ -11,16 +11,109 @@ workflows:
- node6-clang39-release
- node6-clang39-debug
- linux-clang39-debug
- - linux-gcc4.9-debug
- linux-clang4-sanitize-address
- linux-clang4-sanitize-undefined
- linux-clang4-sanitize-thread
+ - linux-gcc4.9-debug
- linux-gcc5-debug-coverage
- linux-gcc5-release-qt4
- linux-gcc5-release-qt5
-jobs:
+step-library:
+ - &generate-cache-key
+ run:
+ name: Generate cache key
+ command: |
+ echo "$(date +"%Y-%V")" > .circle-week
+ ccache --clear
+ ccache --max-size=5G
+ - &restore-cache
+ restore_cache:
+ keys:
+ - 'v3/{{ .Environment.CIRCLE_JOB }}/{{ .Branch }}/{{ checksum ".circle-week" }}'
+ - 'v3/{{ .Environment.CIRCLE_JOB }}/master/{{ checksum ".circle-week" }}'
+ - &save-cache
+ save_cache:
+ key: 'v3/{{ .Environment.CIRCLE_JOB }}/{{ .Branch }}/{{ checksum ".circle-week" }}'
+ paths: [ "node_modules", "/root/.ccache" ]
+
+
+ - &reset-ccache-stats
+ run:
+ name: Clear ccache statistics
+ command: |
+ ccache --zero-stats
+ ccache --show-stats
+ - &show-ccache-stats
+ run:
+ name: Show ccache statistics
+ command: ccache --show-stats
+
+
+ - &setup-llvm-symbolizer
+ run:
+ name: Environment Setup
+ command: |
+ # LLVM has a hard check for "llvm-symbolizer" and doesn't support suffixed executables
+ ln -s /usr/bin/llvm-symbolizer-* /usr/bin/llvm-symbolizer
+ # We'll use tee to redirect stderr to a file so we can check for sanitiziation
+ # https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1059947
+ sed -i 's/"$@" 2>&1/"$@"/' /usr/bin/xvfb-run
+
+
+ - &build-node
+ run:
+ name: Build node
+ command: make node
+ - &build-linux
+ run:
+ name: Build linux
+ command: make linux
+ - &build-benchmark
+ run:
+ name: Build benchmark
+ command: make benchmark
+ - &build-test
+ run:
+ name: Build test
+ command: make test
+ - &build-qt-app
+ run:
+ name: Build qt-app
+ command: make qt-app
+ - &build-qt-test
+ run:
+ name: Build qt-test
+ command: make qt-test
+
+ - &run-node-tests
+ run:
+ name: Run node tests
+ command: |
+ xvfb-run --server-args="-screen 0 1024x768x24" \
+ logbt -- apitrace trace --api=egl -v make test-node
+ - &run-unit-tests
+ run:
+ name: Run tests
+ command: |
+ xvfb-run --server-args="-screen 0 1024x768x24" \
+ make run-test
+
+
+ - &publish-node-package
+ run:
+ name: Publish node package
+ when: on_success
+ command: platform/node/scripts/after_success.sh
+
+
+ - &upload-render-tests
+ store_artifacts:
+ path: mapbox-gl-js/test/integration/render-tests/index.html
+ destination: render-tests
+
+jobs:
# ------------------------------------------------------------------------------
clang-tidy:
docker:
@@ -35,11 +128,9 @@ jobs:
- master
steps:
- checkout
- - restore_cache:
- key: v1-clang-tidy
- paths:
- - node_modules
- - /root/.ccache
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
- run:
name: Fetch 'origin/master' branch
command: git fetch origin master:refs/remotes/origin/master
@@ -49,16 +140,13 @@ jobs:
- run:
name: Run Clang checks
command: make check
- - save_cache:
- key: v1-clang-tidy
- paths:
- - node_modules
- - /root/.ccache
+ - *show-ccache-stats
+ - *save-cache
# ------------------------------------------------------------------------------
android-debug-arm-v7:
docker:
- - image: mbgl/ci:r4-android-ndk-r15-gradle
+ - image: mbgl/ci@sha256:c34e221294d81da80918d3e9a9df5de795b067e88f86d7c9a5e262763332536e
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
@@ -66,11 +154,9 @@ jobs:
BUILDTYPE: Debug
steps:
- checkout
- - restore_cache:
- key: v1-android-debug-arm-v7
- paths:
- - node_modules
- - /root/.ccache
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
- run:
name: Build libmapbox-gl.so for arm-v7
command: make android-lib-arm-v7
@@ -94,6 +180,8 @@ jobs:
command: |
echo "${MAPBOX_DEVELOPER_CONFIG_XML}" > platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml
make android-ui-test-arm-v7
+ - *show-ccache-stats
+ - *save-cache
- run:
name: Log in to Google Cloud Platform
shell: /bin/bash -euo pipefail
@@ -122,11 +210,6 @@ jobs:
xargs -0 -I '{}' ${ANDROID_NDK_HOME}/ndk-stack -sym build/android-arm-v7/Debug -dump {}
exit ${EXIT_CODE:-0}
- - save_cache:
- key: v1-android-debug-arm-v7
- paths:
- - node_modules
- - /root/.ccache
- store_artifacts:
path: platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk
destination: .
@@ -134,7 +217,7 @@ jobs:
# ------------------------------------------------------------------------------
android-release-all:
docker:
- - image: mbgl/ci:r4-android-ndk-r15-gradle
+ - image: mbgl/ci@sha256:c34e221294d81da80918d3e9a9df5de795b067e88f86d7c9a5e262763332536e
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
@@ -142,11 +225,9 @@ jobs:
BUILDTYPE: Release
steps:
- checkout
- - restore_cache:
- key: v1-android-release-all
- paths:
- - node_modules
- - /root/.ccache
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
- run:
name: Generate Maven credentials
shell: /bin/bash -euo pipefail
@@ -160,6 +241,8 @@ jobs:
- run:
name: Build package
command: make apackage
+ - *show-ccache-stats
+ - *save-cache
- store_artifacts:
path: platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk
destination: .
@@ -172,11 +255,7 @@ jobs:
name: Publish to Maven
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then make run-android-upload-archives ; fi
- - save_cache:
- key: v1-android-release-all
- paths:
- - node_modules
- - /root/.ccache
+
# ------------------------------------------------------------------------------
node4-clang39-release:
@@ -192,31 +271,15 @@ jobs:
PUBLISH: $([[ "${CIRCLE_BRANCH}" == "node-v${PACKAGE_JSON_VERSION}" ]] && echo true)
steps:
- checkout
- - restore_cache:
- key: v1-node4-clang39-release
- paths:
- - node_modules
- - /root/.ccache
- - run:
- name: Build node
- command: make node
- - run:
- name: Run node tests
- command: |
- xvfb-run --server-args="-screen 0 1024x768x24" \
- logbt -- apitrace trace --api=egl -v make test-node
- - run:
- name: Publish node package
- when: on_success
- command: platform/node/scripts/after_success.sh
- - save_cache:
- key: v1-node4-clang39-release
- paths:
- - node_modules
- - /root/.ccache
- - store_artifacts:
- path: mapbox-gl-js/test/integration/render-tests/index.html
- destination: render-tests
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
+ - *build-node
+ - *show-ccache-stats
+ - *run-node-tests
+ - *publish-node-package
+ - *save-cache
+ - *upload-render-tests
# ------------------------------------------------------------------------------
node6-clang39-release:
@@ -232,31 +295,15 @@ jobs:
PUBLISH: $([[ "${CIRCLE_BRANCH}" == "node-v${PACKAGE_JSON_VERSION}" ]] && echo true)
steps:
- checkout
- - restore_cache:
- key: v1-node6-clang39-release
- paths:
- - node_modules
- - /root/.ccache
- - run:
- name: Build node
- command: make node
- - run:
- name: Run node tests
- command: |
- xvfb-run --server-args="-screen 0 1024x768x24" \
- logbt -- apitrace trace --api=egl -v make test-node
- - run:
- name: Publish node package
- when: on_success
- command: platform/node/scripts/after_success.sh
- - save_cache:
- key: v1-node6-clang39-release
- paths:
- - node_modules
- - /root/.ccache
- - store_artifacts:
- path: mapbox-gl-js/test/integration/render-tests/index.html
- destination: render-tests
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
+ - *build-node
+ - *show-ccache-stats
+ - *run-node-tests
+ - *publish-node-package
+ - *save-cache
+ - *upload-render-tests
# ------------------------------------------------------------------------------
node6-clang39-debug:
@@ -272,31 +319,15 @@ jobs:
PUBLISH: $([[ "${CIRCLE_BRANCH}" == "node-v${PACKAGE_JSON_VERSION}" ]] && echo true)
steps:
- checkout
- - restore_cache:
- key: v1-node6-clang39-debug
- paths:
- - node_modules
- - /root/.ccache
- - run:
- name: Build node
- command: make node
- - run:
- name: Run node tests
- command: |
- xvfb-run --server-args="-screen 0 1024x768x24" \
- logbt -- apitrace trace --api=egl -v make test-node
- - run:
- name: Publish node package
- when: on_success
- command: platform/node/scripts/after_success.sh
- - save_cache:
- key: v1-node6-clang39-debug
- paths:
- - node_modules
- - /root/.ccache
- - store_artifacts:
- path: mapbox-gl-js/test/integration/render-tests/index.html
- destination: render-tests
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
+ - *build-node
+ - *show-ccache-stats
+ - *run-node-tests
+ - *publish-node-package
+ - *save-cache
+ - *upload-render-tests
# ------------------------------------------------------------------------------
linux-clang39-debug:
@@ -310,31 +341,15 @@ jobs:
WITH_EGL: 1
steps:
- checkout
- - restore_cache:
- key: v1-linux-clang39-debug
- paths:
- - node_modules
- - /root/.ccache
- - run:
- name: Build linux
- command: make linux
- - run:
- name: Build benchmark
- command: make benchmark
- - run:
- name: Build test
- command: make test
- - run:
- name: Run tests
- command: |
- xvfb-run --server-args="-screen 0 1024x768x24" \
- make run-test
- - save_cache:
- key: v1-linux-clang39-debug
- paths:
- - node_modules
- - /root/.ccache
-
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
+ - *build-linux
+ - *build-benchmark
+ - *build-test
+ - *show-ccache-stats
+ - *run-unit-tests
+ - *save-cache
# ------------------------------------------------------------------------------
linux-clang4-sanitize-address:
@@ -352,34 +367,19 @@ jobs:
ASAN_OPTIONS: detect_leaks=0:color=always
steps:
- checkout
- - restore_cache:
- key: v1-linux-clang4-sanitize-address
- paths:
- - node_modules
- - /root/.ccache
- - run:
- name: Environment Setup
- command: |
- # LLVM has a hard check for "llvm-symbolizer" and doesn't support suffixed executables
- ln -s /usr/bin/llvm-symbolizer-* /usr/bin/llvm-symbolizer
- # We'll use tee to redirect stderr to a file so we can check for sanitiziation
- # https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1059947
- sed -i 's/"$@" 2>&1/"$@"/' /usr/bin/xvfb-run
- - run:
- name: Build test
- command: make test
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
+ - *setup-llvm-symbolizer
+ - *build-test
+ - *show-ccache-stats
- run:
name: Run tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" make run-test 2> >(tee sanitizer 1>&2)
# Unfortunately, Google Test eats the status code, so we'll have to check the output.
[ -z "$(sed -n '/^SUMMARY: AddressSanitizer:/p' sanitizer)" ]
- - save_cache:
- key: v1-linux-clang4-sanitize-address
- paths:
- - node_modules
- - /root/.ccache
-
+ - *save-cache
# ------------------------------------------------------------------------------
linux-clang4-sanitize-undefined:
@@ -397,36 +397,19 @@ jobs:
UBSAN_OPTIONS: print_stacktrace=1:color=always
steps:
- checkout
- - restore_cache:
- key: v1-linux-clang4-sanitize-undefined
- paths:
- - node_modules
- - /root/.ccache
- - run:
- name: Environment Setup
- command: |
- # LLVM has a hard check for "llvm-symbolizer" and doesn't support suffixed executables
- ln -s /usr/bin/llvm-symbolizer-* /usr/bin/llvm-symbolizer
- # We'll use tee to redirect stderr to a file so we can check for sanitiziation
- # https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1059947
- sed -i 's/"$@" 2>&1/"$@"/' /usr/bin/xvfb-run
- - run:
- name: Build test
- command: make test
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
+ - *setup-llvm-symbolizer
+ - *build-test
+ - *show-ccache-stats
- run:
name: Run tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" make run-test 2> >(tee sanitizer 1>&2)
# Unfortunately, Google Test eats the status code, so we'll have to check the output.
- # Uncomment this once we've fixed all thread behavior to make new thread behavior
- # fail on CircleCI.
- # [ -z "$(sed -n '/^SUMMARY: UndefinedBehaviorSanitizer:/p' sanitizer)" ]
- - save_cache:
- key: v1-linux-clang4-sanitize-address-undefined
- paths:
- - node_modules
- - /root/.ccache
-
+ [ -z "$(sed -n '/^SUMMARY: UndefinedBehaviorSanitizer:/p' sanitizer)" ]
+ - *save-cache
# ------------------------------------------------------------------------------
linux-clang4-sanitize-thread:
@@ -444,39 +427,24 @@ jobs:
TSAN_OPTIONS: color=always
steps:
- checkout
- - restore_cache:
- key: v1-linux-clang4-sanitize-thread
- paths:
- - node_modules
- - /root/.ccache
- - run:
- name: Environment Setup
- command: |
- # LLVM has a hard check for "llvm-symbolizer" and doesn't support suffixed executables
- ln -s /usr/bin/llvm-symbolizer-* /usr/bin/llvm-symbolizer
- # We'll use tee to redirect stderr to a file so we can check for sanitiziation
- # https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1059947
- sed -i 's/"$@" 2>&1/"$@"/' /usr/bin/xvfb-run
- - run:
- name: Build test
- command: make test
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
+ - *setup-llvm-symbolizer
+ - *build-test
+ - *show-ccache-stats
+ - *save-cache
- run:
name: Run tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" make run-test 2> >(tee sanitizer 1>&2)
# Unfortunately, Google Test eats the status code, so we'll have to check the output.
[ -z "$(sed -n '/^SUMMARY: ThreadSanitizer:/p' sanitizer)" ]
- - save_cache:
- key: v1-linux-clang4-sanitize-thread
- paths:
- - node_modules
- - /root/.ccache
-
# ------------------------------------------------------------------------------
linux-gcc4.9-debug:
docker:
- - image: mbgl/ci:r3-linux-gcc-4.9
+ - image: mbgl/ci:r4-linux-gcc-4.9
working_directory: /src
environment:
LIBSYSCONFCPUS: 6
@@ -487,32 +455,15 @@ jobs:
DISPLAY: :0
steps:
- checkout
- - restore_cache:
- key: v1-linux-gcc4.9-debug
- paths:
- - node_modules
- - /root/.ccache
- - run:
- name: Build linux
- command: make linux
- - run:
- name: Build benchmark
- command: make benchmark
- - run:
- name: Build test
- command: make test
- - run:
- name: Run tests
- command: |
- source scripts/circle_setup.sh
- mapbox_export_mesa_library_path
- xvfb-run --server-args="-screen 0 1024x768x24" \
- make run-test
- - save_cache:
- key: v1-linux-gcc4.9-debug
- paths:
- - node_modules
- - /root/.ccache
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
+ - *build-linux
+ - *build-benchmark
+ - *build-test
+ - *show-ccache-stats
+ - *save-cache
+ - *run-unit-tests
# ------------------------------------------------------------------------------
linux-gcc5-debug-coverage:
@@ -527,34 +478,18 @@ jobs:
WITH_COVERAGE: 1
steps:
- checkout
- - restore_cache:
- key: v1-linux-gcc5-debug-coverage
- paths:
- - node_modules
- - /root/.ccache
- - run:
- name: Build linux
- command: make linux
- - run:
- name: Build benchmark
- command: make benchmark
- - run:
- name: Build test
- command: make test
- - run:
- name: Run tests
- command: |
- xvfb-run --server-args="-screen 0 1024x768x24" \
- make run-test
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
+ - *build-linux
+ - *build-benchmark
+ - *build-test
+ - *run-unit-tests
- run:
name: Upload coverage results to coveralls
command: |
platform/linux/scripts/coveralls.sh
- - save_cache:
- key: v1-linux-gcc5-debug-coverage
- paths:
- - node_modules
- - /root/.ccache
+ - *save-cache
# ------------------------------------------------------------------------------
linux-gcc5-release-qt4:
@@ -567,31 +502,21 @@ jobs:
BUILDTYPE: Release
GTEST_OUTPUT: xml
LD_PRELOAD: /usr/lib/x86_64-linux-gnu/libjemalloc.so
- DISPLAY: 0
steps:
- checkout
- - restore_cache:
- key: v1-linux-gcc5-release-qt4
- paths:
- - node_modules
- - /root/.ccache
- - run:
- name: Build qt-app
- command: make qt-app
- - run:
- name: Build qt-test
- command: make qt-test
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
+ - *build-qt-app
+ - *build-qt-test
+ - *show-ccache-stats
- run:
name: Run memory-load tests
command: |
xvfb-run --server-args="-screen 0 1024x768x24" \
make run-qt-test-Memory.*:*.Load
scripts/log_memory_benchmarks.sh test_detail.xml "Platform=Linux,Compiler=${_CC},Arch=$(uname -m)"
- - save_cache:
- key: v1-linux-gcc5-release-qt4
- paths:
- - node_modules
- - /root/.ccache
+ - *save-cache
# ------------------------------------------------------------------------------
linux-gcc5-release-qt5:
@@ -603,23 +528,17 @@ jobs:
JOBS: 2 # OOM, causing the compiler to crash.
BUILDTYPE: Release
WITH_QT_I18N: 1
- DISPLAY: 0
steps:
- checkout
- - restore_cache:
- key: v1-linux-gcc5-release-qt5
- paths:
- - node_modules
- - /root/.ccache
- - run:
- name: Build qt-app
- command: make qt-app
- - run:
- name: Build qt-test
- command: make qt-test
+ - *generate-cache-key
+ - *restore-cache
+ - *reset-ccache-stats
+ - *build-qt-app
+ - *build-qt-test
- run:
name: Build qt-docs
command: make qt-docs
+ - *show-ccache-stats
- run:
name: Run valgrind-backed tests
environment:
@@ -627,8 +546,4 @@ jobs:
command: |
xvfb-run --server-args="-screen 0 1024x768x24" \
scripts/valgrind.sh build/qt-linux-x86_64/Release/mbgl-test --gtest_filter=-*.Load --gtest_filter=-Memory.Vector
- - save_cache:
- key: v1-linux-gcc5-release-qt5
- paths:
- - node_modules
- - /root/.ccache
+ - *save-cache
diff --git a/scripts/check-cxx11abi.sh b/scripts/check-cxx11abi.sh
index c543e52cb6..c6fd9258c5 100755
--- a/scripts/check-cxx11abi.sh
+++ b/scripts/check-cxx11abi.sh
@@ -3,7 +3,9 @@
set -e
set -o pipefail
-if [ ! `uname -s` = 'Linux' ]; then
+if ! [ `uname -s` = 'Linux' ] || \
+ ! command -v readelf > /dev/null || \
+ ! command -v c++filt > /dev/null; then
echo -n "OFF"
exit 0
fi
diff --git a/scripts/launch-c.in b/scripts/launch-c.in
new file mode 100644
index 0000000000..6c6c9180bc
--- /dev/null
+++ b/scripts/launch-c.in
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# Xcode generator doesn't include the compiler as the
+# first argument, Ninja and Makefiles do. Handle both cases.
+if [ "$1" = "${CMAKE_C_COMPILER}" ] ; then
+ shift
+fi
+
+export CCACHE_CPP2=true
+exec "${C_LAUNCHER}" "${CMAKE_C_COMPILER}" "$@"
diff --git a/scripts/launch-cxx.in b/scripts/launch-cxx.in
new file mode 100644
index 0000000000..23f107ce48
--- /dev/null
+++ b/scripts/launch-cxx.in
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# Xcode generator doesn't include the compiler as the
+# first argument, Ninja and Makefiles do. Handle both cases.
+if [ "$1" = "${CMAKE_CXX_COMPILER}" ] ; then
+ shift
+fi
+
+export CCACHE_CPP2=true
+exec "${CXX_LAUNCHER}" "${CMAKE_CXX_COMPILER}" "$@" \ No newline at end of file