iOS, status update

Jan Iversen jani at libreoffice.org
Wed Oct 4 06:52:00 UTC 2017


Hi all

I am back after the summer break (which some might have guessed due to the new iOS commits).

Sidenote, I spend my 2 month vacation diving, managed to stay away from my computer, while I passed 4 exams (OW, AOW, Nitrox and rescue) so now I am a padi rescue diver.
(as always I like to do things 110%, the instructors made bets on whether I would achieve it :-) ).

The iOS port is back on schedule, before the summer break I did a lot of experiments to make it compile again and update it to recent iOS versions. I moved, at least, the library portion from a experiment level to a production like state (remark it is production like, because so far we have had no discussions about releasing any of the new stuff). The move also included securing the platforms of interest compiles.

I decided to drop 32bit, which caused severe problems in some of the third party libraries, and I decided to pre-link all LO libraries into 1 (this action reduces link time of the app from 12 minutes to 2 minutes 10 seconds), and since the next step involves app work a lot more the lib work, it is a time saving investment.

Supported platforms
arm64 for production (sorry this is the apple name for aarch64), used by all (newer) iPhones and iPads. 
arm64 debug, to enable debugging on a i* from Xcode on a mac.
x86-64 debug, to enable the Xcode simulator to work for i* devices

SDK
min. 10.3 (no need to support old iOS versions)

XCODE
8.3 
Current 9.0 does not compile the libraries correctly, but it also does not compile the normal LO app for macOSX correctly.

Make structure:
autoconfigure.ac have been cleaned for a lot of no longer needed iOS stuff, and the call generation moved down to the iOS/CustomTarget_ios.mk
distro-configs/LibreOfficeiOS.conf have been updated, remark I have currently disabled all the could be disabled, that may change later
ios/README, explains how to generated the library and how the different platforms work

Libraries
the final libraries (basically LibreOfficeKit) is stored in $(SRCDIR)/ios/generated, which is UGLY, but when working with the app you need to be able to switch between the 3 platforms, and hence have access to all 3 libraries, I could not find a way to generate the 3 libraries within 1 $(BUILDDIR), mainly because config_host.mk is stored at / level, and that is different for the 3 platforms.

Please remark this is still very much work in progress, but I believe the library is relatively stable now, and will continue with the swift app to add a UI.

The primary goal is to make a viewer, and once that is stable enhance it with limited editing capabilities. Timeframe is open but I hope to have the viewer available as part of the 6.0 release.

Anybody who wants, can of course use the work available in the repo, but I would also welcome any help, so please feel free to contact me on-list or off-list.

Many thanks to all who worked in iOS before me and thereby gave me a better starting point, and especially to Tor for his ongoing help and critical questions.


Comments are welcome.

rgds
jan I.


More information about the LibreOffice mailing list