summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2017-07-17 15:22:09 +0200
committerKonstantin Käfer <mail@kkaefer.com>2017-07-17 15:22:30 +0200
commit489fae67f09ef9cedb51926f596d2a4af8f0731e (patch)
treefe15ddf81e13edb844c8aa9eb7237b03db9dcdf9
parentfdfd5f91f51f7185f731783ad8b2b4ff9c3e2f90 (diff)
downloadqtlocation-mapboxgl-upstream/9519-xcode-ccache-compiler.tar.gz
[build] make Xcode use the correct compiler when it is installed in a non-standard locationupstream/9519-xcode-ccache-compiler
-rw-r--r--CMakeLists.txt12
-rw-r--r--scripts/launch-c-xcode.in4
-rw-r--r--scripts/launch-c.in8
-rw-r--r--scripts/launch-cxx-xcode.in4
-rw-r--r--scripts/launch-cxx.in8
-rw-r--r--test/algorithm/update_renderables.test.cpp4
6 files changed, 19 insertions, 21 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d709f1117c..c6758cdacb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -92,22 +92,28 @@ 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
+ # Xcode doesn't include the path to the compiler/linker by default, so we'll have to add it.
+ configure_file(scripts/launch-c-xcode.in launch-c @ONLY)
+ configure_file(scripts/launch-cxx-xcode.in launch-cxx @ONLY)
+
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
+ configure_file(scripts/launch-c.in launch-c @ONLY)
+ configure_file(scripts/launch-cxx.in launch-cxx @ONLY)
+
set(CMAKE_C_COMPILER_LAUNCHER "${CMAKE_BINARY_DIR}/launch-c")
set(CMAKE_CXX_COMPILER_LAUNCHER "${CMAKE_BINARY_DIR}/launch-cxx")
endif()
+ execute_process(COMMAND chmod a+rx "${CMAKE_BINARY_DIR}/launch-c" "${CMAKE_BINARY_DIR}/launch-cxx")
+
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.
diff --git a/scripts/launch-c-xcode.in b/scripts/launch-c-xcode.in
new file mode 100644
index 0000000000..77a0c8aca3
--- /dev/null
+++ b/scripts/launch-c-xcode.in
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+export CCACHE_CPP2=true
+exec "@C_LAUNCHER@" "${DEVELOPER_DIR}/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" "$@"
diff --git a/scripts/launch-c.in b/scripts/launch-c.in
index 6c6c9180bc..94555f32aa 100644
--- a/scripts/launch-c.in
+++ b/scripts/launch-c.in
@@ -1,10 +1,4 @@
#!/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}" "$@"
+exec "@C_LAUNCHER@" "$@"
diff --git a/scripts/launch-cxx-xcode.in b/scripts/launch-cxx-xcode.in
new file mode 100644
index 0000000000..7d4639ce6d
--- /dev/null
+++ b/scripts/launch-cxx-xcode.in
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+export CCACHE_CPP2=true
+exec "@CXX_LAUNCHER@" "${DEVELOPER_DIR}/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++" "$@"
diff --git a/scripts/launch-cxx.in b/scripts/launch-cxx.in
index 23f107ce48..46671c1c64 100644
--- a/scripts/launch-cxx.in
+++ b/scripts/launch-cxx.in
@@ -1,10 +1,4 @@
#!/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
+exec "@CXX_LAUNCHER@" "$@"
diff --git a/test/algorithm/update_renderables.test.cpp b/test/algorithm/update_renderables.test.cpp
index d23e1cc1ac..2d37992579 100644
--- a/test/algorithm/update_renderables.test.cpp
+++ b/test/algorithm/update_renderables.test.cpp
@@ -100,8 +100,6 @@ auto createTileDataFn(ActionLog& log, T& dataTiles) {
};
}
-// Unused template argument to fix Clang crash
-// See https://github.com/mapbox/mapbox-gl-native/pull/9501
template <typename = int>
auto retainTileDataFn(ActionLog& log) {
return [&](auto& tileData, Resource::Necessity necessity) {
@@ -109,8 +107,6 @@ auto retainTileDataFn(ActionLog& log) {
};
}
-// Unused template argument to fix Clang crash
-// See https://github.com/mapbox/mapbox-gl-native/pull/9501
template <typename = int>
auto renderTileFn(ActionLog& log) {
return [&](const auto& id, auto& tileData) {