[PATCH] D91664: Add a less ambiguous macro for Android version.
Dan Albert via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 17 15:24:52 PST 2020
danalbert created this revision.
danalbert added reviewers: enh, srhines, jiyong.
Herald added a project: clang.
danalbert requested review of this revision.
Android has a handful of API levels relevant to developers described
here: https://developer.android.com/studio/build#module-level.
`__ANDROID_API__` is too vague and confuses a lot of people. Introduce
a new macro name that is explicit about which one it represents. Keep
the old name around because code has been using it for a decade.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D91664
Files:
clang/lib/Basic/Targets/OSTargets.h
clang/test/Preprocessor/init.c
Index: clang/test/Preprocessor/init.c
===================================================================
--- clang/test/Preprocessor/init.c
+++ clang/test/Preprocessor/init.c
@@ -1580,6 +1580,7 @@
//
// RUN: %clang_cc1 -triple arm-linux-androideabi -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix ANDROID %s
// ANDROID-NOT:#define __ANDROID_API__
+// ANDROID-NOT:#define __ANDROID_MIN_SDK_VERSION__
// ANDROID:#define __ANDROID__ 1
// ANDROID-NOT:#define __gnu_linux__
//
@@ -1590,7 +1591,8 @@
// X86_64-ANDROID-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 16UL
//
// RUN: %clang_cc1 -triple arm-linux-androideabi20 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix ANDROID20 %s
-// ANDROID20:#define __ANDROID_API__ 20
+// ANDROID20:#define __ANDROID_API__ __ANDROID_MIN_SDK_VERSION__
+// ANDROID20:#define __ANDROID_MIN_SDK_VERSION__ 20
// ANDROID20:#define __ANDROID__ 1
// ANDROID-NOT:#define __gnu_linux__
//
Index: clang/lib/Basic/Targets/OSTargets.h
===================================================================
--- clang/lib/Basic/Targets/OSTargets.h
+++ clang/lib/Basic/Targets/OSTargets.h
@@ -383,8 +383,12 @@
Triple.getEnvironmentVersion(Maj, Min, Rev);
this->PlatformName = "android";
this->PlatformMinVersion = VersionTuple(Maj, Min, Rev);
- if (Maj)
- Builder.defineMacro("__ANDROID_API__", Twine(Maj));
+ if (Maj) {
+ Builder.defineMacro("__ANDROID_MIN_SDK_VERSION__", Twine(Maj));
+ // This historical but ambiguous name for the minSdkVersion macro. Keep
+ // defined for compatibility.
+ Builder.defineMacro("__ANDROID_API__", "__ANDROID_MIN_SDK_VERSION__");
+ }
} else {
Builder.defineMacro("__gnu_linux__");
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D91664.305912.patch
Type: text/x-patch
Size: 1766 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20201117/977060c2/attachment-0001.bin>
More information about the cfe-commits
mailing list