##  ************************************************************************************************
##
##  BornAgain: simulate and fit reflection and scattering
##
##! @file      source:     Wrap/Python/setup.cfg.in
##!            configured: build/py/setup.cfg (configured by MakePythonWheel.cmake)
##
##! @brief     Metadata for building the Python wheel.
##!
##! @homepage  http://www.bornagainproject.org
##! @license   GNU General Public License v3 or higher (see COPYING)
##! @copyright Forschungszentrum Jülich GmbH 2024
##! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
##
##  ************************************************************************************************

# See <https://setuptools.readthedocs.io/en/latest/userguide/declarative_config.html>
#
# Keys are the same as the keyword arguments one provides to the setup() function;
# see <https://setuptools.readthedocs.io/en/latest/userguide/keywords.html>.
#
# The syntax is defined in `configparser` <https://docs.python.org/3/library/configparser.html>.
#
# example: <https://github.com/pyscaffold/pyscaffold/blob/master/setup.cfg>

# static metadata
[metadata]
name = BornAgain
version = @PROJECT_VERSION@
author = Scientific Computing Group, Forschungszentrum Jülich, MLZ, Garching
author_email = contact@bornagainproject.org
description = Open-source research software to simulate and fit neutron and x-ray reflectometry and grazing-incidence small-angle scattering.
long_description_content_type = text/markdown
long_description = file: Wrap/Python/PyPI_project_description.md, CITATION
license = GNU General Public License
license_files = COPYING
url = https://www.bornagainproject.org
project_urls =
    Documentation = https://www.bornagainproject.org/documentation
    Source = https://jugit.fz-juelich.de/mlz/bornagain
    Tracker = https://jugit.fz-juelich.de/mlz/bornagain/-/issues
    Changelog = https://jugit.fz-juelich.de/mlz/bornagain/-/blob/main/CHANGELOG
    Download = https://www.bornagainproject.org/download/

# see <https://pypi.org/classifiers>
classifiers =
    Programming Language :: C++
    Programming Language :: Python :: 3
    Operating System :: POSIX :: Linux
    Operating System :: MacOS
    Operating System :: Microsoft :: Windows
    Development Status :: 5 - Production/Stable
    Topic :: Scientific/Engineering :: Physics
    License :: OSI Approved :: GNU General Public License (GPL)

platforms = Linux, macOS, Windows

keywords =
    neutron
    reflectometry
    x-ray
    scattering
    simulation
    data analysis

[options]
# packages = find:
# mapping of package names and directories. An empty package name represents the 'root package'
package_dir =
   = src

# instead of listing each package manually, use the `find:` directive
# to automatically discover all packages and subpackages
packages = find_namespace:

# versions of Python supported by the project
python_requires = >=3.10

# include extra non-Python files (datasets, compiled libraries, etc.)
include_package_data = True

# other distributions needed to be installed
install_requires =
     matplotlib
     numpy

# whether the project can be safely installed and run from a zip file
zip_safe = False

[options.packages.find]
where = src

exclude =
     *.py[co],
     __pycache__

[bdist_wheel]
# generated wheel only supports Python3
universal = 0