cc: restore ccache support in the wrapper, add a regression test
- Add back ccache support to the wrapper. - Add a regression test to make sure ccache is working properly.
This commit is contained in:
parent
62089d43ef
commit
4210f839e2
15
lib/spack/env/cc
vendored
15
lib/spack/env/cc
vendored
@ -481,8 +481,19 @@ for lib in "${libs[@]}"; do
|
||||
args+=("-l$lib");
|
||||
done
|
||||
|
||||
full_command=("$command")
|
||||
full_command+=("${args[@]}")
|
||||
full_command=("$command" "${args[@]}")
|
||||
|
||||
# prepend the ccache binary if we're using ccache
|
||||
if [ -n "$SPACK_CCACHE_BINARY" ]; then
|
||||
case "$lang_flags" in
|
||||
C|CXX) # ccache only supports C languages
|
||||
full_command=("${SPACK_CCACHE_BINARY}" "${full_command[@]}")
|
||||
# workaround for stage being a temp folder
|
||||
# see #3761#issuecomment-294352232
|
||||
export CCACHE_NOHASHDIR=yes
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# dump the full command if the caller supplies SPACK_TEST_COMMAND=dump-args
|
||||
if [[ $SPACK_TEST_COMMAND == dump-args ]]; then
|
||||
|
@ -560,3 +560,28 @@ def test_ld_deps_partial(dep1):
|
||||
test_rpaths +
|
||||
['-r'] +
|
||||
test_args_without_paths)
|
||||
|
||||
|
||||
def test_ccache_prepend_for_cc():
|
||||
with set_env(SPACK_CCACHE_BINARY='ccache'):
|
||||
check_cc(
|
||||
'dump-args', test_args,
|
||||
['ccache'] + # ccache prepended in cc mode
|
||||
[real_cc] +
|
||||
test_include_paths +
|
||||
test_library_paths +
|
||||
test_wl_rpaths +
|
||||
pkg_wl_rpaths +
|
||||
test_args_without_paths)
|
||||
|
||||
|
||||
def test_no_ccache_prepend_for_fc():
|
||||
check_fc(
|
||||
'dump-args', test_args,
|
||||
# no ccache for Fortran
|
||||
[real_cc] +
|
||||
test_include_paths +
|
||||
test_library_paths +
|
||||
test_wl_rpaths +
|
||||
pkg_wl_rpaths +
|
||||
test_args_without_paths)
|
||||
|
Loading…
Reference in New Issue
Block a user