summaryrefslogtreecommitdiff
path: root/lib/spack/env/cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/spack/env/cc')
-rwxr-xr-xlib/spack/env/cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/spack/env/cc b/lib/spack/env/cc
index 5ffaf941e0..e8a0903d2a 100755
--- a/lib/spack/env/cc
+++ b/lib/spack/env/cc
@@ -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