508a659232
- instructions how to build POCO - fixes the changes made since Change-Id: I157d23ce914b8afb06ccf6e6c33f8aa12661d1bb
138 lines
5 KiB
Text
138 lines
5 KiB
Text
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
|
|
cross-compiling LibreOffice.) Of course there is no requirement to use
|
|
those --enable options; as a minimum, just
|
|
--with-distro=LibreOfficeiOS should work.
|
|
|
|
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"
|
|
|
|
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)
|
|
|
|
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
|
|
a directory in $HOME it doesn't polute your root directories, doesn't
|
|
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
|
|
autogen.sh, configure, or make, or open the Mobile Xcode project there
|
|
yet. We call this the app folder.
|
|
|
|
4) Here the instructions split. tml uses the first way, mmeeks tried
|
|
to use the second way. The paths will join again at step 4.
|
|
|
|
EITHER:
|
|
|
|
4a) On a Linux machine: Do a separate clone of the online repo, run
|
|
autogen.sh, and configure it with the --enable-iosapp option:
|
|
|
|
./configure --enable-iosapp --with-app-name="My Own Mobile LibreOffice"
|
|
|
|
Then run make. That will produce files in loleaflet/dist, nothing
|
|
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
|
|
GNU autoconf installed on the Mac. Install also GNU automake and
|
|
libtool. Preferrably from sources, to make sure a potential
|
|
installation of brew or similar will not pollute your environment with
|
|
unknown stuff.
|
|
|
|
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.)
|
|
|
|
Run the autogen.sh script in the app folder, with GNU libtool
|
|
available:
|
|
|
|
PATH=/opt/libtool/bin:$PATH ./autogen.sh
|
|
|
|
OR:
|
|
|
|
4b) Install brew: https://brew.sh/
|
|
|
|
Then:
|
|
|
|
brew install libtool npm
|
|
./autogen.sh
|
|
sudo python -m ensurepip --default-pip
|
|
sudo pip install polib lxml
|
|
make ; make
|
|
|
|
Then run:
|
|
|
|
./autogen.sh
|
|
|
|
Now the instructions join again:
|
|
|
|
5) In the app folder from step 2, edit the
|
|
ios/Mobile.xcodeproj/project.pbxproj file in your favourite text
|
|
editor. Change LOSRCDIR and all instances of "../ios-device" to refer
|
|
the the LibreOffice core source directory from step 1.
|
|
|
|
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
|
|
|
|
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
|
|
|
|
The configure script puts the app name as the CFBundleDisplayName
|
|
property into the ios/Mobile/Info.plist file, and sets up some
|
|
symbolic links that point to the LibreOffice core source and build
|
|
directories (which typically will be the same, of course).
|
|
|
|
7) Before opening the Xcode project for the first time
|
|
- 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"
|
|
|
|
8) Now you can open the Mobile Xcode project, build it, and run it.
|