From cfa91a7458eff04d1109bac13a9829ad389bc06f Mon Sep 17 00:00:00 2001 From: Mathieu Virbel Date: Thu, 8 Mar 2012 18:05:47 +0100 Subject: [PATCH] first part of cleaning --- templates/icon.png | Bin 0 -> 11725 bytes templates/main.m | 69 ++++ templates/template-Info.plist | 51 +++ templates/template.xcodeproj/project.pbxproj | 373 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + biglink => tools/biglink | 0 build_all.sh => tools/build_all.sh | 0 build_freetype.sh => tools/build_freetype.sh | 0 build_kivy.sh => tools/build_kivy.sh | 0 build_python.sh => tools/build_python.sh | 0 build_sdl.sh => tools/build_sdl.sh | 0 build_sdlmixer.sh => tools/build_sdlmixer.sh | 0 build_sdlttf.sh => tools/build_sdlttf.sh | 0 clean_python.sh => tools/clean_python.sh | 0 tools/create-xcode-project.sh | 35 ++ environment.sh => tools/environment.sh | 2 +- liblink => tools/liblink | 0 tools/populate-project.sh | 40 ++ reduce_python.sh => tools/reduce_python.sh | 0 19 files changed, 576 insertions(+), 1 deletion(-) create mode 100644 templates/icon.png create mode 100644 templates/main.m create mode 100644 templates/template-Info.plist create mode 100755 templates/template.xcodeproj/project.pbxproj create mode 100644 templates/template.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename biglink => tools/biglink (100%) rename build_all.sh => tools/build_all.sh (100%) rename build_freetype.sh => tools/build_freetype.sh (100%) rename build_kivy.sh => tools/build_kivy.sh (100%) rename build_python.sh => tools/build_python.sh (100%) rename build_sdl.sh => tools/build_sdl.sh (100%) rename build_sdlmixer.sh => tools/build_sdlmixer.sh (100%) rename build_sdlttf.sh => tools/build_sdlttf.sh (100%) rename clean_python.sh => tools/clean_python.sh (100%) create mode 100755 tools/create-xcode-project.sh rename environment.sh => tools/environment.sh (95%) rename liblink => tools/liblink (100%) create mode 100755 tools/populate-project.sh rename reduce_python.sh => tools/reduce_python.sh (100%) diff --git a/templates/icon.png b/templates/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c499b4b1255e06e9fbe9164c19d36273aec7b7c1 GIT binary patch literal 11725 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 Y?xf +#import +#include +#include "SDL/SDL_main.h" +#include + +int main(int argc, char *argv[]) { + int ret = 0; + + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + + // Change the executing path to YourApp + chdir("YourApp"); + + // Special environment to prefer .pyo, and don't write bytecode if .py are found + // because the process will not have write attribute on the device. + putenv("PYTHONOPTIMIZE=2"); + putenv("PYTHONDONTWRITEBYTECODE=1"); + putenv("PYTHONNOUSERSITE=1"); + + // Kivy environment to prefer some implementation on ios platform + putenv("KIVY_BUILD=ios"); + putenv("KIVY_NO_CONFIG=1"); + putenv("KIVY_NO_FILELOG=1"); + putenv("KIVY_NO_CONSOLELOG=1"); + putenv("KIVY_WINDOW=sdl"); + putenv("KIVY_IMAGE=imageio"); + putenv("KIVY_AUDIO=sdl"); + + NSString * resourcePath = [[NSBundle mainBundle] resourcePath]; + NSLog(@"PythonHome is: %s", (char *)[resourcePath UTF8String]); + Py_SetPythonHome((char *)[resourcePath UTF8String]); + + NSLog(@"Initializing python"); + Py_Initialize(); + PySys_SetArgv(argc, argv); + + // If other modules are using thread, we need to initialize them before. + PyEval_InitThreads(); + + // Search and start main.py + const char * prog = [ + [[NSBundle mainBundle] pathForResource:@"YourApp/main" ofType:@"pyo"] cStringUsingEncoding: + NSUTF8StringEncoding]; + NSLog(@"Running main.pyo: %s", prog); + FILE* fd = fopen(prog, "r"); + if ( fd == NULL ) { + ret = 1; + NSLog(@"Unable to open main.pyo, abort."); + } else { + ret = PyRun_SimpleFileEx(fd, prog, 1); + if (ret != 0) + NSLog(@"Application quit abnormally!"); + } + + Py_Finalize(); + NSLog(@"Leaving"); + + [pool release]; + + // Look like the app still runn even when we leaved here. + exit(ret); + return ret; +} diff --git a/templates/template-Info.plist b/templates/template-Info.plist new file mode 100644 index 0000000..6266a81 --- /dev/null +++ b/templates/template-Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIconFiles + + icon.png + + CFBundleIcons + + CFBundlePrimaryIcon + + CFBundleIconFiles + + icon.png + + UIPrerenderedIcon + + + + CFBundleIdentifier + org.kivy.##APPID## + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.1 + CFBundleSignature + ???? + CFBundleVersion + 1.1 + LSRequiresIPhoneOS + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/templates/template.xcodeproj/project.pbxproj b/templates/template.xcodeproj/project.pbxproj new file mode 100755 index 0000000..da6ac0e --- /dev/null +++ b/templates/template.xcodeproj/project.pbxproj @@ -0,0 +1,373 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 010731C2137F20B800A8D3A0 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 010731C1137F20B800A8D3A0 /* AudioToolbox.framework */; }; + 010731C4137F20C300A8D3A0 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 010731C3137F20C300A8D3A0 /* QuartzCore.framework */; }; + 01532DAA137C099F0076F6BF /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 01532DA9137C099F0076F6BF /* icon.png */; }; + 01790B81137E5ED900E037D1 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01790B7A137E5ED900E037D1 /* OpenGLES.framework */; }; + 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; + 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; }; + 598E034D14F80187000D1362 /* libSDL_mixer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 598E034C14F80187000D1362 /* libSDL_mixer.a */; }; + 598E035414F80578000D1362 /* libogg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 598E035314F80578000D1362 /* libogg.a */; }; + 598E035A14F8177A000D1362 /* libvorbisidec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 598E035914F8177A000D1362 /* libvorbisidec.a */; }; + 59994D8D148D48E300863906 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 59994D8C148D48E300863906 /* ImageIO.framework */; }; + 59994D90148D686900863906 /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 59994D8F148D686900863906 /* libbz2.dylib */; }; + 59994D9E148E353000863906 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 59994D9D148E352F00863906 /* libz.dylib */; }; + 59994DAD148E558600863906 /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 59994DA8148E558600863906 /* libfreetype.a */; }; + 59994DAE148E558600863906 /* libkivy.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 59994DA9148E558600863906 /* libkivy.a */; }; + 59994DAF148E558600863906 /* libpython2.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 59994DAA148E558600863906 /* libpython2.7.a */; }; + 59994DB0148E558600863906 /* libSDL_ttf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 59994DAB148E558600863906 /* libSDL_ttf.a */; }; + 59994DB1148E558600863906 /* libSDL.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 59994DAC148E558600863906 /* libSDL.a */; }; + 59994DB3148E564400863906 /* lib in Resources */ = {isa = PBXBuildFile; fileRef = 59994DB2148E564400863906 /* lib */; }; + 59994E35148E815300863906 /* include in Resources */ = {isa = PBXBuildFile; fileRef = 59994E34148E815300863906 /* include */; }; + 59994E3B148E85C800863906 /* YourApp in Resources */ = {isa = PBXBuildFile; fileRef = 59994E3A148E85C800863906 /* YourApp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 010731C1137F20B800A8D3A0 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 010731C3137F20C300A8D3A0 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 01532DA9137C099F0076F6BF /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = ""; }; + 01790B7A137E5ED900E037D1 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 1D6058910D05DD3D006BFB54 /* ##APPNAME##.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ##APPNAME##.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 598E034C14F80187000D1362 /* libSDL_mixer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSDL_mixer.a; path = ../build/lib/libSDL_mixer.a; sourceTree = ""; }; + 598E035314F80578000D1362 /* libogg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libogg.a; path = ../build/lib/libogg.a; sourceTree = ""; }; + 598E035914F8177A000D1362 /* libvorbisidec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbisidec.a; path = ../build/lib/libvorbisidec.a; sourceTree = ""; }; + 59994D8C148D48E300863906 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; }; + 59994D8F148D686900863906 /* libbz2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libbz2.dylib; path = usr/lib/libbz2.dylib; sourceTree = SDKROOT; }; + 59994D9D148E352F00863906 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + 59994DA8148E558600863906 /* libfreetype.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfreetype.a; path = ../build/lib/libfreetype.a; sourceTree = ""; }; + 59994DA9148E558600863906 /* libkivy.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libkivy.a; path = ../build/lib/libkivy.a; sourceTree = ""; }; + 59994DAA148E558600863906 /* libpython2.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpython2.7.a; path = ../build/lib/libpython2.7.a; sourceTree = ""; }; + 59994DAB148E558600863906 /* libSDL_ttf.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSDL_ttf.a; path = ../build/lib/libSDL_ttf.a; sourceTree = ""; }; + 59994DAC148E558600863906 /* libSDL.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSDL.a; path = ../build/lib/libSDL.a; sourceTree = ""; }; + 59994DB2148E564400863906 /* lib */ = {isa = PBXFileReference; lastKnownFileType = folder; name = lib; path = ../build/python/lib; sourceTree = SOURCE_ROOT; }; + 59994E34148E815300863906 /* include */ = {isa = PBXFileReference; lastKnownFileType = folder; name = include; path = ../build/python/include; sourceTree = SOURCE_ROOT; }; + 59994E3A148E85C800863906 /* YourApp */ = {isa = PBXFileReference; lastKnownFileType = folder; path = YourApp; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* ##APPID##-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "##APPID##-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 598E035A14F8177A000D1362 /* libvorbisidec.a in Frameworks */, + 598E035414F80578000D1362 /* libogg.a in Frameworks */, + 598E034D14F80187000D1362 /* libSDL_mixer.a in Frameworks */, + 59994DAD148E558600863906 /* libfreetype.a in Frameworks */, + 59994DAE148E558600863906 /* libkivy.a in Frameworks */, + 59994DAF148E558600863906 /* libpython2.7.a in Frameworks */, + 59994DB0148E558600863906 /* libSDL_ttf.a in Frameworks */, + 59994DB1148E558600863906 /* libSDL.a in Frameworks */, + 59994D90148D686900863906 /* libbz2.dylib in Frameworks */, + 59994D9E148E353000863906 /* libz.dylib in Frameworks */, + 59994D8D148D48E300863906 /* ImageIO.framework in Frameworks */, + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, + 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */, + 01790B81137E5ED900E037D1 /* OpenGLES.framework in Frameworks */, + 010731C2137F20B800A8D3A0 /* AudioToolbox.framework in Frameworks */, + 010731C4137F20C300A8D3A0 /* QuartzCore.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Classes */ = { + isa = PBXGroup; + children = ( + ); + path = Classes; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 1D6058910D05DD3D006BFB54 /* ##APPNAME##.app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + isa = PBXGroup; + children = ( + 080E96DDFE201D6D7F000001 /* Classes */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = CustomTemplate; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 59994E34148E815300863906 /* include */, + 29B97316FDCFA39411CA2CEA /* main.m */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 59994DB2148E564400863906 /* lib */, + 59994E3A148E85C800863906 /* YourApp */, + 01532DA9137C099F0076F6BF /* icon.png */, + 8D1107310486CEB800E47090 /* ##APPID##-Info.plist */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 59994DA8148E558600863906 /* libfreetype.a */, + 59994DA9148E558600863906 /* libkivy.a */, + 59994DAA148E558600863906 /* libpython2.7.a */, + 59994DAB148E558600863906 /* libSDL_ttf.a */, + 598E035914F8177A000D1362 /* libvorbisidec.a */, + 598E035314F80578000D1362 /* libogg.a */, + 598E034C14F80187000D1362 /* libSDL_mixer.a */, + 59994DAC148E558600863906 /* libSDL.a */, + 59994D9D148E352F00863906 /* libz.dylib */, + 59994D8F148D686900863906 /* libbz2.dylib */, + 59994D8C148D48E300863906 /* ImageIO.framework */, + 010731C1137F20B800A8D3A0 /* AudioToolbox.framework */, + 010731C3137F20C300A8D3A0 /* QuartzCore.framework */, + 01790B7A137E5ED900E037D1 /* OpenGLES.framework */, + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, + 1D30AB110D05D00D00671497 /* Foundation.framework */, + 288765FC0DF74451002DB57D /* CoreGraphics.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1D6058900D05DD3D006BFB54 /* ##APPID## */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "##APPID##" */; + buildPhases = ( + 1D60588D0D05DD3D006BFB54 /* Resources */, + 1D60588E0D05DD3D006BFB54 /* Sources */, + 1D60588F0D05DD3D006BFB54 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ##APPID##; + productName = ##APPID##; + productReference = 1D6058910D05DD3D006BFB54 /* ##APPNAME##.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0420; + }; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "##APPID##" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1D6058900D05DD3D006BFB54 /* ##APPID## */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 1D60588D0D05DD3D006BFB54 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 01532DAA137C099F0076F6BF /* icon.png in Resources */, + 59994DB3148E564400863906 /* lib in Resources */, + 59994E35148E815300863906 /* include in Resources */, + 59994E3B148E85C800863906 /* YourApp in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1D60588E0D05DD3D006BFB54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D60589B0D05DD56006BFB54 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 1D6058940D05DD3E006BFB54 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ( + "\"$(PROJECT_DIR)/../build/include\"", + "\"$(PROJECT_DIR)/../build/python/include\"", + ); + INFOPLIST_FILE = "##APPID##-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(PROJECT_DIR)/../build/lib\"", + ); + OTHER_LDFLAGS = "-all_load"; + PRODUCT_NAME = ##APPNAME##; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 1D6058950D05DD3E006BFB54 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + COPY_PHASE_STRIP = NO; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ( + "\"$(PROJECT_DIR)/../build/include\"", + "\"$(PROJECT_DIR)/../build/python/include\"", + ); + INFOPLIST_FILE = "##APPID##-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(PROJECT_DIR)/../build/lib\"", + ); + OTHER_LDFLAGS = "-all_load"; + PRODUCT_NAME = ##APPNAME##; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + SKIP_INSTALL = NO; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + COPY_PHASE_STRIP = YES; + DEAD_CODE_STRIPPING = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ""; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + ONLY_ACTIVE_ARCH = YES; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + STRIP_INSTALLED_PRODUCT = YES; + STRIP_STYLE = all; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = 2; + USER_HEADER_SEARCH_PATHS = "/Users/dennda/dev/sdl-1.3/Xcode-iPhoneOS/SDL/build/Debug-iphoneos/usr/local/include/"; + VALID_ARCHS = armv7; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + COPY_PHASE_STRIP = YES; + DEAD_CODE_STRIPPING = NO; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + SDKROOT = iphoneos; + STRIP_INSTALLED_PRODUCT = YES; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = 2; + USER_HEADER_SEARCH_PATHS = ""; + VALID_ARCHS = armv7; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "##APPID##" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1D6058940D05DD3E006BFB54 /* Debug */, + 1D6058950D05DD3E006BFB54 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "##APPID##" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/templates/template.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/templates/template.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..abc43a5 --- /dev/null +++ b/templates/template.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/biglink b/tools/biglink similarity index 100% rename from biglink rename to tools/biglink diff --git a/build_all.sh b/tools/build_all.sh similarity index 100% rename from build_all.sh rename to tools/build_all.sh diff --git a/build_freetype.sh b/tools/build_freetype.sh similarity index 100% rename from build_freetype.sh rename to tools/build_freetype.sh diff --git a/build_kivy.sh b/tools/build_kivy.sh similarity index 100% rename from build_kivy.sh rename to tools/build_kivy.sh diff --git a/build_python.sh b/tools/build_python.sh similarity index 100% rename from build_python.sh rename to tools/build_python.sh diff --git a/build_sdl.sh b/tools/build_sdl.sh similarity index 100% rename from build_sdl.sh rename to tools/build_sdl.sh diff --git a/build_sdlmixer.sh b/tools/build_sdlmixer.sh similarity index 100% rename from build_sdlmixer.sh rename to tools/build_sdlmixer.sh diff --git a/build_sdlttf.sh b/tools/build_sdlttf.sh similarity index 100% rename from build_sdlttf.sh rename to tools/build_sdlttf.sh diff --git a/clean_python.sh b/tools/clean_python.sh similarity index 100% rename from clean_python.sh rename to tools/clean_python.sh diff --git a/tools/create-xcode-project.sh b/tools/create-xcode-project.sh new file mode 100755 index 0000000..8a5d0e9 --- /dev/null +++ b/tools/create-xcode-project.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +try () { + "$@" || exit -1 +} + +APPNAME=$1 +APPID=$(echo $APPNAME | tr '[A-Z]' '[a-z]') +TEMPLATESDIR=$(dirname $0)/templates/ +APPDIR=$(dirname $0)/app-$APPID +if [ "X$APPNAME" == "X" ]; then + echo $(basename $0) "" + exit 1 +fi + +echo "-> Create $APPDIR directory" +try mkdir $APPDIR + +echo "-> Copy templates" +try cp $TEMPLATESDIR/main.m $APPDIR/main.m +try cp $TEMPLATESDIR/icon.png $APPDIR/icon.png +try cp $TEMPLATESDIR/template-Info.plist $APPDIR/$APPID-Info.plist +try cp -a $TEMPLATESDIR/template.xcodeproj $APPDIR/$APPID.xcodeproj + +echo "-> Customize templates" +try find $APPDIR -type f -exec sed -i '' "s/##APPID##/$APPID/g" {} \; +try find $APPDIR -type f -exec sed -i '' "s/##APPNAME##/$APPNAME/g" {} \; + +echo "-> Done !" + +echo +echo "Your project is available at $APPDIR" +echo +echo "You can now type: open $APPDIR/$APPID.xcodeproj" +echo diff --git a/environment.sh b/tools/environment.sh similarity index 95% rename from environment.sh rename to tools/environment.sh index 5ab3010..b716dfc 100755 --- a/environment.sh +++ b/tools/environment.sh @@ -17,7 +17,7 @@ export SDLTTF_VERSION=2.0.10 export FT_VERSION=2.4.8 # where the build will be located -export KIVYIOSROOT="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +export KIVYIOSROOT="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )/../" && pwd )" export BUILDROOT="$KIVYIOSROOT/build" export CACHEROOT="$KIVYIOSROOT/.cache" diff --git a/liblink b/tools/liblink similarity index 100% rename from liblink rename to tools/liblink diff --git a/tools/populate-project.sh b/tools/populate-project.sh new file mode 100755 index 0000000..8f0cd86 --- /dev/null +++ b/tools/populate-project.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +try () { + "$@" || exit -1 +} + +APPNAME=$1 +APPID=$(echo $APPNAME | tr '[A-Z]' '[a-z]') +APPDIR=$(dirname $0)/app-$APPID +SRCDIR=$2 + +if [ "X$APPNAME" == "X" ]; then + echo $(basename $0) " " + exit 1 +fi + +if [ "X$SRCDIR" == "X" ]; then + echo $(basename $0) " " + exit 1 +fi + +echo "-> Copy $SRCDIR to $APPDIR/YourApp" +YOURAPPDIR=$APPDIR/YourApp + +echo "-> Remove any previous YourApp version" +rm -r $YOURAPPDIR + +echo "-> Copy the new source" +try cp -a $SRCDIR $YOURAPPDIR + +echo "-> Compile to pyo" +python -OO -m compileall $YOURAPPDIR + +echo "-> Remove unused files (pyc, py)" +find $YOURAPPDIR -iname '*.py' -exec rm {} \; +find $YOURAPPDIR -iname '*.pyc' -exec rm {} \; + + +echo "-> Source code of $APPNAME updated." + diff --git a/reduce_python.sh b/tools/reduce_python.sh similarity index 100% rename from reduce_python.sh rename to tools/reduce_python.sh