Fix setting SAL_NON_APPLICATION_FONT_USE

...after a342b72f42 "gbuild: set
SAL_NON_APPLICATION_FONT_USE in gb_CppunitTest_use_more_fonts" had caused e.g.
CppunitTest_vcl_pdfexport to be executed with merely
SAL_NON_APPLICATION_FONT_USE=deny rather than the stronger
SAL_NON_APPLICATION_FONT_USE=abort that vcl/CppunitTest_vcl_pdfexport.mk asked
for.

So introduce a dedicated gb_CppunitTest_set_non_application_font_use that
accumulates the requested modes and then selects the strongest requested one
("allow" over "abort" over "deny").  That also means we can go back to model
"allow" with an unset SAL_NON_APPLICATION_FONT_USE env var.

Change-Id: I32ba0a94c1965f0e3336e676b17f4f5efb85efce
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139251
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This commit is contained in:
Stephan Bergmann
2022-09-02 12:12:29 +02:00
parent b392d0a25e
commit 5aa8e7ef07
6 changed files with 16 additions and 15 deletions
+11 -1
View File
@@ -132,6 +132,9 @@ else
$(if $(gb_CppunitTest__vcl_no_svp), \
$(filter-out SAL_USE_VCLPLUGIN=svp,$(gb_TEST_ENV_VARS)),$(gb_TEST_ENV_VARS)) \
$(EXTRA_ENV_VARS) \
$(if $(filter allow,$(NON_APPLICATION_FONT_USE)),, \
$(if $(filter abort,$(NON_APPLICATION_FONT_USE)),SAL_NON_APPLICATION_FONT_USE=abort, \
$(if $(filter deny,$(NON_APPLICATION_FONT_USE)),SAL_NON_APPLICATION_FONT_USE=deny))) \
$(if $(filter gdb,$(gb_CppunitTest_GDBTRACE)),,$(gb_CppunitTest_CPPTESTPRECOMMAND)) \
$(if $(G_SLICE),G_SLICE=$(G_SLICE)) \
$(if $(GLIBCXX_FORCE_NEW),GLIBCXX_FORCE_NEW=$(GLIBCXX_FORCE_NEW)) \
@@ -198,6 +201,7 @@ $(call gb_CppunitTest_get_target,$(1)) : UNO_SERVICES :=
$(call gb_CppunitTest_get_target,$(1)) : UNO_TYPES :=
$(call gb_CppunitTest_get_target,$(1)) : HEADLESS := --headless
$(call gb_CppunitTest_get_target,$(1)) : EXTRA_ENV_VARS :=
$(call gb_CppunitTest_get_target,$(1)) : NON_APPLICATION_FONT_USE :=
$$(eval $$(call gb_Module_register_target,$(call gb_CppunitTest_get_target,$(1)),$(call gb_CppunitTest_get_clean_target,$(1))))
$(call gb_Helper_make_userfriendly_targets,$(1),CppunitTest)
@@ -383,11 +387,17 @@ $(call gb_CppunitTest_get_target,$(1)) : $(call gb_Executable_get_target,$(2))
endef
# One of allow, deny, abort:
define gb_CppunitTest_set_non_application_font_use
$(call gb_CppunitTest_get_target,$(1)) : NON_APPLICATION_FONT_USE += $(2)
endef
define gb_CppunitTest_use_more_fonts
ifneq ($(filter MORE_FONTS,$(BUILD_TYPE)),)
$(call gb_CppunitTest_get_target,$(1)) : \
$(foreach font,$(gb_Package_MODULE_ooo_fonts),$(call gb_Package_get_target,$(font)))
$(call gb_CppunitTest_get_target,$(1)) : EXTRA_ENV_VARS := SAL_NON_APPLICATION_FONT_USE=deny
$(call gb_CppunitTest_set_non_application_font_use,$(1),deny)
endif
endef
+1 -3
View File
@@ -72,9 +72,7 @@ $(eval $(call gb_CppunitTest_use_uiconfigs,sw_core_layout, \
))
# assert if font/glyph fallback occurs
$(call gb_CppunitTest_get_target,sw_core_layout): \
EXTRA_ENV_VARS := \
SAL_NON_APPLICATION_FONT_USE=abort
$(eval $(call gb_CppunitTest_set_non_application_font_use,sw_core_layout,abort))
$(eval $(call gb_CppunitTest_use_more_fonts,sw_core_layout))
+1 -3
View File
@@ -83,9 +83,7 @@ $(call gb_CppunitTest_get_target,sw_layoutwriter$(1)): \
$(call gb_Library_get_target,textconv_dict)
# assert if font/glyph fallback occurs
$(call gb_CppunitTest_get_target,sw_layoutwriter$(1)): \
EXTRA_ENV_VARS := \
SAL_NON_APPLICATION_FONT_USE=abort
$(eval $(call gb_CppunitTest_set_non_application_font_use,sw_layoutwriter$(1),abort))
$(eval $(call gb_CppunitTest_use_more_fonts,sw_layoutwriter$(1)))
+1 -3
View File
@@ -64,8 +64,6 @@ $(eval $(call gb_CppunitTest_use_more_fonts,vcl_cjk))
# we don't have any bundled cjk fonts, so allow use of
# system fonts for the cjk tests, tests have to survive
# unavailable fonts
$(call gb_CppunitTest_get_target,vcl_cjk): \
EXTRA_ENV_VARS := \
SAL_NON_APPLICATION_FONT_USE=allow
$(eval $(call gb_CppunitTest_set_non_application_font_use,vcl_cjk,allow))
# vim: set noet sw=4 ts=4:
+1 -3
View File
@@ -44,9 +44,7 @@ $(eval $(call gb_CppunitTest_use_rdb,vcl_pdfexport,services))
$(eval $(call gb_CppunitTest_use_configuration,vcl_pdfexport))
# assert if font/glyph fallback occurs
$(call gb_CppunitTest_get_target,vcl_pdfexport): \
EXTRA_ENV_VARS := \
SAL_NON_APPLICATION_FONT_USE=abort
$(eval $(call gb_CppunitTest_set_non_application_font_use,vcl_pdfexport,abort))
$(eval $(call gb_CppunitTest_use_more_fonts,vcl_pdfexport))
+1 -2
View File
@@ -309,8 +309,7 @@ FcFontSet* FontCfgWrapper::getFontSet()
bool bRestrictFontSetToApplicationFonts = false;
#if HAVE_MORE_FONTS
bRestrictFontSetToApplicationFonts = [] {
const char* pEnv = getenv("SAL_NON_APPLICATION_FONT_USE");
return pEnv && strcmp(pEnv, "allow") != 0;
return getenv("SAL_NON_APPLICATION_FONT_USE") != nullptr;
}();
#endif
if (!bRestrictFontSetToApplicationFonts)