config_host.mk.in | 1 + configure.ac | 12 ++++++++++++ solenv/gbuild/LinkTarget.mk | 1 + solenv/gbuild/platform/com_MSC_class.mk | 2 ++ 4 files changed, 16 insertions(+)
New commits: commit 1bb248fa3670ac11d4623ba14d1e914554fb6971 Author: Jan-Marek Glogowski <glo...@fbihome.de> AuthorDate: Fri Dec 31 22:52:47 2021 +0100 Commit: Jan-Marek Glogowski <glo...@fbihome.de> CommitDate: Sat Jan 1 11:50:02 2022 +0100 gbuild: silence Windows Skia clang builds When building Skia on Windows in an non-English environment, the console is filled with "Note: including file:" output. That's because cl.exe has some translated output, but clang.exe has not. So detect the clang usage and its "showIncludes" output and override that setting for the compiler call. Change-Id: I19b403aa79a8dde70616865aef051aa365f79de6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127822 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> 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, \