91 lines
3.1 KiB
Python
91 lines
3.1 KiB
Python
#!/usr/bin/env python3
|
|
import os
|
|
from setuptools import setup, find_packages
|
|
|
|
# Read version from pyproject.toml or fallback to default
|
|
# We'll read the version directly from the pyproject.toml
|
|
# Cache the parsed metadata to avoid reading the file multiple times
|
|
_cached_metadata = None
|
|
|
|
def get_project_metadata():
|
|
global _cached_metadata
|
|
if _cached_metadata is not None:
|
|
return _cached_metadata
|
|
|
|
# Read project metadata from pyproject.toml manually to avoid toml dependency
|
|
with open("pyproject.toml") as f:
|
|
content = f.read()
|
|
import re
|
|
|
|
# Extract version
|
|
version_match = re.search(r'version\s*=\s*["\']([^"\']+)["\']', content)
|
|
version = version_match.group(1) if version_match else "0.1.9"
|
|
|
|
# Extract description
|
|
desc_match = re.search(r'description\s*=\s*["\']([^"\']+)["\']', content)
|
|
description = desc_match.group(1) if desc_match else "A project to rewrite PortProton (PortWINE) using PySide"
|
|
|
|
# Return just version and description (like in the example)
|
|
_cached_metadata = (version, description, [])
|
|
return _cached_metadata
|
|
|
|
|
|
def data_files_list():
|
|
data_files = [
|
|
(
|
|
"share/applications",
|
|
["build-aux/usr/share/applications/ru.linux_gaming.PortProtonQt.desktop"],
|
|
),
|
|
(
|
|
"share/icons/hicolor/scalable/apps",
|
|
["build-aux/usr/share/icons/hicolor/scalable/apps/ru.linux_gaming.PortProtonQt.svg"],
|
|
),
|
|
(
|
|
"share/metainfo",
|
|
["build-aux/usr/share/metainfo/ru.linux_gaming.PortProtonQt.metainfo.xml"],
|
|
),
|
|
(
|
|
"share/bash-completion/completions",
|
|
["build-aux/usr/share/bash-completion/completions/portprotonqt"],
|
|
),
|
|
(
|
|
"lib/udev/rules.d",
|
|
["build-aux/usr/lib/udev/rules.d/60-portprotonqt.rules"],
|
|
),
|
|
]
|
|
return data_files
|
|
|
|
|
|
setup(
|
|
name="portprotonqt",
|
|
version=get_project_metadata()[0], # version
|
|
author="Boris Yumankulov",
|
|
author_email="boria138@altlinux.org",
|
|
description=get_project_metadata()[1], # description
|
|
long_description=open("README.md").read() if os.path.exists("README.md") else "",
|
|
long_description_content_type="text/markdown",
|
|
url="https://git.linux-gaming.ru/Boria138/PortProtonQt",
|
|
packages=find_packages(exclude=["build-aux", "dev-scripts", "documentation", "data"]),
|
|
data_files=data_files_list(),
|
|
entry_points={
|
|
'console_scripts': [
|
|
'portprotonqt = portprotonqt.app:main',
|
|
]
|
|
},
|
|
classifiers=[
|
|
"Development Status :: 3 - Alpha",
|
|
"Programming Language :: Python",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Operating System :: POSIX :: Linux",
|
|
"License :: OSI Approved :: GPL-3.0",
|
|
],
|
|
python_requires=">=3.10",
|
|
package_data={
|
|
'portprotonqt': ['themes/**/*', 'locales/**/*'],
|
|
},
|
|
)
|