#!/usr/bin/env python3

from setuptools import setup, Extension

setup(name="rcUAS_insgns",
      version="1.3",
      description="INS/GNS Toolbox",
      author="Curtis L. Olson",
      author_email="curtolson@flightgear.org",
      url="https://github.com/RiceCreekUAS",
      packages = ["rcUAS_insgns"],
      ext_modules=[
          Extension("rcUAS_insgns.structs",
                    define_macros=[("HAVE_PYBIND11", "1")],
                    include_dirs=["/usr/include/eigen3"],
                    sources=["src/nav_common/structs.cpp"],
                    depends=["src/nav_common/structs.h"]),
          Extension("rcUAS_insgns.ekf15",
                    sources=["src/nav_ekf15/pybind11.cpp",
                             "src/nav_ekf15/EKF_15state.cpp",
                             "src/nav_common/nav_functions.cpp"],
                    depends=["src/nav_ekf15/EKF_15state.h",
                             "src/nav_common/constants.h",
                             "src/nav_common/nav_functions.h"]),
          Extension("rcUAS_insgns.ekf15_mag",
                    sources=["src/nav_ekf15_mag/pybind11.cpp",
                             "src/nav_ekf15_mag/EKF_15state.cpp",
                             "src/nav_common/nav_functions.cpp",
                             "src/nav_common/coremag.c"],
                    depends=["src/nav_ekf15_mag/EKF_15state.h",
                             "src/nav_common/constants.h",
                             "src/nav_common/nav_functions.h",
                             "src/nav_common/coremag.h"]),
          Extension("rcUAS_insgns.openloop",
                    sources=["src/nav_openloop/pybind11.cpp",
                             "src/nav_openloop/openloop.cpp",
                             "src/nav_openloop/glocal.cpp",
                             "src/nav_common/nav_functions.cpp",
                             "src/nav_common/coremag.c"],
                    depends=["src/nav_openloop/openloop.h",
                             "src/nav_openloop/glocal.h",
                             "src/nav_common/constants.h",
                             "src/nav_common/nav_functions.h",
                             "src/nav_common/coremag.h"]),
          Extension("rcUAS_insgns.uNavINS",
                    include_dirs=["/usr/include/eigen3"],
                    sources=["src/UASLab_RAPTRS/pybind11.cpp",
                             "src/UASLab_RAPTRS/nav-functions.cpp",
                             "src/UASLab_RAPTRS/uNavINS.cpp"],
                    depends=["src/UASLab_RAPTRS/nav-functions.h",
                             "src/UASLab_RAPTRS/uNavINS.h"]),
          Extension("rcUAS_insgns.uNavINS_BFS",
                    include_dirs=["/usr/include/eigen3"],
                    sources=["src/BFS_raptrs/pybind11.cpp",
                             "src/BFS_raptrs/uNavINS.cpp"],
                    depends=["src/BFS_raptrs/uNavINS.h"]),
          Extension("rcUAS_insgns.ekf17",
                    include_dirs=["/usr/include/eigen3"],
                    sources=["src/nav_tightly_ekf17/pybind11.cpp",
                             "src/nav_tightly_ekf17/nav-functions.cpp",
                             "src/nav_tightly_ekf17/uNavINS.cpp"],
                    depends=["src/nav_tightly_ekf17/nav-functions.h",
                             "src/nav_tightly_ekf17/uNavINS.h"]),                      ],
     )
