2018-10-24 04:07:55 -05:00
How to build the iOS app:
1) First you need to build the LibreOffice core code for iOS. Put in
your autogen.input something like this:
--enable-debug
--enable-dbgutil
--enable-werror
--with-distro=LibreOfficeiOS
and build "normally". (Naturally, no unit tests will be run when
2018-10-24 04:44:47 -05:00
cross-compiling LibreOffice.) Of course there is no requirement to use
those --enable options; as a minimum, just
--with-distro=LibreOfficeiOS should work.
2018-10-24 04:07:55 -05:00
2019-06-03 01:04:53 -05:00
for use with the SIMULATOR you can use:
--with-distro=LibreOfficeiOS_Sim
Debug is implied when compiling for use in the simulator, but if you
don't want that, then edit "distro-configs/LibreOfficeiOS_Sim.conf"
2018-10-24 04:07:55 -05:00
This will produce a large number of static archives (.a) here and
there in instdir and workdir, but no app that can be run as such. (You
can see a list of them in
workdir/CustomTarget/ios/ios-all-static-libs.list)
2019-06-03 01:04:53 -05:00
2) Build LOOL Dependencies
POCO LIBRARY
2.1) Get the source poco library at https://pocoproject.org/download.html
2.2) Unpack
2.3a) Compile for DEVICE (arm64) use:
./configure --config=iPhone --static --no-tests --no-samples --omit=Data/ODBC,Data/MySQL --prefix=$HOME/poco-ios-arm64
make POCO_TARGET_OSARCH=arm64 -s -j4
make POCO_TARGET_OSARCH=arm64 install
2.3b) Compile for SIMULATOR (x86_64) use:
./configure --config=iPhoneSimulator --static --no-tests --no-samples --omit=Data/ODBC,Data/MySQL --prefix=$HOME/poco-ios-x64
make POCO_TARGET_OSARCH=x86_64 -s -j4
make POCO_TARGET_OSARCH=x86_64 install
This will install the poco static libraries and headers to your $home
directory into poco-ios-arm64 (and poco-ios-x64) directory. You can
change the directory to your wishes, but by installing it this way into
2020-04-26 15:55:16 -05:00
a directory in $HOME it doesn't pollute your root directories, doesn't
2019-06-03 01:04:53 -05:00
need root permissions and can be removed easily.
If compiler can't find <string.h> you need to install:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
3) Do a separate clone of the online repo on macOS, but don't do any
2019-05-15 18:14:23 -05:00
autogen.sh, configure, or make, or open the Mobile Xcode project there
yet. We call this the app folder.
2018-10-24 04:07:55 -05:00
2020-05-26 01:41:09 -05:00
4) On a Linux machine: Do a separate clone of the online repo, run
2019-05-15 18:14:23 -05:00
autogen.sh, and configure it with the --enable-iosapp option:
2018-10-24 04:07:55 -05:00
2019-06-03 01:04:53 -05:00
./configure --enable-iosapp --with-app-name="My Own Mobile LibreOffice"
2018-10-24 04:07:55 -05:00
Then run make. That will produce files in loleaflet/dist, nothing
2019-05-15 18:14:23 -05:00
else. Copy those to the corresponding folder in the app folder from
step 2. This is how I do it:
make clean && make && tar cf - loleaflet/dist | ssh misan.local 'cd lo/online-ios-device && rm -rf loleaflet/dist && tar xvf -'
where misan.local is the macOS machine where I build the app, and
~/lo/online-ios-device is the app folder from step 2.
Then back to the Mac:
As you were able to build LibreOffice in step 1, you must already have
2019-05-27 02:09:49 -05:00
GNU autoconf installed on the Mac. Install also GNU automake and
2020-04-26 15:55:16 -05:00
libtool. Preferably from sources, to make sure a potential
2019-05-27 02:09:49 -05:00
installation of brew or similar will not pollute your environment with
unknown stuff.
2019-05-15 18:14:23 -05:00
2019-05-27 02:09:49 -05:00
As GNU libtool will be needed only for a very minimal part of the
build (running the autogen.sh script, but not anything else), it's
safest to install it somewhere that is not in your $PATH. Let's say
/opt/libtool. (Installing Automake in the default /usr/local, which is
in $PATH, is less risky.)
2018-10-24 04:07:55 -05:00
2019-05-27 02:09:49 -05:00
Run the autogen.sh script in the app folder, with GNU libtool
2020-05-26 01:41:09 -05:00
available, for instance:
2018-10-24 04:07:55 -05:00
2019-05-27 02:09:49 -05:00
PATH=/opt/libtool/bin:$PATH ./autogen.sh
2018-10-24 04:07:55 -05:00
2019-06-03 01:04:53 -05:00
5) In the app folder from step 2, edit the
2019-05-15 18:14:23 -05:00
ios/Mobile.xcodeproj/project.pbxproj file in your favourite text
editor. Change LOSRCDIR and all instances of "../ios-device" to refer
2020-10-03 11:38:25 -05:00
the LibreOffice core source directory from step 1.
2019-05-15 18:14:23 -05:00
2019-06-03 01:04:53 -05:00
6) In the app folder, run:
for DEVICE:
./configure --enable-iosapp --with-app-name="My Own Mobile LibreOffice" --with-lo-builddir=$HOME/lode/dev/LO --with-poco-includes=$HOME/poco-ios-arm64/include --with-poco-libs=$HOME/poco-ios-arm64/lib
2018-10-30 04:25:33 -05:00
2019-06-03 01:04:53 -05:00
for SIMULATOR:
./configure --enable-iosapp --with-app-name="My Own Mobile LibreOffice" --with-lo-builddir=$HOME/lode/dev/LO --with-poco-includes=$HOME/poco-ios-x64/include --with-poco-libs=$HOME/poco-ios-x64/lib
2018-10-30 04:25:33 -05:00
2018-11-01 18:13:17 -05:00
The configure script puts the app name as the CFBundleDisplayName
2019-05-15 18:14:23 -05:00
property into the ios/Mobile/Info.plist file, and sets up some
2019-01-25 04:02:45 -06:00
symbolic links that point to the LibreOffice core source and build
2019-05-15 18:14:23 -05:00
directories (which typically will be the same, of course).
2018-10-30 04:25:33 -05:00
2019-06-03 01:04:53 -05:00
7) Before opening the Xcode project for the first time
2019-01-24 08:21:28 -06:00
- seriously consider disabling source code indexing, this
spawns a vast number of git processes, and consumes huge
amounts of CPU & memory:
Xcode -> Preferences, "Source Control", uncheck "Enable Source Control"
2019-06-03 01:04:53 -05:00
8) Now you can open the Mobile Xcode project, build it, and run it.