/
setup.py
70 lines (60 loc) · 2.84 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
import os
import glob
import setuptools
from setuptools import setup
from setuptools.command.build_ext import build_ext
from setuptools.extension import Extension
import sysconfig
from pkg_resources import require
topDir = os.getcwd()
sourceDir = "PyWCSTools"+os.path.sep+"wcssubs-3.9.5"+os.path.sep
#oFiles=glob.glob(sourceDir+"*.o")
#print oFiles
oFiles = ['PyWCSTools/wcssubs-3.9.5/cel.o', 'PyWCSTools/wcssubs-3.9.5/wcs.o',
'PyWCSTools/wcssubs-3.9.5/proj.o', 'PyWCSTools/wcssubs-3.9.5/distort.o',
'PyWCSTools/wcssubs-3.9.5/wcsinit.o', 'PyWCSTools/wcssubs-3.9.5/wcslib.o',
'PyWCSTools/wcssubs-3.9.5/poly.o', 'PyWCSTools/wcssubs-3.9.5/platepos.o',
'PyWCSTools/wcssubs-3.9.5/zpxpos.o', 'PyWCSTools/wcssubs-3.9.5/iget.o',
'PyWCSTools/wcssubs-3.9.5/imio.o', 'PyWCSTools/wcssubs-3.9.5/dsspos.o',
'PyWCSTools/wcssubs-3.9.5/tnxpos.o', 'PyWCSTools/wcssubs-3.9.5/wcscon.o',
'PyWCSTools/wcssubs-3.9.5/fitsfile.o',
'PyWCSTools/wcssubs-3.9.5/dateutil.o',
'PyWCSTools/wcssubs-3.9.5/imhfile.o', 'PyWCSTools/wcssubs-3.9.5/lin.o',
'PyWCSTools/wcssubs-3.9.5/fileutil.o',
'PyWCSTools/wcssubs-3.9.5/wcstrig.o',
'PyWCSTools/wcssubs-3.9.5/sph.o',
'PyWCSTools/wcssubs-3.9.5/worldpos.o', 'PyWCSTools/wcssubs-3.9.5/hget.o',
'PyWCSTools/wcssubs-3.9.5/hput.o']
exampleScripts = glob.glob("scripts"+os.path.sep+"*.py")
class build_PyWCSTools_ext(build_ext):
def build_extensions(self):
os.chdir(sourceDir)
cc=setuptools._distutils.ccompiler.new_compiler(setuptools._distutils.ccompiler.get_default_compiler())
cc.compiler_so=sysconfig.get_config_var('CC').split()+sysconfig.get_config_var('CFLAGS').split()+sysconfig.get_config_var('CFLAGSFORSHARED').split()
# Suppress warnings from compiling WCSTools wcssubs-3.9.5
if "-Wstrict-prototypes" in cc.compiler_so:
cc.compiler_so.pop(cc.compiler_so.index("-Wstrict-prototypes"))
if "-Wall" in cc.compiler_so:
cc.compiler_so.pop(cc.compiler_so.index("-Wall"))
# For recent macOS
if "-Wno-error=implicit-function-declaration" in cc.compiler_so:
cc.compiler_so.pop(cc.compiler_so.index("-Wno-error=implicit-function-declaration"))
WCSToolsCFiles = glob.glob("*.c")
WCSToolsCFiles.pop(WCSToolsCFiles.index("wcs_wrap.c"))
WCSToolsCFiles.pop(WCSToolsCFiles.index("wcscon_wrap.c"))
cc.compile(WCSToolsCFiles)
os.chdir(topDir)
build_ext.build_extensions(self)
setup(name='astLib',
version='0.11.10',
packages=['astLib', 'PyWCSTools'],
package_data={'astLib': ['data/*']},
cmdclass={"build_ext": build_PyWCSTools_ext},
scripts=exampleScripts,
ext_modules=[
Extension('PyWCSTools._wcscon', [sourceDir+"wcscon_wrap.c"],
extra_objects=oFiles),
Extension('PyWCSTools._wcs', [sourceDir+"wcs_wrap.c"],
extra_objects=oFiles)
]
)