aboutsummaryrefslogtreecommitdiff
path: root/extmod/moduplatform.c
diff options
context:
space:
mode:
authorstijn <stijn@ignitron.net>2022-02-18 19:36:40 +0100
committerDamien George <damien@micropython.org>2022-02-22 00:59:14 +1100
commit49934fcf8b0b2bd906a96e1ff57b724d8dd6d93e (patch)
tree5d5435268443d54e38e175ea2609017d96186fd3 /extmod/moduplatform.c
parentf30b32e084ec49cdb2bf6011963dd1fa98945706 (diff)
extmod/moduplatform: Move platform PP definitions into a header.
These are more generally useful than just for the module so make them globally available, prefixed consistently with MICROPY_PLATFORM_.
Diffstat (limited to 'extmod/moduplatform.c')
-rw-r--r--extmod/moduplatform.c82
1 files changed, 7 insertions, 75 deletions
diff --git a/extmod/moduplatform.c b/extmod/moduplatform.c
index 820feb312..fa59c9227 100644
--- a/extmod/moduplatform.c
+++ b/extmod/moduplatform.c
@@ -29,87 +29,19 @@
#include "py/objtuple.h"
#include "py/objstr.h"
#include "py/mphal.h"
+#include "extmod/moduplatform.h"
#include "genhdr/mpversion.h"
#if MICROPY_PY_UPLATFORM
// platform - Access to underlying platform's identifying data
-// TODO: Add more architectures, compilers and libraries.
-// See: https://sourceforge.net/p/predef/wiki/Home/
-
-#if defined(__ARM_ARCH)
-#define PLATFORM_ARCH "arm"
-#elif defined(__x86_64__) || defined(_WIN64)
-#define PLATFORM_ARCH "x86_64"
-#elif defined(__i386__) || defined(_M_IX86)
-#define PLATFORM_ARCH "x86"
-#elif defined(__xtensa__) || defined(_M_IX86)
-#define PLATFORM_ARCH "xtensa"
-#else
-#define PLATFORM_ARCH ""
-#endif
-
-#if defined(__GNUC__)
-#define PLATFORM_COMPILER \
- "GCC " \
- MP_STRINGIFY(__GNUC__) "." \
- MP_STRINGIFY(__GNUC_MINOR__) "." \
- MP_STRINGIFY(__GNUC_PATCHLEVEL__)
-#elif defined(__ARMCC_VERSION)
-#define PLATFORM_COMPILER \
- "ARMCC " \
- MP_STRINGIFY((__ARMCC_VERSION / 1000000)) "." \
- MP_STRINGIFY((__ARMCC_VERSION / 10000 % 100)) "." \
- MP_STRINGIFY((__ARMCC_VERSION % 10000))
-#elif defined(_MSC_VER)
-#if defined(_WIN64)
-#define COMPILER_BITS "64 bit"
-#elif defined(_M_IX86)
-#define COMPILER_BITS "32 bit"
-#else
-#define COMPILER_BITS ""
-#endif
-#define PLATFORM_COMPILER \
- "MSC v." MP_STRINGIFY(_MSC_VER) " " COMPILER_BITS
-#else
-#define PLATFORM_COMPILER ""
-#endif
-
-#if defined(__GLIBC__)
-#define PLATFORM_LIBC_LIB "glibc"
-#define PLATFORM_LIBC_VER \
- MP_STRINGIFY(__GLIBC__) "." \
- MP_STRINGIFY(__GLIBC_MINOR__)
-#elif defined(__NEWLIB__)
-#define PLATFORM_LIBC_LIB "newlib"
-#define PLATFORM_LIBC_VER _NEWLIB_VERSION
-#else
-#define PLATFORM_LIBC_LIB ""
-#define PLATFORM_LIBC_VER ""
-#endif
-
-#if defined(__linux)
-#define PLATFORM_SYSTEM "Linux"
-#elif defined(__unix__)
-#define PLATFORM_SYSTEM "Unix"
-#elif defined(__CYGWIN__)
-#define PLATFORM_SYSTEM "Cygwin"
-#elif defined(_WIN32)
-#define PLATFORM_SYSTEM "Windows"
-#else
-#define PLATFORM_SYSTEM "MicroPython"
-#endif
-
-#ifndef MICROPY_PLATFORM_VERSION
-#define MICROPY_PLATFORM_VERSION ""
-#endif
-
-STATIC const MP_DEFINE_STR_OBJ(info_platform_obj, PLATFORM_SYSTEM "-" MICROPY_VERSION_STRING "-" \
- PLATFORM_ARCH "-" MICROPY_PLATFORM_VERSION "-with-" PLATFORM_LIBC_LIB "" PLATFORM_LIBC_VER);
-STATIC const MP_DEFINE_STR_OBJ(info_python_compiler_obj, PLATFORM_COMPILER);
-STATIC const MP_DEFINE_STR_OBJ(info_libc_lib_obj, PLATFORM_LIBC_LIB);
-STATIC const MP_DEFINE_STR_OBJ(info_libc_ver_obj, PLATFORM_LIBC_VER);
+STATIC const MP_DEFINE_STR_OBJ(info_platform_obj, MICROPY_PLATFORM_SYSTEM "-" \
+ MICROPY_VERSION_STRING "-" MICROPY_PLATFORM_ARCH "-" MICROPY_PLATFORM_VERSION "-with-" \
+ MICROPY_PLATFORM_LIBC_LIB "" MICROPY_PLATFORM_LIBC_VER);
+STATIC const MP_DEFINE_STR_OBJ(info_python_compiler_obj, MICROPY_PLATFORM_COMPILER);
+STATIC const MP_DEFINE_STR_OBJ(info_libc_lib_obj, MICROPY_PLATFORM_LIBC_LIB);
+STATIC const MP_DEFINE_STR_OBJ(info_libc_ver_obj, MICROPY_PLATFORM_LIBC_VER);
STATIC const mp_rom_obj_tuple_t info_libc_tuple_obj = {
{&mp_type_tuple}, 2, {MP_ROM_PTR(&info_libc_lib_obj), MP_ROM_PTR(&info_libc_ver_obj)}
};