mirror of https://github.com/rusefi/gerbmerge.git
126 lines
3.7 KiB
Python
126 lines
3.7 KiB
Python
|
#!/usr/bin/env python
|
||
|
import sys
|
||
|
import glob
|
||
|
import os
|
||
|
|
||
|
from distutils.core import setup, Extension
|
||
|
import distutils.sysconfig
|
||
|
|
||
|
from gerbmerge.gerbmerge import VERSION_MAJOR, VERSION_MINOR
|
||
|
|
||
|
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 = ['COPYING']
|
||
|
|
||
|
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 = '.'
|
||
|
DestDir = os.path.join(DestLib, 'gerbmerge')
|
||
|
BinFiles = ['misc/gerbmerge.bat']
|
||
|
BinDir = '.'
|
||
|
else:
|
||
|
DestLib = distutils.sysconfig.get_config_var('LIBPYTHON')
|
||
|
DestDir = os.path.join(DestLib, 'gerbmerge')
|
||
|
BinFiles = ['misc/gerbmerge']
|
||
|
BinDir = distutils.sysconfig.get_config_var('BINDIR')
|
||
|
|
||
|
# Create top-level invocation program
|
||
|
fid = file('misc/gerbmerge', 'wt')
|
||
|
fid.write( \
|
||
|
r"""#!/bin/sh
|
||
|
python %s/site-packages/gerbmerge/gerbmerge.py $*
|
||
|
""" % DestLib)
|
||
|
fid.close()
|
||
|
|
||
|
dist=setup (name = "gerbmerge",
|
||
|
license = "GPL",
|
||
|
version = "%d.%d" % (VERSION_MAJOR, VERSION_MINOR),
|
||
|
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 = "Rugged Circuits LLC",
|
||
|
author_email = "support@ruggedcircuits.com",
|
||
|
url = "http://ruggedcircuits.com/gerbmerge",
|
||
|
packages = ['gerbmerge'],
|
||
|
platforms = ['all'],
|
||
|
data_files = [ (DestDir, AuxFiles),
|
||
|
(os.path.join(DestDir,'testdata'), SampleFiles),
|
||
|
(os.path.join(DestDir,'doc'), DocFiles),
|
||
|
(BinDir, BinFiles) ]
|
||
|
)
|
||
|
|
||
|
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 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
|