summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorPetr Mladek <pmladek@suse.cz>2013-04-25 17:35:36 +0200
committerPetr Mladek <pmladek@suse.cz>2013-04-30 12:05:23 +0200
commit40351389d87f2cbcffa8b8ec0aac07a90e143ffb (patch)
tree42dd03f7a56fc8754e7342fab531c719cb9763df /solenv
parent9459b80caae597a1d34a091a7dd99f7101f4bd2c (diff)
[mono] add CliExecutable gbuild target
Change-Id: Ie761cd2eefaac430c1532917403879285e19166f
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/CliExecutable.mk188
-rw-r--r--solenv/gbuild/TargetLocations.mk8
-rw-r--r--solenv/gbuild/gbuild.mk1
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 \