Files
openbabel/scripts/python/setup.py

104 lines
3.7 KiB
Python
Raw Normal View History

#!/usr/bin/env python
import os
2014-01-05 08:57:27 -10:00
import subprocess
import sys
from distutils.command.build import build
from setuptools.command.install import install
from setuptools import setup, Extension
__author__ = 'Noel O\'Boyle'
__email__ = 'openbabel-discuss@lists.sourceforge.net'
__version__ = '1.8'
__license__ = 'GPL'
if os.path.exists('README.rst'):
long_description = open('README.rst').read()
else:
long_description = '''
The Open Babel package provides a Python wrapper to the Open Babel C++ chemistry library. Open Babel is a
chemical toolbox designed to speak the many languages of chemical data. It's an open, collaborative project
allowing anyone to search, convert, analyze, or store data from molecular modeling, chemistry, solid-state
materials, biochemistry, or related areas. It provides a broad base of chemical functionality for custom
development.
'''
2014-01-05 08:57:27 -10:00
try:
subprocess.check_output('pkg-config --exists openbabel-2.0'.split())
2014-01-05 08:57:27 -10:00
except:
print ('pkg-config could not find an openbabel install. Please install openbabel and rerun setup.py.')
2014-01-05 08:57:27 -10:00
sys.exit(1)
2014-01-05 08:57:27 -10:00
babel_version = subprocess.Popen('pkg-config --modversion openbabel-2.0'.split(),
stdout=subprocess.PIPE).stdout.readline().decode('utf-8')
2014-01-05 08:57:27 -10:00
include_dirs = subprocess.Popen('pkg-config --variable=pkgincludedir openbabel-2.0'.split(),
stdout=subprocess.PIPE).stdout.readline().decode('utf-8').split()
2014-01-05 08:57:27 -10:00
lib_dirs = subprocess.Popen('pkg-config --variable=libdir openbabel-2.0'.split(),
stdout=subprocess.PIPE).stdout.readline().decode('utf-8').split()
2014-01-05 08:57:27 -10:00
#Code should be added here to ensure these directories exist, and that this version of babel is compatible
#with this python package.
swig_opts = ['-c++', '-small', '-O', '-templatereduce', '-naturalvar']
swig_opts += ['-I%s' % i for i in include_dirs]
obextension = Extension('_openbabel',
['openbabel-python.i'],
include_dirs=include_dirs,
library_dirs=lib_dirs,
swig_opts=swig_opts,
libraries=['openbabel'])
class CustomBuild(build):
"""Ensure build_ext runs first in build command."""
def run(self):
self.run_command('build_ext')
build.run(self)
class CustomInstall(install):
"""Ensure build_ext runs first in install command."""
def run(self):
self.run_command('build_ext')
self.do_egg_install()
setup(name='openbabel',
version=__version__,
author=__author__,
author_email=__email__,
license=__license__,
Merged revisions 3091-3094,3097-3100 via svnmerge from https://openbabel.svn.sourceforge.net/svnroot/openbabel/openbabel/branches/openbabel-2-2-x ........ r3091 | ghutchis | 2009-06-22 00:24:46 +0200 (Mon, 22 Jun 2009) | 5 lines * src/chains.cpp (OpenBabel): Fix for PR#2691618. When writing hydrogen atoms without chain names, make sure there are never spaces. ........ r3092 | ghutchis | 2009-06-22 15:24:47 +0200 (Mon, 22 Jun 2009) | 4 lines * src/generic.cpp: Fix unit cell when setting possibly zero translation vectors ( e.g. PR#1961604). ........ r3093 | timvdm | 2009-06-22 22:54:24 +0200 (Mon, 22 Jun 2009) | 2 lines Fix phmodel.txt rules to match both free & polymerized amino acids. ........ r3094 | ghutchis | 2009-06-24 00:06:49 +0200 (Wed, 24 Jun 2009) | 2 lines Updated from Tim's recent change. ........ r3097 | ghutchis | 2009-06-24 21:26:55 +0200 (Wed, 24 Jun 2009) | 2 lines Added Craig's changes for randomized SMILES order. ........ r3098 | ghutchis | 2009-06-25 05:36:47 +0200 (Thu, 25 Jun 2009) | 4 lines * src/generic.cpp (OBUnitCell): Make sure to set the space group to P1 by default and after FillUnitCell. ........ r3099 | ghutchis | 2009-06-25 05:36:56 +0200 (Thu, 25 Jun 2009) | 6 lines * src/formats/mopacformat.cpp: Read and write translation vectors, if available. * src/formats/gaussformat.cpp: Ditto ........ r3100 | ghutchis | 2009-06-25 20:14:18 +0200 (Thu, 25 Jun 2009) | 2 lines Fix PR#2784880 -- compiling with OPENBABEL_INSTALL set fails (e.g., on MacPorts). ........
2009-07-18 09:55:34 +00:00
url='http://openbabel.org/',
description='Python interface to the Open Babel chemistry library',
long_description=long_description,
zip_safe=True,
cmdclass={'build': CustomBuild, 'install': CustomInstall},
py_modules=['openbabel', 'pybel'],
ext_modules=[obextension],
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Console',
'Environment :: Other Environment',
'Intended Audience :: Education',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: GNU General Public License (GPL)',
'Natural Language :: English',
'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows',
'Operating System :: OS Independent',
'Operating System :: POSIX',
'Operating System :: POSIX :: Linux',
'Operating System :: Unix',
'Programming Language :: C++',
'Programming Language :: Python',
'Topic :: Scientific/Engineering :: Bio-Informatics',
'Topic :: Scientific/Engineering :: Chemistry',
'Topic :: Software Development :: Libraries',
],
)