summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config_host.mk.in1
-rw-r--r--configure.ac12
-rw-r--r--solenv/gbuild/LinkTarget.mk1
-rw-r--r--solenv/gbuild/platform/com_MSC_class.mk2
4 files changed, 16 insertions, 0 deletions
diff --git a/config_host.mk.in b/config_host.mk.in
index dfcd2f169b1c..578926500b48 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -418,6 +418,7 @@ export LO_CLANG_CXXFLAGS_INTRINSICS_AVX512=@LO_CLANG_CXXFLAGS_INTRINSICS_AVX512@
export LO_CLANG_CXXFLAGS_INTRINSICS_AVX512F=@LO_CLANG_CXXFLAGS_INTRINSICS_AVX512F@
export LO_CLANG_CXXFLAGS_INTRINSICS_F16C=@LO_CLANG_CXXFLAGS_INTRINSICS_F16C@
export LO_CLANG_CXXFLAGS_INTRINSICS_FMA=@LO_CLANG_CXXFLAGS_INTRINSICS_FMA@
+export LO_CLANG_SHOWINCLUDES_PREFIX=@LO_CLANG_SHOWINCLUDES_PREFIX@
@x_LO_ELFCHECK_ALLOWLIST@ export LO_ELFCHECK_ALLOWLIST=@LO_ELFCHECK_ALLOWLIST@
@x_Cygwin@ export LS=@WIN_LS@
export MACOSX_BUNDLE_IDENTIFIER=@MACOSX_BUNDLE_IDENTIFIER@
diff --git a/configure.ac b/configure.ac
index 7d3df0f0b3d4..fb8d85a01f71 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12041,6 +12041,17 @@ if test "$ENABLE_SKIA" = TRUE -a "$COM_IS_CLANG" != TRUE; then
else
AC_MSG_RESULT([no])
fi
+
+ AC_MSG_CHECKING([the dependency generation prefix (clang.exe -showIncludes)])
+ echo "#include <stdlib.h>" > conftest.c
+ LO_CLANG_SHOWINCLUDES_PREFIX=`$LO_CLANG_CC $CFLAGS -c -showIncludes conftest.c 2>/dev/null | \
+ grep 'stdlib\.h' | head -n1 | sed 's/ [[[:alpha:]]]:.*//'`
+ rm -f conftest.c conftest.obj
+ if test -z "$LO_CLANG_SHOWINCLUDES_PREFIX"; then
+ AC_MSG_ERROR([cannot determine the -showIncludes prefix])
+ else
+ AC_MSG_RESULT(["$LO_CLANG_SHOWINCLUDES_PREFIX"])
+ fi
else
AC_CHECK_PROG(LO_CLANG_CC,clang,clang,[])
AC_CHECK_PROG(LO_CLANG_CXX,clang++,clang++,[])
@@ -12348,6 +12359,7 @@ AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_AVX512)
AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_AVX512F)
AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_F16C)
AC_SUBST(LO_CLANG_CXXFLAGS_INTRINSICS_FMA)
+AC_SUBST(LO_CLANG_SHOWINCLUDES_PREFIX)
AC_SUBST(CLANG_USE_LD)
AC_SUBST([HAVE_LO_CLANG_DLLEXPORTINLINES])
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 7f72ab131ac8..3f4e329587b8 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -2085,6 +2085,7 @@ endef
define gb_LinkTarget_use_clang
$(call gb_LinkTarget_get_target,$(1)) : T_CC := $(LO_CLANG_CC)
$(call gb_LinkTarget_get_target,$(1)) : T_CXX := $(LO_CLANG_CXX)
+$(call gb_LinkTarget_get_target,$(1)) : T_USE_CLANG := $(true)
$(call gb_LinkTarget_get_target,$(1)) : T_USE_LD := $(or $(CLANG_USE_LD),$(USE_LD))
$(call gb_LinkTarget_get_target,$(1)) : T_LTOFLAGS := $(or $(gb_CLANG_LTOFLAGS),$(gb_LTOFLAGS))
endef
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index dd4a550b7512..28657adb6aae 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -65,6 +65,7 @@ define gb_CObject__command_pattern
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) $(dir $(4)) && \
unset INCLUDE && \
+ $(if $(and $(gb_COMPILERDEPFLAGS),$(T_USE_CLANG)), export SHOWINCLUDES_PREFIX="${LO_CLANG_SHOWINCLUDES_PREFIX}" &&) \
$(gb_COMPILER_SETUP) \
$(call gb_CObject__compiler,$(2),$(3),$(6)) \
$(call gb_Helper_remove_overridden_flags, \
@@ -108,6 +109,7 @@ $(call gb_Output_announce,$(2),$(true),PCH,1)
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) $(dir $(call gb_PrecompiledHeader_get_dep_target,$(2),$(6))) && \
unset INCLUDE && \
+ $(if $(and $(gb_COMPILERDEPFLAGS),$(T_USE_CLANG)), export SHOWINCLUDES_PREFIX="${LO_CLANG_SHOWINCLUDES_PREFIX}" &&) \
CCACHE_DISABLE=1 $(gb_COMPILER_SETUP) \
$(call gb_CObject__compiler,$(4),$(3),$(7)) \
$(call gb_Helper_remove_overridden_flags, \