forked from randovania/randovania
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
64 lines (52 loc) · 1.89 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from pathlib import Path
from setuptools import setup
from setuptools.command.build_py import build_py
from wheel.bdist_wheel import bdist_wheel
try:
from pyqt_distutils.build_ui import build_ui
except ModuleNotFoundError:
build_ui = None
class BuildPyCommand(build_py):
def run(self):
self.run_command('build_ui')
super().run()
class BDistWheelCommand(bdist_wheel):
def run(self):
self.run_command('build_ui')
super().run()
def version_scheme(version):
import setuptools_scm
assert isinstance(version, setuptools_scm.version.ScmVersion)
assert isinstance(version.config, setuptools_scm.Configuration)
# We want to save the git hash to a file so we can easily access it in frozen runtime, where git is not available.
#
Path(version.config.absolute_root).joinpath("randovania/version_hash.py").write_text(f"""# coding: utf-8
# file generated by setuptools_scm + setup.py
# don't change, don't track in version control
git_hash = {repr(bytes.fromhex(version.node[1:9]))}
""")
if version.exact:
return setuptools_scm.version.guess_next_simple_semver(
version.tag, retain=setuptools_scm.version.SEMVER_LEN, increment=False
)
else:
if version.branch != "stable":
return version.format_next_version(
setuptools_scm.version.guess_next_simple_semver, retain=setuptools_scm.version.SEMVER_MINOR
)
else:
return version.format_next_version(
setuptools_scm.version.guess_next_simple_semver, retain=setuptools_scm.version.SEMVER_PATCH
)
setup(
use_scm_version={
"version_scheme": version_scheme,
"local_scheme": "no-local-version",
"write_to": "randovania/version.py",
},
cmdclass={
"build_ui": build_ui,
"build_py": BuildPyCommand,
'bdist_wheel': BDistWheelCommand,
},
)