from __future__ import print_function from distutils.core import setup, Extension from distutils import sysconfig from os import getenv, walk, path import subprocess # Remove the "-Wstrict-prototypes" compiler option, which isn't valid for C++. cfg_vars = sysconfig.get_config_vars() opt = cfg_vars["OPT"] cfg_vars["OPT"] = " ".join( flag for flag in opt.split() if flag not in ['-Wstrict-prototypes' ] ) + " --std=c++0x" cflags = cfg_vars["CFLAGS"] cfg_vars["CFLAGS"] = " ".join( flag for flag in cflags.split() if flag not in ['-Wstrict-prototypes' ] ) + " --std=c++0x" py_cflags = cfg_vars["PY_CFLAGS"] cfg_vars["PY_CFLAGS"] = " ".join( flag for flag in py_cflags.split() if flag not in ['-Wstrict-prototypes' ] ) + " --std=c++0x" ccl=cfg_vars["CC"].split() ccl[0]="/bin/cc" cfg_vars["CC"] = " ".join(ccl) cxxl=cfg_vars["CXX"].split() cxxl[0]="/bin/c++" cfg_vars["CXX"] = " ".join(cxxl) cfg_vars["PY_CXXFLAGS"] = " -std=c++0x -DOPENSSL_NO_FILENAMES -std=c++0x -Wall -Wextra -Werror -Wno-unused-parameter" sources = list() depends = list() for dirname, dirnames, filenames in walk('/vols/solid/data-merge/grid_solid/el6/software/build/xrootd-4.9.1/bindings/python/src'): for filename in filenames: if filename.endswith('.cc'): sources.append(path.join(dirname, filename)) elif filename.endswith('.hh'): depends.append(path.join(dirname, filename)) xrdcllibdir = "/vols/solid/data-merge/grid_solid/el6/software/build/xrootd_build/src/XrdCl" xrdlibdir = "/vols/solid/data-merge/grid_solid/el6/software/build/xrootd_build/src" xrdsrcincdir = "/vols/solid/data-merge/grid_solid/el6/software/build/xrootd-4.9.1/src" xrdbinincdir = "/vols/solid/data-merge/grid_solid/el6/software/build/xrootd_build/src" version = "v4.9.1" if version.startswith('unknown'): try: import os version_file_path = os.path.join('/vols/solid/data-merge/grid_solid/el6/software/build/xrootd-4.9.1/bindings/python', 'VERSION') print('Version file path: {}'.format(version_file_path)) f = open(version_file_path, 'r') version = f.read().split('/n')[0] print('Version from file: {}'.format(version)) f.close() except Exception as e: print('{} \nCannot open VERSION_INFO file. {} will be used'.format(e, version)) print('XRootD library dir: ', xrdlibdir) print('XRootD src include dir:', xrdsrcincdir) print('XRootD bin include dir:', xrdbinincdir) print('Version: ', version) setup( name = 'pyxrootd', version = version, author = 'XRootD Developers', author_email = 'xrootd-dev@slac.stanford.edu', url = 'http://xrootd.org', license = 'LGPLv3+', description = "XRootD Python bindings", long_description = "XRootD Python bindings", packages = ['pyxrootd', 'XRootD', 'XRootD.client'], package_dir = {'pyxrootd' : '/vols/solid/data-merge/grid_solid/el6/software/build/xrootd-4.9.1/bindings/python/src', 'XRootD' : '/vols/solid/data-merge/grid_solid/el6/software/build/xrootd-4.9.1/bindings/python/libs', 'XRootD.client': '/vols/solid/data-merge/grid_solid/el6/software/build/xrootd-4.9.1/bindings/python/libs/client'}, ext_modules = [ Extension( 'pyxrootd.client', sources = sources, depends = depends, libraries = ['XrdCl', 'XrdUtils', 'dl'], extra_compile_args = ['-g'], include_dirs = [xrdsrcincdir, xrdbinincdir], library_dirs = [xrdlibdir, xrdcllibdir] ) ] )