diff options
author | jan Iversen <jani@libreoffice.org> | 2017-11-26 12:23:45 +0100 |
---|---|---|
committer | jan Iversen <jani@libreoffice.org> | 2017-11-26 19:19:51 +0100 |
commit | 781c532068e4b51a372b149ee2b8f48a1c10e79f (patch) | |
tree | 0fd862005609b73558d84d11bdb297ebe9cdb30c /ios | |
parent | 7e222aff21d82a818e3a0f72f7e4d7e2a83c7274 (diff) |
iOS, make Kit symbols external
Xcode has a problem (a bug) with linkink .o files to a
project, this is ignored on the linker line.
We use visisbility=hidden as default, therefore the symbols
to be exported need to have the attribute
visibility=default
Change-Id: I079189dbaf6c0f606028a1e582f320db97995285
Diffstat (limited to 'ios')
-rw-r--r-- | ios/CustomTarget_iOS_prelink.mk | 19 | ||||
-rw-r--r-- | ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj | 19 | ||||
-rw-r--r-- | ios/source/LibreOfficeKit.c | 6 |
3 files changed, 28 insertions, 16 deletions
diff --git a/ios/CustomTarget_iOS_prelink.mk b/ios/CustomTarget_iOS_prelink.mk index 2588e72110ca..2670f9449b6e 100644 --- a/ios/CustomTarget_iOS_prelink.mk +++ b/ios/CustomTarget_iOS_prelink.mk @@ -8,11 +8,12 @@ #- Env ------------------------------------------------------------------------ IOSDEV = /Applications/Xcode.app/Contents/Developer/ IOSLD = $(IOSDEV)Toolchains/XcodeDefault.xctoolchain/usr/bin/ld +IOSOBJ = $(WORKDIR)/ios/Kit.o ifeq ($(ENABLE_DEBUG),TRUE) -IOSKIT = $(SRCDIR)/ios/generated/LibreOfficeKit_$(CPUNAME)_debug.o +IOSKIT = $(SRCDIR)/ios/generated/libKit_$(CPUNAME)_debug.a else -IOSKIT = $(SRCDIR)/ios/generated/LibreOfficeKit_$(CPUNAME).o +IOSKIT = $(SRCDIR)/ios/generated/libKit_$(CPUNAME).a endif @@ -32,15 +33,11 @@ $(IOSKIT): $(call gb_StaticLibrary_get_target,iOS_kitBridge) FORCE $(IOSLD) -r -ios_version_min 11.1 \ -syslibroot $(MACOSX_SDK_PATH) \ -arch `echo $(CPUNAME) | tr '[:upper:]' '[:lower:]'` \ - -o $(IOSKIT) \ - $(WORKDIR)/CObject/ios/source/LibreOfficeKit.o \ - `$(SRCDIR)/bin/lo-all-static-libs` - - - -# prelink parms: -ios_version_min 11.0 -lz -liconv -g -Wl -# -e "s'@SYMROOT@'$(WORKDIR)/ios/build'g" \ -# -sdk $(IOS_SDK) \ + -o $(IOSOBJ) \ + $(WORKDIR)/CObject/ios/source/LibreOfficeKit.o \ + `$(SRCDIR)/bin/lo-all-static-libs` \ + $(call gb_StaticLibrary_get_target,iOS_kitBridge) + $(AR) -r $(IOSKIT) $(IOSOBJ) diff --git a/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj b/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj index becd7212d156..2b9d95f4eb48 100644 --- a/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj +++ b/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj @@ -16,7 +16,7 @@ 393975781F8BECB0002DC80B /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 393975771F8BECB0002DC80B /* libiconv.tbd */; }; 3939757A1F8BECC1002DC80B /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 393975791F8BECC1002DC80B /* libz.tbd */; }; 39503A751F94D44900F19C78 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 39503A741F94D44900F19C78 /* libc++.tbd */; }; - 396C83371FC989AB008E662A /* dummyLOkit.c in Sources */ = {isa = PBXBuildFile; fileRef = 39284DB01FA5E150006F43E4 /* dummyLOkit.c */; }; + 396C833F1FC9D89E008E662A /* libKit_X86_64_debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 396C833E1FC9D89D008E662A /* libKit_X86_64_debug.a */; }; 396F92F71E7AE62400A28C82 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 396F92F61E7AE62400A28C82 /* Settings.bundle */; }; 397868D61E59A3EA007F9248 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 397868D81E59A3EA007F9248 /* LaunchScreen.xib */; }; 397E08FE1E597BD8001374E0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 397E08FD1E597BD8001374E0 /* AppDelegate.swift */; }; @@ -47,6 +47,8 @@ 393975791F8BECC1002DC80B /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 39503A6F1F94C4AC00F19C78 /* lokit-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "lokit-Bridging-Header.h"; sourceTree = "<group>"; }; 39503A741F94D44900F19C78 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; + 396C833C1FC9D62B008E662A /* libtest.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtest.a; path = ../generated/libtest.a; sourceTree = "<group>"; }; + 396C833E1FC9D89D008E662A /* libKit_X86_64_debug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libKit_X86_64_debug.a; path = ../generated/libKit_X86_64_debug.a; sourceTree = "<group>"; }; 396F92F61E7AE62400A28C82 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = "<group>"; }; 397275391E77D9F1006ACDCC /* LibreOfficeLight.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = LibreOfficeLight.entitlements; sourceTree = "<group>"; }; 3975A8C91FBD70EE00A87B3A /* LibreOfficeKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = LibreOfficeKit.h; path = ../../include/LibreOfficeKit/LibreOfficeKit.h; sourceTree = "<group>"; }; @@ -75,6 +77,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 396C833F1FC9D89E008E662A /* libKit_X86_64_debug.a in Frameworks */, 39503A751F94D44900F19C78 /* libc++.tbd in Frameworks */, 3939757A1F8BECC1002DC80B /* libz.tbd in Frameworks */, 393975781F8BECB0002DC80B /* libiconv.tbd in Frameworks */, @@ -108,6 +111,8 @@ 3972753A1E77D9F7006ACDCC /* Frameworks */ = { isa = PBXGroup; children = ( + 396C833E1FC9D89D008E662A /* libKit_X86_64_debug.a */, + 396C833C1FC9D62B008E662A /* libtest.a */, 39503A741F94D44900F19C78 /* libc++.tbd */, 393975791F8BECC1002DC80B /* libz.tbd */, 393975771F8BECB0002DC80B /* libiconv.tbd */, @@ -268,7 +273,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 396C83371FC989AB008E662A /* dummyLOkit.c in Sources */, 392ED9B31E5E4B03005C8435 /* ViewPrintManager.swift in Sources */, 399648471E5B87DC00E73E83 /* ViewProperties.swift in Sources */, 39284DB31FA5F207006F43E4 /* DocumentActions.swift in Sources */, @@ -353,10 +357,11 @@ HEADER_SEARCH_PATHS = "$(inherited)"; IPHONEOS_DEPLOYMENT_TARGET = 11.1; LD_MAP_FILE_PATH = ""; + LIBRARY_SEARCH_PATHS = /Users/jani/LO/core/ios/generated/; MACH_O_TYPE = mh_execute; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_LDFLAGS = "../generated/LibreOfficeKit_ARM64.o\t\t"; + OTHER_LDFLAGS = libKit_ARM64_debug.a; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OBJC_BRIDGING_HEADER = "lokit-Bridging-Header.h"; @@ -415,10 +420,11 @@ HEADER_SEARCH_PATHS = "$(inherited)"; IPHONEOS_DEPLOYMENT_TARGET = 11.1; LD_MAP_FILE_PATH = ""; + LIBRARY_SEARCH_PATHS = /Users/jani/LO/core/ios/generated/; MACH_O_TYPE = mh_execute; MTL_ENABLE_DEBUG_INFO = NO; ONLY_ACTIVE_ARCH = YES; - OTHER_LDFLAGS = ../generated/LibreOfficeKit_ARM64.o; + OTHER_LDFLAGS = libKit_ARM64.a; SDKROOT = iphoneos; SWIFT_OBJC_BRIDGING_HEADER = "lokit-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; @@ -541,10 +547,13 @@ HEADER_SEARCH_PATHS = "$(inherited)"; IPHONEOS_DEPLOYMENT_TARGET = 11.1; LD_MAP_FILE_PATH = ""; + LIBRARY_SEARCH_PATHS = /Users/jani/LO/core/ios/generated/; MACH_O_TYPE = mh_execute; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_LDFLAGS = ../generated/LibreOfficeKit_ARM64_debug.o; + OTHER_LDFLAGS = libKit_X86_64_debug.a; + OTHER_LIBTOOLFLAGS = ""; + "OTHER_LIBTOOLFLAGS[arch=*]" = ""; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OBJC_BRIDGING_HEADER = "lokit-Bridging-Header.h"; diff --git a/ios/source/LibreOfficeKit.c b/ios/source/LibreOfficeKit.c index 6240f802cf4d..cdd1c09a8ed5 100644 --- a/ios/source/LibreOfficeKit.c +++ b/ios/source/LibreOfficeKit.c @@ -35,6 +35,7 @@ static double twipsPerXtile, twipsPerYtile; // Bridge functions to LibreOfficeKit +__attribute__((visibility("default"))) int BridgeLOkit_Init(const char *path) { char bufUserPath[200]; @@ -52,6 +53,7 @@ int BridgeLOkit_Init(const char *path) +__attribute__((visibility("default"))) int BridgeLOkit_Sizing(const int countXtiles, const int countYtiles, const int pixelsXtile, const int pixelsYtile) { @@ -79,6 +81,7 @@ int BridgeLOkit_Sizing(const int countXtiles, const int countYtiles, +__attribute__((visibility("default"))) int BridgeLOkit_open(const char *path) { document = kit->pClass->documentLoad(kit, path); @@ -88,6 +91,7 @@ int BridgeLOkit_open(const char *path) +__attribute__((visibility("default"))) int BridgeLOkit_ClientCommand(const char *input) { (void)input; @@ -96,6 +100,7 @@ int BridgeLOkit_ClientCommand(const char *input) +__attribute__((visibility("default"))) int BridgeLOkit_Hipernate() { //FIXME @@ -106,6 +111,7 @@ int BridgeLOkit_Hipernate() +__attribute__((visibility("default"))) int BridgeLOkit_LeaveHipernate() { //FIXME |