summaryrefslogtreecommitdiffstats
path: root/sysui/CustomTarget_share.mk
diff options
context:
space:
mode:
Diffstat (limited to 'sysui/CustomTarget_share.mk')
-rw-r--r--sysui/CustomTarget_share.mk222
1 files changed, 222 insertions, 0 deletions
diff --git a/sysui/CustomTarget_share.mk b/sysui/CustomTarget_share.mk
new file mode 100644
index 0000000000..912048b2ad
--- /dev/null
+++ b/sysui/CustomTarget_share.mk
@@ -0,0 +1,222 @@
+# -*- 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/.
+#
+
+include $(SRCDIR)/sysui/productlist.mk
+
+
+ifeq ($(ENABLE_GIO),TRUE)
+ brand_URIPARAM := --urls
+else ifeq ($(ENABLE_QT5),TRUE)
+ brand_URIPARAM := --urls
+else
+ brand_URIPARAM :=
+endif
+
+share_WORKDIR := $(call gb_CustomTarget_get_workdir,sysui/share)
+share_SRCDIR := $(SRCDIR)/sysui/desktop
+
+share_TRANSLATE := $(SRCDIR)/solenv/bin/desktop-translate.py
+
+LAUNCHERLIST_APPS := writer calc draw impress math base startcenter
+LAUNCHERLIST := $(LAUNCHERLIST_APPS) xsltfilter
+LAUNCHERS := $(foreach launcher,$(LAUNCHERLIST),$(share_SRCDIR)/menus/$(launcher).desktop)
+
+MIMELIST := \
+ text \
+ text-template \
+ spreadsheet \
+ spreadsheet-template \
+ drawing \
+ drawing-template \
+ presentation \
+ presentation-template \
+ formula \
+ master-document \
+ oasis-text \
+ oasis-text-template \
+ oasis-text-flat-xml \
+ oasis-spreadsheet \
+ oasis-spreadsheet-template \
+ oasis-spreadsheet-flat-xml \
+ oasis-drawing \
+ oasis-drawing-template \
+ oasis-drawing-flat-xml \
+ oasis-presentation \
+ oasis-presentation-template \
+ oasis-presentation-flat-xml \
+ oasis-formula \
+ oasis-master-document \
+ oasis-master-document-template \
+ oasis-database \
+ oasis-web-template \
+ ms-excel-sheet-12 \
+ ms-excel-sheet \
+ ms-excel-template-12 \
+ ms-powerpoint-presentation-12 \
+ ms-powerpoint-presentation \
+ ms-powerpoint-template-12 \
+ ms-word-document-12 \
+ ms-word-document \
+ ms-word-document2 \
+ ms-word-template-12 \
+ openxmlformats-officedocument-presentationml-presentation \
+ openxmlformats-officedocument-presentationml-template \
+ openxmlformats-officedocument-spreadsheetml-sheet \
+ openxmlformats-officedocument-spreadsheetml-template \
+ openxmlformats-officedocument-wordprocessingml-document \
+ openxmlformats-officedocument-wordprocessingml-template \
+ ms-excel-sheet-binary-12 \
+ extension
+
+MIMEICONLIST := \
+ oasis-text \
+ oasis-text-template \
+ oasis-spreadsheet \
+ oasis-spreadsheet-template \
+ oasis-drawing \
+ oasis-drawing-template \
+ oasis-presentation \
+ oasis-presentation-template \
+ oasis-formula \
+ oasis-master-document \
+ oasis-master-document-template \
+ oasis-database \
+ oasis-web-template \
+ text \
+ text-template \
+ spreadsheet \
+ spreadsheet-template \
+ drawing \
+ drawing-template \
+ presentation \
+ presentation-template \
+ formula \
+ master-document \
+ database \
+ extension
+
+share_ICONS := $(foreach size,16x16 32x32 48x48,\
+ $(foreach contrast,hicolor locolor,\
+ $(foreach app,$(LAUNCHERLIST_APPS),\
+ $(share_SRCDIR)/icons/$(contrast)/$(size)/apps/$(app).png) \
+ $(foreach mime,$(MIMEICONLIST),\
+ $(share_SRCDIR)/icons/$(contrast)/$(size)/mimetypes/$(mime).png)))
+
+MIMEDESKTOPS := $(foreach mime,$(MIMELIST),$(share_SRCDIR)/mimetypes/$(mime).desktop)
+ULFS := documents.ulf \
+ launcher.ulf
+
+$(eval $(call gb_CustomTarget_CustomTarget,sysui/share))
+
+$(eval $(call gb_CustomTarget_register_targets,sysui/share,\
+ $(ULFS) \
+ $(foreach product,$(PRODUCTLIST),\
+ $(product)/build.flag \
+ $(product)/openoffice.org.xml \
+ $(product)/openoffice.sh \
+ $(product)/create_tree.sh \
+ $(if $(INTROSPECTION_SCANNER),\
+ $(product)/LOKDocView-0.1.gir \
+ $(product)/LOKDocView-0.1.typelib) \
+ $(product)/launcherlist) \
+))
+
+$(share_WORKDIR)/%/openoffice.org.xml: $(share_WORKDIR)/documents.ulf $(MIMEDESKTOPS) $(share_SRCDIR)/share/create_mime_xml.pl
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),PRL,1)
+ $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),PRL)
+ $(PERL) $(share_SRCDIR)/share/create_mime_xml.pl $< > $@
+ $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),PRL)
+
+$(share_WORKDIR)/%/openoffice.sh: $(share_SRCDIR)/share/openoffice.sh
+ mkdir -p $(dir $@)
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CAT,1)
+ $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),CAT)
+ cat $< | tr -d "\015" | sed -e "s/%PREFIX/$(UNIXFILENAME.$*)/g" > $@
+ $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),CAT)
+
+$(share_WORKDIR)/%/create_tree.sh: $(share_SRCDIR)/share/create_tree.sh \
+ $(share_WORKDIR)/%/openoffice.org.xml $(share_WORKDIR)/%/launcherlist
+ mkdir -p $(dir $@)
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CAT,1)
+ $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),CAT)
+ echo "#!/bin/sh" > $@
+ echo "PREFIX=$(UNIXFILENAME.$*)" >> $@
+ echo "ICON_PREFIX=$(UNIXFILENAME.$*)" >> $@
+ echo "ICON_SOURCE_DIR=$(SRCDIR)/sysui/desktop/icons" >> $@
+ echo "APPDATA_SOURCE_DIR=$(SRCDIR)/sysui/desktop/appstream-appdata" >> $@
+ echo "PRODUCTVERSION=$(PRODUCTVERSION)" >> $@
+ cat $< >> $@
+ chmod 774 $@
+ $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),CAT)
+
+# Generate gobject-introspection files
+# These are *not* packaged in rpms because there's no good place to put them
+# where the system will actually find them and where it won't conflict with a
+# distro packaged LO; on Fedora 30 at least there's no /opt path in
+# $XDG_DATA_DIRS
+ifneq ($(INTROSPECTION_SCANNER),)
+
+$(share_WORKDIR)/%/LOKDocView-0.1.gir: \
+ $(call gb_Library_get_target,libreofficekitgtk)
+ mkdir -p $(dir $@)
+ PYTHONWARNINGS=default g-ir-scanner "${SRCDIR}/include/LibreOfficeKit/LibreOfficeKitGtk.h" \
+ "${SRCDIR}/libreofficekit/source/gtk/lokdocview.cxx" \
+ `${PKG_CONFIG} --cflags-only-I gobject-introspection-1.0 gtk+-3.0` \
+ -I"${SRCDIR}/include/" \
+ --include=GLib-2.0 --include=GObject-2.0 --include=Gio-2.0 \
+ --library=libreofficekitgtk --library-path="${INSTDIR}/program" \
+ --include=Gdk-3.0 --include=GdkPixbuf-2.0 --include=Gtk-3.0 \
+ --namespace=LOKDocView --nsversion=0.1 --identifier-prefix=LOKDoc --symbol-prefix=lok_doc \
+ --c-include="LibreOfficeKit/LibreOfficeKitGtk.h" \
+ --output="$@" --warn-all --no-libtool
+
+$(share_WORKDIR)/%/LOKDocView-0.1.typelib: $(share_WORKDIR)/%/LOKDocView-0.1.gir
+ g-ir-compiler "$<" --output="$@"
+
+endif
+
+$(share_WORKDIR)/%/launcherlist: $(LAUNCHERS)
+ mkdir -p $(dir $@)
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1)
+ $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),ECH)
+ echo "$(addsuffix .desktop,$(LAUNCHERLIST))" > $@
+ $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),ECH)
+
+
+# these .desktop files are written by brand.pl below
+# need to have a rule for these because they are targets in Package_share
+define sysui_Desktop_rule
+$(share_WORKDIR)/%/$(1).desktop : $(share_WORKDIR)/%/build.flag
+ touch $$@
+
+endef
+
+$(foreach launcher,$(LAUNCHERLIST),$(eval $(call sysui_Desktop_rule,$(launcher))))
+
+$(share_WORKDIR)/%/build.flag: $(share_SRCDIR)/share/brand.pl $(LAUNCHERS) \
+ $(share_TRANSLATE) $(addprefix $(share_WORKDIR)/,$(ULFS)) \
+ $(call gb_ExternalExecutable_get_dependencies,python)
+ mkdir -p $(dir $@)
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),PRL,1)
+ $(call gb_Trace_StartRange,$(subst $(WORKDIR)/,,$@),PRL)
+ $(PERL) $(share_SRCDIR)/share/brand.pl -p '$${PRODUCTNAME} $${PRODUCTVERSION}' -u $(UNIXFILENAME.$*) \
+ $(brand_URIPARAM) \
+ --iconprefix '$${UNIXBASISROOTNAME}-' $(LAUNCHERS) $(share_WORKDIR)/$*
+ $(call gb_ExternalExecutable_get_command,python) $(share_TRANSLATE) -p $(PRODUCTNAME.$*)$(PRODUCTVERSION) -d $(share_WORKDIR)/$* \
+ --ext "desktop" $(share_WORKDIR)/launcher.ulf
+ touch $@
+ $(call gb_Trace_EndRange,$(subst $(WORKDIR)/,,$@),PRL)
+
+$(eval $(call gb_CustomTarget_ulfex_rule,\
+ $(share_WORKDIR)/%.ulf,\
+ $(share_SRCDIR)/share/%.ulf,\
+ $(foreach lang,$(gb_TRANS_LANGS),\
+ $(gb_POLOCATION)/$(lang)/sysui/desktop/share.po)))
+
+# vim: set noet sw=4 ts=4: