Skip to content

build: replace catkin/mrt_cmake_modules with standalone CMake and add Python bindings - #1

Draft
huhaohao wants to merge 9 commits into
mainfrom
remove_catkin_dep
Draft

build: replace catkin/mrt_cmake_modules with standalone CMake and add Python bindings#1
huhaohao wants to merge 9 commits into
mainfrom
remove_catkin_dep

Conversation

@huhaohao

Copy link
Copy Markdown

Changes

Build system (CMakeLists.txt)

  • Removes catkin, mrt_cmake_modules, and AutoDeps
  • Defines uniform_bspline_ceres::uniform_bspline_ceres as a standard INTERFACE CMake target with install exports
  • Fetches uniform_bspline via FetchContent when not found via find_package
  • Adds BUILD_PYTHON_BINDINGS, BUILD_TESTS, BUILD_DOCUMENTATION options (all OFF by default)

Python bindings (bindings/python/)

  • New pybind11 module uniform_bspline_ceres with SplineFitter and SplinePositionFinder
  • Four spline families (1d1d, 1d3d, 3d1d, 3d2d) at degrees 1–5

Python packaging

  • New pyproject.toml with scikit-build-core backend; pip install . works standalone
  • New vcpkg.json with optional tests and python-bindings features

CI (.github/workflows/ci.yml)

  • Three-stage pipeline: C++ build & test, Python bindings & pytest, Doxygen → GitHub Pages

Documentation

  • README.md restructured: short Quick Start + separate Usage section

huhaohao and others added 9 commits May 21, 2026 15:29
When this project is added with add_subdirectory() alongside a vendored
copy of uniform_bspline, find_package() does not see the in-tree target
-- it only searches for an installed uniform_bsplineConfig.cmake. The
QUIET find therefore fails, FetchContent clones a second copy, and
adding it collides with the targets the vendored copy already defined:

  add_library cannot create target "uniform_bspline" ... already exists

Skip the find and its fetch fallback entirely when
uniform_bspline::uniform_bspline is already defined. Standalone builds
are unaffected: the target does not exist there, so both run as before.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant