diff options
author | Tor Lillqvist <tml@iki.fi> | 2011-08-02 22:21:07 +0300 |
---|---|---|
committer | Tor Lillqvist <tml@iki.fi> | 2011-08-02 22:21:17 +0300 |
commit | a4052965895648cb3629701b405747c406c77799 (patch) | |
tree | 5d82332dcd4d53408922480b2dfea7b54b8ee781 | |
parent | 2a96158a834de84618e050f336a139bfe28981af (diff) |
Do build executables for iOS, too
Needed already now for our statically linked cppunit tests. We don't
construct complete app bundles. You have to manually copy the
executable to replace the one in some app bundle built in Xcode before
running it for now. This works fine at least for debugging in the
simulator, haven't tried yet on a device.
-rw-r--r-- | solenv/gbuild/platform/ios.mk | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/solenv/gbuild/platform/ios.mk b/solenv/gbuild/platform/ios.mk index 67258863edee..29305bda63d0 100644 --- a/solenv/gbuild/platform/ios.mk +++ b/solenv/gbuild/platform/ios.mk @@ -226,7 +226,7 @@ gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) # FIXME framework handling very hackish define gb_LinkTarget__get_liblinkflags -$(patsubst lib%.dylib,-l%,$(foreach lib,$(filter-out $(gb_Library__FRAMEWORKS),$(1)),$(call gb_Library_get_filename,$(lib)))) \ +$(patsubst lib%.a,-l%,$(foreach lib,$(filter-out $(gb_Library__FRAMEWORKS),$(1)),$(call gb_Library_get_filename,$(lib)))) \ $(addprefix -framework ,$(filter $(gb_Library__FRAMEWORKS),$(1))) endef @@ -236,13 +236,24 @@ $(if $(filter Executable,$(1)),\ $$(call gb_Library_get_layer,$(2))) endef -# Just create a dummy executable -# It is pointless to build actual iOS executables here anyway. -# Hmm, except for the simulator? Nah, use Xcode for that, too. + define gb_LinkTarget__command_dynamiclink -$(call gb_Helper_abbreviate_dirs,\ + $(if $(filter Library CppunitTest,$(TARGETTYPE)),@echo No dynamic libraries should be built for iOS && exit 1, \ mkdir -p $(dir $(1)) && \ - ((echo '#!/bin/sh' && echo 'echo Nope.') >$(1))) + $(gb_CXX) \ + $(gb_Executable_TARGETTYPEFLAGS) \ + $(subst \d,$$,$(RPATH)) \ + $(T_LDFLAGS) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \ + $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \ + $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \ + $(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \ + $(LIBS) \ + -o $(1)) endef # parameters: 1-linktarget 2-cobjects 3-cxxobjects @@ -279,8 +290,12 @@ gb_Library_OOOEXT := $(gb_Library_DLLPOSTFIX)$(gb_Library_PLAINEXT) gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) gb_Library__FRAMEWORKS := \ + Foundation \ + CoreFoundation \ + CoreGraphics \ gb_Library_PLAINLIBS_NONE += \ + objc \ jpeg \ m \ pthread \ @@ -331,7 +346,7 @@ gb_StaticLibrary_StaticLibrary_platform = # Executable class gb_Executable_EXT := -gb_Executable_TARGETTYPEFLAGS := -bind_at_load +gb_Executable_TARGETTYPEFLAGS := -dead_strip gb_Executable_LAYER := \ $(foreach exe,$(gb_Executable_UREBIN),$(exe):OOO) \ |