[Libreoffice-commits] core.git: 2 commits - ios/CustomTarget_iOS_link.mk ios/CustomTarget_iOS_prelink.mk ios/CustomTarget_iOS_setup.mk ios/Module_ios.mk ios/StaticLibrary_iOSkit.mk

jan Iversen jani at libreoffice.org
Thu Jan 25 16:31:20 UTC 2018


 ios/CustomTarget_iOS_link.mk  |   71 +++++++++++++++++-------------------------
 ios/CustomTarget_iOS_setup.mk |   55 ++++++++++++++++++--------------
 ios/Module_ios.mk             |    5 +-
 ios/StaticLibrary_iOSkit.mk   |   28 ----------------
 4 files changed, 64 insertions(+), 95 deletions(-)

New commits:
commit bf0117cce987dd92f6e658de0e186a282677b17f
Author: jan Iversen <jani at libreoffice.org>
Date:   Thu Jan 25 15:14:36 2018 +0100

    iOS, simplified dylib build
    
    Change-Id: Icea9a5e4796dda288fafcd478a769fa7087baab2

diff --git a/ios/CustomTarget_iOS_prelink.mk b/ios/CustomTarget_iOS_link.mk
similarity index 52%
rename from ios/CustomTarget_iOS_prelink.mk
rename to ios/CustomTarget_iOS_link.mk
index 0534264d416c..ab5ad721d8d7 100644
--- a/ios/CustomTarget_iOS_prelink.mk
+++ b/ios/CustomTarget_iOS_link.mk
@@ -5,60 +5,50 @@
 # 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 ------------------------------------------------------------------------
-IOSLIB = ''
-IOSLD = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
-IOSCLANG = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-IOSOBJ = $(WORKDIR)/CObject/ios/Kit.o
+IOSGEN   = $(SRCDIR)/ios/generated
+IOSLIBS := $(shell \
+        (export INSTDIR=$(INSTDIR);export OS=$(OS); \
+         export WORKDIR=$(WORKDIR);export LIBO_LIB_FOLDER=$(LIBO_LIB_FOLDER); \
+         $(SRCDIR)/bin/lo-all-static-libs))
+IOSOBJ = $(WORKDIR)/ios/Kit.o
+IOSSRC = $(SRCDIR)/ios/source/LibreOfficeKit.c
 
 ifeq ($(ENABLE_DEBUG),TRUE)
 ifeq ($(CPUNAME),X86_64)
-IOSKIT = $(IOSGEN)/simulator/libKit
+IOSKIT = $(IOSGEN)/simulator/libKit.dylib
 else
-IOSKIT = $(IOSGEN)/debug/libKit
+IOSKIT = $(IOSGEN)/debug/libKit.dylib
 endif
 else
 ifeq ($(CPUNAME),ARM64)
-IOSKIT = $(IOSGEN)/release/libKit
+IOSKIT = $(IOSGEN)/release/libKit.dylib
 endif
 endif
 
 
 
 #- Top level  -----------------------------------------------------------------
-$(eval $(call gb_CustomTarget_CustomTarget,ios/iOS_prelink))
-
-$(call gb_CustomTarget_get_target,ios/iOS_prelink): $(IOSKIT).dylib
+$(eval $(call gb_CustomTarget_CustomTarget,ios/iOS_link))
 
+$(call gb_CustomTarget_get_target,ios/iOS_link): $(IOSKIT)
 
 
 #- build  ---------------------------------------------------------------------
-.PHONY: FORCE
-FORCE:
-
-
-IOSPREBUILD: FORCE
-	$(eval IOSLIBS = `$(SRCDIR)/bin/lo-all-static-libs`)
-
-
-
-$(IOSKIT).a: IOSPREBUILD $(WORKDIR)/ios $(call gb_StaticLibrary_get_target,iOS_kitBridge) \
-	    $(IOSLIBS)
-	$(call gb_Output_announce,iOS prelink object,$(true),LNK,2)
-	$(IOSLD) -r -ios_version_min $(IOS_DEPLOYMENT_VERSION) \
-	    -syslibroot $(MACOSX_SDK_PATH) \
-	    -arch `echo $(CPUNAME) |  tr '[:upper:]' '[:lower:]'` \
-	    -o $(IOSOBJ) \
-	    $(WORKDIR)/CObject/ios/source/LibreOfficeKit.o \
-	    $(IOSLIBS)
-	$(AR) -r $(IOSKIT).a $(IOSOBJ)
-
-
-$(IOSKIT).dylib: $(IOSKIT).a
+$(IOSOBJ): $(IOSSRC) $(call gb_CustomTarget_get_target,ios/iOS_setup)
+	$(call gb_Output_announce,iOS compile interface,$(true),C,2)
+	$(gb_CC) $(gb_COMPILERDEFS) $(gb_OSDEFS) $(gb_CFLAGS) \
+		-DDISABLE_DYNLOADING -DLIBO_INTERNAL_ONLY \
+		-fvisibility=hidden -Werror -O0 -fstrict-overflow \
+		$(if $(ENABLE_DEBUG),$(gb_DEBUG_CFLAGS) -g) \
+		-c $(IOSSRC) -o $(IOSOBJ) \
+		-I$(SRCDIR)/include -I$(BUILDDIR)/config_host \
+
+$(IOSKIT): $(IOSOBJ) $(IOSLIBS)
 	$(call gb_Output_announce,iOS dylib,$(true),LNK,2)
