office-gobmx/ios/CustomTarget_LibreOffice_app.mk
Tor Lillqvist d7094ab8b3 Adapt to instdir and solver changes lately
Change-Id: Idc6c20f6645f2e39b98a11f741aaa482f31c6ea1
2013-10-08 20:39:10 +03:00

148 lines
4.7 KiB
Makefile

# -*- 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/.
$(eval $(call gb_CustomTarget_CustomTarget,ios/LibreOffice_app))
# We distinguish between builds for the simulator and device by
# looking for the "iarmv7" or "i386" in the -arch option that is part
# of $(CC)
ifneq ($(filter i386,$(CC)),)
xcode_sdk=iphonesimulator
xcode_arch=i386
else
xcode_sdk=iphoneos
xcode_arch=armv7
endif
# If run from Xcode, check that its configuration (device or
# simulator) matches that of gbuild. We detect being run from Xcode by
# looking for $(SCRIPT_OUTPUT_FILE_0). The Run Script build phase in
# our project has as its (single) output file the location of the app
# executable in its app bundle.
ifneq ($(SCRIPT_OUTPUT_FILE_0),)
export CCACHE_CPP2=y
ifneq ($(CURRENT_ARCH),$(xcode_arch))
$(error Xcode platform ($(CURRENT_ARCH)) does not match that of this build tree ($(xcode_arch)))
endif
endif
ifneq ($(SCRIPT_OUTPUT_FILE_0),)
ifeq ($(EXECUTABLE_NAME),LibreOffice)
# When run from Xcode, we move the LibreOffice executable from solver into
# the LibreOffice.app directory that Xcode uses. We also set up/copy all
# the run-time configuration etc files that the app needs.
$(call gb_CustomTarget_get_target,ios/LibreOffice_app) : $(SCRIPT_OUTPUT_FILE_0)
appdir=$(dir $(SCRIPT_OUTPUT_FILE_0))
buildid=$(shell cd $(SRCDIR) && git log -1 --format=%H)
$(SCRIPT_OUTPUT_FILE_0) : $(call gb_Executable_get_target,LibreOffice)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),APP,2)
mkdir -p $(appdir)/ure
mv $(call gb_Executable_get_target,LibreOffice) $(SCRIPT_OUTPUT_FILE_0)
#
# Copy rdb files
#
cp $(OUTDIR)/bin/offapi.rdb $(appdir)
cp $(OUTDIR)/bin/udkapi.rdb $(appdir)
cp $(OUTDIR)/bin/oovbaapi.rdb $(appdir)
cp $(INSTDIR)/program/services/services.rdb $(appdir)
cp $(INSTDIR)/ure/share/misc/services.rdb $(appdir)/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 $(appdir)/program/resource
cp $(INSTDIR)/$(LIBO_SHARE_RESOURCE_FOLDER)/*en-US.res $(appdir)/program/resource
#
# Artwork
#
mkdir -p $(appdir)/share/config
cp -R $(INSTDIR)/$(LIBO_SHARE_FOLDER)/config/images_tango.zip $(appdir)/share/config/images.zip
#
# soffice.cfg
#
cp -R $(INSTROOT)/share/config/soffice.cfg $(appdir)/share/config
#
# "registry"
#
cp -R $(INSTROOT)/$(LIBO_SHARE_FOLDER)/registry $(appdir)/share
#
# Set up rc, the "inifile". See getIniFileName_Impl().
#
( \
echo '[Bootstrap]' && \
echo 'URE_BOOTSTRAP=file://$$APP_DATA_DIR/fundamentalrc' && \
echo 'HOME=$$APP_DATA_DIR/tmp' && \
: ) > $(appdir)/rc
#
# Set up fundamentalrc, unorc, bootstraprc and versionrc.
#
# Do we really need all these?
#
( \
echo '[Bootstrap]' && \
echo 'BRAND_BASE_DIR=file://$$APP_DATA_DIR' && \
echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/share/registry res:$${BRAND_BASE_DIR}/share/registry' && \
: ) > $(appdir)/fundamentalrc
#
( \
echo '[Bootstrap]' && \
: UNO_TYPES and UNO_SERVICES are set up in lo-viewer.mm, is that sane? && \
: ) > $(appdir)/unorc
#
# bootstraprc must be in $BRAND_BASE_DIR/program
#
mkdir -p $(appdir)/program
( \
echo '[Bootstrap]' && \
echo 'InstallMode=<installmode>' && \
echo 'ProductKey=LibreOffice $(PRODUCTVERSION)' && \
echo 'UserInstallation=file://$$APP_DATA_DIR/../Library/Application%20Support' && \
: ) > $(appdir)/program/bootstraprc
#
# Is this really needed?
#
( \
echo '[Version]' && \
echo 'AllLanguages=en-US' && \
echo 'BuildVersion=' && \
echo 'buildid=$(buildid)' && \
echo 'ProductMajor=360' && \
echo 'ProductMinor=1' && \
: ) > $(appdir)/program/versionrc
#
# Copy a sample document... good old test1.odt...
#
cp $(SRC_ROOT)/odk/examples/java/DocumentHandling/test/test1.odt $(appdir)
endif
else
# When run just from the command line, we don't have any app bundle to
# copy or move the executable to. So do nothing. Except one trick:
# Copy the Xcode project to BUILDDIR if SRCDIR!=BUILDDIR, so that one
# can then open it from there in Xcode.
$(call gb_CustomTarget_get_target,ios/LibreOffice_app) : $(gb_Helper_PHONY)
if test $(SRCDIR) != $(BUILDDIR); then \
(cd $(SRCDIR) && tar cf - ios/experimental/LibreOffice/LibreOffice.xcodeproj/project.pbxproj) | (cd $(BUILDDIR) && tar xf -); \
fi
$(call gb_CustomTarget_get_clean_target,ios/LibreOffice_app) :
$(call gb_Output_announce,$(subst $(WORKDIR)/Clean/,,$@),$(false),APP,2)
# Here we just assume that Xcode's settings are default, or something
rm -rf experimental/LibreOffice/build
endif
# vim: set noet sw=4 ts=4: