Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
bbf2f413
Kaydet (Commit)
bbf2f413
authored
Ara 29, 2012
tarafından
David Tardon
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
rethink external executable setup
Change-Id: I5293fea9b5404b82e72761407d325c408a2e45ca
üst
2f0e0daf
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
146 additions
and
65 deletions
+146
-65
RepositoryExternal.mk
RepositoryExternal.mk
+10
-10
CustomTarget_autocorr.mk
extras/CustomTarget_autocorr.mk
+1
-1
Configuration_filter.mk
filter/Configuration_filter.mk
+2
-2
CustomTarget_svg.mk
filter/CustomTarget_svg.mk
+1
-1
CustomTarget_localedata.mk
i18npool/CustomTarget_localedata.mk
+1
-1
CustomTarget_registry.mk
officecfg/CustomTarget_registry.mk
+1
-1
CustomTarget_readme.mk
readlicense_oo/CustomTarget_readme.mk
+1
-1
ComponentTarget.mk
solenv/gbuild/ComponentTarget.mk
+1
-1
Configuration.mk
solenv/gbuild/Configuration.mk
+1
-1
ExternalExecutable.mk
solenv/gbuild/ExternalExecutable.mk
+124
-43
Rdb.mk
solenv/gbuild/Rdb.mk
+1
-1
UnoApiTarget.mk
solenv/gbuild/UnoApiTarget.mk
+1
-1
CustomTarget_source.mk
writerfilter/CustomTarget_source.mk
+1
-1
No files found.
RepositoryExternal.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -2459,7 +2459,7 @@ gb_ExternalExecutable__register_xmllint :=
else # ! SYSTEM_LIBXML_FOR_BUILD
define gb_ExternalExecutable__register_xmllint
gb_ExternalExecutable__xmllint_TARGET := $(call gb_Executable_get_target_for_build
,xmllint)
$(call gb_ExternalExecutable_set_internal
,xmllint)
endef
...
...
@@ -2472,7 +2472,7 @@ gb_ExternalExecutable__register_xsltproc :=
else # ! SYSTEM_LIBXSLT_FOR_BUILD
define gb_ExternalExecutable__register_xsltproc
gb_ExternalExecutable__xsltproc_TARGET := $(call gb_Executable_get_target_for_build
,xsltproc)
$(call gb_ExternalExecutable_set_internal
,xsltproc)
endef
...
...
@@ -2485,7 +2485,7 @@ gb_ExternalExecutable__register_ucpp :=
else # ! SYSTEM_UCPP
define gb_ExternalExecutable__register_ucpp
gb_ExternalExecutable__ucpp_TARGET := $(call gb_Executable_get_target_for_build
,ucpp)
$(call gb_ExternalExecutable_set_internal
,ucpp)
endef
...
...
@@ -2495,7 +2495,7 @@ endif # SYSTEM_UCPP
ifeq ($(SYSTEM_PYTHON),YES)
define gb_ExternalExecutable__register_python
gb_ExternalExecutable__python_COMMAND := $(ICECREAM_RUN) $(PYTHON
)
$(call gb_ExternalExecutable_set_external,python,$(PYTHON)
)
endef
...
...
@@ -2505,7 +2505,7 @@ else ifeq ($(OS),MACOSX)
#gbuild/platform/macosx.mk correctly for mac, e.g. PYTHONPATH and PYTHONHOME
#dirs for in-tree internal python
define gb_ExternalExecutable__register_python
gb_ExternalExecutable__python_COMMAND := $(ICECREAM_RUN) $(PYTHON
)
$(call gb_ExternalExecutable_set_external,python,$(PYTHON)
)
endef
...
...
@@ -2518,11 +2518,11 @@ else # ! SYSTEM_PYTHON
# internal python
define gb_ExternalExecutable__register_python
gb_ExternalExecutable__python_TARGET := $(call gb_Executable_get_target_for_build
,python)
gb_ExternalExecutable__python_PRECOMMAND := $(gb_PYTHON_PRECOMMAND
)
gb_ExternalExecutable__python_DEPS :=
\
$(call gb_
Executable_get_target_for_build,python
) \
$(call gb_Package_get_target,python3
)
$(call gb_ExternalExecutable_set_internal
,python)
$(call gb_ExternalExecutable_set_precommand,python,$(gb_PYTHON_PRECOMMAND)
)
$(call gb_ExternalExecutable_add_dependencies,python,
\
$(call gb_
Package_get_target,python3
) \
)
endef
...
...
extras/CustomTarget_autocorr.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -282,7 +282,7 @@ $(call gb_CustomTarget_get_workdir,extras/source/autotext)/%/mimetype : $(SRCDIR
cp $< $@
$(call gb_CustomTarget_get_workdir,extras/source/autotext)/%.xml : $(SRCDIR)/extras/source/autotext/lang/%.xml \
| $(call gb_ExternalExecutable_get_deps,xsltproc)
| $(call gb_ExternalExecutable_get_dep
endencie
s,xsltproc)
$(call gb_Output_announce,$*.xml,$(true),XSL,1)
$(call gb_ExternalExecutable_get_command,xsltproc) -o $@ $(SRCDIR)/extras/util/compact.xsl $<
...
...
filter/Configuration_filter.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -22,7 +22,7 @@
# semi-integrated with the stuff from Configuration.mk; not exactly pretty...
ifeq ($(SOLAR_JAVA),)
filter_MERGE_TARGET := $(call gb_ExternalExecutable_get_deps,python) \
filter_MERGE_TARGET := $(call gb_ExternalExecutable_get_dep
endencie
s,python) \
$(SRCDIR)/filter/source/config/tools/merge/pyAltFCFGMerge
filter_MERGE := $(call gb_ExternalExecutable_get_command,python) \
$(SRCDIR)/filter/source/config/tools/merge/pyAltFCFGMerge
...
...
@@ -230,7 +230,7 @@ $(call gb_Configuration_get_clean_target,fcfg_langpack) : \
define filter_XcuResTarget__rule
$$(call filter_XcuResTarget_get_target,$(1)) : \
$(filter_XSLT_langfilter) $(filter_XcuFilterUiTarget) \
| $(call gb_ExternalExecutable_get_deps,xsltproc)
| $(call gb_ExternalExecutable_get_dep
endencie
s,xsltproc)
$$(call gb_Output_announce,$(1),$(true),XCU,1)
$$(call gb_Helper_abbreviate_dirs,\
mkdir -p $$(dir $$@) && \
...
...
filter/CustomTarget_svg.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -59,7 +59,7 @@ $(filter_GEN_svg_Tokens_cxx) : $(filter_GEN_svg_Tokens_gperf)
> $(filter_GEN_svg_Tokens_cxx))
$(filter_GEN_svg_Script_hxx) : \
$(call gb_ExternalExecutable_get_deps,python) \
$(call gb_ExternalExecutable_get_dep
endencie
s,python) \
$(filter_SRC_svg_PresentationEngine) $(filter_SRC_svg_Js2Hxx) \
| $(filter_SVGWORK)/.dir
$(call gb_Output_announce,$@,build,PY ,1)
...
...
i18npool/CustomTarget_localedata.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -56,7 +56,7 @@ $(i18npool_LDDIR)/localedata_%.cxx : \
$(i18npool_LDDIR)/saxparser.rdb : $(i18npool_LDDIR)/saxparser.input \
$(SOLARENV)/bin/packcomponents.xslt \
| $(call gb_ExternalExecutable_get_dep
s,xsltproc)
| $(call gb_ExternalExecutable_get_dependencie
s,xsltproc)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),RDB,1)
$(call gb_Helper_abbreviate_dirs, \
$(call gb_ExternalExecutable_get_command,xsltproc) --nonet --stringparam prefix $(OUTDIR_FOR_BUILD)/xml/ \
...
...
officecfg/CustomTarget_registry.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -47,7 +47,7 @@ officecfg_xsltparams=$(if $(filter-out $(lastword $1),$1),$(call officecfg_xsltp
$(call gb_CustomTarget_get_workdir,officecfg/registry)/%.hxx: \
$(SRCDIR)/officecfg/registry/schema/org/openoffice/%.xcs \
$(SRCDIR)/officecfg/registry/cppheader.xsl\
| $(call gb_ExternalExecutable_get_deps,xsltproc)
| $(call gb_ExternalExecutable_get_dep
endencie
s,xsltproc)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),XSL,1)
$(call gb_Helper_abbreviate_dirs, \
mkdir -p $(dir $@) && \
...
...
readlicense_oo/CustomTarget_readme.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -56,7 +56,7 @@ $(readlicense_oo_README_PATTERN) : \
$(SRCDIR)/readlicense_oo/docs/readme.xsl \
$(readlicense_oo_README_XRM) \
| $(readlicense_oo_DIR)/.dir \
$(call gb_ExternalExecutable_get_deps,xsltproc)
$(call gb_ExternalExecutable_get_dep
endencie
s,xsltproc)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),XSL,1)
$(call gb_Helper_abbreviate_dirs, \
$(call gb_ExternalExecutable_get_command,xsltproc) --nonet --novalid -o $@.out \
...
...
solenv/gbuild/ComponentTarget.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -53,7 +53,7 @@ $(call gb_ComponentTarget_get_clean_target,%) :
$(call gb_ComponentTarget_get_target,%) : \
$(call gb_ComponentTarget_get_source,%) \
| $(call gb_ExternalExecutable_get_deps,xsltproc)
| $(call gb_ExternalExecutable_get_dep
endencie
s,xsltproc)
$(call gb_ComponentTarget__command,$@,$<,$*)
# the .dir is for make 3.81, which ignores trailing /
...
...
solenv/gbuild/Configuration.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -58,7 +58,7 @@ gb_Configuration__get_source = $(SRCDIR)/$(2)
gb_Configuration_PRIMARY_REGISTRY_NAME := registry
gb_Configuration_XSLTCOMMAND = $(call gb_ExternalExecutable_get_command,xsltproc)
gb_Configuration_XSLTCOMMAND_DEPS = $(call gb_ExternalExecutable_get_deps,xsltproc)
gb_Configuration_XSLTCOMMAND_DEPS = $(call gb_ExternalExecutable_get_dep
endencie
s,xsltproc)
# XcsTarget class
...
...
solenv/gbuild/ExternalExecutable.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -12,38 +12,42 @@
# ExternalExecutable is a little helper for using executables that might
# either come from system or be built internally.
#
# The configuration for an external executable is done in
# RepositoryExternal.mk by defining function
# gb_ExternalExecutable__register_EXECUTABLE, which should set up to 4
# variables. The variables are (presuming the executable is named foo):
# * gb_ExternalExecutable__foo_COMMAND
# Defines the complete command for the executable. This must include
# shell variables, if required. Defaults to
# $(gb_ExternalExecutable__foo_PRECOMMAND) $(ICECREAM_RUN) $(gb_ExternalExecutable__foo_TARGET)
# (if gb_ExternalExecutable__foo_TARGET is not defined, plain "foo" is substituted).
#
# * gb_ExternalExecutable__foo_DEPS
# The complete dependencies needed for running the executable. Only
# useful for internally built executables to make sure all data,
# config. files etc. are present. Defaults to
# $(gb_ExternalExecutable__foo_TARGET).
#
# * gb_ExternalExecutable__foo_PRECOMMAND
# Any variables that need to be set for running the executable.
# Typical example is use of $(gb_Helper_set_ld_path) for internally
# built executables.
#
# * gb_ExternalExecutable__foo_TARGET
# A full path to the executable. Typical definition for internally built
# executable is $(call gb_Executable_get_target_for_build,foo).
#
# Because of the particular choice of the defaults, there is typically
# nothing that needs to be set for a system executable.
# === Setup ===
#
# An ExternalExecutable command consists of 4 parts:
# * precommand: any command line variables that need to be set
# * internal: unspecified command(s), possibly including calls of gdb,
# valgrind or icerun
# * executable: the executable, with or without path
# * arguments: command line arguments that are specific for either
# external or internal call, or that are common for _all_ uses of the
# executable
#
# The configuration is done in RepositoryExternal.mk by defining function
# gb_ExternalExecutable__register_EXECUTABLE, which can call up to 4
# functions:
# * gb_ExternalExecutable_set_external / gb_ExternalExecutable_set_internal
# * gb_ExternalExecutable_set_precommand
# * gb_ExternalExecutable_add_dependencies
# * gb_ExternalExecutable_add_arguments.
# If neither gb_ExternalExecutable_set_external nor
# gb_ExternalExecutable_set_internal is used, the executable defaults to
# the ExternalExecutable's name. Due to that, nothing needs to be set
# for an external executable in the typical case.
#
# All external executables must be registered (by listing the executable
# name in gb_ExternalExecutable_register_executables call). This is done in
# Repository.mk .
#
# === Usage ===
#
# The call site(s) should always use both of the following functions:
# * gb_ExternalExecutable_get_command: the complete command for the
# executable
# * gb_ExternalExecutable_get_dependencies: all run-time dependencies
# needed by the command.
## Infrastructure functions
# The list of registered executables.
gb_ExternalExecutable_REGISTERED_EXECUTABLES :=
...
...
@@ -78,7 +82,9 @@ endef
#
# gb_ExternalExecutable_collect_registrations
define gb_ExternalExecutable_collect_registrations
$(foreach executable,$(gb_ExternalExecutable_REGISTERED_EXECUTABLES),$(call gb_ExternalExecutable__process_registration,$(executable)))
$(eval $(foreach executable,$(gb_ExternalExecutable_REGISTERED_EXECUTABLES),\
$(call gb_ExternalExecutable__process_registration,$(executable)))
)
endef
...
...
@@ -89,13 +95,91 @@ $(if $(filter $(1),$(gb_ExternalExecutable_REGISTERED_EXECUTABLES)),,\
endef
## Setup functions
# Set the executable as external
#
# Optionally set a specific executable call to use.
# Example:
# $(call gb_ExternalExecutable_set_external,python,$(PYTHON))
#
# gb_ExternalExecutable_set_external executable call?
define gb_ExternalExecutable_set_external
$(if $(2),gb_ExternalExecutable_$(1)_EXECUTABLE := $(2))
endef
define gb_ExternalExecutable__set_internal
gb_ExternalExecutable_$(1)_EXECUTABLE := $(2)
gb_ExternalExecutable_$(1)_DEPENDENCIES := $(2)
gb_ExternalExecutable_$(1)_PRECOMMAND := $(gb_Helper_set_ld_path)
endef
# Set the executable as internal
#
# Optionally set a specific executable target to use (if the target
# returned by gb_Executable_get_target_for_build is not suitable).
#
# gb_ExternalExecutable_set_internal executable call?
define gb_ExternalExecutable_set_internal
$(call gb_ExternalExecutable__set_internal,$(1),$(if $(strip $(2)),$(2),$(call gb_Executable_get_target_for_build,$(1))))
endef
# Set pre-command for the executable
#
# This call should set any command line variables needed for the
# executable to run.
#
# gb_ExternalExecutable_set_precommand executable precommand
define gb_ExternalExecutable_set_precommand
gb_ExternalExecutable_$(1)_PRECOMMAND := $(2)
endef
# Add dependencies needed for running the executable
#
# Note that the dependencies should in most (if not all) cases be
# _for_build targets, or there might be problems in cross-compilation
# Specifically, not using _for_build target would mean either:
# * the target is built before the command even if it is not necessary
# (not really a problem, but might be a nuisance)
# * the build breaks because the target is not known. This might happen
# if there is a difference in configuration between build and host
# phases.
#
# gb_ExternalExecutable_add_dependencies executable dependencies
define gb_ExternalExecutable_add_dependencies
gb_ExternalExecutable_$(1)_DEPENDENCIES += $(2)
endef
# Add arguments needed for running the executable
#
# This should only contain arguments that differ between external and
# internal executable call or that are common for all call sites.
#
# gb_ExternalExecutable_add_arguments executable arguments
define gb_ExternalExecutable_add_arguments
gb_ExternalExecutable_$(1)_ARGUMENTS += $(2)
endef
## User functions
gb_ExternalExecutable__get_internal := $(ICECREAM_RUN)
define gb_ExternalExecutable__get_executable
$(if $(gb_ExternalExecutable_$(1)_EXECUTABLE),$(gb_ExternalExecutable_$(1)_EXECUTABLE),$(1))
endef
define gb_ExternalExecutable__get_command
$(call gb_ExternalExecutale__check_registration,$(1))
$(if $(filter undefined,$(origin gb_ExternalExecutable__$(1)_COMMAND)) \
,$(gb_ExternalExecutable__$(1)_PRECOMMAND) $(ICECREAM_RUN) \
$(if $(gb_ExternalExecutable__$(1)_TARGET),$(gb_ExternalExecutable__$(1)_TARGET),$(1)) \
,$(gb_ExternalExecutable__$(1)_COMMAND) \
)
$(gb_ExternalExecutable_$(1)_PRECOMMAND) \
$(call gb_ExternalExecutable__get_internal,$(1)) \
$(call gb_ExternalExecutable__get_executable,$(1)) \
$(gb_ExternalExecutable_$(1)_ARGUMENTS)
endef
# Return the command for running an external executable.
...
...
@@ -109,19 +193,16 @@ define gb_ExternalExecutable_get_command
$(strip $(call gb_ExternalExecutable__get_command,$(1)))
endef
define gb_ExternalExecutable__get_deps
define gb_ExternalExecutable__get_dep
endencie
s
$(call gb_ExternalExecutale__check_registration,$(1))
$(if $(filter undefined,$(origin gb_ExternalExecutable__$(1)_DEPS)) \
,$(gb_ExternalExecutable__$(1)_TARGET) \
,$(gb_ExternalExecutable__$(1)_DEPS) \
)
$(gb_ExternalExecutable_$(1)_DEPENDENCIES)
endef
# Return the deps needed for running an external executable.
# Return the dep
endencie
s needed for running an external executable.
#
# gb_ExternalExecutable_get_deps executable
define gb_ExternalExecutable_get_deps
$(strip $(call gb_ExternalExecutable__get_deps,$(1)))
# gb_ExternalExecutable_get_dep
endencie
s executable
define gb_ExternalExecutable_get_dep
endencie
s
$(strip $(call gb_ExternalExecutable__get_dep
endencie
s,$(1)))
endef
# vim: set noet sw=4 ts=4:
solenv/gbuild/Rdb.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -37,7 +37,7 @@ $(call gb_Helper_abbreviate_dirs,\
rm $(1).input)
endef
$(call gb_Rdb_get_target,%) :| $(call gb_ExternalExecutable_get_deps,xsltproc)
$(call gb_Rdb_get_target,%) :| $(call gb_ExternalExecutable_get_dep
endencie
s,xsltproc)
$(call gb_Output_announce,$*,$(true),RDB,1)
$(call gb_Rdb__command,$@,$*,$?,$^)
...
...
solenv/gbuild/UnoApiTarget.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -72,7 +72,7 @@ endef
# idlc as well so their dummy rule fires if that changes.
$(call gb_UnoApiPartTarget_get_target,%.done) : \
$(gb_UnoApiPartTarget_IDLCTARGET) \
| $(call gb_ExternalExecutable_get_deps,ucpp)
| $(call gb_ExternalExecutable_get_dep
endencie
s,ucpp)
$(call gb_UnoApiPartTarget__command,$@,$*,$(filter-out $(gb_UnoApiPartTarget_IDLCTARGET),$(if $(filter $(gb_UnoApiPartTarget_IDLCTARGET),$?),$^,$?)))
ifeq ($(gb_FULLDEPS),$(true))
...
...
writerfilter/CustomTarget_source.mk
Dosyayı görüntüle @
bbf2f413
...
...
@@ -204,6 +204,6 @@ $(writerfilter_WORK)/OOXMLFactory%.hxx : $(writerfilter_SRC)/ooxml/factory_ns.xs
$(call gb_CustomTarget_get_target,writerfilter/source) : $(writerfilter_ALL)
$(writerfilter_ALL) :| $(call gb_ExternalExecutable_get_deps,xsltproc) $(writerfilter_WORK)/.dir
$(writerfilter_ALL) :| $(call gb_ExternalExecutable_get_dep
endencie
s,xsltproc) $(writerfilter_WORK)/.dir
# vim: set noet sw=4 ts=4:
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment