[Libreoffice-commits] .: 6 commits - cppuhelper/source ios/CustomTarget_Viewer_app.mk ios/experimental sal/rtl solenv/gbuild vcl/ios

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Sun Jan 6 06:01:31 PST 2013


 cppuhelper/source/shlib.cxx                              |   25 ++-
 ios/CustomTarget_Viewer_app.mk                           |  101 +++++++++++++--
 ios/experimental/Viewer/.gitignore                       |    2 
 ios/experimental/Viewer/Viewer.xcodeproj/project.pbxproj |    4 
 ios/experimental/Viewer/Viewer/Icon-72.png               |binary
 ios/experimental/Viewer/Viewer/lo-viewer.mm              |   92 ++++---------
 sal/rtl/source/bootstrap.cxx                             |    8 +
 solenv/gbuild/platform/IOS_ARM_GCC.mk                    |    2 
 vcl/ios/source/app/salinst.cxx                           |   41 ------
 9 files changed, 153 insertions(+), 122 deletions(-)

New commits:
commit 4a11f5c28a2d7b4d50d67f26cba889169977a0ce
Author: Tor Lillqvist <tml at iki.fi>
Date:   Sat Jan 5 23:13:49 2013 +0200

    More hacking on iOS stuff
    
    Get the app bundle directory from Xcode's SCRIPT_OUTPUT_FILE_0.
    
    Copy .rdb, registry, .res files, set up the various rc files.
    
    Don't list a bunch of .component files on the command line, surely
    that is not sane.
    
    Change-Id: I6fb8bd4bea8d5afd30900daa1b916defb894e78c

diff --git a/ios/CustomTarget_Viewer_app.mk b/ios/CustomTarget_Viewer_app.mk
index 36cf8c5..9af7a49 100644
--- a/ios/CustomTarget_Viewer_app.mk
+++ b/ios/CustomTarget_Viewer_app.mk
@@ -48,13 +48,85 @@ endif
 
 ifneq ($(SCRIPT_OUTPUT_FILE_0),)
 # When run from Xcode, we move the Viewer executable from solver into
-# the Viewer.app directory that Xcode uses.
+# the Viewer.app directory that Xcode uses. We also set up/copy all
+# the run-time configuration etc files that the app needs.
 $(call gb_CustomTarget_get_target,ios/Viewer_app) : $(SCRIPT_OUTPUT_FILE_0)
 
+appdir=$(dir $(SCRIPT_OUTPUT_FILE_0))
+buildid=$(shell git log -1 --format=%H)
+
 $(SCRIPT_OUTPUT_FILE_0) : $(call gb_Executable_get_target,Viewer)
 	$(call gb_Output_announce,$@,fii,APP,2)
-	mkdir -p `dirname $(SCRIPT_OUTPUT_FILE_0)`
+	mkdir -p $(appdir)/ure
 	mv $(call gb_Executable_get_target,Viewer) $(SCRIPT_OUTPUT_FILE_0)
+#
+# Copy rdb files
+#
+	cp $(OUTDIR)/bin/types.rdb $(appdir)
+	cp $(OUTDIR)/bin/ure/types.rdb $(appdir)/ure
+	cp $(OUTDIR)/bin/offapi.rdb $(appdir)
+	cp $(OUTDIR)/xml/services.rdb $(appdir)
+	cp $(OUTDIR)/xml/ure/services.rdb $(appdir)/ure
+#
+# Copy "registry" files
+#
+	mkdir -p $(appdir)/registry/modules $(appdir)/registry/res
+	cp $(OUTDIR)/xml/*.xcd $(appdir)/registry
+	mv $(appdir)/registry/fcfg_langpack_en-US.xcd $(appdir)/registry/res
+	cp -R $(OUTDIR)/xml/registry/* $(appdir)/registry
+#
+# Copy .res files
+#
+# program/resource is hardcoded in tools/source/rc/resmgr.cxx. Sure,
+# we could set STAR_RESOURCE_PATH instead. sigh...
+#
+	mkdir -p $(appdir)/program/resource
+	cp $(OUTDIR)/bin/*en-US.res $(appdir)/program/resource
+#
+# Set up rc, the "inifile". See getIniFileName_Impl(). 
+#
+	( \
+		echo '[Bootstrap]' && \
+		echo 'URE_BOOTSTRAP=file://$$APP_DATA_DIR/fundamentalrc' && \
+		echo 'HOME=$$APP_DATA_DIR/tmp' && \
+	: ) > $(appdir)/rc
+#
+# Set up fundamentalrc, unorc, bootstraprc and versionrc.
+#
+# Do we really need all these?
+#
+	( \
+		echo '[Bootstrap]' && \
+		echo 'BRAND_BASE_DIR=file://$$APP_DATA_DIR' && \
+		echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/registry module:$${BRAND_BASE_DIR}/registry/modules res:$${BRAND_BASE_DIR}/registry' && \
+	: ) > $(appdir)/fundamentalrc
+#
+	( \
+		echo '[Bootstrap]' && \
+		: UNO_TYPES and UNO_SERVICES are set up in lo-viewer.mm, is that sane? && \
+	: ) > $(appdir)/unorc
+#
+# bootstraprc must be in $BRAND_BASE_DIR/program
+#
+	mkdir -p $(appdir)/program
+	( \
+		echo '[Bootstrap]' && \
+		echo 'InstallMode=<installmode>' && \
+		echo 'ProductKey=LibreOffice Viewer $(PRODUCTVERSION)' && \
+		echo 'UserInstallation=file://$$APP_DATA_DIR' && \
+	: ) > $(appdir)/program/bootstraprc
+#
+# Is this really needed?
+#
+	( \
+		echo '[Version]' && \
+		echo 'AllLanguages=en-US' && \
+		echo 'BuildVersion=' && \
+		echo 'buildid=$(buildid)' && \
+		echo 'ProductBuildid=3' && \
+		echo 'ProductMajor=360' && \
+		echo 'ProductMinor=1' && \
+	: ) > $(appdir)/program/versionrc
 
 else
 # When run just from the command line, we don't have any app bundle to
diff --git a/ios/experimental/Viewer/Viewer/lo-viewer.mm b/ios/experimental/Viewer/Viewer/lo-viewer.mm
index a40cb78..616f136 100644
--- a/ios/experimental/Viewer/Viewer/lo-viewer.mm
+++ b/ios/experimental/Viewer/Viewer/lo-viewer.mm
@@ -13,6 +13,7 @@
 #import <UIKit/UIKit.h>
 #include <postmac.h>
 
+#include <comphelper/processfactory.hxx>
 #include <cppuhelper/bootstrap.hxx>
 #include <osl/detail/ios-bootstrap.h>
 #include <osl/process.h>
@@ -21,14 +22,12 @@
 #include <com/sun/star/bridge/XUnoUrlResolver.hpp>
 #include <com/sun/star/frame/XComponentLoader.hpp>
 #include <com/sun/star/lang/XMultiComponentFactory.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/registry/XSimpleRegistry.hpp>
 
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::bridge;
-using namespace com::sun::star::frame;
-using namespace com::sun::star::registry;
+#include <vcl/svapp.hxx>
+
+using namespace com::sun::star;
 
 using ::rtl::OUString;
 using ::rtl::OUStringToOString;
@@ -122,15 +121,10 @@ lo_get_libmap(void)
 void
 lo_initialize(void)
 {
-    // See unotest/source/cpp/bootstrapfixturebase.cxx
-    const char *app_root = [[[NSBundle mainBundle] bundlePath] UTF8String];
-    setenv("SRC_ROOT", app_root, 1);
-    setenv("OUTDIR_FOR_BUILD", app_root, 1);
-
-    setenv("SAL_LOG", "yes", 1);
+    setenv("SAL_LOG", "+WARN+INFO", 1);
 
     const char *argv[] = {
-        "Viewer",
+        "placeholder-exe",
         "-env:URE_INTERNAL_LIB_DIR=file:///",
         "placeholder-uno-types",
         "placeholder-uno-services"
@@ -138,65 +132,31 @@ lo_initialize(void)
 
     const int argc = sizeof(argv)/sizeof(*argv);
 
+    argv[0] = [[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent: @"Viewer"] UTF8String];
+
     NSString *app_root_escaped = [[[NSBundle mainBundle] bundlePath] stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
 
     NSString *uno_types = @"-env:UNO_TYPES=";
 
     uno_types = [uno_types stringByAppendingString: @"file://"];
-    uno_types = [uno_types stringByAppendingString: [app_root_escaped stringByAppendingPathComponent: @"udkapi.rdb"]];
+    uno_types = [uno_types stringByAppendingString: [app_root_escaped stringByAppendingPathComponent: @"ure/types.rdb"]];
 
-    uno_types = [uno_types stringByAppendingString: @" "];
-    uno_types = [uno_types stringByAppendingString: @"file://"];
+    uno_types = [uno_types stringByAppendingString: @" file://"];
     uno_types = [uno_types stringByAppendingString: [app_root_escaped stringByAppendingPathComponent: @"types.rdb"]];
 
-    uno_types = [uno_types stringByAppendingString: @" "];
-    uno_types = [uno_types stringByAppendingString: @"file://"];
-    uno_types = [uno_types stringByAppendingString: [app_root_escaped stringByAppendingPathComponent: @"ure/types.rdb"]];
+    uno_types = [uno_types stringByAppendingString: @" file://"];
+    uno_types = [uno_types stringByAppendingString: [app_root_escaped stringByAppendingPathComponent: @"offapi.rdb"]];
 
     assert(strcmp(argv[argc-2], "placeholder-uno-types") == 0);
     argv[argc-2] = [uno_types UTF8String];
 
     NSString *uno_services = @"-env:UNO_SERVICES=";
 
-    const char *services[] = {
-        "services.rdb",
-        "ComponentTarget/basic/util/sb.component",
-        "ComponentTarget/chart2/source/controller/chartcontroller.component",
-        "ComponentTarget/chart2/source/chartcore.component",
-        "ComponentTarget/comphelper/util/comphelp.component",
-        "ComponentTarget/eventattacher/source/evtatt.component",
-        "ComponentTarget/fileaccess/source/fileacc.component",
-        "ComponentTarget/filter/source/config/cache/filterconfig1.component",
-        "ComponentTarget/oox/util/oox.component",
-        "ComponentTarget/package/source/xstor/xstor.component",
-        "ComponentTarget/package/util/package2.component",
-        "ComponentTarget/sax/source/expatwrap/expwrap.component",
-        "ComponentTarget/sax/source/fastparser/fastsax.component",
-        "ComponentTarget/sc/util/sc.component",
-        "ComponentTarget/sc/util/scfilt.component",
-        "ComponentTarget/scaddins/source/analysis/analysis.component",
-        "ComponentTarget/scaddins/source/datefunc/date.component",
-        "ComponentTarget/sot/util/sot.component",
-        "ComponentTarget/svl/util/svl.component",
-        "ComponentTarget/toolkit/util/tk.component",
-        "ComponentTarget/ucb/source/ucp/tdoc/ucptdoc1.component",
-        "ComponentTarget/unotools/util/utl.component",
-        "ComponentTarget/unoxml/source/rdf/unordf.component",
-        "ComponentTarget/framework/util/fwk.component",
-        "ComponentTarget/i18npool/util/i18npool.component",
-        "ComponentTarget/sfx2/util/sfx.component",
-        "ComponentTarget/unoxml/source/service/unoxml.component",
-        "ComponentTarget/configmgr/source/configmgr.component",
-        "ComponentTarget/ucb/source/core/ucb1.component",
-        "ComponentTarget/ucb/source/ucp/file/ucpfile1.component"
-    };
+    uno_services = [uno_services stringByAppendingString: @"file://"];
+    uno_services = [uno_services stringByAppendingString: [app_root_escaped stringByAppendingPathComponent: @"ure/services.rdb"]];
 
-    for (unsigned i = 0; i < sizeof(services)/sizeof(services[0]); i++) {
-        uno_services = [uno_services stringByAppendingString: @"file://"];
-        uno_services = [uno_services stringByAppendingString: [app_root_escaped stringByAppendingPathComponent: [NSString stringWithUTF8String: services[i]]]];
-        if (i < sizeof(services)/sizeof(services[0]) - 1)
-            uno_services = [uno_services stringByAppendingString: @" "];
-    }
+    uno_services = [uno_services stringByAppendingString: @" file://"];
+    uno_services = [uno_services stringByAppendingString: [app_root_escaped stringByAppendingPathComponent: @"services.rdb"]];
 
     assert(strcmp(argv[argc-1], "placeholder-uno-services") == 0);
     argv[argc-1] = [uno_services UTF8String];
@@ -205,15 +165,21 @@ lo_initialize(void)
 
     try {
 
-        Reference< XComponentContext > xComponentContext(::cppu::defaultBootstrap_InitialComponentContext());
+        uno::Reference< uno::XComponentContext > xContext(::cppu::defaultBootstrap_InitialComponentContext());
+
+        uno::Reference< lang::XMultiComponentFactory > xFactory( xContext->getServiceManager() );
+
+        uno::Reference< lang::XMultiServiceFactory > xSM( xFactory, uno::UNO_QUERY_THROW );
+
+        comphelper::setProcessServiceFactory( xSM );
 
-        Reference< XMultiComponentFactory > xMultiComponentFactoryClient( xComponentContext->getServiceManager() );
+        InitVCL();
 
-        Reference< XInterface > xInterface =
-            xMultiComponentFactoryClient->createInstanceWithContext( OUString("com.sun.star.frame.Desktop"),
-                                                                     xComponentContext );
+        uno::Reference< uno::XInterface > xInterface =
+            xFactory->createInstanceWithContext( "com.sun.star.frame.Desktop",
+                                                 xContext );
     }
-    catch (Exception e) {
+    catch ( uno::Exception e ) {
         SAL_WARN("Viewer", e.Message);
     }
 }
commit 392510d7e483e8c181540dfdbabf4de53e4dcbe1
Author: Tor Lillqvist <tml at iki.fi>
Date:   Sat Jan 5 23:11:12 2013 +0200

    UNO components have the "lib" prefix only on Android
    
    That they do is a leftover hack from before we started using the
    DISABLE_DYNLOADING thing on Android, it isn't actually necessary any
    more. Earlier when the UNO components were actually dynamic libraries
    on Android (too, as on desktop OSes), they *had* to have names
    starting with "lib" or they would be silently skipped when
    packaging.
    
    Change-Id: I11a4689f316e1ffb640a5c3110c63296d2833a84

diff --git a/cppuhelper/source/shlib.cxx b/cppuhelper/source/shlib.cxx
index 348b970..acc4253 100644
--- a/cppuhelper/source/shlib.cxx
+++ b/cppuhelper/source/shlib.cxx
@@ -530,20 +530,33 @@ Reference< XInterface > SAL_CALL loadSharedLibComponentFactory(
         { "bootstrap.uno" SAL_DLLEXTENSION, bootstrap_component_getFactory },
         { "bootstrap.uno.a", bootstrap_component_getFactory },
         { "libbootstrap.uno.a", bootstrap_component_getFactory },
-        // The rest seems to consistently have a "lib" prefix now
+
+        // The .uno ones seems to consistently have a "lib" prefix now for Android,
+        // but not iOS, hmm.
+#ifdef ANDROID
         { "libconfigmgr.uno.a", configmgr_component_getFactory },
-        { "libcomphelp" CPPU_STRINGIFY(CPPU_ENV) ".a", comphelp_component_getFactory },
         { "libexpwrap.uno.a", expwrap_component_getFactory },
         { "libfastsax.uno.a", fastsax_component_getFactory },
-        { "libfilterconfiglo.a", filterconfig1_component_getFactory },
-        { "libfwklo.a", fwk_component_getFactory },
         { "libi18npool.uno.a", i18npool_component_getFactory },
         { "libintrospection.uno.a", introspection_component_getFactory },
         { "liblocalebe1.uno.a", localebe1_component_getFactory },
-        { "libpackage2.a", package2_component_getFactory },
         { "libreflection.uno.a", reflection_component_getFactory },
-        { "libsfxlo.a", sfx_component_getFactory },
         { "libstocservices.uno.a", stocservices_component_getFactory },
+#else
+        { "configmgr.uno.a", configmgr_component_getFactory },
+        { "expwrap.uno.a", expwrap_component_getFactory },
+        { "fastsax.uno.a", fastsax_component_getFactory },
+        { "i18npool.uno.a", i18npool_component_getFactory },
+        { "introspection.uno.a", introspection_component_getFactory },
+        { "localebe1.uno.a", localebe1_component_getFactory },
+        { "reflection.uno.a", reflection_component_getFactory },
+        { "stocservices.uno.a", stocservices_component_getFactory },
+#endif
+        { "libcomphelp" CPPU_STRINGIFY(CPPU_ENV) ".a", comphelp_component_getFactory },
+        { "libfilterconfiglo.a", filterconfig1_component_getFactory },
+        { "libfwklo.a", fwk_component_getFactory },
+        { "libpackage2.a", package2_component_getFactory },
+        { "libsfxlo.a", sfx_component_getFactory },
         { "libsvllo.a", svl_component_getFactory },
         { "libtklo.a", tk_component_getFactory },
         { "libucb1.a", ucb_component_getFactory },
commit f3fa6d32e0698b99abfc00888a75590693e1d386
Author: Tor Lillqvist <tml at iki.fi>
Date:   Sat Jan 5 23:10:03 2013 +0200

    I don't think InitSalMain() needs to do anything on iOS
    
    Change-Id: Ib59f9cf7c60796fd091de64fabdd6c10a3fec5e5

diff --git a/vcl/ios/source/app/salinst.cxx b/vcl/ios/source/app/salinst.cxx
index ed792db..0e5c69b 100644
--- a/vcl/ios/source/app/salinst.cxx
+++ b/vcl/ios/source/app/salinst.cxx
@@ -173,46 +173,7 @@ void DeInitSalData()
 
 void InitSalMain()
 {
-    rtl::OUString urlWorkDir;
-    rtl_uString *sysWorkDir = NULL;
-    if (tools::getProcessWorkingDir(urlWorkDir))
-    {
-        oslFileError err2 = osl_getSystemPathFromFileURL(urlWorkDir.pData, &sysWorkDir);
-        if (err2 == osl_File_E_None)
-        {
-            rtl::OString aPath( getenv( "PATH" ) );
-            rtl::OString aResPath( getenv( "STAR_RESOURCEPATH" ) );
-            rtl::OString aCmdPath( OUStringToOString(OUString(sysWorkDir), RTL_TEXTENCODING_UTF8).getStr() );
-            rtl::OString aTmpPath;
-            // Get absolute path of command's directory
-            if ( !aCmdPath.isEmpty() )
-            {
-                DirEntry aCmdDirEntry( aCmdPath );
-                aCmdDirEntry.ToAbs();
-                aCmdPath = rtl::OUStringToOString( aCmdDirEntry.GetPath().GetFull(), RTL_TEXTENCODING_ASCII_US );
-            }
-            // Assign to PATH environment variable
-            if ( !aCmdPath.isEmpty() )
-            {
-                aTmpPath = rtl::OString( "PATH=" );
-                aTmpPath += aCmdPath;
-                if ( !aPath.isEmpty() )
-                    aTmpPath += rtl::OUStringToOString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US );
-                aTmpPath += aPath;
-                putenv( (char*)aTmpPath.getStr() );
-            }
-            // Assign to STAR_RESOURCEPATH environment variable
-            if ( !aCmdPath.isEmpty() )
-            {
-                aTmpPath = rtl::OString( "STAR_RESOURCEPATH=" );
-                aTmpPath += aCmdPath;
-                if ( !aResPath.isEmpty() )
-                    aTmpPath += rtl::OUStringToOString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US );
-                aTmpPath += aResPath;
-                putenv( (char*)aTmpPath.getStr() );
-            }
-        }
-    }
+    // I doubt anything is needed on iOS
 }
 
 // -----------------------------------------------------------------------
commit 35b86ad73ccaf24377faaf0e73ead06ca2425b38
Author: Tor Lillqvist <tml at iki.fi>
Date:   Sat Jan 5 23:09:35 2013 +0200

    Handle APP_DATA_DIR for iOS, too
    
    Change-Id: I7259358c917ef9e7cc93d8f6886c9a935887183b

diff --git a/sal/rtl/source/bootstrap.cxx b/sal/rtl/source/bootstrap.cxx
index 1f293b5..66571c6 100644
--- a/sal/rtl/source/bootstrap.cxx
+++ b/sal/rtl/source/bootstrap.cxx
@@ -521,6 +521,14 @@ bool Bootstrap_Impl::getValue(
         return true;
     }
 #endif
+#ifdef IOS
+    if (key == "APP_DATA_DIR") {
+        const char *app_data_dir = [[[NSBundle mainBundle] bundlePath] UTF8String];
+        rtl_uString_assign(
+            value, rtl::OUString(app_data_dir, strlen(app_data_dir), RTL_TEXTENCODING_UTF8).pData);
+        return true;
+    }
+#endif
     if (key == "ORIGIN") {
         rtl_uString_assign(
             value,
commit 617e5f8ac930d82129a14fb52df925cd0ff524ae
Author: Tor Lillqvist <tml at iki.fi>
Date:   Fri Jan 4 17:41:37 2013 +0200

    Hack a bit more on the iOS app build mechanism
    
    There was quite come confusion as to where Xcode wants the Run Script
    phase (= our gbuild mechanism) to put the executable. I think I got it
    right now. Xcode can be quite scary as soon as you do anything out of
    the ordinary. (But then, what isn't.)
    
    Change-Id: I22bbdfaef88174815bff66d6c7241f4ba2360246

diff --git a/ios/CustomTarget_Viewer_app.mk b/ios/CustomTarget_Viewer_app.mk
index feb0a46..36cf8c5 100644
--- a/ios/CustomTarget_Viewer_app.mk
+++ b/ios/CustomTarget_Viewer_app.mk
@@ -28,9 +28,11 @@ endif
 
 # If run from Xcode, check that its configuration (device or
 # simulator) matches that of gbuild. We detect being run from Xcode by
-# looking for $(XCODE_VERSION_ACTUAL)
+# looking for $(SCRIPT_OUTPUT_FILE_0). The Run Script build phase in
+# our project has as its (single) output file the location of the app
+# executable in its app bundle.
 
-ifneq ($(XCODE_VERSION_ACTUAL),)
+ifneq ($(SCRIPT_OUTPUT_FILE_0),)
 
 export CCACHE_CPP2=y
 
@@ -44,16 +46,25 @@ endif
 
 endif
 
-APP := Viewer
+ifneq ($(SCRIPT_OUTPUT_FILE_0),)
+# When run from Xcode, we move the Viewer executable from solver into
+# the Viewer.app directory that Xcode uses.
+$(call gb_CustomTarget_get_target,ios/Viewer_app) : $(SCRIPT_OUTPUT_FILE_0)
 
-ios_Viewer_app_DIR := $(SRC_ROOT)/ios/experimental/Viewer/DerivedData/$(APP)/Build/Products/$(xcode_config)-$(xcode_sdk)/$(APP).app
+$(SCRIPT_OUTPUT_FILE_0) : $(call gb_Executable_get_target,Viewer)
+	$(call gb_Output_announce,$@,fii,APP,2)
+	mkdir -p `dirname $(SCRIPT_OUTPUT_FILE_0)`
+	mv $(call gb_Executable_get_target,Viewer) $(SCRIPT_OUTPUT_FILE_0)
 
-ios_Viewer_app_EXE := $(ios_Viewer_app_DIR)/Viewer
+else
+# When run just from the command line, we don't have any app bundle to
+# copy or move the executable to. So do nothing.
+$(call gb_CustomTarget_get_target,ios/Viewer_app) : $(call gb_Executable_get_target,Viewer)
 
-$(call gb_CustomTarget_get_target,ios/Viewer_app) : $(ios_Viewer_app_EXE)
+$(call gb_CustomTarget_get_clean_target,ios/Viewer_app) :
+# Here we just assume that Xcode's settings are default, or something
+	rm -rf experimental/Viewer/build
 
-$(ios_Viewer_app_EXE): $(call gb_Executable_get_target,Viewer)
-	mkdir -p $(ios_Viewer_app_DIR)
-	cp $(call gb_Executable_get_target,Viewer) $(ios_Viewer_app_DIR)
+endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/ios/experimental/Viewer/.gitignore b/ios/experimental/Viewer/.gitignore
index 44ac7a8..e76e0ed 100644
--- a/ios/experimental/Viewer/.gitignore
+++ b/ios/experimental/Viewer/.gitignore
@@ -1,4 +1,4 @@
 .DS_Store
-DerivedData
+build
 Viewer.xcodeproj/project.xcworkspace
 Viewer.xcodeproj/xcuserdata
diff --git a/ios/experimental/Viewer/Viewer.xcodeproj/project.pbxproj b/ios/experimental/Viewer/Viewer.xcodeproj/project.pbxproj
index 5e65aae..4fad8f0 100644
--- a/ios/experimental/Viewer/Viewer.xcodeproj/project.pbxproj
+++ b/ios/experimental/Viewer/Viewer.xcodeproj/project.pbxproj
@@ -187,11 +187,11 @@
 			inputPaths = (
 			);
 			outputPaths = (
-				"$(DERIVED_FILE_DIR)/Viewer.app",
+				"$(CONFIGURATION_BUILD_DIR)/$(EXECUTABLE_PATH)",
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "cd ../.. && /opt/lo/bin/make";
+			shellScript = "cd ../.. && /opt/lo/bin/make -r";
 		};
 /* End PBXShellScriptBuildPhase section */
 
