forked from fogleman/FeedNotifier
-
Notifications
You must be signed in to change notification settings - Fork 1
/
setup.py
119 lines (112 loc) · 3.21 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
import os
import py2exe
import sys
from distutils.core import setup
manifest = '''
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
version="2.0.0.0"
processorArchitecture="x86"
name="Feed Notifier"
type="win32"
/>
<description>Feed Notifier 2.6</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"
/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.VC90.CRT"
version="9.0.30729.1"
processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"
/>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
'''
# Don't require the command line argument.
sys.argv.append('py2exe')
# Include these data files.
def get_data_files():
def filter_files(files):
def match(file):
extensions = ['.dat']
for extension in extensions:
if file.endswith(extension):
return True
return False
return tuple(file for file in files if not match(file))
def tree(src):
return [(root, map(lambda f: os.path.join(root, f), filter_files(files))) for (root, dirs, files) in os.walk(os.path.normpath(src))]
def include(src):
result = tree(src)
result = [('.', item[1]) for item in result]
return result
data_files = []
data_files += tree('./icons')
data_files += tree('./sounds')
data_files += tree('./Microsoft.VC90.CRT')
return data_files
# Build the distribution.
setup(
options = {"py2exe":{
"compressed": 1,
"optimize": 1,
"bundle_files": 1,
"includes": ['parsetab'],
"dll_excludes": [
'msvcp90.dll',
'mswsock.dll',
'API-MS-Win-Core-LocalRegistry-L1-1-0.dll',
'API-MS-Win-Core-ProcessThreads-L1-1-0.dll',
'API-MS-Win-Security-Base-L1-1-0.dll',
'POWRPROF.dll',
'Secur32.dll',
'SHFOLDER.dll',
'crypt32.dll',
'mpr.dll'
],
}},
windows = [{
"script": "main.py",
"dest_base": "notifier",
"icon_resources": [(1, "icons/feed.ico")],
"other_resources": [(24, 1, manifest)],
}],
data_files = get_data_files(),
)
# Build Information
def get_revision():
import time
return int(time.time())
def save_build_info():
revision = get_revision()
path = 'dist/revision.txt'
with open(path, 'w') as file:
file.write(str(revision))
print
print 'Saved build revision %d to %s' % (revision, path)
save_build_info()