|
|
- From: https://github.com/giampaolo/psutil/pull/2068/commits/9a5cb2b71d301a63ea765f02a196fd046e769685
-
- From 9a5cb2b71d301a63ea765f02a196fd046e769685 Mon Sep 17 00:00:00 2001
- From: "Sergey V. Lobanov" <sergey@lobanov.in>
- Date: Mon, 31 Jan 2022 17:48:14 +0300
- Subject: [PATCH] Add cross-platform build ability
-
- Currently it is not possible to build psutil on MacOS for Linux
- target using external toolchain. It fails due to build script
- detects build host OS and changes build logic according to detected
- OS.
-
- This patch allows to redefine os.name and sys.platform using ENV
- vars TARGET_OS_NAME and TARGET_SYS_PLATFORM. If these variables
- are not defined then os.name and sys.platform is used as it does
- currently.
-
- Using this patch it is possible to compile psutil on MacOS with
- OpenWrt GCC Toolchain (OpenWrt is Linux).
-
- Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
- ---
- psutil/_common.py | 23 ++++++++++++++---------
- 1 file changed, 14 insertions(+), 9 deletions(-)
-
- --- a/psutil/_common.py
- +++ b/psutil/_common.py
- @@ -81,17 +81,22 @@ __all__ = [
- # ===================================================================
-
-
- -POSIX = os.name == "posix"
- -WINDOWS = os.name == "nt"
- -LINUX = sys.platform.startswith("linux")
- -MACOS = sys.platform.startswith("darwin")
- +# Allow to redefine os.name and sys.platform if build OS and target
- +# OS are different (e.g. build OS is MacOS, target OS is Linux)
- +target_os_name = os.getenv('TARGET_OS_NAME', os.name)
- +target_sys_platform = os.getenv('TARGET_SYS_PLATFORM', sys.platform)
- +
- +POSIX = target_os_name == "posix"
- +WINDOWS = target_os_name == "nt"
- +LINUX = target_sys_platform.startswith("linux")
- +MACOS = target_sys_platform.startswith("darwin")
- OSX = MACOS # deprecated alias
- -FREEBSD = sys.platform.startswith(("freebsd", "midnightbsd"))
- -OPENBSD = sys.platform.startswith("openbsd")
- -NETBSD = sys.platform.startswith("netbsd")
- +FREEBSD = target_sys_platform.startswith(("freebsd", "midnightbsd"))
- +OPENBSD = target_sys_platform.startswith("openbsd")
- +NETBSD = target_sys_platform.startswith("netbsd")
- BSD = FREEBSD or OPENBSD or NETBSD
- -SUNOS = sys.platform.startswith(("sunos", "solaris"))
- -AIX = sys.platform.startswith("aix")
- +SUNOS = target_sys_platform.startswith(("sunos", "solaris"))
- +AIX = target_sys_platform.startswith("aix")
-
-
- # ===================================================================
|