-	$(IOSCLANG) -dynamiclib -mios-simulator-version-min=$(IOS_DEPLOYMENT_VERSION) \
-	    -arch `echo $(CPUNAME) |  tr '[:upper:]' '[:lower:]'` \
-	    -isysroot $(MACOSX_SDK_PATH) \
+	$(gb_CC) -dynamiclib \
 	    -Xlinker -rpath -Xlinker @executable_path/Frameworks \
 	    -Xlinker -rpath -Xlinker @loader_path/Frameworks \
 	    -dead_strip \
@@ -76,22 +66,21 @@ $(IOSKIT).dylib: $(IOSKIT).a
 	    -single_module \
 	    -compatibility_version 1 \
 	    -current_version 1 \
+	    $(IOSLIBS) \
 	    $(IOSOBJ) \
-	    -o $(IOSKIT).dylib
+	    -o $(IOSKIT)
 ifeq ($(origin IOS_CODEID),undefined)
 	@echo "please define environment variable IOS_CODEID as\n" \
 	      "export IOS_CODEID=<your apple code identifier>"
 	@exit -1
 else
-	codesign -s "$(IOS_CODEID)" $(IOSKIT).dylib
+	codesign -s "$(IOS_CODEID)" $(IOSKIT)
 endif
 
 
-
-
 #- clean ios  -----------------------------------------------------------------
-$(call gb_CustomTarget_get_clean_target,ios/iOS_prelink):
-	rm -f $(IOSKIT).a $(IOSKIT).dylib
+$(call gb_CustomTarget_get_clean_target,ios/iOS_link):
+	rm -f $(IOSKIT).dylib
 
 
 
diff --git a/ios/Module_ios.mk b/ios/Module_ios.mk
index c280713cc198..111391b31bee 100644
--- a/ios/Module_ios.mk
+++ b/ios/Module_ios.mk
@@ -12,11 +12,12 @@ ifeq ($(OS),IOS)
 
 $(eval $(call gb_Module_add_targets,ios,\
 	CustomTarget_iOS_setup \
-	StaticLibrary_iOSkit \
-	CustomTarget_iOS_prelink \
+	CustomTarget_iOS_link \
 ))
 
 
+
+
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/ios/StaticLibrary_iOSkit.mk b/ios/StaticLibrary_iOSkit.mk
deleted file mode 100644
index a543e494a344..000000000000
--- a/ios/StaticLibrary_iOSkit.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- 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/.
-#
-# This file incorporates work covered by the following license notice:
-#
-#   Licensed to the Apache Software Foundation (ASF) under one or more
-#   contributor license agreements. See the NOTICE file distributed
-#   with this work for additional information regarding copyright
-#   ownership. The ASF licenses this file to you under the Apache
-#   License, Version 2.0 (the "License"); you may not use this file
-#   except in compliance with the License. You may obtain a copy of
-#   the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-$(eval $(call gb_StaticLibrary_StaticLibrary,iOS_kitBridge))
-
-$(eval $(call gb_StaticLibrary_add_cobjects,iOS_kitBridge,\
-    ios/source/LibreOfficeKit \
-))
-
-$(call gb_StaticLibrary_get_target,ios/iOS_kitBridge): $(call gb_CustomTarget_get_target,ios/iOS_setup)
-
-# vim: set noet sw=4 ts=4:
commit 376ba90ee29bb6da5c3c079575333577aea4fee0
Author: jan Iversen <jani at libreoffice.org>
Date:   Wed Jan 24 09:00:42 2018 +0100

    iOS, corrected directory creation.
    
    the setup mk did not always create the needed directories.
    and corrected typo
    
    Change-Id: I58a40a67d91101504b7802a1fc73105df68a4ca4

diff --git a/ios/CustomTarget_iOS_setup.mk b/ios/CustomTarget_iOS_setup.mk
index 6242354eeebe..b3e7843abba3 100644
--- a/ios/CustomTarget_iOS_setup.mk
+++ b/ios/CustomTarget_iOS_setup.mk
@@ -5,42 +5,54 @@
 # 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 ------------------------------------------------------------------------
