[Python-checkins] cpython: Issue #27442: Expose the Android API level in sysconfig.get_config_vars()

xavier.degaye python-checkins at python.org
Sat Jul 9 05:06:36 EDT 2016


https://hg.python.org/cpython/rev/46567fda0b29
changeset:   102292:46567fda0b29
user:        Xavier de Gaye <xdegaye at users.sourceforge.net>
date:        Sat Jul 09 11:05:42 2016 +0200
summary:
  Issue #27442: Expose the Android API level in sysconfig.get_config_vars()
as 'ANDROID_API_LEVEL'.

files:
  Misc/NEWS     |   3 +++
  configure     |  26 ++++++++++++++++++++++++++
  configure.ac  |  19 +++++++++++++++++++
  pyconfig.h.in |   3 +++
  4 files changed, 51 insertions(+), 0 deletions(-)


diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -132,6 +132,9 @@
 Build
 -----
 
+- Issue #27442: Expose the Android API level that python was built against, in
+  sysconfig.get_config_vars() as 'ANDROID_API_LEVEL'.
+
 - Issue #27434: The interpreter that runs the cross-build, found in PATH, must
   now be of the same feature version (e.g. 3.6) as the source being built.
 
diff --git a/configure b/configure
--- a/configure
+++ b/configure
@@ -5648,6 +5648,32 @@
 
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the Android API level" >&5
+$as_echo_n "checking for the Android API level... " >&6; }
+cat >> conftest.c <<EOF
+#ifdef __ANDROID__
+#include <android/api-level.h>
+__ANDROID_API__
+#else
+#error not Android
+#endif
+EOF
+
+if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then
+  ANDROID_API_LEVEL=`grep -v '^#' conftest.out | grep -v '^ *$'`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ANDROID_API_LEVEL" >&5
+$as_echo "$ANDROID_API_LEVEL" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define ANDROID_API_LEVEL $ANDROID_API_LEVEL
+_ACEOF
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not Android" >&5
+$as_echo "not Android" >&6; }
+fi
+rm -f conftest.c conftest.out
+
 # Check for unsupported systems
 case $ac_sys_system/$ac_sys_release in
 atheos*|Linux*/1*)
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -899,6 +899,25 @@
 # checks for UNIX variants that set C preprocessor variables
 AC_USE_SYSTEM_EXTENSIONS
 
+AC_MSG_CHECKING([for the Android API level])
+cat >> conftest.c <<EOF
+#ifdef __ANDROID__
+#include <android/api-level.h>
+__ANDROID_API__
+#else
+#error not Android
+#endif
+EOF
+
+if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then
+  ANDROID_API_LEVEL=`grep -v '^#' conftest.out | grep -v '^ *$'`
+  AC_MSG_RESULT([$ANDROID_API_LEVEL])
+  AC_DEFINE_UNQUOTED(ANDROID_API_LEVEL, $ANDROID_API_LEVEL, [The Android API level.])
+else
+  AC_MSG_RESULT([not Android])
+fi
+rm -f conftest.c conftest.out
+
 # Check for unsupported systems
 case $ac_sys_system/$ac_sys_release in
 atheos*|Linux*/1*)
diff --git a/pyconfig.h.in b/pyconfig.h.in
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -12,6 +12,9 @@
    support for AIX C++ shared extension modules. */
 #undef AIX_GENUINE_CPLUSPLUS
 
+/* The Android API level. */
+#undef ANDROID_API_LEVEL
+
 /* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM
    mixed-endian order (byte order 45670123) */
 #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list