This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/packages/python/swig/setup.py.in

170 lines
5.5 KiB
Python
Raw Normal View History

2018-01-05 16:57:38 +00:00
#!/usr/bin/env python
# coding: utf-8
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
from __future__ import print_function
2017-09-06 01:09:46 +01:00
import setuptools
from setuptools import setup
from setuptools.extension import Extension
from codecs import open
from os import path, makedirs, walk
from shutil import copytree, rmtree, copy2, move
2017-10-04 09:18:17 +01:00
import sysconfig
from glob import glob
from pathlib import Path
import platform
import os.path
# the name of the package
name = 'YAP4PY'
# -----------------------------------------------------------------------------
# Minimal Python version sanity check
# -----------------------------------------------------------------------------
import sys
v = sys.version_info
if v[:2] < (2, 7) or (v[0] >= 3 and v[:2] < (3, 3)):
error = "ERROR: %s requires Python version 2.7 or 3.3 or above." % name
print(error, file=sys.stderr)
sys.exit(1)
PY3 = (sys.version_info[0] >= 3)
# -----------------------------------------------------------------------------
# get on with it
# -----------------------------------------------------------------------------
from codecs import open
from os import path, makedirs, walk
from shutil import copytree, rmtree, copy2, move
from glob import glob
from pathlib import Path
import platform
2017-10-04 09:18:17 +01:00
from os.path import dirname, join,abspath
import os
import shutil
from distutils.core import setup
2017-10-04 09:18:17 +01:00
here = abspath(dirname(__file__))
2017-10-11 02:24:15 +01:00
libpydir = abspath(sysconfig.get_path('platlib'))
2017-11-09 12:14:41 +00:00
libpyauxdir = abspath(os.path.dirname('stdlib'))
2017-10-04 09:18:17 +01:00
#pkg_root = join(here, name)
2017-09-06 01:09:46 +01:00
2017-10-11 02:24:15 +01:00
here = path.abspath(path.dirname(__file__))
2017-09-06 01:09:46 +01:00
sys.path.insert(0, "${CMAKE_CURRENT_SOURCE_DIR}")
2017-10-11 02:24:15 +01:00
if platform.system() == 'Windows':
local_libs = []
2017-11-08 09:29:01 +00:00
win_libs = ['wsock32','ws2_32']
my_extra_link_args = ['-Wl,-export-all-symbols']
2017-11-10 23:08:35 +00:00
elif platform.system() == 'Darwin':
2018-01-05 16:57:38 +00:00
my_extra_link_args = ['-L','..','-Wl,-rpath','-Wl,${CMAKE_INSTALL_FULL_LIBDIR}']
2017-11-10 23:08:35 +00:00
win_libs = []
local_libs = ['Py4YAP']
elif platform.system() == 'Linux':
2018-01-29 15:24:32 +00:00
my_extra_link_args = ['-L','..','-Wl,-rpath','-Wl,${CMAKE_INSTALL_FULL_LIBDIR}']
win_libs = []
2017-10-04 09:18:17 +01:00
local_libs = ['Py4YAP']
2017-11-09 12:14:41 +00:00
# or dll in glob('yap/dlls/*'):
# move( dll ,'lib' )
2017-11-08 09:29:01 +00:00
native_sources = ["yap4py/yap_wrap.cxx","yap4py/yapi.cpp"]
2017-09-06 01:09:46 +01:00
#gmp_dir = path.abspath(path.dirname("${GMP_LIBRARIES}"))
#python_libdir = path.abspath(path.dirname("${PYTHON_LIBRARIES}")
# Get the long description from the README file
2017-11-08 09:29:01 +00:00
extensions = [Extension('yap4py._yap', native_sources,
define_macros=[('MAJOR_VERSION', '1'),
('MINOR_VERSION', '0'),
('_YAP_NOT_INSTALLED_', '1'),
('YAP_PYTHON', '1'),
('_GNU_SOURCE', '1')],
2017-10-11 02:24:15 +01:00
runtime_library_dirs=[abspath(sysconfig.get_path('platlib')),
abspath(sysconfig.get_path('platlib'))],
swig_opts=['-modern', '-c++', '-py3',
2017-10-04 09:18:17 +01:00
'-DX_API', '-Iyap4py/include' ],
2017-10-11 02:24:15 +01:00
library_dirs=[".",'../../..'],
extra_link_args=my_extra_link_args,
2017-11-08 09:29:01 +00:00
libraries=['Yap','gmp']+win_libs+local_libs,
include_dirs=['${CMAKE_SOURCE_DIR}/H',
'${CMAKE_SOURCE_DIR}/H/generated',
'${CMAKE_SOURCE_DIR}/include',
'${CMAKE_SOURCE_DIR}/OPTYap',
'${CMAKE_SOURCE_DIR}/os',
'${CMAKE_SOURCE_DIR}/utf8proc',
'${CMAKE_SOURCE_DIR}/packages/python',
'../../..',
'${CMAKE_SOURCE_DIR}/CXX' ]
2017-10-04 09:18:17 +01:00
)]
package_data = {
2017-11-08 09:29:01 +00:00
#'': '*.*'
}
2017-11-08 09:29:01 +00:00
data_files=[]
2017-10-11 02:24:15 +01:00
version_ns = {'__version__': '6.3.5', 'minor-version': '6', 'minor-version': '3', 'patch': '5'}
setup_args = dict(
name=name,
version=version_ns['__version__'],
2017-10-04 09:18:17 +01:00
scripts=glob(join('scripts', '*')),
2017-11-08 09:29:01 +00:00
packages=['yap4py'],
2017-10-11 02:24:15 +01:00
ext_modules=extensions,
2017-11-08 09:29:01 +00:00
py_modules=[],
# package_data=package_data,
include_package_data=True,
2017-10-11 02:24:15 +01:00
data_files = data_files,
2017-10-04 09:18:17 +01:00
# requirements=[
# 'm2w64-gmp',
# 'm2-msys2-keyring',
# 'm2-msys2-launcher-git',
# 'm2-msys2-runtime',
# ],
description="YAP in Python",
author='YAP Development Team',
2017-10-04 09:18:17 +01:00
author_email='vsc@dcc.fc.up.pt',
url='http://www.dcc.fc.up/~vsc/yap',
license='BSD',
platforms="Linux, Mac OS X, Windows",
keywords=['Interactive', 'Interpreter', 'Shell', 'Web'],
classifiers=[
'Intended Audience :: Developers',
'Intended Audience :: System Administrators',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: BSD License',
'Programming Language :: Python',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
],
)
if 'develop' in sys.argv or any(a.startswith('bdist') for a in sys.argv):
import setuptools
setuptools_args = {}
install_requires = setuptools_args['install_requires'] = [
]
extras_require = setuptools_args['extras_require'] = {
'test:python_version=="2.7"': ['mock'],
'test': ['nose_warnings_filters', 'nose-timer'],
}
if 'setuptools' in sys.modules:
setup_args.update(setuptools_args)
if __name__ == '__main__':
setup(**setup_args)