Fix iOS linker flags

This commit is contained in:
Joshua Granick
2014-10-13 05:07:57 -07:00
parent ed69b1234c
commit 8bb48383b1
3 changed files with 74 additions and 2 deletions

View File

@@ -118,7 +118,7 @@ class IOSPlatform extends PlatformTarget {
var name = Path.withoutDirectory (Path.withoutExtension (dependency.path));
// TODO: enable again
project.config.push ("ios.linker-flags", "-force_load $SRCROOT/$PRODUCT_NAME/lib/$ARCHS/" + Path.withoutDirectory (dependency.path));
//project.config.ios.linkerFlags.push ("-force_load $SRCROOT/$PRODUCT_NAME/lib/$ARCHS/" + Path.withoutDirectory (dependency.path));
if (StringTools.startsWith (name, "lib")) {

View File

@@ -384,7 +384,7 @@ abstract ConfigData(Dynamic) to Dynamic from Dynamic {
if (!hasChildren && !hasAttributes) {
parseValue (child, bucket);
parseValue (child, childBucket);
}
@@ -405,6 +405,60 @@ abstract ConfigData(Dynamic) to Dynamic from Dynamic {
}
public function push (id:String, value:Dynamic):Void {
var tree = id.split ('.');
if (tree.length <= 1) {
if (!Reflect.hasField (this, id + "___array")) {
Reflect.setField (this, id + "___array", Reflect.hasField (this, id) ? [ ObjectHelper.deepCopy (Reflect.field (this, id)) ] : []);
}
var array:Array<Dynamic> = Reflect.field (this, id + "___array");
array.push (value);
return;
}
var current = this;
var field = tree.pop ();
for (leaf in tree) {
if (!Reflect.hasField (current, leaf)) {
Reflect.setField (current, leaf, {});
current = Reflect.field (current, leaf);
} else {
current = Reflect.field (current, leaf);
if (current == null) {
return;
}
}
}
if (!Reflect.hasField (current, field + "___array")) {
Reflect.setField (current, field + "___array", Reflect.hasField (current, field) ? [ ObjectHelper.deepCopy (Reflect.field (current, field)) ] : []);
}
var array:Array<Dynamic> = Reflect.field (current, field + "___array");
array.push (value);
}
public function set (id:String, value:Dynamic):Void {
var tree = id.split ('.');
@@ -412,6 +466,7 @@ abstract ConfigData(Dynamic) to Dynamic from Dynamic {
if (tree.length <= 1) {
Reflect.setField (this, id, value);
return;
}

View File

@@ -1365,10 +1365,26 @@ class ProjectXMLParser extends HXProject {
case "extension":
var extensions = config.getArrayString ("android.extensions");
if (extensions == null || extensions.indexOf (value) == -1) {
config.push ("android.extensions", value);
}
//ArrayHelper.addUnique (config.android.extensions, value);
case "permission":
var permissions = config.getArrayString ("android.permissions");
if (permissions == null || permissions.indexOf (value) == -1) {
config.push ("android.permissions", value);
}
//ArrayHelper.addUnique (config.android.permissions, value);
default:
@@ -1469,6 +1485,7 @@ class ProjectXMLParser extends HXProject {
if (element.has.resolve ("linker-flags")) {
config.push ("ios.linker-flags", substitute (element.att.resolve ("linker-flags")));
//config.ios.linkerFlags.push (substitute (element.att.resolve ("linker-flags")));
}