forked from ynput/OpenPype
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.py
124 lines (108 loc) · 2.73 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
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# -*- coding: utf-8 -*-
"""Setup info for building OpenPype 3.0."""
import os
import sys
import re
from pathlib import Path
from cx_Freeze import setup, Executable
from sphinx.setup_command import BuildDoc
version = {}
openpype_root = Path(os.path.dirname(__file__))
with open(openpype_root / "openpype" / "version.py") as fp:
exec(fp.read(), version)
version_match = re.search(r"(\d+\.\d+.\d+).*", version["__version__"])
__version__ = version_match.group(1)
base = None
if sys.platform == "win32":
base = "Win32GUI"
# -----------------------------------------------------------------------
# build_exe
# Build options for cx_Freeze. Manually add/exclude packages and binaries
install_requires = [
"appdirs",
"cx_Freeze",
"keyring",
"clique",
"jsonschema",
"opentimelineio",
"pathlib2",
"pkg_resources",
"PIL",
"pymongo",
"pynput",
"jinxed",
"blessed",
"Qt",
"speedcopy",
"googleapiclient",
"httplib2",
# Harmony implementation
"filecmp",
"dns",
# Python defaults (cx_Freeze skip them by default)
"dbm"
]
includes = []
# WARNING: As of cx_freeze there is a bug?
# when this is empty, its hooks will not kick in
# and won't clean platform irrelevant modules
# like dbm mentioned above.
excludes = [
"openpype"
]
bin_includes = [
"vendor"
]
include_files = [
"igniter",
"openpype",
"repos",
"schema",
"LICENSE",
"README.md"
]
if sys.platform == "win32":
install_requires.extend([
# `pywin32` packages
"win32ctypes",
"win32comext",
"pythoncom"
])
icon_path = openpype_root / "igniter" / "openpype.ico"
mac_icon_path = openpype_root / "igniter" / "openpype.icns"
build_exe_options = dict(
packages=install_requires,
includes=includes,
excludes=excludes,
bin_includes=bin_includes,
include_files=include_files,
optimize=0
)
bdist_mac_options = dict(
bundle_name="OpenPype",
iconfile=mac_icon_path
)
executables = [
Executable("start.py", base=base,
target_name="openpype_gui", icon=icon_path.as_posix()),
Executable("start.py", base=None,
target_name="openpype_console", icon=icon_path.as_posix())
]
setup(
name="OpenPype",
version=__version__,
description="OpenPype",
cmdclass={"build_sphinx": BuildDoc},
options={
"build_exe": build_exe_options,
"bdist_mac": bdist_mac_options,
"build_sphinx": {
"project": "OpenPype",
"version": __version__,
"release": __version__,
"source_dir": (openpype_root / "docs" / "source").as_posix(),
"build_dir": (openpype_root / "docs" / "build").as_posix()
}
},
executables=executables
)