diff --git a/lime/tools/platforms/AIRPlatform.hx b/lime/tools/platforms/AIRPlatform.hx index 1faab061d..d986b58ab 100644 --- a/lime/tools/platforms/AIRPlatform.hx +++ b/lime/tools/platforms/AIRPlatform.hx @@ -199,6 +199,42 @@ class AIRPlatform extends FlashPlatform { var context = generateContext (); context.OUTPUT_DIR = targetDirectory; + var buildNumber = Std.string (context.APP_BUILD_NUMBER); + + if (buildNumber.length <= 3) { + + context.APP_BUILD_NUMBER_SPLIT = buildNumber; + + } else { + + var major = null; + + var patch = buildNumber.substr (-3); + buildNumber = buildNumber.substr (0, -3); + + var minor = buildNumber.substr (-Std.int (Math.min (buildNumber.length, 3))); + buildNumber = buildNumber.substr (0, -minor.length); + + if (buildNumber.length > 0) { + + major = buildNumber.substr (-Std.int (Math.min (buildNumber.length, 3))); + buildNumber = buildNumber.substr (0, -major.length); + + } + + var buildNumberSplit = minor + "." + patch; + if (major != null) buildNumberSplit = major + "." + buildNumberSplit; + + context.APP_BUILD_NUMBER_SPLIT = buildNumberSplit; + + if (buildNumber.length > 0) { + + LogHelper.warn ("Application build number " + buildNumber + buildNumberSplit + " exceeds 9 digits"); + + } + + } + var iconSizes = [ 16, 32, 48, 128 ]; var icons = project.icons; iconData = []; diff --git a/templates/air/template/application.xml b/templates/air/template/application.xml index 8079f2e97..82558a6b6 100644 --- a/templates/air/template/application.xml +++ b/templates/air/template/application.xml @@ -1,7 +1,8 @@ ::APP_PACKAGE:: - ::APP_VERSION:: + ::APP_VERSION:: + ::APP_BUILD_NUMBER_SPLIT:: ::APP_FILE:: ::APP_TITLE:: ::APP_DESCRIPTION:: diff --git a/tools/CommandLineTools.hx b/tools/CommandLineTools.hx index dcfe4eab5..09ec728cd 100644 --- a/tools/CommandLineTools.hx +++ b/tools/CommandLineTools.hx @@ -2277,6 +2277,7 @@ class CommandLineTools { if (field == "window-allow-high-dpi") property = "allowHighDPI"; if (field == "window-color-depth") property = "colorDepth"; + if (field == "meta-build-number") property = "buildNumber"; var fieldReference = Reflect.field (overrides, fieldName); @@ -2300,6 +2301,11 @@ class CommandLineTools { Reflect.setField (fieldReference, property, argValue); + } else { + + // TODO: Only certain properties? + Reflect.setField (fieldReference, property, argValue); + } }