-
-
Notifications
You must be signed in to change notification settings - Fork 210
/
__init__.py
94 lines (76 loc) · 2.83 KB
/
__init__.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
"""Create standalone executables from Python scripts, with the same performance
and is cross-platform.
"""
# pylint: disable=invalid-name
from __future__ import annotations
import sys
import setuptools
from cx_Freeze.command.build_exe import BuildEXE as build_exe
from cx_Freeze.command.install import Install as install
from cx_Freeze.command.install_exe import InstallEXE as install_exe
from cx_Freeze.finder import Module, ModuleFinder
from cx_Freeze.freezer import ConstantsModule, Executable, Freezer
__all__ = [
"build_exe",
"install",
"install_exe",
"setup",
"ConstantsModule",
"Executable",
"Freezer",
"Module",
"ModuleFinder",
"__version__",
]
if sys.platform == "win32":
from cx_Freeze.command.bdist_msi import BdistMSI as bdist_msi
__all__.append(bdist_msi.__name__)
elif sys.platform == "darwin":
from cx_Freeze.command.bdist_mac import BdistDMG as bdist_dmg
from cx_Freeze.command.bdist_mac import BdistMac as bdist_mac
__all__.extend([bdist_dmg.__name__, bdist_mac.__name__])
else:
from cx_Freeze.command.bdist_deb import BdistDEB as bdist_deb
from cx_Freeze.command.bdist_rpm import BdistRPM as bdist_rpm
__all__.extend([bdist_deb.__name__, bdist_rpm.__name__])
__version__ = "6.16.0-dev8"
def setup(**attrs): # noqa: D103
cmdclass = attrs.setdefault("cmdclass", {})
if sys.platform == "win32":
cmdclass.setdefault("bdist_msi", bdist_msi)
elif sys.platform == "darwin":
cmdclass.setdefault("bdist_dmg", bdist_dmg)
cmdclass.setdefault("bdist_mac", bdist_mac)
else:
cmdclass.setdefault("bdist_deb", bdist_deb)
cmdclass.setdefault("bdist_rpm", bdist_rpm)
cmdclass.setdefault("build_exe", build_exe)
cmdclass.setdefault("install", install)
cmdclass.setdefault("install_exe", install_exe)
attrs.setdefault("executables", [])
setuptools.setup(**attrs)
setup.__doc__ = setuptools.setup.__doc__
def plugin_install(dist: setuptools.Distribution) -> None:
"""Use a setuptools extension to customize Distribution options."""
if getattr(dist, "executables", None) is None:
return
# Fix package discovery (setuptools >= 61)
if getattr(dist, "py_modules", None) is None:
dist.py_modules = []
# Add/update commands (provisional)
cmdclass = dist.cmdclass
cmdclass.setdefault("build_exe", build_exe)
cmdclass.setdefault("install", install)
cmdclass.setdefault("install_exe", install_exe)
# Add build_exe as subcommand of setuptools build (plugin)
build = dist.get_command_obj("build")
build.user_options.insert(
1,
(
"build-exe=",
None,
"directory for built executables and dependent files [DEPRECATED]",
),
)
build.sub_commands = [*build.sub_commands, ("build_exe", None)]
build.build_exe = None