diff options
-rw-r--r-- | config_host.mk.in | 1 | ||||
-rw-r--r-- | configure.ac | 12 | ||||
-rw-r--r-- | solenv/gbuild/LinkTarget.mk | 1 | ||||
-rw-r--r-- | solenv/gbuild/platform/com_MSC_class.mk | 2 |
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, \ |