forked from cztomczak/cefpython
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmake-setup.py
More file actions
119 lines (93 loc) · 3.73 KB
/
make-setup.py
File metadata and controls
119 lines (93 loc) · 3.73 KB
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
# Copyright (c) 2012-2014 The CEF Python authors. All rights reserved.
# License: New BSD License.
# Website: http://code.google.com/p/cefpython/
# Create a setup package.
import sys
import os
import platform
import argparse
import re
import platform
import shutil
import glob
BITS = platform.architecture()[0]
assert (BITS == "32bit" or BITS == "64bit")
PACKAGE_NAME = "cefpython1"
README_TEMPLATE = os.getcwd()+r"/README.txt.template"
INIT_TEMPLATE = os.getcwd()+r"/__init__.py.template"
SETUP_TEMPLATE = os.getcwd()+r"/setup.py.template"
def main():
parser = argparse.ArgumentParser(usage="%(prog)s [options]")
parser.add_argument("-v", "--version", help="cefpython version",
required=True)
args = parser.parse_args()
assert re.search(r"^\d+\.\d+$", args.version), (
"Invalid version string")
vars = {}
vars["APP_VERSION"] = args.version
print("Reading template: %s" % README_TEMPLATE)
f = open(README_TEMPLATE)
README_CONTENT = f.read() % vars
f.close()
print("Reading template: %s" % INIT_TEMPLATE)
f = open(INIT_TEMPLATE)
INIT_CONTENT = f.read() % vars
f.close()
print("Reading template: %s" % SETUP_TEMPLATE)
f = open(SETUP_TEMPLATE)
SETUP_CONTENT = f.read() % vars
f.close()
installer_dir = os.path.dirname(os.path.abspath(__file__))
setup_dir = installer_dir+"/"+PACKAGE_NAME+"-"+vars["APP_VERSION"]+"-linux-"+BITS+"-setup"
print("Creating setup dir: "+setup_dir)
os.mkdir(setup_dir)
package_dir = setup_dir+"/"+PACKAGE_NAME
print("Creating package dir")
os.mkdir(package_dir)
print("Creating README.txt from template")
with open(setup_dir+"/README.txt", "w") as f:
f.write(README_CONTENT)
print("Creating setup.py from template")
with open(setup_dir+"/setup.py", "w") as f:
f.write(SETUP_CONTENT)
binaries_dir = os.path.abspath(installer_dir+"/../binaries_"+BITS+"/")
print("Copying binaries to package dir")
ret = os.system("cp -rf "+binaries_dir+"/* "+package_dir)
assert ret == 0
os.chdir(package_dir)
print("Removing .log files from the package dir")
ret = os.system("rm *.log")
# assert ret == 0 - if there are no .log files this assert would fail.
os.chdir(installer_dir)
print("Creating __init__.py from template")
with open(package_dir+"/__init__.py", "w") as f:
f.write(INIT_CONTENT)
print("Creating examples dir in package dir")
os.mkdir(package_dir+"/examples/")
print("Creating wx dir in package dir")
os.mkdir(package_dir+"/wx/")
print("Moving example scripts from package dir to examples dir")
examples = glob.glob(package_dir+"/*.py")
for example in examples:
# Ignore: cefpython_py27.py - dummy API script
if os.path.basename(example).startswith("cefpython_"):
continue
# Ignore: __init__.py
if os.path.basename(example).startswith("__"):
continue
os.rename(example, package_dir+"/examples/"+os.path.basename(example))
ret = os.system("mv "+package_dir+"/*.html "+package_dir+"/examples/")
assert ret == 0
print("Copying wx-subpackage to wx dir in package dir")
wx_subpackage_dir = os.path.abspath(installer_dir+"/../../wx-subpackage/")
ret = os.system("cp -rf "+wx_subpackage_dir+"/* "+package_dir+"/wx/")
assert ret == 0
print("Moving wx examples from wx/examples to examples/wx")
shutil.move(package_dir+"/wx/examples", package_dir+"/wx/wx/")
shutil.move(package_dir+"/wx/wx/", package_dir+"/examples/")
print("Copying package dir examples to setup dir")
ret = os.system("cp -rf "+package_dir+"/examples/ "+setup_dir+"/examples/")
assert ret == 0
print("Setup Package created.")
if __name__ == "__main__":
main()