X-Git-Url: http://nitlanguage.org diff --git a/src/platform/xcode_templates.nit b/src/platform/xcode_templates.nit index d1d8532..62768a2 100644 --- a/src/platform/xcode_templates.nit +++ b/src/platform/xcode_templates.nit @@ -85,6 +85,9 @@ class PbxFile # Path to `self` var path: String + # Compiler flags for this source file + var cflags: String = "" is writable + # UUID for build elements private var build_uuid: String = sys.pbx_uuid_generator.next_uuid is lazy @@ -104,15 +107,22 @@ class PbxFile end # PBX description of this file - private fun description: Writable do return """ + private fun description: Writable + do + var extra = "" + var cflags = cflags + if not cflags.is_empty then extra = "\nsettings = \{COMPILER_FLAGS = \"{cflags}\"; \};" + + return """ {{{ref_uuid}}} /* {{{doc}}} */ = { isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = {{{file_type}}}; - path = {{{path}}}; - sourceTree = ""; + path = '{{{path}}}'; + sourceTree = "";{{{extra}}} }; """ + end private fun add_to_project(project: PbxprojectTemplate) do @@ -139,6 +149,9 @@ class PbxprojectTemplate # Name of the project var name: String + # OTHER_CFLAGS + var cflags = "" is writable + # All body/implementation source files to be compiled private var source_files = new Array[PbxFile] @@ -174,18 +187,10 @@ class PbxprojectTemplate """ add """ + 0F4688411FDF8748004F34D4 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 0F4688401FDF8748004F34D4 /* assets */; }; + 0FDD07A21C6F8E0E006FF70E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0FDD07A11C6F8E0E006FF70E /* LaunchScreen.storyboard */; }; /* End PBXBuildFile section */ -/* Begin PBXContainerItemProxy section */ - AF9F83EA1A5F0D21004B62C0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = AF9F83C41A5F0D21004B62C0 /* Project object */; - proxyType = 1; - remoteGlobalIDString = AF9F83CB1A5F0D21004B62C0; - remoteInfo = {{{name}}}; - }; -/* End PBXContainerItemProxy section */ - /* Begin PBXFileReference section */ /* Static generated files */ AF9F83CC1A5F0D21004B62C0 /* {{{name}}}.app */ = { @@ -228,6 +233,8 @@ class PbxprojectTemplate for file in files do add file.description add """ + 0F4688401FDF8748004F34D4 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = {{{name}}}/assets; sourceTree = SOURCE_ROOT; }; + 0FDD07A11C6F8E0E006FF70E /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -246,6 +253,7 @@ class PbxprojectTemplate children = ( AF9F83CE1A5F0D21004B62C0 /* {{{name}}} */, AF9F83CD1A5F0D21004B62C0 /* Products */, + 0FDD07A11C6F8E0E006FF70E /* LaunchScreen.storyboard */, ); sourceTree = ""; }; @@ -260,6 +268,7 @@ class PbxprojectTemplate AF9F83CE1A5F0D21004B62C0 /* {{{name}}} */ = { isa = PBXGroup; children = ( + 0F4688401FDF8748004F34D4 /* assets */, """ # Reference all known files for file in files do add """ @@ -271,15 +280,6 @@ class PbxprojectTemplate path = {{{name}}}; sourceTree = ""; }; - AF9F83CF1A5F0D21004B62C0 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - AF9F83D01A5F0D21004B62C0 /* Info.plist */, - AF9F83D11A5F0D21004B62C0 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -343,6 +343,8 @@ class PbxprojectTemplate """ add """ + 0FDD07A21C6F8E0E006FF70E /* LaunchScreen.storyboard in Resources */, + 0F4688411FDF8748004F34D4 /* assets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -364,25 +366,6 @@ class PbxprojectTemplate }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXVariantGroup section */ - AF9F83DD1A5F0D21004B62C0 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - AF9F83DE1A5F0D21004B62C0 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - AF9F83E21A5F0D21004B62C0 /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - AF9F83E31A5F0D21004B62C0 /* Base */, - ); - name = LaunchScreen.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - /* Begin XCBuildConfiguration section */ AF9F83F11A5F0D21004B62C0 /* Debug */ = { isa = XCBuildConfiguration; @@ -448,6 +431,7 @@ class PbxprojectTemplate ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = {{{name}}}/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_CFLAGS = "{{{cflags.escape_to_c}}}"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -458,6 +442,7 @@ class PbxprojectTemplate ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = {{{name}}}/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_CFLAGS = "{{{cflags.escape_to_c}}}"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -528,7 +513,7 @@ class PlistTemplate CFBundleShortVersionString {{{short_version}}} CFBundleSignature - \\?\\?\\?\\? + ???? CFBundleVersion {{{bundle_version}}} LSRequiresIPhoneOS @@ -551,6 +536,9 @@ class PlistTemplate UIInterfaceOrientationLandscapeRight + UILaunchStoryboardName + LaunchScreen + NSAppTransportSecurity NSAllowsArbitraryLoads @@ -560,3 +548,72 @@ class PlistTemplate """ end end + +# Template for the loading screen to generate `LaunchScreen.storyboard` +class LaunchScreenStoryboardTemplate + super Template + + # Large text to show in the center of the loading screen + var title = "" is writable + + # Text to show at the bottom of the loading screen + var subtitle = "" is writable + + # TODO make this more customizable by moving the subviews block as an attribute + # or by allowing to pass a custom file from the ` res/` folder. + + redef fun rendering + do + add """ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +""" + end +end