From 36e18ef270652ffe387c7263343e05cc0282e730 Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Mon, 27 Nov 2017 15:29:27 -0800 Subject: [PATCH] Update 'create project' and iOS build to use variable substitution in directories/file names --- lime/tools/platforms/IOSPlatform.hx | 33 ++++++++++++------- .../{{app.file}}.xcodeproj}/project.pbxproj | 0 .../template/{{app.file}}}/Classes/Main.mm | 0 .../AppIcon.appiconset/Contents.json | 0 .../LaunchImage.launchimage/Contents.json | 0 .../template/{{app.file}}}/haxe/Build.hxml | 0 .../template/{{app.file}}}/haxe/makefile | 0 .../{{app.file}}-Entitlements.plist} | 0 .../{{app.file}}/{{app.file}}-Info.plist} | 0 .../{{app.file}}/{{app.file}}-Prefix.pch} | 0 .../{Project.hxproj => {{app.file}}.hxproj} | 0 tools/utils/CreateTemplate.hx | 8 ++++- 12 files changed, 28 insertions(+), 13 deletions(-) rename templates/{iphone/PROJ.xcodeproj => ios/template/{{app.file}}.xcodeproj}/project.pbxproj (100%) rename templates/{iphone/PROJ => ios/template/{{app.file}}}/Classes/Main.mm (100%) rename templates/{iphone/PROJ => ios/template/{{app.file}}}/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename templates/{iphone/PROJ => ios/template/{{app.file}}}/Images.xcassets/LaunchImage.launchimage/Contents.json (100%) rename templates/{iphone/PROJ => ios/template/{{app.file}}}/haxe/Build.hxml (100%) rename templates/{iphone/PROJ => ios/template/{{app.file}}}/haxe/makefile (100%) rename templates/{iphone/PROJ/PROJ-Entitlements.plist => ios/template/{{app.file}}/{{app.file}}-Entitlements.plist} (100%) rename templates/{iphone/PROJ/PROJ-Info.plist => ios/template/{{app.file}}/{{app.file}}-Info.plist} (100%) rename templates/{iphone/PROJ/PROJ-Prefix.pch => ios/template/{{app.file}}/{{app.file}}-Prefix.pch} (100%) rename templates/project/{Project.hxproj => {{app.file}}.hxproj} (100%) diff --git a/lime/tools/platforms/IOSPlatform.hx b/lime/tools/platforms/IOSPlatform.hx index 90c35ca0a..c4c81a27e 100644 --- a/lime/tools/platforms/IOSPlatform.hx +++ b/lime/tools/platforms/IOSPlatform.hx @@ -87,7 +87,8 @@ class IOSPlatform extends PlatformTarget { public override function display ():Void { - var hxml = PathHelper.findTemplate (project.templatePaths, "iphone/PROJ/haxe/Build.hxml"); + var hxml = PathHelper.findTemplate (project.templatePaths, "iphone/PROJ/haxe/Build.hxml", false); + if (hxml == null) hxml = PathHelper.findTemplate (project.templatePaths, "iphone/template/{{app.file}}/Build.hxml", true); var template = new Template (File.getContent (hxml)); project = project.clone (); @@ -350,7 +351,8 @@ class IOSPlatform extends PlatformTarget { } - context.HXML_PATH = PathHelper.findTemplate (project.templatePaths, "iphone/PROJ/haxe/Build.hxml"); + context.HXML_PATH = PathHelper.findTemplate (project.templatePaths, "iphone/PROJ/haxe/Build.hxml", false); + if (context.HXML_PATH == null) context.HXML_PATH = PathHelper.findTemplate (project.templatePaths, "iphone/template/{{app.file}}/haxe/Build.hxml"); context.PRERENDERED_ICON = project.config.getBool ("ios.prerenderedIcon", false); var allowInsecureHTTP = project.config.getString ("ios.allow-insecure-http", "*"); @@ -580,17 +582,24 @@ class IOSPlatform extends PlatformTarget { PathHelper.mkdir (projectDirectory + "/resources"); PathHelper.mkdir (projectDirectory + "/haxe/build"); - FileHelper.recursiveCopyTemplate (project.templatePaths, "iphone/resources", projectDirectory + "/resources", context, true, false); - FileHelper.recursiveCopyTemplate (project.templatePaths, "iphone/PROJ/haxe", projectDirectory + "/haxe", context); - FileHelper.recursiveCopyTemplate (project.templatePaths, "haxe", projectDirectory + "/haxe", context); - FileHelper.recursiveCopyTemplate (project.templatePaths, "iphone/PROJ/Classes", projectDirectory + "/Classes", context); - FileHelper.recursiveCopyTemplate (project.templatePaths, "iphone/PROJ/Images.xcassets", projectDirectory + "/Images.xcassets", context); - FileHelper.copyFileTemplate (project.templatePaths, "iphone/PROJ/PROJ-Entitlements.plist", projectDirectory + "/" + project.app.file + "-Entitlements.plist", context); - FileHelper.copyFileTemplate (project.templatePaths, "iphone/PROJ/PROJ-Info.plist", projectDirectory + "/" + project.app.file + "-Info.plist", context); - FileHelper.copyFileTemplate (project.templatePaths, "iphone/PROJ/PROJ-Prefix.pch", projectDirectory + "/" + project.app.file + "-Prefix.pch", context); - FileHelper.recursiveCopyTemplate (project.templatePaths, "iphone/PROJ.xcodeproj", targetDirectory + "/" + project.app.file + ".xcodeproj", context); + // Long deprecated template path - //SWFHelper.generateSWFClasses (project, projectDirectory + "/haxe"); + FileHelper.recursiveSmartCopyTemplate (project, "iphone/resources", projectDirectory + "/resources", context, true, false); + + // New template path + + FileHelper.recursiveSmartCopyTemplate (project, "ios/template", targetDirectory, context); + + // Recently deprecated template paths + + FileHelper.recursiveSmartCopyTemplate (project, "iphone/PROJ/haxe", projectDirectory + "/haxe", context, true, false); + FileHelper.recursiveSmartCopyTemplate (project, "haxe", projectDirectory + "/haxe", context, true, false); + FileHelper.recursiveSmartCopyTemplate (project, "iphone/PROJ/Classes", projectDirectory + "/Classes", context, true, false); + FileHelper.recursiveSmartCopyTemplate (project, "iphone/PROJ/Images.xcassets", projectDirectory + "/Images.xcassets", context, true, false); + FileHelper.copyFileTemplate (project.templatePaths, "iphone/PROJ/PROJ-Entitlements.plist", projectDirectory + "/" + project.app.file + "-Entitlements.plist", context, true, false); + FileHelper.copyFileTemplate (project.templatePaths, "iphone/PROJ/PROJ-Info.plist", projectDirectory + "/" + project.app.file + "-Info.plist", context, true, false); + FileHelper.copyFileTemplate (project.templatePaths, "iphone/PROJ/PROJ-Prefix.pch", projectDirectory + "/" + project.app.file + "-Prefix.pch", context, true, false); + FileHelper.recursiveSmartCopyTemplate (project, "iphone/PROJ.xcodeproj", targetDirectory + "/" + project.app.file + ".xcodeproj", context, true, false); PathHelper.mkdir (projectDirectory + "/lib"); diff --git a/templates/iphone/PROJ.xcodeproj/project.pbxproj b/templates/ios/template/{{app.file}}.xcodeproj/project.pbxproj similarity index 100% rename from templates/iphone/PROJ.xcodeproj/project.pbxproj rename to templates/ios/template/{{app.file}}.xcodeproj/project.pbxproj diff --git a/templates/iphone/PROJ/Classes/Main.mm b/templates/ios/template/{{app.file}}/Classes/Main.mm similarity index 100% rename from templates/iphone/PROJ/Classes/Main.mm rename to templates/ios/template/{{app.file}}/Classes/Main.mm diff --git a/templates/iphone/PROJ/Images.xcassets/AppIcon.appiconset/Contents.json b/templates/ios/template/{{app.file}}/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from templates/iphone/PROJ/Images.xcassets/AppIcon.appiconset/Contents.json rename to templates/ios/template/{{app.file}}/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/templates/iphone/PROJ/Images.xcassets/LaunchImage.launchimage/Contents.json b/templates/ios/template/{{app.file}}/Images.xcassets/LaunchImage.launchimage/Contents.json similarity index 100% rename from templates/iphone/PROJ/Images.xcassets/LaunchImage.launchimage/Contents.json rename to templates/ios/template/{{app.file}}/Images.xcassets/LaunchImage.launchimage/Contents.json diff --git a/templates/iphone/PROJ/haxe/Build.hxml b/templates/ios/template/{{app.file}}/haxe/Build.hxml similarity index 100% rename from templates/iphone/PROJ/haxe/Build.hxml rename to templates/ios/template/{{app.file}}/haxe/Build.hxml diff --git a/templates/iphone/PROJ/haxe/makefile b/templates/ios/template/{{app.file}}/haxe/makefile similarity index 100% rename from templates/iphone/PROJ/haxe/makefile rename to templates/ios/template/{{app.file}}/haxe/makefile diff --git a/templates/iphone/PROJ/PROJ-Entitlements.plist b/templates/ios/template/{{app.file}}/{{app.file}}-Entitlements.plist similarity index 100% rename from templates/iphone/PROJ/PROJ-Entitlements.plist rename to templates/ios/template/{{app.file}}/{{app.file}}-Entitlements.plist diff --git a/templates/iphone/PROJ/PROJ-Info.plist b/templates/ios/template/{{app.file}}/{{app.file}}-Info.plist similarity index 100% rename from templates/iphone/PROJ/PROJ-Info.plist rename to templates/ios/template/{{app.file}}/{{app.file}}-Info.plist diff --git a/templates/iphone/PROJ/PROJ-Prefix.pch b/templates/ios/template/{{app.file}}/{{app.file}}-Prefix.pch similarity index 100% rename from templates/iphone/PROJ/PROJ-Prefix.pch rename to templates/ios/template/{{app.file}}/{{app.file}}-Prefix.pch diff --git a/templates/project/Project.hxproj b/templates/project/{{app.file}}.hxproj similarity index 100% rename from templates/project/Project.hxproj rename to templates/project/{{app.file}}.hxproj diff --git a/tools/utils/CreateTemplate.hx b/tools/utils/CreateTemplate.hx index cedca046a..f375e1eec 100644 --- a/tools/utils/CreateTemplate.hx +++ b/tools/utils/CreateTemplate.hx @@ -240,6 +240,12 @@ class CreateTemplate { } + project.meta.title = title; + project.meta.packageName = packageName; + project.meta.version = version; + project.meta.company = company; + project.app.file = file; + context.title = title; context.packageName = packageName; context.version = version; @@ -279,7 +285,7 @@ class CreateTemplate { }*/ PathHelper.mkdir (folder); - FileHelper.recursiveCopyTemplate (project.templatePaths, "project", folder, context); + FileHelper.recursiveSmartCopyTemplate (project, "project", folder, context); try {