Use ccache if available.

If ccache is availble, use it. It can improve a lot the compilation time.
We do not change the meson_cross_file.txt as, for now, meson doesn't
support ccache when cross-compiling.
This commit is contained in:
Matthieu Gautier 2017-02-13 11:15:59 +01:00
parent 7b293575de
commit cff9642c23
3 changed files with 27 additions and 5 deletions

View File

@ -358,7 +358,14 @@ class BuildEnv:
if env['PKG_CONFIG_PATH'] if env['PKG_CONFIG_PATH']
else pkgconfig_path else pkgconfig_path
) )
env['PATH'] = ':'.join([pj(self.install_dir, 'bin'), env['PATH']]) # Add ccache path
for p in ('/usr/lib/ccache', '/usr/lib64/ccache'):
if os.path.isdir(p):
ccache_path=[p]
break
else:
ccache_path = []
env['PATH'] = ':'.join([pj(self.install_dir, 'bin')] + ccache_path + [env['PATH']])
ld_library_path = ':'.join([ ld_library_path = ':'.join([
pj(self.install_dir, 'lib'), pj(self.install_dir, 'lib'),
pj(self.install_dir, 'lib64') pj(self.install_dir, 'lib64')

View File

@ -10,9 +10,18 @@ PATH="{root_path}/bin:$PATH_ORIG"; export PATH;
HOST_CC=gcc; export HOST_CC; HOST_CC=gcc; export HOST_CC;
unset PKG_CONFIG_PATH; unset PKG_CONFIG_PATH;
CC={which:{binaries[c]}}; export CC ccache=`which ccache`
CC={which:{binaries[c]}}
CXX={which:{binaries[cpp]}}
if [ "x$ccache" != "x" ] ; then
CC="ccache $CC"
CXX="ccache $CXX"
fi
export CC
export CXX
AR={which:{binaries[ar]}}; export AR AR={which:{binaries[ar]}}; export AR
CXX={which:{binaries[cpp]}}; export CXX
STRIP={which:{binaries[strip]}}; export STRIP STRIP={which:{binaries[strip]}}; export STRIP
CFLAGS=" -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"; export CFLAGS; CFLAGS=" -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"; export CFLAGS;
CXXFLAGS=" -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"; export CXXFLAGS; CXXFLAGS=" -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"; export CXXFLAGS;

View File

@ -2,12 +2,18 @@ SET(CMAKE_SYSTEM_NAME Windows)
SET(CMAKE_SYSTEM_PROCESSOR x86) SET(CMAKE_SYSTEM_PROCESSOR x86)
# specify the cross compiler # specify the cross compiler
SET(CMAKE_C_COMPILER {which:{binaries[c]}}) SET(CMAKE_C_COMPILER "{which:{binaries[c]}}")
SET(CMAKE_CXX_COMPILER {which:{binaries[cpp]}}) SET(CMAKE_CXX_COMPILER "{which:{binaries[cpp]}}")
SET(CMAKE_RC_COMPILER {which:{binaries[windres]}}) SET(CMAKE_RC_COMPILER {which:{binaries[windres]}})
SET(CMAKE_AR:FILEPATH {which:{binaries[ar]}}) SET(CMAKE_AR:FILEPATH {which:{binaries[ar]}})
SET(CMAKE_RANLIB:FILEPATH {which:{binaries[ranlib]}}) SET(CMAKE_RANLIB:FILEPATH {which:{binaries[ranlib]}})
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
endif(CCACHE_FOUND)
# where is the target environment # where is the target environment
SET(CMAKE_FIND_ROOT_PATH {root_path}) SET(CMAKE_FIND_ROOT_PATH {root_path})