From b6acad449d500ab9c7c84d56f553a695e6d90f7e Mon Sep 17 00:00:00 2001 From: Steven Date: Thu, 7 Apr 2016 18:50:59 -0700 Subject: [PATCH] Flowing user defines into the HXProject --- lime/project/HXProject.hx | 30 ++++++++++++++++++++++-------- tools/CommandLineTools.hx | 1 + 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/lime/project/HXProject.hx b/lime/project/HXProject.hx index dc107f1f7..e944fc3b8 100644 --- a/lime/project/HXProject.hx +++ b/lime/project/HXProject.hx @@ -60,7 +60,7 @@ class HXProject { public var targetFlags:Map ; public var targetHandlers:Map ; public var templateContext (get_templateContext, null):Dynamic; - public var templatePaths:Array ; + public var templatePaths:Array; @:isVar public var window (get, set):WindowData; public var windows:Array ; @@ -71,8 +71,9 @@ class HXProject { public static var _command:String; public static var _debug:Bool; public static var _target:Platform; - public static var _targetFlags:Map ; - public static var _templatePaths:Array ; + public static var _targetFlags:Map; + public static var _templatePaths:Array; + public static var _userDefines:Map; private static var initialized:Bool; @@ -92,6 +93,7 @@ class HXProject { HXProject._debug = (args[3] == "true"); HXProject._targetFlags = Unserializer.run (args[4]); HXProject._templatePaths = Unserializer.run (args[5]); + if (args.length > 6) HXProject._userDefines = Unserializer.run (args[6]); initialize (); @@ -102,7 +104,7 @@ class HXProject { serializer.useCache = true; serializer.serialize (instance); - File.saveContent (args[6], serializer.toString ()); + File.saveContent (args[7], serializer.toString ()); } @@ -210,7 +212,17 @@ class HXProject { window = ObjectHelper.copyFields (defaultWindow, {}); windows = [ window ]; assets = new Array (); - defines = new Map (); + + if (_userDefines != null) { + + defines = StringMapHelper.copy (_userDefines); + + } else { + + defines = new Map (); + + } + dependencies = new Array (); environment = Sys.environment (); haxedefs = new Map (); @@ -228,6 +240,8 @@ class HXProject { splashScreens = new Array (); targetHandlers = new Map (); + + } @@ -413,8 +427,8 @@ class HXProject { #if lime - public static function fromFile (projectFile:String, userDefines:Map = null, includePaths:Array = null):HXProject { - + public static function fromFile (projectFile:String, userDefines:Map = null, includePaths:Array = null):HXProject { + var project:HXProject = null; var path = FileSystem.fullPath (Path.withoutDirectory (projectFile)); @@ -429,7 +443,7 @@ class HXProject { FileHelper.copyFile (path, classFile); ProcessHelper.runCommand ("", "haxe", [ name, "-main", "lime.project.HXProject", "-cp", tempDirectory, "-neko", nekoOutput, "-cp", PathHelper.combine (PathHelper.getHaxelib (new Haxelib ("lime")), "tools"), "-lib", "lime", "-D", "lime-curl", "-D", "native", "-D", "lime-native", "-D", "lime-cffi" ]); - ProcessHelper.runCommand ("", "neko", [ FileSystem.fullPath (nekoOutput), HXProject._command, name, Std.string (HXProject._target), Std.string (HXProject._debug), Serializer.run (HXProject._targetFlags), Serializer.run (HXProject._templatePaths), temporaryFile ]); + ProcessHelper.runCommand ("", "neko", [ FileSystem.fullPath (nekoOutput), HXProject._command, name, Std.string (HXProject._target), Std.string (HXProject._debug), Serializer.run (HXProject._targetFlags), Serializer.run (HXProject._templatePaths), Serializer.run (HXProject._userDefines), temporaryFile ]); try { diff --git a/tools/CommandLineTools.hx b/tools/CommandLineTools.hx index 94f8bd9fc..330b7cbac 100644 --- a/tools/CommandLineTools.hx +++ b/tools/CommandLineTools.hx @@ -1297,6 +1297,7 @@ class CommandLineTools { HXProject._debug = debug; HXProject._target = target; HXProject._targetFlags = targetFlags; + HXProject._userDefines = userDefines; try { Sys.setCwd (Path.directory (projectFile)); } catch (e:Dynamic) {}