"""Setup file to install the GTSAM package.""" from setuptools import setup, find_namespace_packages, Distribution packages = find_namespace_packages( where=".", exclude=('build', 'build.*', 'CMakeFiles', 'CMakeFiles.*', 'gtsam.notebooks', '*.preamble', '*.specializations', 'dist')) print("PACKAGES: ", packages) package_data = { '': [ "./*.so", "./*.dll", "./*.pyd", "*.pyi", "**/*.pyi", # Add the type hints ] } # Cleaner to read in the contents rather than copy them over. readme_contents = open("${GTSAM_SOURCE_DIR}/README.md").read() class BinaryDistribution(Distribution): def has_ext_modules(foo): return True setup( name='${SETUP_NAME}', description='Georgia Tech Smoothing And Mapping library', url='https://gtsam.org/', version='${GTSAM_VERSION_STRING}', # https://www.python.org/dev/peps/pep-0440/ author='Frank Dellaert et. al.', author_email='frank.dellaert@gtsam.org', license='Simplified BSD license', keywords='slam sam robotics localization mapping optimization', long_description_content_type='text/markdown', long_description=readme_contents, # https://pypi.org/pypi?%3Aaction=list_classifiers classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Education', 'Intended Audience :: Developers', 'Intended Audience :: Science/Research', 'Operating System :: MacOS', 'Operating System :: Microsoft :: Windows', 'Operating System :: POSIX', 'License :: OSI Approved :: BSD License', 'Programming Language :: Python :: 3', ], packages=packages, include_package_data=True, package_data=package_data, distclass=BinaryDistribution, test_suite="gtsam.tests", install_requires=open("${GTSAM_SOURCE_DIR}/python/requirements.txt").readlines(), zip_safe=False, )