#!/usr/bin/env python from distutils.core import setup, Extension import os,sys attdict = dict( sources = ['gribapi_swig_wrap.c','grib_interface.c'], swig_opts = [], include_dirs = ['.'], library_dirs = ["%s/lib" % sys.prefix], libraries = [], extra_objects = [], extra_link_args = [], # See GRIB-616 ) add_attribute = lambda **args: [list.append(attdict[key],value) for key,value in args.items()] # assumes build_dir is same as source_dir -- not true for cmake builds build_dir = '@BUILD_DIR@' add_attribute( include_dirs = os.path.join(build_dir,'src'), extra_objects = os.path.join(build_dir, 'src', '.libs', 'libeccodes.a') ) with_jasper = '@LIB_JASPER@' if with_jasper: jasper_dir = '@JASPER_DIR@' if jasper_dir and jasper_dir != 'system': add_attribute( include_dirs = os.path.join(jasper_dir,'include'), library_dirs = os.path.join(jasper_dir,'lib'), extra_link_args = '-Wl,-rpath,' + os.path.join(jasper_dir,'lib') ) add_attribute(libraries = 'jasper') with_openjpeg = '@LIB_OPENJPEG@' if with_openjpeg: openjpeg_dir = '@OPENJPEG_DIR@' if openjpeg_dir and openjpeg_dir != 'system': add_attribute( include_dirs = os.path.join(openjpeg_dir,'include'), library_dirs = os.path.join(openjpeg_dir,'lib'), extra_link_args = '-Wl,-rpath,' + os.path.join(openjpeg_dir,'lib') ) add_attribute(libraries = 'openjpeg') # assumes png is supplied by system paths -- may not be true png = '@LIB_PNG@' if png: add_attribute(libraries = 'png') with_aec = '@LIB_AEC@' if with_aec: aec_dir = '@AEC_DIR@' if aec_dir and aec_dir != 'system': add_attribute( include_dirs = os.path.join(aec_dir,'include'), library_dirs = os.path.join(aec_dir,'lib'), extra_link_args = '-Wl,-rpath,' + os.path.join(aec_dir,'lib') ) add_attribute(libraries = 'aec') data_handler = '@DATA_HANDLER@' if data_handler == "numpy": import numpy # Obtain the numpy include directory. This logic works across numpy versions. try: numpy_include = numpy.get_include() except AttributeError: numpy_include = numpy.get_numpy_include() add_attribute( include_dirs = numpy_include, ) gribapi_module = Extension('_gribapi_swig',**attdict) setup (name = 'gribapi', version = '0.1', author = 'ECMWF', description = """Grib API SWIG module""", ext_modules = [gribapi_module], py_modules = ['gribapi_swig','gribapi'], )