forked from unwireddevices/gerbmerge
-
Notifications
You must be signed in to change notification settings - Fork 2
/
setup.py
141 lines (123 loc) · 4.14 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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#!/usr/bin/env python
import sys
import glob
import os
from distutils.core import setup, Extension
import distutils.sysconfig
from gerbmerge.__version_info__ import __version__
if sys.version_info < (2,4,0):
print '*'*73
print 'GerbMerge version %d.%d requires Python 2.4 or higher' % (VERSION_MAJOR, VERSION_MINOR)
print '*'*73
sys.exit(1)
if 0:
for key,val in distutils.sysconfig.get_config_vars().items():
print key
print '***********************'
print ' ', val
print
print
sys.exit(0)
SampleFiles = glob.glob('testdata/*')
DocFiles = glob.glob('doc/*')
AuxFiles = ['LICENSE']
if sys.platform == 'win32' or ('bdist_wininst' in sys.argv):
#DestLib = distutils.sysconfig.get_config_var('prefix')
#DestDir = os.path.join(DestLib, 'gerbmerge')
#BinDir = DestLib
DestLib = distutils.sysconfig.get_python_lib()
DestDir = os.path.join(DestLib, 'gerbmerge')
BinFiles = ['misc/gerbmerge.bat']
BinDir = '.'
# Create top-level invocation program
if not os.path.exists('misc'):
os.makedirs('misc')
fid = file('misc/gerbmerge.bat', 'wt')
fid.write( \
r"""@echo off
%s %s\gerbmerge\gerbmerge.py %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9
""" % (sys.executable, DestLib) )
fid.close()
else:
# try to find the library location on this platform
DestLib = distutils.sysconfig.get_python_lib()
DestDir = os.path.join(DestLib, 'gerbmerge')
BinFiles = ['misc/gerbmerge']
BinDir = distutils.sysconfig.get_config_var('BINDIR')
# Create top-level invocation program
if not os.path.exists('misc'):
os.makedirs('misc')
fid = file('misc/gerbmerge', 'wt')
fid.write( \
r"""#!/bin/sh
python %s/gerbmerge/gerbmerge.py $*
""" % DestLib)
fid.close()
dist=setup (name = "gerbmerge",
license = "GPL",
version = __version__,
long_description=\
r"""GerbMerge is a program that combines several Gerber
(i.e., RS274-X) and Excellon files into a single set
of files. This program is useful for combining multiple
printed circuit board layout files into a single job.
To run the program, invoke the Python interpreter on the
gerbmerge.py file. On Windows, if you installed GerbMerge in
C:/Python24, for example, open a command window (DOS box)
and type:
C:/Python24/gerbmerge.bat
For more details on installation or running GerbMerge, see the
URL below.
""",
description = "Merge multiple Gerber/Excellon files",
author = "Unwired Devices LLC",
author_email = "info@unwds.com",
url = "https://github.com/unwireddevices/gerbmerge",
packages = ['gerbmerge'],
platforms = ['all'],
data_files = [ (DestDir, AuxFiles),
(os.path.join(DestDir,'testdata'), SampleFiles),
(os.path.join(DestDir,'doc'), DocFiles),
(BinDir, BinFiles) ],
install_requires = ['simpleparse']
)
do_fix_perms = 0
if sys.platform != "win32":
for cmd in dist.commands:
if cmd[:7]=='install':
do_fix_perms = 1
break
if do_fix_perms:
# Ensure package files and misc/help files are world readable-searchable.
# Shouldn't Distutils do this for us?
print 'Setting permissions on installed files...',
try:
def fixperms(arg, dirname, names):
os.chmod(dirname, 0755)
for name in names:
fullname = os.path.join(dirname, name)
if os.access(fullname, os.X_OK):
os.chmod(fullname, 0755)
else:
os.chmod(fullname, 0644)
os.path.walk(DestDir, fixperms, 1)
os.path.walk(os.path.join(DestLib, 'site-packages/gerbmerge'), fixperms, 1)
os.chmod(os.path.join(BinDir, 'gerbmerge'), 0755)
print 'done'
except:
print 'FAILED'
print
print '*** Please verify that the installed files have correct permissions. On'
print "*** systems without permission flags, you don't need to"
print '*** worry about it.'
if sys.platform != "win32":
if cmd[:7]=='install':
print
print '******** Installation Complete ******** '
print
print 'Sample files and documentation have been installed in:'
print ' ', DestDir
print
print 'A shortcut to starting the program has been installed as:'
print ' ', os.path.join(BinDir, 'gerbmerge')
print