Skip to content

Commit dcb6734

Browse files
committed
Add support for the HXCPP_ANDROID_PLATFORM define
This also deprecates the PLATFORM_NUMBER define. Also removes notes about frameworks setting minSdkVersion as this was outdated and confusing.
1 parent 75108a5 commit dcb6734

File tree

4 files changed

+23
-23
lines changed

4 files changed

+23
-23
lines changed

docs/build_xml/Defines.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ Defines affecting target architecture.
6767
| *HXCPP_LINUX_ARM64* | Run on a linux ARM64 device |
6868
| *winrt* | Compile for windowsRt/windows UWP |
6969
| *android* | Compile for android |
70-
| *PLATFORM* | Specify the android platform for NDK compilation |
70+
| *HXCPP_ANDROID_PLATFORM* | Specify the android platform for NDK compilation |
7171
| *ANDROID_NDK_ROOT* | Specify the location of the android NDK toolchain |
7272
| *ANDROID_NDK_DIR* | Specify the search location for finding the android NDK toolchain |
7373
| *HXCPP_X86* | Compile android for x86 architecture |

toolchain/android-toolchain-clang.xml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
<xml>
2-
2+
3+
<section unless="HXCPP_ANDROID_PLATFORM" >
4+
<set name="HXCPP_ANDROID_PLATFORM" value="16" />
5+
<set name="HXCPP_ANDROID_PLATFORM" value="19" if="NDKV24+" />
6+
<!-- 64 bit builds fail unless using platform 21 -->
7+
<set name="HXCPP_ANDROID_PLATFORM" value="21" if="NDKV26+||HXCPP_X86_64||HXCPP_ARM64" />
8+
</section>
9+
310
<!-- Set architecture -->
411
<section if="HXCPP_X86">
512
<set name="ARCH" value="-x86" />
6-
<set name="PLATFORM_NUMBER" value="21" unless="PLATFORM_NUMBER" />
713
<set name="ABITRIPLE" value="i686-linux-android" />
814
</section>
915

1016
<section if="HXCPP_X86_64">
1117
<set name="ARCH" value="-x86_64" />
12-
<set name="PLATFORM_NUMBER" value="21" unless="PLATFORM_NUMBER" />
1318
<set name="ABITRIPLE" value="x86_64-linux-android" />
1419
</section>
1520

1621
<section if="HXCPP_ARMV7">
1722
<set name="ARCH" value="-v7" />
18-
<set name="PLATFORM_NUMBER" value="21" unless="PLATFORM_NUMBER" />
1923
<set name="ABITRIPLE" value="armv7a-linux-androideabi" />
2024
<set name="EXEPREFIX" value="arm-linux-androideabi" />
2125
</section>
2226

2327
<section if="HXCPP_ARM64">
2428
<set name="ARCH" value="-64"/>
25-
<set name="PLATFORM_NUMBER" value="21" unless="PLATFORM_NUMBER" />
2629
<set name="ABITRIPLE" value="aarch64-linux-android" />
2730
</section>
2831

2932
<error value="Please set one of the architectures, eg HXCPP_ARM64, HXCPP_X86, ..." unless="ABITRIPLE" />
3033

31-
<set name="PLATFORM" value="android-${PLATFORM_NUMBER}" />
32-
<set name="ANDROID_PLATFORM_DEFINE" value="HXCPP_ANDROID_PLATFORM=${PLATFORM_NUMBER}" />
33-
3434
<path name="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${ANDROID_HOST}/bin" />
3535

3636
<section unless="NDKV22+">
@@ -47,7 +47,7 @@
4747
<compiler id="android-gcc" exe="clang++">
4848

4949
<exe name="clang++" />
50-
<flag value="--target=${ABITRIPLE}${PLATFORM_NUMBER}" />
50+
<flag value="--target=${ABITRIPLE}${HXCPP_ANDROID_PLATFORM}" />
5151

5252
<!-- File Related -->
5353
<include name="toolchain/common-defines.xml" />
@@ -64,8 +64,8 @@
6464
<flag value="-DHXCPP_CLANG"/>
6565
<flag value="-DHX_ANDROID"/>
6666
<flag value="-DHXCPP_LOAD_DEBUG" if="HXCPP_LOAD_DEBUG"/>
67-
<flag value="-D${ANDROID_PLATFORM_DEFINE}"/>
68-
67+
<flag value="-DHXCPP_ANDROID_PLATFORM=${HXCPP_ANDROID_PLATFORM}" />
68+
6969
<!-- Options -->
7070
<cppflag value="-std=c++17" if="HXCPP_CPP17" />
7171
<flag value="-flto" if="HXCPP_OPTIMIZE_LINK" unless="debug"/>
@@ -90,7 +90,7 @@
9090

9191
<exe name="clang++" />
9292
<flag value ="-shared" />
93-
<flag value="--target=${ABITRIPLE}${PLATFORM_NUMBER}" />
93+
<flag value="--target=${ABITRIPLE}${HXCPP_ANDROID_PLATFORM}" />
9494

9595
<!-- Build time error, not run time -->
9696
<flag value="-Wl,--no-undefined" unless="HXCPP_ALLOW_UNDEFINED" />

toolchain/android-toolchain-gcc.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@
129129
<flag value="-finline-limit=10000"/>
130130
<flag value="-DANDROID=ANDROID"/>
131131
<flag value="-DHX_ANDROID"/>
132-
<flag value="-D${ANDROID_PLATFORM_DEFINE}"/>
132+
<flag value="-DHXCPP_ANDROID_PLATFORM=${HXCPP_ANDROID_PLATFORM}"/>
133133
<!-- todo <flag value="-Werror"/> -->
134134
<flag value="-Wa,--noexecstack"/>
135135
<flag value="-O2" unless="debug || HXCPP_OPTIMIZE_FOR_SIZE || HXCPP_OPTIMIZE_FOR_FAST"/>

tools/hxcpp/Setup.hx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -513,14 +513,14 @@ class Setup
513513
}
514514
catch(e:Dynamic) { }
515515

516-
if(defines.exists('NDKV20+')) {
517-
Log.v([
518-
"x86 Platform: 16",
519-
"arm Platform: 16",
520-
"x86_64 Platform: 21",
521-
"arm_64 Platform: 21",
522-
"Frameworks should set the minSdkVersion for each APK to these values."
523-
].join('\n'));
516+
if (defines.exists('HXCPP_ANDROID_PLATFORM')) {
517+
Log.info("", "\x1b[33;1mUsing Android NDK platform: " + defines.get("HXCPP_ANDROID_PLATFORM") + "\x1b[0m");
518+
}
519+
else if (defines.exists('NDKV20+')) {
520+
if (defines.exists("PLATFORM_NUMBER")) {
521+
Log.warn("The PLATFORM_NUMBER define is deprecated. Please use the HXCPP_ANDROID_PLATFORM define instead.");
522+
defines.set("HXCPP_ANDROID_PLATFORM", Std.string(defines.get("PLATFORM_NUMBER")));
523+
}
524524
}
525525
else {
526526
globallySetThePlatform(root, defines);
@@ -578,7 +578,7 @@ class Setup
578578
defines.set("PLATFORM", "android-" + best);
579579
androidPlatform = best;
580580
}
581-
defines.set("ANDROID_PLATFORM_DEFINE", "HXCPP_ANDROID_PLATFORM=" + androidPlatform);
581+
defines.set("HXCPP_ANDROID_PLATFORM", Std.string(androidPlatform));
582582
if (Log.verbose) Log.println("");
583583
}
584584

0 commit comments

Comments
 (0)