diff --git a/ios/experimental/Viewer/Viewer/Icon-72.png b/ios/experimental/Viewer/Viewer/Icon-72.png
index e5a34fd..8a355c2 100644
Binary files a/ios/experimental/Viewer/Viewer/Icon-72.png and b/ios/experimental/Viewer/Viewer/Icon-72.png differ
commit b95d3caa95384d0fb00ac59f875869371cc70677
Author: Tor Lillqvist <tml at iki.fi>
Date:   Fri Jan 4 17:40:56 2013 +0200

    Use same options as Xcode does
    
    Change-Id: I34e06bdb24ece278c928c6cbba8b01a38c86ff85

diff --git a/solenv/gbuild/platform/IOS_ARM_GCC.mk b/solenv/gbuild/platform/IOS_ARM_GCC.mk
index 4db1865..3d14f54 100644
--- a/solenv/gbuild/platform/IOS_ARM_GCC.mk
+++ b/solenv/gbuild/platform/IOS_ARM_GCC.mk
@@ -116,7 +116,7 @@ define gb_LinkTarget__command_dynamiclink
 		$(gb_Executable_TARGETTYPEFLAGS) \
 		$(subst \d,$$,$(RPATH)) \
 		$(T_LDFLAGS) \
-		-Wl$(COMMA)-dead_strip \
+		-dead_strip -fobjc_link_runtime \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
 		$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
 		$(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \


More information about the Libreoffice-commits mailing list