gtsam/python/setup.py.in

60 lines
2.2 KiB
Python
Raw Normal View History

"""Setup file to install the GTSAM package."""
from setuptools import setup, find_namespace_packages, Distribution
2019-02-08 19:57:05 +08:00
2023-09-06 00:04:54 +08:00
packages = find_namespace_packages(
where=".",
exclude=('build', 'build.*', 'CMakeFiles', 'CMakeFiles.*',
'gtsam.notebooks', '*.preamble', '*.specializations', 'dist'))
print("PACKAGES: ", packages)
2020-08-31 21:51:14 +08:00
2020-06-25 07:39:49 +08:00
package_data = {
'': [
"./*.so",
2023-12-08 07:25:41 +08:00
"./*.dll",
"./*.pyd",
"*.pyi", "**/*.pyi", # Add the type hints
]
2020-06-25 07:39:49 +08:00
}
# Cleaner to read in the contents rather than copy them over.
readme_contents = open("${GTSAM_SOURCE_DIR}/README.md").read()
2020-06-25 07:39:49 +08:00
2025-03-01 00:42:43 +08:00
# The cibuildwheel tool won't recognize a wheel as platform-dependent unless the ext_modules option is defined in setup.py. This is used to define C/C++ source files that need to be built for the wheel.
# However, we pre-build our C++ files. Thus, we force cibuildwheel to think that there are ext_modules defined by overwriting the has_ext_modules() function.
class BinaryDistribution(Distribution):
def has_ext_modules(foo):
return True
2019-02-08 19:57:05 +08:00
setup(
name='${SETUP_NAME}',
2019-02-08 19:57:05 +08:00
description='Georgia Tech Smoothing And Mapping library',
2019-05-30 05:13:19 +08:00
url='https://gtsam.org/',
2019-02-08 19:57:05 +08:00
version='${GTSAM_VERSION_STRING}', # https://www.python.org/dev/peps/pep-0440/
2019-05-30 05:13:19 +08:00
author='Frank Dellaert et. al.',
author_email='frank.dellaert@gtsam.org',
2019-02-08 19:57:05 +08:00
license='Simplified BSD license',
2019-03-11 22:54:12 +08:00
keywords='slam sam robotics localization mapping optimization',
long_description_content_type='text/markdown',
2020-06-25 07:39:49 +08:00
long_description=readme_contents,
2019-02-08 19:57:05 +08:00
# https://pypi.org/pypi?%3Aaction=list_classifiers
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Education',
'Intended Audience :: Developers',
'Intended Audience :: Science/Research',
2019-02-20 17:03:34 +08:00
'Operating System :: MacOS',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX',
2019-02-08 19:57:05 +08:00
'License :: OSI Approved :: BSD License',
2019-02-20 17:03:34 +08:00
'Programming Language :: Python :: 3',
2019-02-08 19:57:05 +08:00
],
2019-02-08 23:15:20 +08:00
packages=packages,
include_package_data=True,
2020-06-25 07:39:49 +08:00
package_data=package_data,
distclass=BinaryDistribution,
test_suite="gtsam.tests",
install_requires=open("${GTSAM_SOURCE_DIR}/python/requirements.txt").readlines(),
zip_safe=False,
2019-02-08 19:57:05 +08:00
)