gattlib-py: Fix setup.py when building source package

pull/277/head
Olivier Martin 2024-04-11 20:48:51 +02:00
parent f4ed88eb31
commit 35566d198a
2 changed files with 23 additions and 7 deletions

View File

@ -28,8 +28,8 @@ mkdir ${gattlib_py_package_dir}/ci/
cp -r ${ROOT_PATH}/ci/install-bluez.sh ${gattlib_py_package_dir}/ci/ cp -r ${ROOT_PATH}/ci/install-bluez.sh ${gattlib_py_package_dir}/ci/
# Create MANIFEST.in # Create MANIFEST.in
rm -f MANIFEST.in rm -f ${gattlib_py_package_dir}/MANIFEST.in
cat <<EOT >> MANIFEST.in cat <<EOT >> ${gattlib_py_package_dir}/MANIFEST.in
graft common graft common
graft bluez graft bluez
graft dbus graft dbus
@ -51,7 +51,7 @@ python3 -m cibuildwheel --output-dir dist
python setup.py sdist python setup.py sdist
# Move generated artifact to project root path # Move generated artifact to project root path
ls dist/* rm -Rf ${ROOT_PATH}/dist
mv dist ${ROOT_PATH} mv dist ${ROOT_PATH}
popd popd

View File

@ -14,6 +14,8 @@ from setuptools import setup, find_packages, Extension
from setuptools.command.build_ext import build_ext from setuptools.command.build_ext import build_ext
import subprocess import subprocess
SETUP_DIR = os.path.dirname(os.path.realpath(__file__))
# Name of the directory containing the python sources # Name of the directory containing the python sources
python_module_name = "gattlib" python_module_name = "gattlib"
# Specified where the CMakeLists.txt is located # 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'], git_version_command = subprocess.Popen(['git', 'describe', '--abbrev=7', '--dirty', '--always', '--tags'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = git_version_command.communicate() 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' # Create '_version.py'
# #
package_version = os.environ.get('GATTLIB_PY_VERSION', git_version) 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): class CMakeExtension(Extension):
@ -163,7 +179,7 @@ setup(
author_email="olivier@labapart.com", author_email="olivier@labapart.com",
description="Python wrapper for gattlib library", description="Python wrapper for gattlib library",
url="https://github.com/labapart/gattlib/gattlib-py", 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', long_description_content_type='text/markdown',
packages=find_packages(), packages=find_packages(),
install_requires=[ install_requires=[