mirror of https://github.com/rusefi/gerbmerge.git
143 lines
4.2 KiB
Python
143 lines
4.2 KiB
Python
#!/usr/bin/env python
|
|
import sys
|
|
import glob
|
|
import os
|
|
|
|
from distutils.core import setup, Extension
|
|
import distutils.sysconfig
|
|
|
|
sys.path.append("./gerbmerge")
|
|
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 list(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 = open('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 = open('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...', end=' ')
|
|
try:
|
|
def fixperms(arg, dirname, names):
|
|
os.chmod(dirname, 0o755)
|
|
for name in names:
|
|
fullname = os.path.join(dirname, name)
|
|
if os.access(fullname, os.X_OK):
|
|
os.chmod(fullname, 0o755)
|
|
else:
|
|
os.chmod(fullname, 0o644)
|
|
|
|
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'), 0o755)
|
|
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()
|