summaryrefslogtreecommitdiff
path: root/ios/CustomTarget_TiledLibreOffice_app.mk
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2013-12-18 00:03:02 +0200
committerTor Lillqvist <tml@collabora.com>2013-12-18 22:59:23 +0200
commit48f625b899b2c7774548af078f25dfccd7602d27 (patch)
treecd45eb893d6b8e9270202cbe053bd7a2a73d6ca7 /ios/CustomTarget_TiledLibreOffice_app.mk
parentaec792c1a429bd96a172d529521247a2b3391987 (diff)
Add a view-only iOS test app using tiled rendering
I had to add some horrible hacks to make sure the test doc has been loaded into a Writer shell before retrieving its size and being able to render it. Obviously some better solution is needed. But this is just a testbed to get some profiling data. The app is built using an Xcode project, and in gbuild through a custom target based on the MobileLibreOffice one. Setting up the various files used (or not used...) at run-time should really be factored out from the CustomTarget files. Change-Id: I1711b0cae9d28a09b73476b2d37d98b1820c9943
Diffstat (limited to 'ios/CustomTarget_TiledLibreOffice_app.mk')
-rw-r--r--ios/CustomTarget_TiledLibreOffice_app.mk100
1 files changed, 100 insertions, 0 deletions
diff --git a/ios/CustomTarget_TiledLibreOffice_app.mk b/ios/CustomTarget_TiledLibreOffice_app.mk
new file mode 100644
index 000000000000..44cacf50f4ac
--- /dev/null
+++ b/ios/CustomTarget_TiledLibreOffice_app.mk
@@ -0,0 +1,100 @@
+# -*- 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/.
+
+#- Env ------------------------------------------------------------------------
+
+TiledLibreOffice_resource := experimental/TiledLibreOffice/Resources
+BUILDID :=$(shell cd $(SRCDIR) && git log -1 --format=%H)
+
+#- Macros ---------------------------------------------------------------------
+
+define TiledLibreOfficeXcodeBuild
+ CC=;xcodebuild -project experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj -target TiledLibreOffice -arch $(XCODE_ARCHS) -configuration $(if $(ENABLE_DEBUG),Debug,Release) $(1) $(if $(verbose)$(VERBOSE),,>/dev/null)
+endef
+
+#- Targets --------------------------------------------------------------------
+
+.PHONY: TiledLibreOffice_setup
+
+# Register target
+$(eval $(call gb_CustomTarget_CustomTarget,ios/TiledLibreOffice))
+
+# Build
+# Depend on the custom target that sets up lo.xcconfig
+$(call gb_CustomTarget_get_target,ios/TiledLibreOffice): $(call gb_CustomTarget_get_target,ios/Lo_Xcconfig) TiledLibreOffice_setup
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),APP,2)
+ $(call TiledLibreOfficeXcodeBuild, clean build)
+
+# Setup
+TiledLibreOffice_setup:
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ENV,2)
+
+ # Resources #
+ rm -rf $(TiledLibreOffice_resource) 2>/dev/null
+ mkdir -p $(TiledLibreOffice_resource)
+ mkdir -p $(TiledLibreOffice_resource)/ure
+
+ # copy rdb files
+ cp $(INSTDIR)/ure/share/misc/types.rdb $(TiledLibreOffice_resource)
+ cp $(INSTDIR)/program/types/offapi.rdb $(TiledLibreOffice_resource)
+ cp $(INSTDIR)/program/types/oovbaapi.rdb $(TiledLibreOffice_resource)
+ cp $(INSTDIR)/program/services/services.rdb $(TiledLibreOffice_resource)
+ cp $(INSTDIR)/ure/share/misc/services.rdb $(TiledLibreOffice_resource)/ure
+
+ # copy .res files
+ # program/resource is hardcoded in tools/source/rc/resmgr.cxx. Sure,
+ # we could set STAR_RESOURCE_PATH instead. sigh...
+ mkdir -p $(TiledLibreOffice_resource)/program/resource
+ cp $(INSTDIR)/program/resource/*en-US.res $(TiledLibreOffice_resource)/program/resource
+
+ # soffice.cfg
+ mkdir -p $(TiledLibreOffice_resource)/share/config
+ cp -R $(INSTDIR)/share/config/soffice.cfg $(TiledLibreOffice_resource)/share/config
+
+ # "registry"
+ cp -R $(INSTDIR)/share/registry $(TiledLibreOffice_resource)/share
+
+ # Set up rc, the "inifile". See getIniFileName_Impl().
+ file=$(TiledLibreOffice_resource)/rc; \
+ echo '[Bootstrap]' > $$file; \
+ echo 'URE_BOOTSTRAP=file://$$APP_DATA_DIR/fundamentalrc' >> $$file; \
+ echo 'HOME=$$APP_DATA_DIR/tmp' >> $$file;
+
+ # Set up fundamentalrc, unorc, bootstraprc and versionrc.
+ # Do we really need all these?
+ file=$(TiledLibreOffice_resource)/fundamentalrc; \
+ echo '[Bootstrap]' > $$file; \
+ echo 'BRAND_BASE_DIR=file://$$APP_DATA_DIR' >> $$file; \
+ echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/share/registry res:$${BRAND_BASE_DIR}/registry' >> $$file;
+
+ file=$(TiledLibreOffice_resource)/unorc; \
+ echo '[Bootstrap]' > $$file;
+
+ # bootstraprc must be in $BRAND_BASE_DIR/program
+ mkdir -p $(TiledLibreOffice_resource)/program
+ file=$(TiledLibreOffice_resource)/program/bootstraprc; \
+ echo '[Bootstrap]' > $$file; \
+ echo 'InstallMode=<installmode>' >> $$file; \
+ echo "ProductKey=LibreOffice $(PRODUCTVERSION)" >> $$file; \
+ echo 'UserInstallation=file://$$APP_DATA_DIR/../Library/Application%20Support' >> $$file;
+
+ # Is this really needed?
+ file=$(TiledLibreOffice_resource)/program/versionrc; \
+ echo '[Version]' > $$file; \
+ echo 'AllLanguages=en-US' >> $$file; \
+ echo 'BuildVersion=' >> $$file; \
+ echo "buildid=$(BUILDID)" >> $$file; \
+ echo 'ProductMajor=360' >> $$file; \
+ echo 'ProductMinor=1' >> $$file;
+
+# Clean
+$(call gb_CustomTarget_get_clean_target,ios/TiledLibreOffice):
+ $(call gb_Output_announce,$(subst $(WORKDIR)/Clean/,,$@),$(false),APP,2)
+ $(call TiledLibreOfficeXcodeBuild, clean)
+
+# vim: set noet sw=4 ts=4: