Skip to content

Commit b00fbd9

Browse files
committed
external_deps: use ccache when available
1 parent a6afe5f commit b00fbd9

1 file changed

Lines changed: 42 additions & 15 deletions

File tree

external_deps/build.sh

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -270,8 +270,14 @@ cmake_build() {
270270
;;
271271
esac
272272

273-
cmake_args+=(-DCMAKE_C_COMPILER="${CC}")
274-
cmake_args+=(-DCMAKE_CXX_COMPILER="${CXX}")
273+
if [ -n "${COMPILER_LAUNCHER}" ]
274+
then
275+
cmake_args+=(-DCMAKE_C_COMPILER_LAUNCHER="${COMPILER_LAUNCHER}")
276+
cmake_args+=(-DCMAKE_CXX_COMPILER_LAUNCHER="${COMPILER_LAUNCHER}")
277+
fi
278+
279+
cmake_args+=(-DCMAKE_C_COMPILER="${C_COMPILER}")
280+
cmake_args+=(-DCMAKE_CXX_COMPILER="${CXX_COMPILER}")
275281
cmake_args+=(-DCMAKE_C_FLAGS="${CFLAGS}")
276282
cmake_args+=(-DCMAKE_CXX_FLAGS="${CXXFLAGS}")
277283
cmake_args+=(-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}")
@@ -1544,9 +1550,25 @@ common_setup() {
15441550
CPPFLAGS+=" -I${PREFIX}/include"
15451551
LDFLAGS+=" -L${PREFIX}/lib"
15461552

1553+
if command -v ccmake >/dev/null 2>&1
1554+
then
1555+
export COMPILER_LAUNCHER='ccache'
1556+
export CCACHE_CPP2='true'
1557+
export CCACHE_HASHDIR='true'
1558+
fi
1559+
1560+
if [ -n "${COMPILER_LAUNCHER}" ]
1561+
then
1562+
export CC="${COMPILER_LAUNCHER} ${C_COMPILER}"
1563+
export CXX="${COMPILER_LAUNCHER} ${CXX_COMPILER}"
1564+
else
1565+
export CC="${C_COMPILER}"
1566+
export CXX="${CXX_COMPILER}"
1567+
fi
1568+
15471569
export PATH
15481570
export PKG_CONFIG PKG_CONFIG_PATH
1549-
export CC CXX LD AR RANLIB STRIP
1571+
export LD AR RANLIB STRIP
15501572
export CPPFLAGS CFLAGS CXXFLAGS LDFLAGS
15511573
}
15521574

@@ -1607,41 +1629,41 @@ common_setup_windows() {
16071629
common_setup_msvc() {
16081630
LIBS_SHARED='ON'
16091631
LIBS_STATIC='OFF'
1610-
CC="${HOST}-gcc"
1611-
CXX="${HOST}-g++"
1632+
C_COMPILER="${HOST}-gcc"
1633+
CXX_COMPILER="${HOST}-g++"
16121634
# Libtool bug prevents -static-libgcc from being set in LDFLAGS
16131635
CFLAGS+=' -static-libgcc'
16141636
CXXFLAGS+=' -static-libgcc'
16151637
common_setup_windows
16161638
}
16171639

16181640
common_setup_mingw() {
1619-
CC="${HOST}-gcc"
1620-
CXX="${HOST}-g++"
1641+
C_COMPILER="${HOST}-gcc"
1642+
CXX_COMPILER="${HOST}-g++"
16211643
common_setup_windows
16221644
}
16231645

16241646
common_setup_macos() {
1625-
CC='clang'
1626-
CXX='clang++'
1647+
C_COMPILER='clang'
1648+
CXX_COMPILER='clang++'
16271649
STRIP='strip'
16281650
CFLAGS+=" -arch ${MACOS_ARCH} -mmacosx-version-min=${MACOS_VERSION}"
16291651
CXXFLAGS+=" -arch ${MACOS_ARCH} -mmacosx-version-min=${MACOS_VERSION}"
16301652
LDFLAGS+=" -arch ${MACOS_ARCH} -mmacosx-version-min=${MACOS_VERSION}"
16311653
}
16321654

16331655
common_setup_linux() {
1634-
CC="${HOST/-unknown-/-}-gcc"
1635-
CXX="${HOST/-unknown-/-}-g++"
1656+
C_COMPILER="${HOST/-unknown-/-}-gcc"
1657+
CXX_COMPILER="${HOST/-unknown-/-}-g++"
16361658
STRIP="${HOST/-unknown-/-}-strip"
16371659
CROSS_PKG_CONFIG_PATH="/usr/lib/${HOST/-unknown-/-}/pkgconfig"
16381660
CFLAGS+=' -fPIC'
16391661
CXXFLAGS+=' -fPIC'
16401662
}
16411663

16421664
common_setup_freebsd() {
1643-
CC='clang'
1644-
CXX='clang++'
1665+
C_COMPILER='clang'
1666+
CXX_COMPILER='clang++'
16451667
STRIP='strip'
16461668
CFLAGS+=" -target ${HOST}"
16471669
CXXFLAGS+=" -target ${HOST}"
@@ -1662,6 +1684,11 @@ setup_default() {
16621684
export CC='false'
16631685
export CXX='false'
16641686

1687+
export C_COMPILER='false'
1688+
export CXX_COMPILER='false'
1689+
1690+
export COMPILER_LAUNCHER=''
1691+
16651692
# Set defaults.
16661693
export LD='ld'
16671694
export AR='ar'
@@ -1804,8 +1831,8 @@ setup_freebsd-amd64-default() {
18041831
# Set up environment for native host tools
18051832
setup_native() {
18061833
setup_default
1807-
CC='cc'
1808-
CXX='c++'
1834+
C_COMPILER='cc'
1835+
CXX_COMPILER='c++'
18091836
common_setup native native
18101837
}
18111838

0 commit comments

Comments
 (0)