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 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 - 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. 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 # Check for unsupported systems
case $ac_sys_system/$ac_sys_release in case $ac_sys_system/$ac_sys_release in
atheos*|Linux*/1*) atheos*|Linux*/1*)

View File

@ -899,6 +899,25 @@ AC_SUBST(NO_AS_NEEDED)
# checks for UNIX variants that set C preprocessor variables # checks for UNIX variants that set C preprocessor variables
AC_USE_SYSTEM_EXTENSIONS 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 # Check for unsupported systems
case $ac_sys_system/$ac_sys_release in case $ac_sys_system/$ac_sys_release in
atheos*|Linux*/1*) atheos*|Linux*/1*)

View File

@ -12,6 +12,9 @@
support for AIX C++ shared extension modules. */ support for AIX C++ shared extension modules. */
#undef AIX_GENUINE_CPLUSPLUS #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 /* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM
mixed-endian order (byte order 45670123) */ mixed-endian order (byte order 45670123) */
#undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754