From 9bab3c87825b4284b3e6f2be3fa9e89da7723116 Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Fri, 22 Mar 2024 11:52:28 +0100 Subject: All: Refactor makefile & building --- wrappers/python/setup.py | 124 ----------------------------------------------- 1 file changed, 124 deletions(-) delete mode 100755 wrappers/python/setup.py (limited to 'wrappers/python/setup.py') diff --git a/wrappers/python/setup.py b/wrappers/python/setup.py deleted file mode 100755 index 37ff577..0000000 --- a/wrappers/python/setup.py +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env python3 - -import os -import shutil -import sys -import typing -from collections import defaultdict - -from setuptools import setup -from wheel.bdist_wheel import bdist_wheel as _bdist_wheel - -_libname = "eduvpn_common" -__version__ = "1.99.1" - - -def getlibpath(plat_name: str) -> typing.Union[str, None]: - """Get library path for plat_name relative to exports/lib/ folder.""" - - plat_map = defaultdict( - lambda: plat_name, - { - "win32": "win-x86", - }, - ) - - plat_split = plat_map[plat_name].split("-", 1) - if len(plat_split) != 2: - return None - plat_os, plat_arch = plat_split - - os_map = defaultdict( - lambda: plat_os, - { - "win": "windows", - }, - ) - lib_prefixes = defaultdict( - lambda: "lib", - { - "windows": "", - }, - ) - lib_suffixes = defaultdict( - lambda: ".so", - { - "windows": ".dll", - "darwin": ".dylib", - }, - ) - arch_map = defaultdict( - lambda: plat_arch, - { - "aarch64_be": "arm64", - "aarch64": "arm64", - "armv8b": "arm64", - "armv8l": "arm64", - "x86": "386", - "x86pc": "386", - "i86pc": "386", - "i386": "386", - "i686": "386", - "x86_64": "amd64", - "i686-64": "amd64", - }, - ) - - processed_os = os_map[plat_os] - return ( - processed_os - + "/" - + arch_map[plat_arch] - + "/" - + lib_prefixes[processed_os] - + _libname - + "-" - + __version__ - + lib_suffixes[processed_os] - ) - - -# Adapted from https://stackoverflow.com/a/51794740 -# You would say there would be a better way to do all of this, but I couldn't find it - - -class bdist_wheel(_bdist_wheel): - user_options = _bdist_wheel.user_options + [ - ("exports-lib-path=", None, "path to exports/lib directory"), - ] - - def initialize_options(self): - super().initialize_options() - self.exports_lib_path = "../../exports/lib" # default - - def run(self): - self.plat_name_supplied = True # Force use platform - - libpath = getlibpath(self.plat_name) - if not libpath: - print("Unknown platform:", self.plat_name) - sys.exit(1) - - print("Building wheel for platform:", self.plat_name) - - # setuptools will only use paths inside the package for package_data, so we copy the library - p = "eduvpn_common/lib" - if os.path.isdir(p): - shutil.rmtree(p) - os.makedirs(p) - shutil.copyfile( - self.exports_lib_path + "/" + libpath, p + "/" + libpath.split("/")[-1] - ) - _bdist_wheel.run(self) - shutil.rmtree(p) - - -setup( - name="eduvpn_common", - version=__version__, - packages=["eduvpn_common"], - python_requires=">=3.6", - package_dir={"eduvpn_common": "eduvpn_common"}, - package_data={"eduvpn_common": ["lib/*" + _libname + "*", "py.typed"]}, - cmdclass={"bdist_wheel": bdist_wheel}, -) -- cgit v1.2.3