diff options
author | David Tardon <dtardon@redhat.com> | 2012-07-29 11:47:50 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2012-09-22 08:15:21 +0200 |
commit | c7d7a4b93d405778798e660cf5d2948a9a537d0a (patch) | |
tree | 14b5380298a4fddff0efe29fa534911214e43211 | |
parent | 53eff166061abbdb3570a1deadfa161cc79889c0 (diff) |
add support for CLI to gbuild
Change-Id: I45b617248c9edcee02514f1fb65cbb03b0a2d5aa
-rw-r--r-- | Repository.mk | 5 | ||||
-rw-r--r-- | solenv/gbuild/CliAssembly.mk | 178 | ||||
-rw-r--r-- | solenv/gbuild/CliLibrary.mk | 201 | ||||
-rw-r--r-- | solenv/gbuild/CliNativeLibrary.mk | 139 | ||||
-rw-r--r-- | solenv/gbuild/CliUnoApi.mk | 166 | ||||
-rw-r--r-- | solenv/gbuild/TargetLocations.mk | 18 | ||||
-rw-r--r-- | solenv/gbuild/gbuild.mk | 4 | ||||
-rw-r--r-- | solenv/gbuild/platform/IOS_ARM_GCC.mk | 5 | ||||
-rw-r--r-- | solenv/gbuild/platform/WNT_INTEL_GCC.mk | 5 | ||||
-rw-r--r-- | solenv/gbuild/platform/WNT_INTEL_MSC.mk | 9 | ||||
-rw-r--r-- | solenv/gbuild/platform/macosx.mk | 5 | ||||
-rw-r--r-- | solenv/gbuild/platform/solaris.mk | 5 | ||||
-rw-r--r-- | solenv/gbuild/platform/unxgcc.mk | 5 |
13 files changed, 744 insertions, 1 deletions
diff --git a/Repository.mk b/Repository.mk index d2ed49fb67ff..590cc8a384f8 100644 --- a/Repository.mk +++ b/Repository.mk @@ -78,8 +78,9 @@ ifneq ($(OS),IOS) $(eval $(call gb_Helper_register_executables,SDK, \ autodoc \ - javamaker \ + climaker \ cppumaker \ + javamaker \ regcompare \ uno-skeletonmaker \ )) @@ -400,6 +401,8 @@ endif $(eval $(call gb_Helper_register_libraries,PLAINLIBS_URE, \ affine_uno \ + cli_cppuhelper_native \ + cli_uno \ jpipe \ juh \ juhx \ diff --git a/solenv/gbuild/CliAssembly.mk b/solenv/gbuild/CliAssembly.mk new file mode 100644 index 000000000000..d068fa55eec3 --- /dev/null +++ b/solenv/gbuild/CliAssembly.mk @@ -0,0 +1,178 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +# CliConfigTarget class + +gb_CliConfigTarget_TARGET := $(SOLARENV)/bin/clipatchconfig.pl +gb_CliConfigTarget_COMMAND := $(PERL) -w $(gb_CliConfigTarget_TARGET) + +gb_CliConfigTarget_VERSIONFILE_DEFAULT := $(SRCDIR)/cli_ure/version/version.txt + +define gb_CliConfigTarget__command +$(call gb_Output_announce,$(2),$(true),CPA,1) +$(call gb_Helper_abbreviate_dirs,\ + $(gb_CliConfigTarget_COMMAND) $(3) $(CLI_CONFIG_VERSIONFILE) $(1) \ +) +endef + +$(dir $(call gb_CliConfigTarget_get_target,%))%/.dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +$(call gb_CliConfigTarget_get_target,%) : + $(call gb_CliConfigTarget__command,$@,$*,$<) + +$(call gb_CliConfigTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),CPA,1) + rm -f $(call gb_CliConfigTarget_get_target,$*) + +# Subst. variables in a config file +# +# gb_CliConfigTarget_CliConfigTarget target source +define gb_CliConfigTarget_CliConfigTarget +$(call gb_CliConfigTarget_get_target,$(1)) : CLI_CONFIG_VERSIONFILE := $(gb_CliConfigTarget_VERSIONFILE_DEFAULT) + +$(call gb_CliConfigTarget_get_target,$(1)) : $(2) +$(call gb_CliConfigTarget_get_target,$(1)) : $(gb_CliConfigTarget_TARGET) +$(call gb_CliConfigTarget_get_target,$(1)) : $$(CLI_CONFIG_VERSIONFILE) +$(call gb_CliConfigTarget_get_target,$(1)) :| $(dir $(call gb_CliConfigTarget_get_target,$(1))).dir + +endef + +# CliAssemblyTarget class + +# platform: +# CliAssemblyTarget_POLICYEXT +# CliAssemblyTarget_get_dll + +gb_CliAssemblyTarget_KEYFILE_DEFAULT := $(SRCDIR)/cli_ure/source/cliuno.snk + +define gb_CliAssemblyTarget__command +$(call gb_Output_announce,$(2),$(true),AL ,2) +$(call gb_Helper_abbreviate_dirs,\ + al \ + -out:$(1) \ + -version:$(CLI_ASSEMBLY_VERSION) \ + -keyfile:$(call gb_Helper_windows_path,$(CLI_ASSEMBLY_KEYFILE)) \ + -link:$(CLI_ASSEMBLY_CONFIGFILE) \ + $(if $(CLI_ASSEMBLY_PLATFORM),-platform:$(CLI_ASSEMBLY_PLATFORM)) \ +) +endef + +$(dir $(call gb_CliAssemblyTarget_get_target,%)).dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +$(dir $(call gb_CliAssemblyTarget_get_target,%))%/.dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +$(call gb_CliAssemblyTarget_get_target,%) : + $(if $(strip $(CLI_ASSEMBLY_VERSION)),,$(call gb_Output_error,assembly version not set)) + $(if $(strip $(CLI_ASSEMBLY_CONFIGFILE)),,$(call gb_Output_error,assembly configuration file not set)) + $(call gb_CliAssemblyTarget__command,$@,$*,$<) + +.PHONY : $(call gb_CliAssemblyTarget_get_clean_target,%) +$(call gb_CliAssemblyTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),AL ,2) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_CliAssemblyTarget_get_target,$*) \ + ) + +# Create a CLI assembly +define gb_CliAssemblyTarget_CliAssemblyTarget +$(call gb_CliAssemblyTarget_get_target,$(1)) : CLI_ASSEMBLY_CONFIGFILE := +$(call gb_CliAssemblyTarget_get_target,$(1)) : CLI_ASSEMBLY_KEYFILE := $(gb_CliAssemblyTarget_KEYFILE_DEFAULT) +$(call gb_CliAssemblyTarget_get_target,$(1)) : CLI_ASSEMBLY_PLATFORM := +$(call gb_CliAssemblyTarget_get_target,$(1)) : CLI_ASSEMBLY_VERSION := + +$(call gb_CliAssemblyTarget_get_target,$(1)) : $$(CLI_ASSEMBLY_KEYFILE) +$(call gb_CliAssemblyTarget_get_target,$(1)) :| $(dir $(call gb_CliAssemblyTarget_get_target,$(1))).dir + +endef + +define gb_CliAssemblyTarget_set_configfile +$(call gb_CliAssemblyTarget_get_target,$(1)) : CLI_ASSEMBLY_CONFIGFILE := $(2) +$(call gb_CliAssemblyTarget_get_target,$(1)) : $(2) + +endef + +define gb_CliAssemblyTarget_set_keyfile +$(call gb_CliAssemblyTarget_get_target,$(1)) : CLI_ASSEMBLY_KEYFILE := $(2) + +endef + +define gb_CliAssemblyTarget_set_platform +$(call gb_CliAssemblyTarget_get_target,$(1)) : CLI_ASSEMBLY_PLATFORM := $(2) + +endef + +define gb_CliAssemblyTarget_set_version +$(call gb_CliAssemblyTarget_get_target,$(1)) : CLI_ASSEMBLY_VERSION := $(2) + +endef + +# CliAssembly class + +gb_CliAssembly_KEYFILE_DEFAULT := $(gb_CliAssemblyTarget_KEYFILE_DEFAULT) +gb_CliAssembly_POLICYEXT := $(gb_CliAssemblyTarget_POLICYEXT) + +gb_CliAssembly_get_dll = $(call gb_CliAssemblyTarget_get_dll,$(1)) + +$(call gb_CliAssembly_get_target,%) : + $(call gb_Output_announce,$*,$(true),CLA,3) + mkdir -p $(dir $@) && touch $@ + +.PHONY : $(call gb_CliAssembly_get_clean_target,%) +$(call gb_CliAssembly_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),CLA,3) + rm -f $(call gb_CliAssembly_get_target,$*) + +define gb_CliAssembly_CliAssembly +$(call gb_CliAssemblyTarget_CliAssemblyTarget,$(1)) +$(call gb_Package_Package_internal,$(1)_assembly,$(WORKDIR)) + +$(call gb_CliAssembly_get_target,$(1)) : $(call gb_CliAssemblyTarget_get_target,$(1)) +$(call gb_CliAssembly_get_target,$(1)) :| $(call gb_Package_get_target,$(1)_assembly) +$(call gb_CliAssembly_get_clean_target,$(1)) : $(call gb_CliAssemblyTarget_get_clean_target,$(1)) +$(call gb_CliAssembly_get_clean_target,$(1)) : $(call gb_Package_get_clean_target,$(1)_assembly) + +endef + +define gb_CliAssembly__set_configfile_impl +$(call gb_CliAssemblyTarget_set_configfile,$(1),$(2)) +$(call gb_Package_add_file,$(1)_assembly,bin/$(notdir $(2)),$(subst $(WORKDIR)/,,$(2))) + +endef + +define gb_CliAssembly__set_configfile +$(call gb_CliConfigTarget_CliConfigTarget,$(2),$(3)) +$(call gb_CliAssembly__set_configfile_impl,$(1),$(call gb_CliConfigTarget_get_target,$(2))) + +endef + +define gb_CliAssembly_set_configfile +$(call gb_CliAssembly__set_configfile,$(1),$(patsubst %_config,%,$(2)),$(SRCDIR)/$(2)) + +endef + +define gb_CliAssembly_set_keyfile +$(call gb_CliAssemblyTarget_set_keyfile,$(1),$(2)) + +endef + +define gb_CliAssembly_set_platform +$(call gb_CliAssemblyTarget_set_platform,$(1),$(2)) + +endef + +define gb_CliAssembly_set_policy +$(call gb_CliAssemblyTarget_set_version,$(1),$(3)) +$(call gb_Package_add_file,$(1)_assembly,bin/$(2)$(gb_CliAssembly_POLICYEXT),$(subst $(WORKDIR)/,,$(call gb_CliAssemblyTarget_get_target,$(1)))) + +endef + +# vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/CliLibrary.mk b/solenv/gbuild/CliLibrary.mk new file mode 100644 index 000000000000..36352b702043 --- /dev/null +++ b/solenv/gbuild/CliLibrary.mk @@ -0,0 +1,201 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +# CliLibraryTarget class + +gb_CliLibraryTarget_EXT := $(gb_CliAssembly_POLICYEXT) + +gb_CliLibraryTarget_CSCFLAGS := \ + -noconfig \ + -warnaserror+ + +gb_CliLibraryTarget_CSCFLAGS_DEBUG := \ + -checked+ \ + -define:DEBUG \ + -define:TRACE \ + +define gb_CliLibraryTarget__get_csflags +ifeq ($(strip $(debug)),) +ifeq ($(strip $(PRODUCT)),) +$(gb_CliLibraryTarget_CSCFLAGS) $(gb_CliLibraryTarget_CSCFLAGS_DEBUG) +else +$(gb_CliLibraryTarget_CSCFLAGS) -o +endif +else +$(gb_CliLibraryTarget_CSCFLAGS) $(gb_CliLibraryTarget_CSCFLAGS_DEBUG) -debug+ +endif +endef + +gb_CliLibraryTarget__get_source = $(SRCDIR)/$(1).cs +gb_CliLibraryTarget__get_generated_source = $(WORKDIR)/$(1).cs + +define gb_CliLibraryTarget__command +$(call gb_Output_announce,$(2),$(true),CSC,3) +$(call gb_Helper_abbreviate_dirs,\ + csc \ + $(call gb_CliLibraryTarget__get_csflags) \ + $(CLI_CSCFLAGS) \ + -target:library \ + -out:$(1) \ + -reference:System.dll \ + $(foreach assembly,$(CLI_ASSEMBLIES),-reference:$(assembly).dll) \ + $(CLI_SOURCES) \ +) +endef + +$(dir $(call gb_CliLibraryTarget_get_target,%)).dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +$(dir $(call gb_CliLibraryTarget_get_target,%))%/.dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +$(call gb_CliLibraryTarget_get_target,%) : + $(call gb_CliLibraryTarget__command,$@,$*,$<,$?,$^) + +.PHONY : $(call gb_CliLibraryTarget_get_clean_target,%) +$(call gb_CliLibraryTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),CSC,3) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_CliLibraryTarget_get_target,$*) \ + ) + +# Compiles one or more C# source files +# +# gb_CliLibraryTarget_CliLibraryTarget target +define gb_CliLibraryTarget_CliLibraryTarget +$(call gb_CliLibraryTarget_get_target,$(1)) : CLI_ASSEMBLIES := +$(call gb_CliLibraryTarget_get_target,$(1)) : CLI_SOURCES := +$(call gb_CliLibraryTarget_get_target,$(1)) : CLI_CSCFLAGS := + +$(call gb_CliLibraryTarget_get_target,$(1)) :| $(dir $(call gb_CliLibraryTarget_get_target,$(1))).dir + +endef + +define gb_CliLibraryTarget_use_assembly +$(call gb_CliLibraryTarget_get_target,$(1)) : CLI_ASSEMBLIES += $(call gb_CliLibrary_get_target,$(2)) +$(call gb_CliLibraryTarget_get_target,$(1)) : $(call gb_CliLibrary_get_target,$(2)) + +endef + +define gb_CliLibraryTarget_use_assemblies +$(foreach assembly,$(2),$(call gb_CliLibraryTarget_use_assembly,$(1),$(assembly))) + +endef + +# Add a source file to compile +define gb_CliLibraryTarget_add_csfile +$(call gb_CliLibraryTarget_get_target,$(1)) : CLI_SOURCES += $(call gb_CliLibraryTarget__get_source,$(2)) +$(call gb_CliLibraryTarget_get_target,$(1)) : $(call gb_CliLibraryTarget__get_source,$(2)) + +endef + +# Add source files to compile +define gb_CliLibraryTarget_add_csfiles +$(foreach csfile,$(2),$(call gb_CliLibraryTarget_add_csfile,$(1),$(csfile))) + +endef + +# Add a generated source file to compile +define gb_CliLibraryTarget_add_generated_csfile +$(call gb_CliLibraryTarget_get_target,$(1)) : CLI_SOURCES += $(call gb_CliLibraryTarget__get_generated_source,$(2)) +$(call gb_CliLibraryTarget_get_target,$(1)) : $(call gb_CliLibraryTarget__get_generated_source,$(2)) + +endef + +# Add generated source files to compile +define gb_CliLibraryTarget_add_generated_csfiles +$(foreach csfile,$(2),$(call gb_CliLibraryTarget_add_generated_csfile,$(1),$(csfile))) + +endef + +# Add flags used for compilation +define gb_CliLibraryTarget_add_csflags +$(call gb_CliLibraryTarget_get_target,$(1)) : CLI_CSCFLAGS += $(2) + +endef + +# CliLibrary class + +gb_CliLibrary_EXT := $(gb_CliLibraryTarget_EXT) + +# Compiles one or more C# source files +# +# gb_CliLibrary_CliLibrary target +define gb_CliLibrary_CliLibrary +$(call gb_CliLibraryTarget_CliLibraryTarget,$(1)) +$(call gb_CliAssembly_CliAssembly,$(1)) + +$(call gb_CliLibrary_get_target,$(1)) : $(call gb_CliLibraryTarget_get_target,$(1)) +$(call gb_CliLibrary_get_target,$(1)) :| $(call gb_CliAssembly_get_target,$(1)) +$(call gb_CliLibrary_get_target,$(1)) :| $(dir $(call gb_CliLibrary_get_target,$(1))).dir +$(call gb_CliLibrary_get_clean_target,$(1)) : $(call gb_CliLibraryTarget_get_clean_target,$(1)) +$(call gb_CliLibrary_get_clean_target,$(1)) : $(call gb_CliAssembly_get_clean_target,$(1)) + +$(call gb_Deliver_add_deliverable,$(call gb_CliLibrary_get_target,$(1)),$(call gb_CliLibraryTarget_get_target,$(1)),$(1)) + +$$(eval $$(call gb_Module_register_target,$(call gb_CliLibrary_get_target,$(1)),$(call gb_CliLibrary_get_clean_target,$(1)))) + +endef + +define gb_CliLibrary_set_configfile +$(call gb_CliAssembly_set_configfile,$(1),$(2)) + +endef + +define gb_CliLibrary_set_keyfile +$(call gb_CliAssembly_set_keyfile,$(1),$(2)) + +endef + +define gb_CliLibrary_set_policy +$(call gb_CliAssembly_set_policy,$(1),$(2),$(3)) + +endef + +define gb_CliLibrary_use_assembly +$(call gb_CliLibraryTarget_use_assembly,$(1),$(2)) + +endef + +define gb_CliLibrary_use_assemblies +$(call gb_CliLibraryTarget_use_assemblies,$(1),$(2)) + +endef + +# Add a source file to compile +define gb_CliLibrary_add_csfile +$(call gb_CliLibraryTarget_add_csfile,$(1),$(2)) + +endef + +# Add source files to compile +define gb_CliLibrary_add_csfiles +$(call gb_CliLibraryTarget_add_csfiles,$(1),$(2)) + +endef + +# Add a generated source file to compile +define gb_CliLibrary_add_generated_csfile +$(call gb_CliLibraryTarget_add_generated_csfile,$(1),$(2)) + +endef + +# Add generated source files to compile +define gb_CliLibrary_add_generated_csfiles +$(call gb_CliLibraryTarget_add_generated_csfiles,$(1),$(2)) + +endef + +# Add flags used for compilation +define gb_CliLibrary_add_csflags +$(call gb_CliLibraryTarget_add_csflags,$(1),$(2)) + +endef + +# vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/CliNativeLibrary.mk b/solenv/gbuild/CliNativeLibrary.mk new file mode 100644 index 000000000000..2324211b15ac --- /dev/null +++ b/solenv/gbuild/CliNativeLibrary.mk @@ -0,0 +1,139 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +# CliNativeLibraryTarget class + +gb_CliNativeLibraryTarget_EXT := $(gb_CliAssembly_POLICYEXT) + +gb_CliNativeLibraryTarget__get_library = $(call gb_CliAssembly_get_dll,$(1)) + +define gb_CliNativeLibraryTarget__command +$(call gb_Output_announce,$(1),$(true),SN ,4) +$(call gb_Helper_abbreviate_dirs,\ + $(GNUCOPY) $(CLI_NATIVE_LIBRARY) $(1).tmp && \ + sn -R $(1).tmp $(CLI_NATIVE_KEYFILE) && \ + mv $(1).tmp $(1) \ +) +endef + +$(dir $(call gb_CliNativeLibraryTarget_get_target,%)).dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +$(dir $(call gb_CliNativeLibraryTarget_get_target,%))%/.dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +$(call gb_CliNativeLibraryTarget_get_target,%) : + $(call gb_CliNativeLibraryTarget__command,$@,$*,$<) + +.PHONY : $(call gb_CliNativeLibraryTarget_get_clean_target,%) +$(call gb_CliNativeLibraryTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),SN ,4) + $(call gb_Helper_abbreviate_dirs,\ + rm -r $(call gb_CliNativeLibraryTarget_get_target,$*) \ + ) + +define gb_CliNativeLibraryTarget_CliNativeLibraryTarget +$(call gb_CliNativeLibraryTarget_get_target,$(1)) : CLI_NATIVE_ASSEMBLIES := $(gb_Helper_MISCDUMMY) +$(call gb_CliNativeLibraryTarget_get_target,$(1)) : CLI_NATIVE_KEYFILE := +$(call gb_CliNativeLibraryTarget_get_target,$(1)) : CLI_NATIVE_LIBRARY := + +$(call gb_CliNativeLibraryTarget_get_target,$(1)) :| $(dir $(call gb_CliNativeLibraryTarget_get_target,$(1))).dir + +endef + +# TODO gb_Library_get_target might be sufficient here. I do not know if +# #using <assembly.dll> actually does anything at compile time, or if it is +# only needed at link time. +define gb_CliNativeLibraryTarget_wrap_library +$(call gb_CliNativeLibraryTarget_get_target,$(1)) : CLI_NATIVE_LIBRARY := $(call gb_CliNativeLibraryTarget__get_library,$(2)) +$(call gb_CliNativeLibraryTarget_get_target,$(1)) : $(call gb_Library_get_target,$(2)) +$(call gb_Library_get_external_headers_target,$(2)) : $$(CLI_NATIVE_ASSEMBLIES) + +endef + +define gb_CliNativeLibraryTarget_set_keyfile +$(call gb_CliNativeLibraryTarget_get_target,$(1)) : CLI_NATIVE_KEYFILE := $(2) +$(call gb_CliNativeLibraryTarget_get_target,$(1)) : $(2) + +endef + +define gb_CliNativeLibraryTarget_use_assembly +$(call gb_CliNativeLibraryTarget_get_target,$(1)) : CLI_NATIVE_ASSEMBLIES += $(call gb_CliLibrary_get_target,$(2)) + +endef + +define gb_CliNativeLibraryTarget_use_assemblies +$(foreach assembly,$(2),$(call gb_CliNativeLibraryTarget_use_assembly,$(1),$(assembly))) + +endef + +# CliNativeLibrary class + +gb_CliNativeLibrary_PLATFORM_DEFAULT := x86 +gb_CliNativeLibrary_EXT := $(gb_CliNativeLibraryTarget_EXT) + +# Create a CLI library for a native library +# +# CliNativeLibrary target +define gb_CliNativeLibrary_CliNativeLibrary +$(call gb_CliNativeLibraryTarget_CliNativeLibraryTarget,$(1)) +$(call gb_CliAssembly_CliAssembly,$(1)) + +$(call gb_CliNativeLibraryTarget_set_keyfile,$(1),$(gb_CliAssembly_KEYFILE_DEFAULT)) +$(call gb_CliAssembly_set_platform,$(1),$(gb_CliNativeLibrary_PLATFORM_DEFAULT)) + +$(call gb_CliNativeLibrary_get_target,$(1)) : $(call gb_CliNativeLibraryTarget_get_target,$(1)) +$(call gb_CliNativeLibrary_get_target,$(1)) :| $(call gb_CliAssembly_get_target,$(1)) +$(call gb_CliNativeLibrary_get_target,$(1)) :| $(dir $(call gb_CliNativeLibrary_get_target,$(1))).dir +$(call gb_CliNativeLibrary_get_clean_target,$(1)) : $(call gb_CliNativeLibraryTarget_get_clean_target,$(1)) +$(call gb_CliNativeLibrary_get_clean_target,$(1)) : $(call gb_CliAssembly_get_clean_target,$(1)) + +$(call gb_Deliver_add_deliverable,$(call gb_CliNativeLibrary_get_target,$(1)),$(call gb_CliNativeLibraryTarget_get_target,$(1)),$(1)) + +$$(eval $$(call gb_Module_register_target,$(call gb_CliNativeLibrary_get_target,$(1)),$(call gb_CliNativeLibrary_get_clean_target,$(1)))) + +endef + +define gb_CliNativeLibrary_set_configfile +$(call gb_CliAssembly_set_configfile,$(1),$(2)) + +endef + +define gb_CliNativeLibrary_set_keyfile +$(call gb_CliNativeLibraryTarget_set_keyfile,$(1),$(2)) +$(call gb_CliAssembly_set_keyfile,$(1),$(2)) + +endef + +define gb_CliNativeLibrary_set_platform +$(call gb_CliAssembly_set_platform,$(1),$(2)) + +endef + +define gb_CliNativeLibrary_set_policy +$(call gb_CliAssembly_set_policy,$(1),$(2),$(3)) + +endef + +define gb_CliNativeLibrary_wrap_library +$(call gb_CliNativeLibraryTarget_wrap_library,$(1),$(2)) + +endef + +define gb_CliNativeLibrary_use_assembly +$(call gb_CliNativeLibraryTarget_use_assembly,$(1),$(2)) + +endef + +define gb_CliNativeLibrary_use_assemblies +$(call gb_CliNativeLibraryTarget_use_assemblies,$(1),$(2)) + +endef + +# vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/CliUnoApi.mk b/solenv/gbuild/CliUnoApi.mk new file mode 100644 index 000000000000..6be9f992fb7c --- /dev/null +++ b/solenv/gbuild/CliUnoApi.mk @@ -0,0 +1,166 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +# CliUnoApiTarget class + +gb_CliUnoApiTarget_EXT := $(gb_CliAssembly_POLICYEXT) + +gb_CliUnoApiTarget_TARGET := $(call gb_Executable_get_target_for_build,climaker) +gb_CliUnoApiTarget_COMMAND := $(gb_Helper_set_ld_path) $(gb_CliUnoApiTarget_TARGET) + +define gb_CliUnoApiTarget__command +$(call gb_Output_announce,$(2),$(true),CLI,4) +$(call gb_Helper_abbreviate_dirs,\ + $(gb_CliUnoApiTarget_COMMAND) \ + --out $(1) \ + --assembly-company "LibreOffice" \ + --assembly-description "This assembly contains metadata for the LibreOffice API." \ + --assembly-version $(CLI_UNOAPI_VERSION) \ + --keyfile $(CLI_UNOAPI_KEYFILE) \ + $(foreach api,$(CLI_UNOAPI_DEPS),-X $(api)) \ + $(foreach assembly,$(CLI_UNOAPI_ASSEMBLIES),-r $(assembly)) \ + $(CLI_UNOAPI_API) \ +) +endef + +$(dir $(call gb_CliUnoApiTarget_get_target,%)).dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +$(dir $(call gb_CliUnoApiTarget_get_target,%))%/.dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +$(call gb_CliUnoApiTarget_get_target,%) : + $(call gb_CliUnoApiTarget__command,$@,$*,$<) + +.PHONY : $(call gb_CliUnoApiTarget_get_clean_target,%) +$(call gb_CliUnoApiTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),CLI,4) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_CliUnoApiTarget_get_target,$*) \ + ) + +define gb_CliUnoApiTarget_CliUnoApiTarget +$(call gb_CliUnoApiTarget_get_target,$(1)) : CLI_UNOAPI_API := +$(call gb_CliUnoApiTarget_get_target,$(1)) : CLI_UNOAPI_ASSEMBLIES := +$(call gb_CliUnoApiTarget_get_target,$(1)) : CLI_UNOAPI_DEPS := +$(call gb_CliUnoApiTarget_get_target,$(1)) : CLI_UNOAPI_KEYFILE := +$(call gb_CliUnoApiTarget_get_target,$(1)) : CLI_UNOAPI_VERSION := + +$(call gb_CliUnoApiTarget_get_target,$(1)) : $(gb_CliUnoApiTarget_TARGET) +$(call gb_CliUnoApiTarget_get_target,$(1)) :| $(dir $(call gb_CliUnoApiTarget_get_target,$(1))).dir + +endef + +define gb_CliUnoApiTarget_set_keyfile +$(call gb_CliUnoApiTarget_get_target,$(1)) : CLI_UNOAPI_KEYFILE := $(2) +$(call gb_CliUnoApiTarget_get_target,$(1)) : $(2) + +endef + +define gb_CliUnoApiTarget_set_version +$(call gb_CliUnoApiTarget_get_target,$(1)) : CLI_UNOAPI_VERSION := $(2) + +endef + +define gb_CliUnoApiTarget_wrap_api +$(call gb_CliUnoApiTarget_get_target,$(1)) : CLI_UNOAPI_API := $(call gb_UnoApi_get_target,$(2)) +$(call gb_CliUnoApiTarget_get_target,$(1)) : $(call gb_UnoApi_get_target,$(2)) + +endef + +define gb_CliUnoApiTarget__use_api +$(call gb_CliUnoApiTarget_get_target,$(1)) : CLI_UNOAPI_DEPS += $(2) +$(call gb_CliUnoApiTarget_get_target,$(1)) : $(2) + +endef + +define gb_CliUnoApiTarget_use_api +$(foreach api,$(2),$(call gb_CliUnoApiTarget__use_api,$(1),$(call gb_UnoApi_get_target,$(api)))) + +endef + +define gb_CliUnoApiTarget_use_assembly +$(call gb_CliUnoApiTarget_get_target,$(1)) : CLI_UNOAPI_ASSEMBLIES += $(call gb_CliUnoApi_get_target,$(2)) +$(call gb_CliUnoApiTarget_get_target,$(1)) : $(call gb_CliUnoApi_get_target,$(2)) + +endef + +define gb_CliUnoApiTarget_use_assemblies +$(foreach assembly,$(2),$(call gb_CliUnoApiTarget_use_assembly,$(1),$(assembly))) + +endef + +# CliUnoApi class + +gb_CliUnoApi_EXT := $(gb_CliUnoApiTarget_EXT) +gb_CliUnoApi_KEYFILE_DEFAULT := $(gb_CliAssembly_KEYFILE_DEFAULT) + +# Create a CLI library for UNO API +# +# gb_CliUnoApi_CliUnoApi target +define gb_CliUnoApi_CliUnoApi +$(call gb_CliUnoApiTarget_CliUnoApiTarget,$(1)) +$(call gb_CliAssembly_CliAssembly,$(1)) + +$(call gb_CliUnoApiTarget_set_keyfile,$(1),$(gb_CliUnoApi_KEYFILE_DEFAULT)) + +$(call gb_CliUnoApi_get_target,$(1)) : $(call gb_CliUnoApiTarget_get_target,$(1)) +$(call gb_CliUnoApi_get_target,$(1)) :| $(call gb_CliAssembly_get_target,$(1)) +$(call gb_CliUnoApi_get_target,$(1)) :| $(dir $(call gb_CliUnoApi_get_target,$(1))).dir +$(call gb_CliUnoApi_get_clean_target,$(1)) : $(call gb_CliUnoApiTarget_get_clean_target,$(1)) +$(call gb_CliUnoApi_get_clean_target,$(1)) : $(call gb_CliAssembly_get_clean_target,$(1)) + +$(call gb_Deliver_add_deliverable,$(call gb_CliUnoApi_get_target,$(1)),$(call gb_CliUnoApiTarget_get_target,$(1)),$(1)) + +$$(eval $$(call gb_Module_register_target,$(call gb_CliUnoApiTarget_get_target,$(1)),$(call gb_CliUnoApiTarget_get_clean_target,$(1)))) + +endef + +define gb_CliUnoApi_set_configfile +$(call gb_CliAssembly_set_configfile,$(1),$(2)) + +endef + +define gb_CliUnoApi_set_keyfile +$(call gb_CliUnoApiTarget_set_keyfile,$(1),$(2)) +$(call gb_CliAssembly_set_keyfile,$(1),$(2)) + +endef + +define gb_CliUnoApi_set_assembly_version +$(call gb_CliUnoApiTarget_set_version,$(1),$(2)) + +endef + +define gb_CliUnoApi_set_policy +$(call gb_CliAssembly_set_policy,$(1),$(2),$(3)) + +endef + +define gb_CliUnoApi_wrap_api +$(call gb_CliUnoApiTarget_wrap_api,$(1),$(2)) + +endef + +define gb_CliUnoApi_use_api +$(call gb_CliUnoApiTarget_use_api,$(1),$(2)) + +endef + +define gb_CliUnoApi_use_assembly +$(call gb_CliUnoApiTarget_use_assembly,$(1),$(2)) + +endef + +define gb_CliUnoApi_use_assemblies +$(call gb_CliUnoApiTarget_use_assemblies,$(1),$(2)) + +endef + +# vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk index 2451e0720802..7a2240ec8106 100644 --- a/solenv/gbuild/TargetLocations.mk +++ b/solenv/gbuild/TargetLocations.mk @@ -28,6 +28,9 @@ # outdir target pattern +gb_CliLibrary_get_target = $(gb_Helper_OUTDIRLIBDIR)/$(1)$(gb_CliLibrary_EXT) +gb_CliNativeLibrary_get_target = $(gb_Helper_OUTDIRLIBDIR)/$(1)$(gb_CliNativeLibrary_EXT) +gb_CliUnoApi_get_target = $(gb_Helper_OUTDIRLIBDIR)/$(1)$(gb_CliUnoApi_EXT) gb_ComponentTarget_get_outdir_target = $(OUTDIR)/xml/component/$(1).component gb_Dictionary_get_target = $(OUTDIR)/pck/$(1).oxt gb_Executable_get_target = $(OUTDIR)/bin/$(1)$(gb_Executable_EXT) @@ -79,6 +82,12 @@ gb_AllLangZip_get_target = $(WORKDIR)/AllLangZip/$(1) gb_AsmObject_get_target = $(WORKDIR)/AsmObject/$(1).o gb_CObject_get_target = $(WORKDIR)/CObject/$(1).o gb_GenCObject_get_target = $(WORKDIR)/GenCObject/$(1).o +gb_CliAssembly_get_target = $(WORKDIR)/CliAssembly/$(1).done +gb_CliAssemblyTarget_get_target = $(WORKDIR)/CliAssemblyTarget/$(1)$(gb_CliAssemblyTarget_POLICYEXT) +gb_CliConfigTarget_get_target = $(WORKDIR)/CliConfigTarget/$(1).config +gb_CliLibraryTarget_get_target = $(WORKDIR)/CliLibraryTarget/$(1)$(gb_CliLibraryTarget_EXT) +gb_CliNativeLibraryTarget_get_target = $(WORKDIR)/CliNativeLibraryTarget/$(1)$(gb_CliNativeLibraryTarget_EXT) +gb_CliUnoApiTarget_get_target = $(WORKDIR)/CliUnoApiTarget/$(1)$(gb_CliUnoApiTarget_EXT) gb_ComponentTarget_get_target = $(WORKDIR)/ComponentTarget/$(1).component gb_ComponentsTarget_get_target = $(WORKDIR)/ComponentsTarget/$(1).components gb_CppunitTest_get_target = $(WORKDIR)/CppunitTest/$(1).test @@ -197,6 +206,12 @@ endef $(eval $(call gb_Helper_make_clean_targets,\ AllLangResTarget \ AllLangZip \ + CliAssembly \ + CliAssemblyTarget \ + CliConfigTarget \ + CliLibraryTarget \ + CliNativeLibraryTarget \ + CliUnoApiTarget \ ComponentTarget \ ComponentsTarget \ ExtensionTarget \ @@ -244,6 +259,9 @@ $(eval $(call gb_Helper_make_clean_targets,\ )) $(eval $(call gb_Helper_make_outdir_clean_targets,\ + CliLibrary \ + CliNativeLibrary \ + CliUnoApi \ Dictionary \ Executable \ Extension \ diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk index 20ac7a0a0d9f..55442de5b329 100644 --- a/solenv/gbuild/gbuild.mk +++ b/solenv/gbuild/gbuild.mk @@ -328,6 +328,10 @@ include $(foreach class, \ UnoApiMerge \ UnpackedTarball \ InternalUnoApi \ + CliAssembly \ + CliLibrary \ + CliNativeLibrary \ + CliUnoApi \ Zip \ AllLangZip \ Configuration \ diff --git a/solenv/gbuild/platform/IOS_ARM_GCC.mk b/solenv/gbuild/platform/IOS_ARM_GCC.mk index ebe64d124482..a1f0ba042a13 100644 --- a/solenv/gbuild/platform/IOS_ARM_GCC.mk +++ b/solenv/gbuild/platform/IOS_ARM_GCC.mk @@ -314,6 +314,11 @@ gb_ScpConvertTarget_ScpConvertTarget_platform := gb_InstallScript_EXT := .ins +# CliAssemblyTarget class + +gb_CliAssemblyTarget_POLICYEXT := +gb_CliAssemblyTarget_get_dll := + # ExtensionTarget class gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk index f92a278a71a8..a3bd1a826518 100644 --- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk +++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk @@ -455,6 +455,11 @@ endef gb_InstallScript_EXT := .inf +# CliAssemblyTarget class + +gb_CliAssemblyTarget_POLICYEXT := +gb_CliAssemblyTarget_get_dll := + # ExtensionTarget class gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/license.txt diff --git a/solenv/gbuild/platform/WNT_INTEL_MSC.mk b/solenv/gbuild/platform/WNT_INTEL_MSC.mk index b0721addcea0..1de257c7c99f 100644 --- a/solenv/gbuild/platform/WNT_INTEL_MSC.mk +++ b/solenv/gbuild/platform/WNT_INTEL_MSC.mk @@ -401,6 +401,7 @@ gb_Library_PLAINLIBS_NONE += \ d3d9 \ d3dx \ ddraw \ + delayimp \ gdi32 \ gdiplus \ gnu_getopt \ @@ -411,8 +412,11 @@ gb_Library_PLAINLIBS_NONE += \ libcmt \ libcmtd \ mpr \ + mscoree \ msi \ msimg32 \ + msvcmrt \ + msvcmrtd \ msvcrt \ msvcprt \ $(gb_Library_win32_OLDNAMES) \ @@ -733,6 +737,11 @@ endef gb_InstallScript_EXT := .inf +# CliAssemblyTarget class + +gb_CliAssemblyTarget_POLICYEXT := $(gb_Library_DLLEXT) +gb_CliAssemblyTarget_get_dll = $(gb_Library_OUTDIRLOCATION)/$(1)$(gb_CliAssemblyTarget_POLICYEXT) + # ExtensionTarget class gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/license.txt diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk index 4d5594b986e0..f933f3e15d6a 100644 --- a/solenv/gbuild/platform/macosx.mk +++ b/solenv/gbuild/platform/macosx.mk @@ -408,6 +408,11 @@ gb_ScpConvertTarget_ScpConvertTarget_platform := gb_InstallScript_EXT := .ins +# CliAssemblyTarget class + +gb_CliAssemblyTarget_POLICYEXT := +gb_CliAssemblyTarget_get_dll := + # ExtensionTarget class gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk index adb1a61db15c..3a95d90030b8 100644 --- a/solenv/gbuild/platform/solaris.mk +++ b/solenv/gbuild/platform/solaris.mk @@ -405,6 +405,11 @@ gb_ScpConvertTarget_ScpConvertTarget_platform := gb_InstallScript_EXT := .ins +# CliAssemblyTarget class + +gb_CliAssemblyTarget_POLICYEXT := +gb_CliAssemblyTarget_get_dll := + # ExtensionTarget class gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk index 387980205b59..6e50439a09eb 100644 --- a/solenv/gbuild/platform/unxgcc.mk +++ b/solenv/gbuild/platform/unxgcc.mk @@ -406,6 +406,11 @@ gb_ScpConvertTarget_ScpConvertTarget_platform := gb_InstallScript_EXT := .ins +# CliAssemblyTarget class + +gb_CliAssemblyTarget_POLICYEXT := +gb_CliAssemblyTarget_get_dll := + # ExtensionTarget class gb_ExtensionTarget_LICENSEFILE_DEFAULT := $(OUTDIR)/bin/osl/LICENSE |