@@ -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() {
16071629common_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
16181640common_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
16241646common_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
16331655common_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
16421664common_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
18051832setup_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