Issue #27442: Expose the Android API level in sysconfig.get_config_vars()

as 'ANDROID_API_LEVEL'.
This commit is contained in:
Xavier de Gaye 2016-07-09 11:05:42 +02:00
parent 2247e5c48c
commit 95750b1ca5
4 changed files with 51 additions and 0 deletions

View file

@ -132,6 +132,9 @@ C API
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.

26
configure vendored
View file

@ -5648,6 +5648,32 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
{ $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*)

View file

@ -899,6 +899,25 @@ AC_SUBST(NO_AS_NEEDED)
# 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*)

View file

@ -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