-IOSGEN := $(SRCDIR)/ios/generated
-IOSRES := $(IOSGEN)/resources
+IOSGEN  = $(SRCDIR)/ios/generated
+IOSRES  = $(IOSGEN)/resources
+IOSDIRS = $(IOSGEN) \
+	       $(IOSGEN)/simulator \
+	       $(IOSGEN)/debug \
+	       $(IOSGEN)/release \
+	  $(IOSRES) \
+	       $(IOSRES)/services \
+               $(IOSRES)/program \
+	       $(IOSRES)/share \
+	       $(IOSRES)/share/config \
+               $(IOSRES)/share/filter \
+	  $(WORKDIR)/ios
 
 
 #- Top level  -----------------------------------------------------------------
 $(eval $(call gb_CustomTarget_CustomTarget,ios/iOS_setup))
 
-
-
 $(call gb_CustomTarget_get_target,ios/iOS_setup): $(IOSGEN)/native-code.h
 
 
-
-#- Generate dynamic files  ---------------------------------------------------
-$(IOSGEN) $(WORKDIR)/ios:
-	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),EN1,2)
-	mkdir -p $(IOSGEN) $(IOSRES) $(IOSRES)/services \
-	         $(IOSRES)/share/config $(IOSRES)/share/filter $(IOSRES)/program \
-	         $(IOSGEN)/simulator \
-	         $(IOSGEN)/debug \
-	         $(IOSGEN)/release \
-	         $(WORKDIR)/ios;
-
+#- create directories  --------------------------------------------------------
+$(IOSDIRS):
+	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),MKD,2)
+	mkdir -p $(IOSDIRS)
 
 
+#- Generate resources  --------------------------------------------------------
 $(IOSGEN)/native-code.h: $(BUILDDIR)/config_host.mk \
                          $(SRCDIR)/ios/CustomTarget_iOS_setup.mk \
 	                 $(SRCDIR)/solenv/bin/native-code.py \
-	                 $(IOSGEN) $(WORKDIR)/ios
+	                 $(IOSGEN) $(WORKDIR)/ios \
+	                 $(IOSDIRS)
 	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),EN2,2)
+
+	# Secure LibreOffice.c get build if there are changes
+	rm -rf $(WORKDIR)/ios/*
+
+	# generate native-code.h (used by LibreOffice.c)
 	$(SRCDIR)/solenv/bin/native-code.py \
 	    -C -g core -g writer -g calc -g draw -g edit \
 	    > $(IOSGEN)/native-code.h
 
-	# generate resource files used to start/run LibreOffice
+	# copy resource files used to start/run LibreOffice
 	cp $(WORKDIR)/UnpackedTarball/icu/source/data/in/icudt60l.dat $(IOSRES)/icudt60l.dat
 	cp $(INSTDIR)/program/types.rdb             $(IOSRES)/udkapi.rdb
 	cp $(INSTDIR)/program/types/offapi.rdb      $(IOSRES)
@@ -54,13 +66,12 @@ $(IOSGEN)/native-code.h: $(BUILDDIR)/config_host.mk \
 	cp $(INSTDIR)/share/filter/vml-shape-types $(IOSRES)/share/filter
 	cp -R $(INSTDIR)/share/registry $(IOSRES)/share
 
-	# Set up rc, the "inifile". See getIniFileName_Impl().
+	# Set up rc (the "inifile", fundamentalrc, unorc, bootstraprc and versionrc.
 	(echo '[Bootstrap]' \
 	&& echo 'URE_BOOTSTRAP=file://$$APP_DATA_DIR/fundamentalrc' \
 	&& echo 'HOME=$$SYSUSERHOME'  \
 	    ) > $(IOSRES)/rc
 
-	# Set up fundamentalrc, unorc, bootstraprc and versionrc.
 	(echo '[Bootstrap]' \
         && echo 'BRAND_BASE_DIR=file://$$APP_DATA_DIR' \
         && echo 'BRAND_INI_DIR=file:://$$APP_DATA_DIR' \
@@ -92,12 +103,10 @@ $(IOSGEN)/native-code.h: $(BUILDDIR)/config_host.mk \
 	    ) > $(IOSRES)/program/versionrc
 
 
-
 #- clean ios  -----------------------------------------------------------------
 $(call gb_CustomTarget_get_clean_target,ios/iOS_setup):
 	$(call gb_Output_announce,$(subst $(WORKDIR)/Clean/,,$@),$(false),ENV,2)
-	echo $(call gb_StaticLibrary_get_target,iOS_kitBridge)
-	rm -rf $(IOSRES) $(IOSGEN)/native-code.h $(IOSGEN)/build
+	rm -rf $(IOSRES)/* $(IOSGEN)/native-code.h $(IOSGEN)/build
 	rm -rf $(WORKDIR)/ios
 ifeq ($(ENABLE_DEBUG),TRUE)
 ifeq ($(CPUNAME),X86_64)
@@ -111,6 +120,4 @@ ifeq ($(CPUNAME),ARM64)
 endif
 endif
 
-
-
 # vim: set noet sw=4 ts=4:


More information about the Libreoffice-commits mailing list