From 35566d198a4c4fcb3a811449f89d13c811e15104 Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Thu, 11 Apr 2024 20:48:51 +0200 Subject: [PATCH] gattlib-py: Fix setup.py when building source package --- ci/generate-python-package.sh | 6 +++--- gattlib-py/setup.py | 24 ++++++++++++++++++++---- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/ci/generate-python-package.sh b/ci/generate-python-package.sh index 21269cc..f43ae37 100755 --- a/ci/generate-python-package.sh +++ b/ci/generate-python-package.sh @@ -28,8 +28,8 @@ mkdir ${gattlib_py_package_dir}/ci/ cp -r ${ROOT_PATH}/ci/install-bluez.sh ${gattlib_py_package_dir}/ci/ # Create MANIFEST.in -rm -f MANIFEST.in -cat <> MANIFEST.in +rm -f ${gattlib_py_package_dir}/MANIFEST.in +cat <> ${gattlib_py_package_dir}/MANIFEST.in graft common graft bluez graft dbus @@ -51,7 +51,7 @@ python3 -m cibuildwheel --output-dir dist python setup.py sdist # Move generated artifact to project root path -ls dist/* +rm -Rf ${ROOT_PATH}/dist mv dist ${ROOT_PATH} popd diff --git a/gattlib-py/setup.py b/gattlib-py/setup.py index 753c009..4f09bec 100644 --- a/gattlib-py/setup.py +++ b/gattlib-py/setup.py @@ -14,6 +14,8 @@ from setuptools import setup, find_packages, Extension from setuptools.command.build_ext import build_ext import subprocess +SETUP_DIR = os.path.dirname(os.path.realpath(__file__)) + # Name of the directory containing the python sources python_module_name = "gattlib" # Specified where the CMakeLists.txt is located @@ -23,14 +25,28 @@ native_source_dir = os.environ.get("NATIVE_SOURCE_DIR", ".") git_version_command = subprocess.Popen(['git', 'describe', '--abbrev=7', '--dirty', '--always', '--tags'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = git_version_command.communicate() -git_version = stdout.decode('utf-8').strip() +if git_version_command.returncode == 0: + git_version = stdout.decode('utf-8').strip() +else: + git_version = None # # Create '_version.py' # package_version = os.environ.get('GATTLIB_PY_VERSION', git_version) -with open(os.path.join("gattlib", "_version.py"), "w") as f: - f.write(f"__version__ = \"{package_version}\"\n") + +GATTLIB_VERSION_FILE = os.path.join(SETUP_DIR, "gattlib", "_version.py") + +# Case we are building from source package +if package_version is None: + with open(GATTLIB_VERSION_FILE, "r") as f: + gattlib_version_statement = f.read() + res = re.search(r'__version__ = "(.*)"', gattlib_version_statement) + package_version = res.group(1) + +if package_version: + with open(GATTLIB_VERSION_FILE, "w") as f: + f.write(f"__version__ = \"{package_version}\"\n") class CMakeExtension(Extension): @@ -163,7 +179,7 @@ setup( author_email="olivier@labapart.com", description="Python wrapper for gattlib library", url="https://github.com/labapart/gattlib/gattlib-py", - long_description=open('README.md').read(), + long_description=open(os.path.join(SETUP_DIR, 'README.md')).read(), long_description_content_type='text/markdown', packages=find_packages(), install_requires=[