-
Notifications
You must be signed in to change notification settings - Fork 1
/
setup.py
99 lines (80 loc) · 3.02 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
import os
import platform
import shutil
import shlex, subprocess
from setuptools import setup, find_packages
from setuptools.command.install import install as _install
# FIXME: This will only works for installations invoking setup.py but not
# for bdist_rpm or bdit_msi, where we should pass a post-install script
OSSBUILDENV = '''\
# Sets the environment variables for the toolchain
import os
#os.environ['HOST'] = 'i686-w64-mingw32'
#os.environ['TOOLCHAIN_PREFIX'] = '%s'
'''
class install(_install):
def run(self):
_install.run(self)
self._install_data_files()
def _install_data_files(self):
ossbuild_dest = os.path.join(os.environ['HOME'], '.ossbuild')
patches_dest = os.path.join(ossbuild_dest, 'patches')
modulesets_dest = os.path.join(ossbuild_dest, 'modulesets')
patches_src = os.path.abspath('patches')
modulesets_src = os.path.abspath('modulesets')
try:
os.mkdir(ossbuild_dest)
os.mkdir(patches_dest)
os.mkdir(modulesets_dest)
except OSError:
# dir exists
pass
patches = os.listdir(patches_src)
modulesets = os.listdir(modulesets_src)
# Copy patches and modulesets to the home directory
for patch in patches:
shutil.copy2(os.path.join(patches_src, patch),
os.path.join(patches_dest, patch))
for moduleset in modulesets:
shutil.copy2(os.path.join(modulesets_src, moduleset),
os.path.join(modulesets_dest, moduleset))
# Save 'ossbuildrc' config file with the module set path
try:
f=open(os.path.join(ossbuild_dest, 'ossbuildrc'), 'w+')
f.write("modulesets_dir = '%s'" % modulesets_dest)
f.close()
except IOError, e:
raise Exception("Could not write 'ossbuilrc': %s", e)
try:
f=open(os.path.join(ossbuild_dest, 'ossbuildenv'), 'w+')
if platform.system() == 'Windows':
f.write(OSSBUILDENV % 'c:\\MinGW\\bin\\')
else:
f.write(OSSBUILDENV % '~/ossbuild/mingw/w32/')
f.close()
except IOError, e:
raise Exception("Could not write 'ossbuilrc': %s", e)
# ossbuild is now installed, update the modules :)
p = subprocess.Popen(shlex.split('ossbuild update_moduleset'))
setup(
cmdclass={'install': install},
name = "OSSBuild",
version = "0.1",
packages = find_packages() + find_packages('jhbuild'),
package_dir = {'jhbuild' : 'jhbuild/jhbuild'},
package_data = {
'ossbuild' : ['*.ossbuildrc'],
'jhbuild' : ['*.jhbuildrc']},
entry_points = {
'console_scripts': [
'ossbuild = ossbuild.main:main',
],
},
scripts = ['python-wine'],
# metadata for upload to PyPI
author = "OSSBuild team",
author_email = "ossbuild@ossbuil.org",
description = "OSSBuild packaging tool",
license = "LGPL",
url = "http://ossbuild.org",
)