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");
|
args+=("-l$lib");
|
||||||
done
|
done
|
||||||
|
|
||||||
full_command=("$command")
|
full_command=("$command" "${args[@]}")
|
||||||
full_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
|
# dump the full command if the caller supplies SPACK_TEST_COMMAND=dump-args
|
||||||
if [[ $SPACK_TEST_COMMAND == dump-args ]]; then
|
if [[ $SPACK_TEST_COMMAND == dump-args ]]; then
|
||||||
|
@ -560,3 +560,28 @@ def test_ld_deps_partial(dep1):
|
|||||||
test_rpaths +
|
test_rpaths +
|
||||||
['-r'] +
|
['-r'] +
|
||||||
test_args_without_paths)
|
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