diff options
author | Petr Mladek <pmladek@suse.cz> | 2013-04-25 17:35:36 +0200 |
---|---|---|
committer | Petr Mladek <pmladek@suse.cz> | 2013-04-30 12:05:23 +0200 |
commit | 40351389d87f2cbcffa8b8ec0aac07a90e143ffb (patch) | |
tree | 42dd03f7a56fc8754e7342fab531c719cb9763df /solenv | |
parent | 9459b80caae597a1d34a091a7dd99f7101f4bd2c (diff) |
[mono] add CliExecutable gbuild target
Change-Id: Ie761cd2eefaac430c1532917403879285e19166f
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gbuild/CliExecutable.mk | 188 | ||||
-rw-r--r-- | solenv/gbuild/TargetLocations.mk | 8 | ||||
-rw-r--r-- | solenv/gbuild/gbuild.mk | 1 |
3 files changed, 195 insertions, 2 deletions
diff --git a/solenv/gbuild/CliExecutable.mk b/solenv/gbuild/CliExecutable.mk new file mode 100644 index 000000000000..f1049c5de934 --- /dev/null +++ b/solenv/gbuild/CliExecutable.mk @@ -0,0 +1,188 @@ +# -*- 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/. +# + +# CliExecutableTarget class + +gb_CliExecutableTarget_EXT := $(gb_CliAssembly_POLICYEXT) + +gb_CliExecutableTarget_CSCFLAGS := \ + -unsafe \ + +gb_CliExecutableTarget_CSCFLAGS_DEBUG := \ + -debug \ + +ifeq ($(strip $(debug)),) +gb_CliExecutableTarget__get_csflags = $(gb_CliExecutableTarget_CSCFLAGS) +else +gb_CliExecutableTarget__get_csflags = $(gb_CliExecutableTarget_CSCFLAGS) $(gb_CliExecutableTarget_CSCFLAGS_DEBUG) +endif + +gb_CliExecutableTarget__get_source = $(SRCDIR)/$(1).cs +gb_CliExecutableTarget__get_generated_source = $(WORKDIR)/$(1).cs + +define gb_CliExecutableTarget__command +$(call gb_Output_announce,$(2),$(true),MKBUNDLE,3) +$(call gb_Helper_abbreviate_dirs,\ + gmcs $(call gb_Helper_windows_path, \ + $(call gb_CliExecutableTarget__get_csflags) \ + $(CLI_CSCFLAGS) \ + -out:$(1).exe \ + $(foreach assembly,$(CLI_ASSEMBLIES),-reference:$(assembly)) \ + $(CLI_SOURCES) \ + ) \ +) +$(call gb_Helper_abbreviate_dirs,\ + $(MKBUNDLE) $(call gb_Helper_windows_path, \ + --deps \ + -o $(1) \ + $(1).exe \ + $(CLI_ASSEMBLIES) + ) \ +) +endef + +$(dir $(call gb_CliExecutableTarget_get_target,%)).dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +$(dir $(call gb_CliExecutableTarget_get_target,%))%/.dir : + $(if $(wildcard $(dir $@)),,mkdir -p $(dir $@)) + +$(call gb_CliExecutableTarget_get_target,%) : + $(call gb_CliExecutableTarget__command,$@,$*,$<,$?,$^) + +.PHONY : $(call gb_CliExecutableTarget_get_clean_target,%) +$(call gb_CliExecutableTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),MKBUNDLE,3) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_CliExecutableTarget_get_target,$*) \ + ) + +# Compiles one or more C# source files +# +# gb_CliExecutableTarget_CliExecutableTarget target +define gb_CliExecutableTarget_CliExecutableTarget +$(call gb_CliExecutableTarget_get_target,$(1)) : CLI_ASSEMBLIES := +$(call gb_CliExecutableTarget_get_target,$(1)) : CLI_SOURCES := +$(call gb_CliExecutableTarget_get_target,$(1)) : CLI_CSCFLAGS := + +$(call gb_CliExecutableTarget_get_target,$(1)) :| $(dir $(call gb_CliExecutableTarget_get_target,$(1))).dir + +endef + +define gb_CliExecutableTarget_use_assembly +$(call gb_CliExecutableTarget_get_target,$(1)) : CLI_ASSEMBLIES += $(call gb_CliLibrary_get_target,$(2)) +$(call gb_CliExecutableTarget_get_target,$(1)) : $(call gb_CliLibrary_get_target,$(2)) + +endef + +define gb_CliExecutableTarget_use_assemblies +$(foreach assembly,$(2),$(call gb_CliExecutableTarget_use_assembly,$(1),$(assembly))) + +endef + +# Add a source file to compile +define gb_CliExecutableTarget_add_csfile +$(call gb_CliExecutableTarget_get_target,$(1)) : CLI_SOURCES += $(call gb_CliExecutableTarget__get_source,$(2)) +$(call gb_CliExecutableTarget_get_target,$(1)) : $(call gb_CliExecutableTarget__get_source,$(2)) + +endef + +# Add source files to compile +define gb_CliExecutableTarget_add_csfiles +$(foreach csfile,$(2),$(call gb_CliExecutableTarget_add_csfile,$(1),$(csfile))) + +endef + +# Add a generated source file to compile +define gb_CliExecutableTarget_add_generated_csfile +$(call gb_CliExecutableTarget_get_target,$(1)) : CLI_SOURCES += $(call gb_CliExecutableTarget__get_generated_source,$(2)) +$(call gb_CliExecutableTarget_get_target,$(1)) : $(call gb_CliExecutableTarget__get_generated_source,$(2)) + +endef + +# Add generated source files to compile +define gb_CliExecutableTarget_add_generated_csfiles +$(foreach csfile,$(2),$(call gb_CliExecutableTarget_add_generated_csfile,$(1),$(csfile))) + +endef + +# Add flags used for compilation +define gb_CliExecutableTarget_add_csflags +$(call gb_CliExecutableTarget_get_target,$(1)) : CLI_CSCFLAGS += $(2) + +endef + +# CliExecutable class + +gb_CliExecutable_EXT := $(gb_CliExecutableTarget_EXT) + +# Compiles one or more C# source files and bundle with other libraries +# +# gb_CliExecutable_CliExecutable target +define gb_CliExecutable_CliExecutable +$(call gb_CliExecutableTarget_CliExecutableTarget,$(1)) + +$(call gb_CliExecutable_get_target,$(1)) : $(call gb_CliExecutableTarget_get_target,$(1)) +$(call gb_CliExecutable_get_target,$(1)) :| $(dir $(call gb_CliExecutable_get_target,$(1))).dir +$(call gb_CliExecutable_get_clean_target,$(1)) : $(call gb_CliExecutableTarget_get_clean_target,$(1)) + +$(call gb_Deliver_add_deliverable,$(call gb_CliExecutable_get_target,$(1)),$(call gb_CliExecutableTarget_get_target,$(1)),$(1)) + +$$(eval $$(call gb_Module_register_target,$(call gb_CliExecutable_get_target,$(1)),$(call gb_CliExecutable_get_clean_target,$(1)))) + +$(call gb_Executable_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \ + | $(dir $(call gb_Executable_get_target,$(1))).dir +endef + +define gb_CliExecutable_set_configfile +$(call gb_CliAssembly_set_configfile,$(1),$(2)) + +endef + +define gb_CliExecutable_use_assembly +$(call gb_CliExecutableTarget_use_assembly,$(1),$(2)) + +endef + +define gb_CliExecutable_use_assemblies +$(call gb_CliExecutableTarget_use_assemblies,$(1),$(2)) + +endef + +# Add a source file to compile +define gb_CliExecutable_add_csfile +$(call gb_CliExecutableTarget_add_csfile,$(1),$(2)) + +endef + +# Add source files to compile +define gb_CliExecutable_add_csfiles +$(call gb_CliExecutableTarget_add_csfiles,$(1),$(2)) + +endef + +# Add a generated source file to compile +define gb_CliExecutable_add_generated_csfile +$(call gb_CliExecutableTarget_add_generated_csfile,$(1),$(2)) + +endef + +# Add generated source files to compile +define gb_CliExecutable_add_generated_csfiles +$(call gb_CliExecutableTarget_add_generated_csfiles,$(1),$(2)) + +endef + +# Add flags used for compilation +define gb_CliExecutable_add_csflags +$(call gb_CliExecutableTarget_add_csflags,$(1),$(2)) + +endef + +# vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk index 9aef6d3d6397..09fc607e31b4 100644 --- a/solenv/gbuild/TargetLocations.mk +++ b/solenv/gbuild/TargetLocations.mk @@ -28,9 +28,10 @@ # outdir target pattern -gb_CliLibrary_get_target = $(gb_Helper_OUTDIRLIBDIR)/$(1)$(gb_CliLibrary_EXT) +gb_CliExecutable_get_target = $(OUTDIR)/bin/$(1)$(gb_Executable_EXT) +gb_CliLibrary_get_target = $(OUTDIR)/bin/$(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_CliUnoApi_get_target = $(OUTDIR)/bin/$(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) @@ -87,6 +88,7 @@ gb_CliAssembly_get_target = $(WORKDIR)/CliAssembly/$(1).done gb_CliAssemblyTarget_get_target = $(WORKDIR)/CliAssemblyTarget/$(1).done gb_CliAssemblyTarget_get_assembly_target = $(WORKDIR)/CliAssemblyTarget/$(1)$(gb_CliAssemblyTarget_POLICYEXT) gb_CliConfigTarget_get_target = $(WORKDIR)/CliConfigTarget/$(1).config +gb_CliExecutableTarget_get_target = $(WORKDIR)/CliExecutableTarget/$(1)$(gb_Executable_EXT) gb_CliLibraryTarget_get_target = $(WORKDIR)/CliLibraryTarget/$(1)$(gb_CliLibraryTarget_EXT) gb_CliNativeLibraryTarget_get_external_target = $(WORKDIR)/CliNativeLibraryTarget/$(1).external gb_CliNativeLibraryTarget_get_target = $(WORKDIR)/CliNativeLibraryTarget/$(1)$(gb_CliNativeLibraryTarget_EXT) @@ -229,6 +231,7 @@ $(eval $(call gb_Helper_make_clean_targets,\ CliAssembly \ CliAssemblyTarget \ CliConfigTarget \ + CliExecutableTarget \ CliLibraryTarget \ CliNativeLibraryTarget \ CliUnoApiTarget \ @@ -282,6 +285,7 @@ $(eval $(call gb_Helper_make_clean_targets,\ )) $(eval $(call gb_Helper_make_outdir_clean_targets,\ + CliExecutable \ CliLibrary \ CliNativeLibrary \ CliUnoApi \ diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk index 173222f7f841..6953b4483e49 100644 --- a/solenv/gbuild/gbuild.mk +++ b/solenv/gbuild/gbuild.mk @@ -326,6 +326,7 @@ include $(foreach class, \ UnpackedTarball \ InternalUnoApi \ CliAssembly \ + CliExecutable \ CliLibrary \ CliNativeLibrary \ CliUnoApi \ |