From 4d5e5908b41308152698cfd769173c69cb3569d4 Mon Sep 17 00:00:00 2001 From: Matúš Kukan Date: Wed, 30 Nov 2016 09:15:53 +0100 Subject: tdf#97803: gbuild: Check that every package is registered Change-Id: Idedad62ac28804f4725d6bda2f4633ed79c01535 Reviewed-on: https://gerrit.libreoffice.org/31571 Tested-by: Jenkins Reviewed-by: Michael Stahl --- solenv/gbuild/Helper.mk | 18 ++++++++++++++++++ solenv/gbuild/Package.mk | 4 ++++ 2 files changed, 22 insertions(+) (limited to 'solenv/gbuild') diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk index c3677c011f63..0693f139f365 100644 --- a/solenv/gbuild/Helper.mk +++ b/solenv/gbuild/Helper.mk @@ -231,9 +231,27 @@ gb_Jar_MODULE_$(2) += $(3) endef +define gb_Helper__register_packages +$(foreach target,$(1),\ + $(if $(filter $(target),$(gb_Package_REGISTERED)),\ + $(call gb_Output_error,gb_Helper_register_packages: already registered: $(target)))) +$(if $(filter-out $(words $(1)),$(words $(sort $(1)))),\ + $(call gb_Output_error,gb_Helper_register_packages: contains duplicates: $(1))) + +gb_Package_REGISTERED += $(1) + +endef + +# $(call gb_Helper_register_packages,packages) +define gb_Helper_register_packages +$(call gb_Helper__register_packages,$(1)) + +endef + # $(call gb_Helper_register_packages_for_install,installmodule,packages) define gb_Helper_register_packages_for_install $(if $(2),,$(call gb_Output_error,gb_Helper_register_packages_for_install: no packages - need 2 parameters)) +$(call gb_Helper__register_packages,$(2)) gb_Package_MODULE_$(1) += $(2) diff --git a/solenv/gbuild/Package.mk b/solenv/gbuild/Package.mk index a23728c2b65e..1ab45b687800 100644 --- a/solenv/gbuild/Package.mk +++ b/solenv/gbuild/Package.mk @@ -100,6 +100,10 @@ define gb_Package_Package $$(if $$(gb_Package_SOURCEDIR_$(1)),$$(call gb_Output_error,gb_Package__check: Package $(1) has already been defined)) $(if $(filter postprocess% instsetoo_native%,$(1)),,\ $(call gb_Postprocess_register_target,AllPackages,Package,$(1))) +ifeq (,$$(filter $(1),$$(gb_Package_REGISTERED))) +$$(eval $$(call gb_Output_info,Currently known packages are: $(sort $(gb_Package_REGISTERED)),ALL)) +$$(eval $$(call gb_Output_error,Package $(1) must be registered in Repository.mk or RepositoryExternal.mk)) +endif $(call gb_Package_Package_internal,$(1),$(2)) $$(eval $$(call gb_Module_register_target,$(call gb_Package_get_target,$(1)),$(call gb_Package_get_clean_target,$(1)))) $(call gb_Helper_make_userfriendly_targets,$(1),Package) -- cgit