summaryrefslogtreecommitdiff
path: root/ios
diff options
context:
space:
mode:
authorRoi Illouz <roi.illouz@cloudon.com>2013-10-29 18:25:25 +0200
committerTor Lillqvist <tml@collabora.com>2013-10-29 19:16:30 +0000
commit84cfb9b9926e88f75deffc6742a07a4390203bfb (patch)
tree5954bbf81efa4d338f4367f91d0a430a68dad3cb /ios
parentaeb29afa11b7be87153f048044a2d4af9a87b50c (diff)
New CustomTarget, move Xcode setup to Makefile
Change-Id: Id03bf8002902f1adec57356601b28ab2c743df2a Reviewed-on: https://gerrit.libreoffice.org/6476 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
Diffstat (limited to 'ios')
-rw-r--r--ios/CustomTarget_MobileLibreOffice_app.mk136
-rw-r--r--ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj29
-rw-r--r--ios/MobileLibreOffice/MobileLibreOffice/MobileLibreOffice-Info.plist2
-rw-r--r--ios/Module_ios.mk1
-rw-r--r--ios/shared/ios_sharedlo.xcodeproj/project.pbxproj5
5 files changed, 145 insertions, 28 deletions
diff --git a/ios/CustomTarget_MobileLibreOffice_app.mk b/ios/CustomTarget_MobileLibreOffice_app.mk
new file mode 100644
index 000000000000..e3e95c1b09ed
--- /dev/null
+++ b/ios/CustomTarget_MobileLibreOffice_app.mk
@@ -0,0 +1,136 @@
+# -*- 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 ------------------------------------------------------------------------
+
+LO_XCCONFIG := lo.xcconfig
+DEST_RESOURCE := MobileLibreOffice/resource_link
+BUILDID :=$(shell cd $(SRCDIR) && git log -1 --format=%H)
+
+#- Macros ---------------------------------------------------------------------
+
+define MobileLibreOfficeXcodeBuild
+ CC=;xcodebuild -project MobileLibreOffice/MobileLibreOffice.xcodeproj -scheme MobileLibreOffice -arch armv7 -configuration $(if $(ENABLE_DEBUG),Debug,Release) $(1) >/dev/null
+endef
+#- Targets --------------------------------------------------------------------
+
+.PHONY: MobileLibreOffice_setup
+
+#==============================================================================
+# Register target
+$(eval $(call gb_CustomTarget_CustomTarget,ios/MobileLibreOffice))
+#==============================================================================
+
+#==============================================================================
+# Build
+$(call gb_CustomTarget_get_target,ios/MobileLibreOffice): MobileLibreOffice_setup
+#==============================================================================
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),APP,2)
+ $(call MobileLibreOfficeXcodeBuild, clean build)
+
+#==============================================================================
+# Setup
+MobileLibreOffice_setup:
+#==============================================================================
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ENV,2)
+
+ # Put xcconfig in source dir for Xcode projects
+ if test $(SRCDIR) != $(BUILDDIR); then \
+ cp $(BUILDDIR)/ios/$(LO_XCCONFIG) $(SRCDIR)/ios; \
+ fi
+
+ # Libs #
+ # Create the link flags in the xcconfig for Xcode linkage
+ for path in $(OUTDIR)/lib \
+ $(INSTDIR)/program \
+ $(WORKDIR)/LinkTarget/StaticLibrary \
+ $(WORKDIR)/UnpackedTarball/*/.libs/ \
+ $(WORKDIR)/UnpackedTarball/*/src/.libs \
+ $(WORKDIR)/UnpackedTarball/*/src/*/.libs \
+ $(WORKDIR)/UnpackedTarball/openssl; do \
+ flags+=" -L$$path"; \
+ for lib in $$path/lib*.a; do \
+ if [ ! -r $$lib ]; then \
+ continue; \
+ fi; \
+ base=$${lib##*/lib}; \
+ base=$${base%\.a}; \
+ flags+=" -l$${base}"; \
+ done; \
+ done; \
+ file=$(LO_XCCONFIG); \
+ sed -i '' -e "s|^\(LINK_LDFLAGS =\).*$$|\1 $$flags|" $$file;
+
+ # Resources #
+ rm -rf $(DEST_RESOURCE) 2>/dev/null
+ mkdir -p $(DEST_RESOURCE)
+ mkdir -p $(DEST_RESOURCE)/ure
+
+ # copy rdb files
+ cp $(OUTDIR)/bin/offapi.rdb $(DEST_RESOURCE)
+ cp $(OUTDIR)/bin/udkapi.rdb $(DEST_RESOURCE)
+ cp $(OUTDIR)/bin/oovbaapi.rdb $(DEST_RESOURCE)
+ cp $(INSTDIR)/program/services/services.rdb $(DEST_RESOURCE)
+ cp $(INSTDIR)/ure/share/misc/services.rdb $(DEST_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 $(DEST_RESOURCE)/program/resource
+ cp $(INSTDIR)/program/resource/*en-US.res $(DEST_RESOURCE)/program/resource
+
+ # soffice.cfg
+ mkdir -p $(DEST_RESOURCE)/share/config
+ cp -R $(INSTDIR)/share/config/soffice.cfg $(DEST_RESOURCE)/share/config
+
+ # "registry"
+ cp -R $(INSTDIR)/share/registry $(DEST_RESOURCE)/share
+
+ # Set up rc, the "inifile". See getIniFileName_Impl().
+ file=$(DEST_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=$(DEST_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=$(DEST_RESOURCE)/unorc; \
+ echo '[Bootstrap]' > $$file;
+
+ # bootstraprc must be in $BRAND_BASE_DIR/program
+ mkdir -p $(DEST_RESOURCE)/program
+ file=$(DEST_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=$(DEST_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/MobileLibreOffice):
+#==============================================================================
+ $(call gb_Output_announce,$(subst $(WORKDIR)/Clean/,,$@),$(false),APP,2)
+ $(call MobileLibreOfficeXcodeBuild, clean)
+ rm -f $(LO_XCCONFIG) 2>/dev/null
+
+#------------------------------------------------------------------------------
+# vim: set noet sw=4 ts=4:
diff --git a/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj b/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj
index 36a634680402..2f30ea471e89 100644
--- a/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj
+++ b/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj
@@ -17,8 +17,8 @@
681D78C2180C12D300D52D5E /* udkapi.rdb in Resources */ = {isa = PBXBuildFile; fileRef = 681D78B7180C12D300D52D5E /* udkapi.rdb */; };
681D78C3180C12D300D52D5E /* unorc in Resources */ = {isa = PBXBuildFile; fileRef = 681D78B8180C12D300D52D5E /* unorc */; };
681D78C6180C136400D52D5E /* ure in Resources */ = {isa = PBXBuildFile; fileRef = 681D78C5180C136400D52D5E /* ure */; };
- 688EAAE9180D3130003741B3 /* lo.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 688EAAE8180D3130003741B3 /* lo.xcconfig */; };
688EAB01180D67E9003741B3 /* libios_sharedlo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 688EAAFE180D679F003741B3 /* libios_sharedlo.a */; };
+ 689A7ECC181EA0DD0020710C /* mlo-icon-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 68B99ED6180BBF7100FFEA35 /* mlo-icon-57.png */; };
689EBAEB18069FB7002F1CD7 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 689EBAEA18069FB7002F1CD7 /* UIKit.framework */; };
689EBAED18069FB7002F1CD7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 689EBAEC18069FB7002F1CD7 /* Foundation.framework */; };
689EBAEF18069FB7002F1CD7 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 689EBAEE18069FB7002F1CD7 /* CoreGraphics.framework */; };
@@ -48,7 +48,6 @@
68B98C42180B38CD00FFEA35 /* MLOMagnifier@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 68B98C33180B38CD00FFEA35 /* MLOMagnifier@2x.png */; };
68B98C43180B38CD00FFEA35 /* MLOMagnifierMask@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 68B98C34180B38CD00FFEA35 /* MLOMagnifierMask@2x.png */; };
68B99ED3180BBEE900FFEA35 /* test1.odt in Resources */ = {isa = PBXBuildFile; fileRef = 68B99ED2180BBEE900FFEA35 /* test1.odt */; };
- 68B99ED8180BBF7100FFEA35 /* mlo-icon-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 68B99ED6180BBF7100FFEA35 /* mlo-icon-57.png */; };
68B99ED9180BBF7100FFEA35 /* mlo-icon-114.png in Resources */ = {isa = PBXBuildFile; fileRef = 68B99ED7180BBF7100FFEA35 /* mlo-icon-114.png */; };
68C6FC51180AD0CA005ACB02 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 68C6FC4F180AD0CA005ACB02 /* libz.dylib */; };
68C6FC52180AD0CA005ACB02 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 68C6FC50180AD0CA005ACB02 /* libiconv.dylib */; };
@@ -74,7 +73,6 @@
681D78B1180C12D300D52D5E /* oovbaapi.rdb */ = {isa = PBXFileReference; lastKnownFileType = file; name = oovbaapi.rdb; path = resource_link/oovbaapi.rdb; sourceTree = SOURCE_ROOT; };
681D78B2180C12D300D52D5E /* program */ = {isa = PBXFileReference; lastKnownFileType = folder; name = program; path = resource_link/program; sourceTree = SOURCE_ROOT; };
681D78B3180C12D300D52D5E /* rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = rc; path = resource_link/rc; sourceTree = SOURCE_ROOT; };
- 681D78B4180C12D300D52D5E /* registry */ = {isa = PBXFileReference; lastKnownFileType = folder; name = registry; path = resource_link/registry; sourceTree = SOURCE_ROOT; };
681D78B5180C12D300D52D5E /* services.rdb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = services.rdb; path = resource_link/services.rdb; sourceTree = SOURCE_ROOT; };
681D78B6180C12D300D52D5E /* share */ = {isa = PBXFileReference; lastKnownFileType = folder; name = share; path = resource_link/share; sourceTree = SOURCE_ROOT; };
681D78B7180C12D300D52D5E /* udkapi.rdb */ = {isa = PBXFileReference; lastKnownFileType = file; name = udkapi.rdb; path = resource_link/udkapi.rdb; sourceTree = SOURCE_ROOT; };
@@ -294,7 +292,6 @@
children = (
681D78C5180C136400D52D5E /* ure */,
681D78B2180C12D300D52D5E /* program */,
- 681D78B4180C12D300D52D5E /* registry */,
681D78B6180C12D300D52D5E /* share */,
681D78AF180C12D300D52D5E /* fundamentalrc */,
681D78B0180C12D300D52D5E /* offapi.rdb */,
@@ -343,7 +340,6 @@
isa = PBXNativeTarget;
buildConfigurationList = 689EBB0D18069FB8002F1CD7 /* Build configuration list for PBXNativeTarget "MobileLibreOffice" */;
buildPhases = (
- 68B98C23180B2FE500FFEA35 /* ShellScript */,
689EBAE318069FB7002F1CD7 /* Sources */,
689EBAE418069FB7002F1CD7 /* Frameworks */,
689EBAE518069FB7002F1CD7 /* Resources */,
@@ -407,7 +403,7 @@
689EBAFD18069FB8002F1CD7 /* Default.png in Resources */,
689EBAFF18069FB8002F1CD7 /* Default@2x.png in Resources */,
689EBB0118069FB8002F1CD7 /* Default-568h@2x.png in Resources */,
- 68B99ED8180BBF7100FFEA35 /* mlo-icon-57.png in Resources */,
+ 689A7ECC181EA0DD0020710C /* mlo-icon-57.png in Resources */,
68B99ED9180BBF7100FFEA35 /* mlo-icon-114.png in Resources */,
68B98C35180B38CD00FFEA35 /* MLOButtonBack.png in Resources */,
68B98C36180B38CD00FFEA35 /* MLOButtonBack@2x.png in Resources */,
@@ -435,28 +431,11 @@
681D78C2180C12D300D52D5E /* udkapi.rdb in Resources */,
681D78C3180C12D300D52D5E /* unorc in Resources */,
681D78C6180C136400D52D5E /* ure in Resources */,
- 688EAAE9180D3130003741B3 /* lo.xcconfig in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
-/* Begin PBXShellScriptBuildPhase section */
- 68B98C23180B2FE500FFEA35 /* ShellScript */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "dest_resource=resource_link\nproduct_ver=`sed -ne 's/^\\(export PRODUCTVERSION=\\)\\(.*\\)/\\2/p' $LO_BUILDDIR/config_host.mk`\nbuildid=`(cd $LO_SRCDIR && git log -1 --format=%H)`\n\nrm $dest_resource\nmkdir -p $dest_resource\n\n#touch $SRCROOT/MobileLibreOffice/main.m\n\n# Libs #\nfor path in $LO_OUTDIR/lib $LO_INSTDIR/program $LO_WORKDIR/LinkTarget/StaticLibrary $LO_WORKDIR/UnpackedTarball/*/.libs/ $LO_WORKDIR/UnpackedTarball/*/src/.libs $LO_WORKDIR/UnpackedTarball/*/src/*/.libs $LO_WORKDIR/UnpackedTarball/openssl; do\n flags+=\" -L$path\"\n for lib in $path/lib*.a; do\n if [ ! -r $lib ]; then\n continue\n fi\n base=${lib##*/lib}\n base=${base%\\.a}\n flags+=\" -l${base}\"\n done\ndone\n\nfile=../lo.xcconfig\nsed -i '' -e \"s|^\\(LINK_LDFLAGS =\\).*$|\\1 $flags|\" $file\n \n# Resources #\nmkdir -p $dest_resource/ure\n\n# copy rdb files\ncp $LO_OUTDIR/bin/offapi.rdb $dest_resource\ncp $LO_OUTDIR/bin/udkapi.rdb $dest_resource\ncp $LO_OUTDIR/bin/oovbaapi.rdb $dest_resource\ncp $LO_INSTDIR/program/services/services.rdb $dest_resource\ncp $LO_INSTDIR/ure/share/misc/services.rdb $dest_resource/ure\n\n# copy .res files\n# program/resource is hardcoded in tools/source/rc/resmgr.cxx. Sure,\n# we could set STAR_RESOURCE_PATH instead. sigh...\nmkdir -p $dest_resource/program/resource\ncp $LO_INSTDIR/program/resource/*en-US.res $dest_resource/program/resource\n\n# soffice.cfg\nmkdir -p $dest_resource/share/config\ncp -R $LO_INSTDIR/share/config/soffice.cfg $dest_resource/share/config\n \n# \"registry\"\ncp -R $LO_INSTDIR/share/registry $dest_resource/share\n \n# Set up rc, the \"inifile\". See getIniFileName_Impl().\nfile=$dest_resource/rc\necho '[Bootstrap]' > $file\necho 'URE_BOOTSTRAP=file://$APP_DATA_DIR/fundamentalrc' >> $file\necho 'HOME=$APP_DATA_DIR/tmp' >> $file\n\n# Set up fundamentalrc, unorc, bootstraprc and versionrc.\n# Do we really need all these?\nfile=$dest_resource/fundamentalrc\necho '[Bootstrap]' > $file\necho 'BRAND_BASE_DIR=file://$APP_DATA_DIR' >> $file\necho 'CONFIGURATION_LAYERS=xcsxcu:${BRAND_BASE_DIR}/share/registry res:${BRAND_BASE_DIR}/registry' >> $file\n\nfile=$dest_resource/unorc\necho '[Bootstrap]' > $file\n\n# bootstraprc must be in $BRAND_BASE_DIR/program\nmkdir -p $dest_resource/program\nfile=$dest_resource/program/bootstraprc\necho '[Bootstrap]' > $file\necho 'InstallMode=<installmode>' >> $file\necho \"ProductKey=LibreOffice $product_ver\" >> $file\necho 'UserInstallation=file://$APP_DATA_DIR/../Library/Application%20Support' >> $file\n\n# Is this really needed?\nfile=$dest_resource/program/versionrc\necho '[Version]' > $file\necho 'AllLanguages=en-US' >> $file\necho 'BuildVersion=' >> $file\necho \"buildid=$buildid\" >> $file\necho 'ProductMajor=360' >> $file\necho 'ProductMinor=1' >> $file\n ";
- };
-/* End PBXShellScriptBuildPhase section */
-
/* Begin PBXSourcesBuildPhase section */
689EBAE318069FB7002F1CD7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
@@ -523,7 +502,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
LIBRARY_SEARCH_PATHS = "";
LLVM_LTO = NO;
- ONLY_ACTIVE_ARCH = YES;
+ ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"-ObjC",
"$(LINK_LDFLAGS)",
@@ -649,7 +628,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
LIBRARY_SEARCH_PATHS = "";
LLVM_LTO = NO;
- ONLY_ACTIVE_ARCH = YES;
+ ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = (
"-ObjC",
"$(LINK_LDFLAGS)",
diff --git a/ios/MobileLibreOffice/MobileLibreOffice/MobileLibreOffice-Info.plist b/ios/MobileLibreOffice/MobileLibreOffice/MobileLibreOffice-Info.plist
index 227fc307990c..89629633e327 100644
--- a/ios/MobileLibreOffice/MobileLibreOffice/MobileLibreOffice-Info.plist
+++ b/ios/MobileLibreOffice/MobileLibreOffice/MobileLibreOffice-Info.plist
@@ -34,10 +34,10 @@
<dict>
<key>CFBundleIconFiles</key>
<array>
- <string>mlo-icon-57.png</string>
<string>mlo-icon-114.png</string>
<string>mlo-icon-72.png</string>
<string>mlo-icon-144.png</string>
+ <string>mlo-icon-57.png</string>
</array>
</dict>
</dict>
diff --git a/ios/Module_ios.mk b/ios/Module_ios.mk
index d70e27771f44..96cef28f5813 100644
--- a/ios/Module_ios.mk
+++ b/ios/Module_ios.mk
@@ -11,6 +11,7 @@ $(eval $(call gb_Module_Module,ios))
ifeq ($(OS),IOS)
$(eval $(call gb_Module_add_targets,ios,\
+ CustomTarget_MobileLibreOffice_app \
Executable_LibreOffice \
CustomTarget_LibreOffice_app \
))
diff --git a/ios/shared/ios_sharedlo.xcodeproj/project.pbxproj b/ios/shared/ios_sharedlo.xcodeproj/project.pbxproj
index 40adba69b165..8f07817460b4 100644
--- a/ios/shared/ios_sharedlo.xcodeproj/project.pbxproj
+++ b/ios/shared/ios_sharedlo.xcodeproj/project.pbxproj
@@ -559,7 +559,7 @@
LD_NO_PIE = NO;
LINK_WITH_STANDARD_LIBRARIES = NO;
LLVM_LTO = NO;
- ONLY_ACTIVE_ARCH = YES;
+ ONLY_ACTIVE_ARCH = NO;
SDKROOT = iphoneos;
STRIP_INSTALLED_PRODUCT = NO;
};
@@ -595,6 +595,7 @@
LD_NO_PIE = NO;
LINK_WITH_STANDARD_LIBRARIES = NO;
LLVM_LTO = NO;
+ ONLY_ACTIVE_ARCH = NO;
SDKROOT = iphoneos;
STRIP_INSTALLED_PRODUCT = NO;
VALIDATE_PRODUCT = YES;
@@ -673,7 +674,7 @@
LD_NO_PIE = NO;
LINK_WITH_STANDARD_LIBRARIES = NO;
LLVM_LTO = NO;
- ONLY_ACTIVE_ARCH = YES;
+ ONLY_ACTIVE_ARCH = NO;
SDKROOT = iphoneos;
STRIP_INSTALLED_PRODUCT = NO;
};