--- a/tools/cpp/unix_cc_configure.bzl +++ b/tools/cpp/unix_cc_configure.bzl @@ -117,9 +117,19 @@ def get_escaped_cxx_inc_directories(repository_ctx, cc): else: inc_dirs = result.stderr[index1 + 1:index2].strip() - return [escape_string(repository_ctx.path(_cxx_inc_convert(p))) - for p in inc_dirs.split("\n")] + default_inc_directories = [ + escape_string(repository_ctx.path(_cxx_inc_convert(p))) + for p in inc_dirs.split("\n") + ] + env = repository_ctx.os.environ + if "SPACK_INCLUDE_DIRS" in env: + for path in env["SPACK_INCLUDE_DIRS"].split(":"): + default_inc_directories.append( + repository_ctx.path(_cxx_inc_convert(path)) + ) + + return default_inc_directories def _add_option_if_supported(repository_ctx, cc, option): """Checks that `option` is supported by the C compiler. Doesn't %-escape the option."""