diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b9bbd35a..a5384a67 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -24,8 +24,7 @@ jobs:
compiler: gcc
- os: ubuntu-20.04
compiler: clang
- # - os: macos-11
- # compiler: clang
+
fail-fast: false
steps:
- uses: actions/checkout@v3
@@ -39,18 +38,11 @@ jobs:
./install_deps_ubuntu.sh
if: matrix.os == 'ubuntu-20.04'
- - name: Install dependencies (Mac)
- working-directory: ./infra/scripts
- run: |
- ./install_deps_mac.sh
- if: matrix.os == 'macos-11'
-
- name: Download dependencies (proto)
- working-directory: ./infra/
+ working-directory: ./infra
run: |
+ ls -l
source ./bootstrap_venv.sh
- cd scripts
- ./install_farm_ng_cmake.sh
- name: Compile (gcc)
working-directory: ./infra/scripts
@@ -67,11 +59,3 @@ jobs:
source ../venv/bin/activate
./compile_clang.sh
if: matrix.compiler == 'clang'
-
- - name: clang-tidy
- working-directory: ./infra/
- run: |
- source ./bootstrap_venv.sh
- cd ..
- ./run_clang_tidy.sh
- if: matrix.os == 'ubuntu-20.04' && matrix.compiler == 'clang'
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 019dc34a..3e90b085 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -2,7 +2,7 @@ name: Release
on:
push:
- branches: [release-build-branch, merge]
+ branches: [release-build-branch]
workflow_dispatch:
concurrency:
diff --git a/cmake/scripts/download_release.sh b/cmake/scripts/download_release.sh
index 53752ea7..d98fbc75 100755
--- a/cmake/scripts/download_release.sh
+++ b/cmake/scripts/download_release.sh
@@ -1,14 +1,11 @@
#!/bin/bash -ex
-# This script downloads the matching farm_ng_cmake Github release based on the
-# current git SHA and inferred platform version. The release and platform can be
-# overridden through the RELEASE_SHA and RELEASE_PLATFORM env variables.
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
cd $DIR
# Choose release SHA based on git repo SHA
-RELEASE_SHA="${RELEASE_SHA:-$(git rev-parse --short HEAD)}"
+RELEASE_SHA= b6feaaf2ab71bf8b695d0e405d39a8a6dde2f883
# Guess platform based on current platform
if [[ -z "${RELEASE_PLATFORM}" ]]; then
diff --git a/cpp/sophus2/.github/ISSUE_TEMPLATE/bug_report.md b/cpp/sophus2/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 867a07e6..00000000
--- a/cpp/sophus2/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-name: Bug report
-about: 'Report a specific bug. For more general help and questions use discussions:
- https://github.com/strasdat/Sophus/discussions/categories/q-a'
-title: ''
-labels: bug
-assignees: ''
-
----
-
-**Describe the bug**
-[A clear and concise description of what the bug is.]
-
-**To Reproduce**
-[Steps to reproduce the behavior:]
-1.
-2.
-3.
-
-**Expected behavior**
-[A clear and concise description of what you expected to happen.]
-
-**Sophus version: commit hash**
-
-[Commit hash on main branch which has the bug. Please test on HEAD of main first before submitting a bug.]
-
-**Additional context**
diff --git a/cpp/sophus2/.github/ISSUE_TEMPLATE/feature_request.md b/cpp/sophus2/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 1fedc76e..00000000
--- a/cpp/sophus2/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-name: Feature request
-about: 'Suggest a specific feature for Sophus. For more general ideas, please use
- discussions: https://github.com/strasdat/Sophus/discussions/categories/ideas'
-title: ''
-labels: feature request
-assignees: ''
-
----
-
-**Is your feature request related to a problem? Please describe.**
-[A clear and concise description of what the problem is.]
-
-**Describe the solution you'd like**
-[A clear and concise description of what you want to happen.]
-
-**Describe alternatives you've considered**
-[A clear and concise description of any alternative solutions or features you've considered.]
-
-**Additional context**[
-Add any other context or screenshots about the feature request here.]
diff --git a/cpp/sophus2/.github/workflows/build.yml b/cpp/sophus2/.github/workflows/build.yml
deleted file mode 100644
index b6035967..00000000
--- a/cpp/sophus2/.github/workflows/build.yml
+++ /dev/null
@@ -1,181 +0,0 @@
-on:
- push:
- branches: [main, sophus2]
- pull_request:
-
- workflow_dispatch:
-
-jobs:
- build:
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- include:
- - os: ubuntu-20.04
- compiler: gcc
- optional_features: minimal
- tests: unit_test
- access: col_major
- build_type: Release
- - os: ubuntu-20.04
- compiler: gcc
- optional_features: ceres_proto
- tests: unit_test
- access: col_major
- build_type: Release
- - os: ubuntu-20.04
- compiler: gcc
- optional_features: minimal
- tests: unit_test
- access: row_major
- build_type: Release
- - os: ubuntu-20.04
- compiler: clang
- optional_features: minimal
- tests: clang_tidy
- access: col_major
- build_type: Release
- - os: ubuntu-20.04
- compiler: gcc
- optional_features: minimal
- tests: coverage
- access: col_major
- build_type: Debug
- - os: macos-11
- compiler: clang
- optional_features: minimal
- tests: unit_test
- access: col_major
- build_type: Release
- - os: macos-12
- compiler: clang
- optional_features: minimal # todo: ceres_proto here
- tests: unit_test
- access: col_major
- build_type: Release
-
- fail-fast: false
- env:
- BUILD_TYPE: ${{ matrix.build_type }}
-
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: "recursive"
-
- - uses: hendrikmuhs/ccache-action@v1.2
- with:
- key: ${{ github.job }}-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.optional_features }}-${{ matrix.tests }}-${{ matrix.access }}-${{ matrix.build_type }}
-
- - name: Install dependencies (Ubuntu)
- working-directory: ./infra/scripts
- run: |
- ./install_deps_ubuntu.sh
- if: matrix.os == 'ubuntu-20.04'
-
- - name: Install dependencies (Mac)
- working-directory: ./infra/scripts
- run: |
- ./install_deps_mac.sh
- if: matrix.os == 'macos-11' || matrix.os == 'macos-12'
-
- - name: Install dependencies from source
- working-directory: ./infra/scripts
- run: |
- ./install_deps_without_ceres_proto.sh
- if: matrix.optional_features == 'minimal'
-
- - name: Download dependencies (gcc, ceres+proto)
- working-directory: ./infra/
- run: |
- source ./bootstrap_venv.sh
- cd scripts
- ./install_cmake_farm_ng_core.sh
- env:
- ROW_ACCESS: matrix.access
- if: matrix.optional_features == 'ceres_proto'
-
- - name: Compile (gcc)
- working-directory: ./infra/scripts
- run:
- ./compile_gcc.sh
- env:
- ROW_ACCESS: matrix.access
- if: matrix.tests == 'unit_test' && matrix.compiler == 'gcc' && matrix.optional_features == 'minimal'
-
- - name: Compile (gcc, ceres_proto)
- working-directory: ./infra/scripts
- run: |
- ls
- source ../venv/bin/activate
- ./compile_gcc.sh
- env:
- ROW_ACCESS: matrix.access
- SOPHUS_CERES: On
- if: matrix.tests == 'unit_test' && matrix.compiler == 'gcc' && matrix.optional_features == 'ceres_proto'
-
- - name: Compile (clang)
- working-directory: ./infra/scripts
- run:
- ./compile_clang.sh
- env:
- ROW_ACCESS: matrix.access
- if: matrix.tests == 'unit_test' && matrix.compiler == 'clang'
-
- - name: Compile (clang, ceres_proto)
- working-directory: ./infra/scripts
- run: |
- ls
- source ../venv/bin/activate
- ./compile_clang.sh
- env:
- ROW_ACCESS: matrix.access
- SOPHUS_CERES: On
- BUILD_FARM_NG_PROTOS: On
- if: matrix.tests == 'unit_test' && matrix.compiler == 'clang' && matrix.optional_features == 'ceres_proto'
-
- - name: Run unit tests
- working-directory: ./infra/scripts/build
- run: |
- ctest --output-on-failure
- env:
- ROW_ACCESS: matrix.access
- if: matrix.tests == 'unit_test' && matrix.optional_features == 'minimal'
-
- - name: Run unit tests (ceres_proto)
- working-directory: ./infra/scripts
- run: |
- source ../venv/bin/activate
- cd build
- ctest --output-on-failure
- env:
- ROW_ACCESS: matrix.access
- if: matrix.tests == 'unit_test' && matrix.optional_features == 'ceres_proto'
-
-
- # todo: re-enable this
-
- - name: Run install tests
- working-directory: ./infra/scripts/build
- run: |
- sudo cmake --install .
- # cd ..
- # mkdir example_build
- # cmake -G ../../../cpp/examples/test_install_targets
- # ninja
- # env:
- # ROW_ACCESS: matrix.access
- if: matrix.tests == 'unit_test' && matrix.optional_features == 'minimal'
-
- - name: Compile (clang) & tests coverage
- working-directory: ./infra/scripts
- run:
- ./compile_gcc_coverage.sh
- env:
- ROW_ACCESS: matrix.access
- if: matrix.tests == 'coverage'
-
- - name: clang-tidy
- run: |
- ./run_clang_tidy.sh
- if: matrix.tests == 'clang_tidy'
diff --git a/cpp/sophus2/.github/workflows/docs.yml b/cpp/sophus2/.github/workflows/docs.yml
deleted file mode 100644
index 6b191263..00000000
--- a/cpp/sophus2/.github/workflows/docs.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-on:
- push:
- branches: [ main, sophus2-docs, sophus2 ]
-
- workflow_dispatch:
-
-jobs:
- build:
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ubuntu-20.04]
- fail-fast: false
-
-
- steps:
- - uses: actions/checkout@v3
- with:
- submodules: "recursive"
-
- - name: Install docusaurus dependencies
- working-directory: docs
- run: yarn install --frozen-lockfile
- - name: Test build website
- working-directory: docs
- run: yarn build
-
- - name: Deploy
- uses: peaceiris/actions-gh-pages@v3
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- publish_dir: docs/build
- publish_branch: docs
- destination_dir: latest
diff --git a/cpp/sophus2/.github/workflows/format.yml b/cpp/sophus2/.github/workflows/format.yml
deleted file mode 100644
index 95cb0783..00000000
--- a/cpp/sophus2/.github/workflows/format.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-on:
- push:
- branches: [ main, sophus2 ]
- pull_request:
-
- workflow_dispatch:
-
-jobs:
- pre-commit-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-python@v3
- - uses: pre-commit/action@v3.0.0
- - uses: pre-commit-ci/lite-action@v1.0.0
- if: always()
diff --git a/cpp/sophus2/.github/workflows/pypi-release.yml b/cpp/sophus2/.github/workflows/pypi-release.yml
deleted file mode 100644
index dbab1bc4..00000000
--- a/cpp/sophus2/.github/workflows/pypi-release.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-on:
- release:
- types: [published]
-
-jobs:
- pypi:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: actions/setup-python@v2
- - name: Install dependencies
- run: python3 -m pip install --upgrade setuptools wheel
- - name: Compile project
- run: python3 -m pip install -e .
- - name: Build distribution package
- run: python3 setup.py sdist bdist_wheel
- - name: Publish distribution 📦 to PyPI
- uses: pypa/gh-action-pypi-publish@release/v1
- with:
- user: __token__
- password: ${{ secrets.pypi_password_sophus }}
diff --git a/cpp/sophus2/.github/workflows/sympy.yml b/cpp/sophus2/.github/workflows/sympy.yml
deleted file mode 100644
index 0964db85..00000000
--- a/cpp/sophus2/.github/workflows/sympy.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-on:
- push:
- branches: [ main, sophus2 ]
- pull_request:
-
- workflow_dispatch:
-
-jobs:
- build:
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [ubuntu-20.04]
- fail-fast: false
-
-
- steps:
- - uses: actions/checkout@v2
-
- - name: Run sympy tests
- run: |
- pip3 install sympy==1.8
- cd py/sympy
- ./run_tests.sh
diff --git a/cpp/sophus2/README.md b/cpp/sophus2/README.md
index df7d0841..5cd3609f 100644
--- a/cpp/sophus2/README.md
+++ b/cpp/sophus2/README.md
@@ -1,198 +1,2 @@
-
Sophus
-
-
- A collection of c++ types for 2d and 3d geometric problems.
-
-
-
-
-
- Manifolds, Image classes, Camera models and more.
-
-
-
-Sophus started as a c++ implementaion of Lie Groups / Manifolds. It evolved to a
-collection of types and functions commonly used or 2d and 3d geometric problems
-especially in the domain of `robotics`, `computer vision` annd `graphics`.
-
-- [Lie groups / Manifold](#lie-groups) such as `SO(2)` and
- `SO(3)` to present rotations in 2d and 3,
-- [Other geometric conecpts](#other-geometric-concepts) such as unit vector, plane
- fitting and inverse depth points,
-- [Image classes](#image-classes)
-- [Sensor models](#sensor-models) such `camera models` (as pinhole, orthographic
- and lens distortion model) and `IMU models`.
-- [Sympy](#sympy) representations of selected types - for
- instance o symbolically derive Jacobians and autogenerate c++ code.
-- [Serialization](#serialization) using proto (and soon json).
-
-## 👟Getting Started
-
-[Working in progress.]
-
-Check out the docs for now:
-
-(Which are also work in progress...)
-
-## 🌐Lie groups
-
-### tldr: rotations, translations and scaling in 2d and 3d
-
-`Lie groups` are generalizations of the Euclidean vector spaces R^N. A little
-more formally, a Manifold which is also an [abstract group](https://en.wikipedia.org/wiki/Group_theory#Abstract_groups).
-
-*Okay, and what is a Manifold?*
-
-`Manifold` are generalizations of the Euclidean vector spaces R^N. In
-particular, they behave locally like a Euclidean vector space, but globally
-can have a very different structures. In particular there can be wrap-around.
-The circle group SO(2) is the simplest example for such wrap around. Assume,
-we have a dial pointing North. If you turn the dial 90 degree to the left, it
-points West. If you turn it another 90 degrees it turns South. Now, if you turn
-it again 90 degrees is points East. And you turn it left again for 90 degrees it
-points North again. It wrapped around: `90 "+" 90 "+" 90 "+" 90 = 0`.
-
-*Do I need to understand the concept of Manifold, Group Theory and Lie Groups
-in order to use Sophus?*
-
-Not at all! If you aim to solve geometric problems in 2d and 3d, it is best to
-directly into concrete examples. By far the most commonly used Lie groups of
-Sophus are the group of 3D rotations, also called Special Orthogonal Group,
-short SO(3), as well as the group of rotation and translation in 3D, short
-SE(3).
-
-### 3d rotation example using the SO(3) type
-
-```c++
- // The following demonstrates the group multiplication of rotation matrices
-
- // Create rotation matrices from rotations around the x and y and z axes:
- double const kPi = sophus::kPi;
- sophus::Rotation3F64 R1 = sophus::Rotation3F64::fromRx(kPi / 4);
- sophus::Rotation3F64 R2 = sophus::Rotation3F64::fromRy(kPi / 6);
- sophus::Rotation3F64 R3 = sophus::Rotation3F64::fromRz(-kPi / 3);
-
- std::cout << "The rotation matrices are" << std::endl;
- std::cout << "R1:\n" << R1.matrix() << std::endl;
- std::cout << "R2:\n" << R2.matrix() << std::endl;
- std::cout << "R3:\n" << R3.matrix() << std::endl;
- std::cout << "Their product R1*R2*R3:\n"
- << (R1 * R2 * R3).matrix() << std::endl;
- std::cout << std::endl;
-
- // Rotation matrices can act on vectors
- Eigen::Vector3d x;
- x << 0.0, 0.0, 1.0;
- std::cout << "Rotation matrices can act on 3-vectors" << std::endl;
- std::cout << "x\n" << x << std::endl;
- std::cout << "R2*x\n" << R2 * x << std::endl;
- std::cout << "R1*(R2*x)\n" << R1 * (R2 * x) << std::endl;
- std::cout << "(R1*R2)*x\n" << (R1 * R2) * x << std::endl;
- std::cout << std::endl;
-
- // SO(3) are internally represented as unit quaternions.
- std::cout << "R1 in matrix form:\n" << R1.matrix() << std::endl;
- std::cout << "R1 in unit quaternion form:\n"
- << R1.unitQuaternion().coeffs() << std::endl;
- // Note that the order of coefficients of Eigen's quaternion class is
- // (imag0, imag1, imag2, real)
- std::cout << std::endl;
-```
-
-[hello_so3.cpp](cpp/examples/test_install_targets/hello_so3.cpp)
-
-### 3d rotation + translation example using the SE(3) type
-
-```c++
- // Example of create a rigid transformation from an SO(3) = 3D rotation and a
- // translation 3-vector:
-
- // Let use assume there is a camera in the world. First we describe its
- // orientation in the world reference frame.
- sophus::Rotation3F64 world_from_camera_rotation =
- sophus::Rotation3F64::fromRx(sophus::kPi / 4);
- // Then the position of the camera in the world.
- Eigen::Vector3d camera_in_world(0.0, 0.0, 1.0);
-
- // The pose (position and orientation) of the camera in the world is
- // constructed by its orientation ``world_from_camera_rotation`` as well as
- // its position ``camera_in_world``.
- sophus::Isometry3F64 world_anchored_camera_pose(
- world_from_camera_rotation, camera_in_world);
-
- // SE(3) naturally representation is a 4x4 matrix which can be accessed using
- // the .matrix() method:
- std::cout << "world_anchored_camera_pose:\n"
- << world_anchored_camera_pose.matrix() << std::endl;
-```
-
-[hello_se3](cpp/examples/test_install_targets/hello_se3.cpp)
-
-### Tabel of Lie Groups
-
-The following table gives an overview of all Lie Groups in Sophus.
-
-| c++ type | Lie group name | Description |
-| ----------------------------------------------|------------------------------------------------------| ---------------------------------------------------------------------------------------------------------- |
-| [`Rotation2`](cpp/sophus/lie/so2.h) | Special Orthogonal Group in 2D, SO(2) | rotations in 2d, also called Circle Group, or just "angle" |
-| [`Rotation3`](cpp/sophus/lie/so3.h) | Special Orthogonal Group in 3D, SO(3) | rotations in 3d, 3D orientations |
-| [`Isometry2`](cpp/sophus/lie/se2.h) | Special Euclidean Group in 2D, SE(3) | rotations and translations in 2D, also called 2D rigid body transformations, 2d poses, plane isometries |
-| [`Isometry3`](cpp/sophus/lie/se3.h) | Special Euclidean Group in 3D, SE(3) | rotations and translations in 3D, also called rigid body transformations,6 DoF poses, Euclidean isometries |
-| [`RxSo2`](cpp/sophus/lie/rxso2.h) | Direct product of SO(3) and scalar matrix, R x SO(2) | scaling and rotations in 2D |
-| [`RxSo3`](cpp/sophus/lie/rxso3.h) | Direct product of SO(3) and scalar matrix R x SO(3) | scaling and rotations in 3D |
-| [`Similarity2`](cpp/sophus/lie/sim2.h) | Similarity Group in 2D, Sim(2) | scaling, rotations and translation in 2D |
-| [`Similarity3`](cpp/sophus/lie/sim3.h) | Similarity Group in 3D, Sim(3) | scaling, rotations and translation in 3D |
-| [`Cartesian2`](cpp/sophus/lie/cartesian.h) | 2D Euclidean Vector Space, R^2 | all vector spaces are trivial Lie groups, also called 2d translation group, the translation part of SE(2) |
-| [`Cartesian3`](cpp/sophus/lie/cartesian.h) | 3D Euclidean Vector Space, R^3 | all vector spaces are trivial Lie groups, also called 3d translation group, the translation part of SE(2) |
-| ----------------------------------------------|------------------------------------------------------| ---------------------------------------------------------------------------------------------------------- |
-
-Supported advanced features on Lie groups:
-
-- ✅ (linear) interpolation
-- ✅ Spline interpolation
-- ✅ Averaging (of more than two elements)
-
-## 📐More Geometry
-
-## 🌁Image classes
-
-## 📷Sensor Models
-
-## 📜Sympy
-
-## 🫙Serialization
-
-## 🧑🏽🏭Contribute
-
-Contributions are welcome!
-
-## 📝License
-
-This project is licensed under the [MIT](https://opensource.org/licenses/MIT) license.
-
-## 👩🚀Show your support
-
-Give a ⭐️ if this project helped you!
+sophus2 forked form https://github.com/strasdat/Sophus/commits/sophus2
+27056f4e8aca3d36ffe6796149df5388c28767fc
\ No newline at end of file
diff --git a/cpp/sophus2/infra/bootstrap_venv.sh b/cpp/sophus2/infra/bootstrap_venv.sh
deleted file mode 100755
index c4a237ad..00000000
--- a/cpp/sophus2/infra/bootstrap_venv.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-set -ex
-
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-
-source $DIR/scripts/venv_activate.sh
-$DIR/scripts/venv_update_prefix_deps.sh
diff --git a/cpp/sophus2/infra/scripts/compile_clang.sh b/cpp/sophus2/infra/scripts/compile_clang.sh
deleted file mode 100755
index 40fb8984..00000000
--- a/cpp/sophus2/infra/scripts/compile_clang.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-set -x # echo on
-set -e # exit on error
-
-mkdir -p build
-cd build
-CC=clang CXX=clang++ cmake -G Ninja -DSOPHUS_CERES=$SOPHUS_CERES -DROW_ACCESS=$ROW_ACCESS -DBUILD_FARM_NG_PROTOS=$BUILD_PROTOS -DBUILD_SOPHUS_TESTS=On --debug-find ../../..
-ninja
diff --git a/cpp/sophus2/infra/scripts/compile_gcc.sh b/cpp/sophus2/infra/scripts/compile_gcc.sh
deleted file mode 100755
index 5ed08d3c..00000000
--- a/cpp/sophus2/infra/scripts/compile_gcc.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-set -x # echo on
-set -e # exit on error
-
-mkdir -p build
-cd build
-cmake -DSOPHUS_CERES=$SOPHUS_CERES -DROW_ACCESS=$ROW_ACCESS -DBUILD_FARM_NG_PROTOS=$BUILD_PROTOS -DBUILD_SOPHUS_TESTS=On --debug-find ../../..
-make -j1
diff --git a/cpp/sophus2/infra/scripts/compile_gcc_coverage.sh b/cpp/sophus2/infra/scripts/compile_gcc_coverage.sh
deleted file mode 100755
index 57ba978b..00000000
--- a/cpp/sophus2/infra/scripts/compile_gcc_coverage.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-set -x # echo on
-set -e # exit on error
-
-mkdir -p build
-cd build
-CC=clang CXX=clang++ cmake -G Ninja -DSOPHUS_CERES=$SOPHUS_CERES -DROW_ACCESS=$ROW_ACCESS -DBUILD_FARM_NG_PROTOS=$BUILD_PROTOS -DCOVERAGE=On --debug-find ../../..
-ninja
-
-ninja test
-
-#gcovr
diff --git a/cpp/sophus2/infra/scripts/install_cmake_farm_ng_core.sh b/cpp/sophus2/infra/scripts/install_cmake_farm_ng_core.sh
deleted file mode 100755
index f82f84aa..00000000
--- a/cpp/sophus2/infra/scripts/install_cmake_farm_ng_core.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-set -x # echo on
-set -e # exit on error
-
-cmake --version
-
-rm -rf cmake-build
-rm -rf farm-ng-core-build
-
-cd ../ci-submodules
-
-mkdir cmake-build
-cd cmake-build
-cmake -G Ninja ../cmake
-ninja
-sudo ninja install
-cd ..
-
-mkdir farm-ng-core-build
-cd farm-ng-core-build
-cmake -G Ninja -DBUILD_FARM_NG_PROTOS=On ../farm-ng-core
-ninja
-sudo ninja install
-cd ..
-
-cd ../scripts
diff --git a/cpp/sophus2/infra/scripts/install_deps_ceres.sh b/cpp/sophus2/infra/scripts/install_deps_ceres.sh
deleted file mode 100755
index 5b374c82..00000000
--- a/cpp/sophus2/infra/scripts/install_deps_ceres.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-set -x # echo on
-set -e # exit on error
-
-cmake --version
-
-rm -rf ceres-solver-build
-
-cd ../ci-submodules
-
-mkdir ceres-solver-build
-cd ceres-solver-build
-cmake -G Ninja ../ceres-solver
-ninja
-sudo ninja install
-cd ..
-
-cd ../scripts
diff --git a/cpp/sophus2/infra/scripts/install_deps_mac.sh b/cpp/sophus2/infra/scripts/install_deps_mac.sh
deleted file mode 100755
index 2501bdb7..00000000
--- a/cpp/sophus2/infra/scripts/install_deps_mac.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-set -x # echo on
-set -e # exit on error
-
-brew install --verbose \
- ccache \
- glog \
- ninja
diff --git a/cpp/sophus2/infra/scripts/install_deps_ubuntu.sh b/cpp/sophus2/infra/scripts/install_deps_ubuntu.sh
deleted file mode 100755
index e02e4d94..00000000
--- a/cpp/sophus2/infra/scripts/install_deps_ubuntu.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-
-set -x # echo on
-set -e # exit on error
-
-cmake --version
-
-sudo apt-get -qq update
-sudo apt-get install \
- ccache \
- gfortran \
- libc++-dev \
- libatlas-base-dev \
- libgtest-dev \
- libgoogle-glog-dev \
- libprotobuf-dev \
- protobuf-compiler \
- libsuitesparse-dev \
- ninja-build
-
-pip install git+https://github.com/gcovr/gcovr.git
diff --git a/cpp/sophus2/infra/scripts/install_deps_without_ceres_proto.sh b/cpp/sophus2/infra/scripts/install_deps_without_ceres_proto.sh
deleted file mode 100755
index 51f0699d..00000000
--- a/cpp/sophus2/infra/scripts/install_deps_without_ceres_proto.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-
-set -x # echo on
-set -e # exit on error
-
-cmake --version
-
-rm -rf cmake-build
-rm -rf fmt-build
-rm -rf expected-build
-rm -rf farm-ng-core-build
-rm -rf eigen-build
-rm -rf Sophus-build
-
-cd ../ci-submodules
-
-mkdir cmake-build
-cd cmake-build
-cmake -G Ninja ../cmake
-ninja
-sudo ninja install
-cd ..
-
-mkdir fmt-build
-cd fmt-build
-cmake -G Ninja -DBUILD_SHARED_LIBS=On -DFMT_TEST=Off ../fmt
-ninja
-sudo ninja install
-cd ..
-
-mkdir expected-build
-cd expected-build
-cmake -G Ninja -DEXPECTED_BUILD_TESTS=Off ../expected
-ninja
-sudo ninja install
-cd ..
-
-mkdir farm-ng-core-build
-cd farm-ng-core-build
-cmake -G Ninja -DBUILD_FARM_NG_PROTOS=Off ../farm-ng-core
-ninja
-sudo ninja install
-cd ..
-
-mkdir eigen-build
-cd eigen-build
-cmake -G Ninja ../eigen
-ninja
-sudo ninja install
-cd ..
-
-cd ../scripts
diff --git a/cpp/sophus2/infra/scripts/venv_activate.sh b/cpp/sophus2/infra/scripts/venv_activate.sh
deleted file mode 100644
index c5bf829c..00000000
--- a/cpp/sophus2/infra/scripts/venv_activate.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-set -ex
-
-# Active or create if it doesn't exist, a base VENV to install some core
-# dependencies through PIP. This lets us pull in modern cmake etc. Keeping the
-# venv active allows these tools to be available on the path.
-
-ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." >/dev/null 2>&1 && pwd)"
-
-# Create VENV if it doesn't exist
-if ! test -f "$ROOT_DIR/venv/bin/activate"; then
- echo "[Creating new VENV in $ROOT_DIR/venv]"
- python3 -m venv "$ROOT_DIR/venv"
- source "$ROOT_DIR/venv/bin/activate"
- pip install -U pip
- pip install -U wheel
- pip install -U cmake ninja
-
- # Add hook in activate script to also set some env variables
- echo "source $ROOT_DIR/scripts/venv_export_env_vars.sh" >> "$ROOT_DIR/venv/bin/activate"
-fi
-
-echo "[Activating VENV in $ROOT_DIR/venv]"
-source "$ROOT_DIR/venv/bin/activate"
diff --git a/cpp/sophus2/infra/scripts/venv_export_env_vars.sh b/cpp/sophus2/infra/scripts/venv_export_env_vars.sh
deleted file mode 100644
index 6dc93a82..00000000
--- a/cpp/sophus2/infra/scripts/venv_export_env_vars.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-# Source this file (executing it wont set variables).
-# Setup env vars for using libs and binaries in venv/prefix inside.
-# Required for CMake and dynamic library loading on Linux.
-
-ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." >/dev/null 2>&1 && pwd)"
-PREFIX_PATH="$ROOT_DIR/venv/prefix"
-
-export PATH=$PREFIX_PATH/bin:$PATH
-export CMAKE_PREFIX_PATH=$PREFIX_PATH
-export LD_LIBRARY_PATH=$PREFIX_PATH/lib:${LD_LIBRARY_PATH}
diff --git a/cpp/sophus2/infra/scripts/venv_update_prefix_deps.sh b/cpp/sophus2/infra/scripts/venv_update_prefix_deps.sh
deleted file mode 100755
index db9d4e5b..00000000
--- a/cpp/sophus2/infra/scripts/venv_update_prefix_deps.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-set -ex
-
-
-# This will download the prebuilt dependencies for Sophus. It will first
-# check if the binaries are already up-to-date based on the cmake git
-# SHA. The binaries are placed in ../venv/prefix for the Sophus build,
-# though you must set CMAKE_PREFIX_PATH to that directory for cmake to find them
-
-ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." >/dev/null 2>&1 && pwd)"
-
-# Choose release SHA based on cmake git repo SHA
-# Override by setting RELEASE_SHA env var
-RELEASE_SHA="${RELEASE_SHA:-$(git submodule status ../cmake | cut -c2-8)}"
-
-# If the needed RELEASE_SHA doesn't match what we have, download
-if ! grep -q $RELEASE_SHA "$ROOT_DIR/venv/prefix/release_version.txt"; then
- mkdir -p "$ROOT_DIR/venv"
- $ROOT_DIR/../cmake/scripts/download_release.sh
- rm -rf $ROOT_DIR/venv/prefix
- tar -xzf $ROOT_DIR/../cmake/scripts/venv.tar.gz --strip-components=1 -C $ROOT_DIR/venv
-
- if [[ "$OSTYPE" == "darwin"* ]]; then
- # MacOS RPath works a bit differently. We need to define the RPaths that
- # will be searched at runtime. We'll add a relative one to each executable
- for exe in "$ROOT_DIR/venv/prefix/bin"/*; do
- install_name_tool -add_rpath @executable_path/../lib $exe || true
- done
- fi
-
- echo "$RELEASE_SHA" > $ROOT_DIR/venv/prefix/release_version.txt
- echo "[Updated binary dependencies. Done!]"
-else
- echo "[Updated binary dependencies. Already up to date!]"
-fi
diff --git a/cpp/sophus2/run_clang_tidy.sh b/cpp/sophus2/run_clang_tidy.sh
deleted file mode 100755
index 4c37ec3a..00000000
--- a/cpp/sophus2/run_clang_tidy.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-set -e
-
-rm -rf clang-tidy-build
-mkdir clang-tidy-build
-cd clang-tidy-build
-CC=clang CXX=clang++ cmake -GNinja -DSOPHUS_CERES=Off -DBUILD_FARM_NG_PROTOS=Off ..
-ninja
-cd ..
-
-# run clang tidy
-run-clang-tidy-12 -quiet -p clang-tidy-build/ cpp/sophus/.*\.cpp -fix -style none
diff --git a/cpp/sophus2/setup.cfg b/cpp/sophus2/setup.cfg
deleted file mode 100644
index e7499a71..00000000
--- a/cpp/sophus2/setup.cfg
+++ /dev/null
@@ -1,58 +0,0 @@
-[metadata]
-name = sophus
-version = 2.0.0
-description =
- c++ 2d/3d manifold library - only python support for Sophus ProtoBuf
- messages are included in this package so far.
-long_description = file: README.md
-author = Farm-ng Inc.
-author_email = info@farm-ng.com
-keywords = robotics, open-source
-license_files = LICENSE
-classifiers =
- Development Status :: 4 - Beta
- Intended Audience :: Developers
- License :: OSI Approved :: MIT License
- Operating System :: OS Independent
- Programming Language :: Python :: 3
- Topic :: Software Development
- Framework :: Robot Framework
-
-[options]
-python_requires = >=3.6
-setup_requires =
- wheel
- farm-ng-package
-install_requires =
- protobuf
- grpcio
-tests_require =
- pytest
- pytest-runner
- pytest-mypy
-test_suite = tests
-
-package_dir =
- = py
-packages =
- sophus
-
-[options.extras_require]
-dev =
- pytest==7.1.2
- pytest-mypy==0.9.1
- pre-commit==2.20.0
- mypy==0.971
- types-protobuf
- pylint
- grpcio-tools
- mypy-protobuf
- pylint-protobuf==0.20.2
-
-[mypy]
-files = py/sophus, py/tests, py/examples
-ignore_missing_imports = True
-
-[options.package_data]
-sophus =
- *.proto
diff --git a/cpp/sophus2/setup.py b/cpp/sophus2/setup.py
deleted file mode 100644
index 981e8ad9..00000000
--- a/cpp/sophus2/setup.py
+++ /dev/null
@@ -1,31 +0,0 @@
-from setuptools import setup
-
-from farm_ng.package.commands import (
- CleanFilesCommand,
- BuildProtosInstall,
- BuildProtosDevelop,
- BuildProtosEggInfo,
-)
-
-PROTO_ROOT: str = "protos"
-PACKAGE_ROOT: str = "py"
-
-BuildProtosDevelop.user_options.append(("proto-root=", None, PROTO_ROOT))
-BuildProtosDevelop.user_options.append(("package-root=", None, PACKAGE_ROOT))
-
-BuildProtosInstall.user_options.append(("proto-root=", None, PROTO_ROOT))
-BuildProtosInstall.user_options.append(("package-root=", None, PACKAGE_ROOT))
-
-BuildProtosEggInfo.user_options.append(("proto-root=", None, PROTO_ROOT))
-BuildProtosEggInfo.user_options.append(("package-root=", None, PACKAGE_ROOT))
-
-CleanFilesCommand.user_options.append(("package-root=", None, PACKAGE_ROOT))
-
-setup(
- cmdclass={
- "install": BuildProtosInstall,
- "develop": BuildProtosDevelop,
- "egg_info": BuildProtosEggInfo,
- "clean": CleanFilesCommand,
- }
-)
diff --git a/infra/bootstrap_env.sh b/infra/bootstrap_env.sh
new file mode 100755
index 00000000..2b7923be
--- /dev/null
+++ b/infra/bootstrap_env.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+set -ex
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+source $DIR/../cmake/scripts/venv_activate.sh
+$DIR/../cmake/scripts/venv_update_prefix_deps.sh
diff --git a/infra/bootstrap_venv.sh b/infra/bootstrap_venv.sh
deleted file mode 100755
index c4a237ad..00000000
--- a/infra/bootstrap_venv.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-set -ex
-
-DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-
-source $DIR/scripts/venv_activate.sh
-$DIR/scripts/venv_update_prefix_deps.sh
diff --git a/infra/scripts/install_farm_ng_cmake.sh b/infra/scripts/install_farm_ng_cmake.sh
deleted file mode 100755
index e539027b..00000000
--- a/infra/scripts/install_farm_ng_cmake.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-set -x # echo on
-set -e # exit on error
-
-cmake --version
-source ../venv/bin/activate
-cd ../ci-submodules
-rm -rf cmake-build
-mkdir cmake-build
-cd cmake-build
-cmake -G Ninja ../cmake -DCMAKE_INSTALL_PREFIX=${CMAKE_PREFIX_PATH}
-ninja
-ninja install
-cd ..
-
-cd ../scripts
diff --git a/infra/scripts/venv_activate.sh b/infra/scripts/venv_activate.sh
old mode 100644
new mode 100755
diff --git a/infra/scripts/venv_export_env_vars.sh b/infra/scripts/venv_export_env_vars.sh
old mode 100644
new mode 100755
diff --git a/infra/scripts/venv_update_prefix_deps.sh b/infra/scripts/venv_update_prefix_deps.sh
index 3ea50b84..971433d1 100755
--- a/infra/scripts/venv_update_prefix_deps.sh
+++ b/infra/scripts/venv_update_prefix_deps.sh
@@ -3,24 +3,22 @@ set -ex
# This will download the prebuilt dependencies for farm-ng-core. It will first
-# check if the binaries are already up-to-date based on the cmake git
+# check if the binaries are already up-to-date based on the farm-ng-cmake git
# SHA. The binaries are placed in ../venv/prefix for the farm-ng-core build,
# though you must set CMAKE_PREFIX_PATH to that directory for cmake to find them
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." >/dev/null 2>&1 && pwd)"
-# Choose release SHA based on cmake git repo SHA
+# Choose release SHA based on farm-ng-cmake git repo SHA
# Override by setting RELEASE_SHA env var
-RELEASE_SHA="${RELEASE_SHA:-$(git submodule status ../cmake | cut -c2-8)}"
+RELEASE_SHA="${RELEASE_SHA:-$(git submodule status ci-submodules/farm-ng-cmake | cut -c2-8)}"
# If the needed RELEASE_SHA doesn't match what we have, download
if ! grep -q $RELEASE_SHA "$ROOT_DIR/venv/prefix/release_version.txt"; then
mkdir -p "$ROOT_DIR/venv"
- $ROOT_DIR/../cmake/scripts/download_release.sh
+ $ROOT_DIR/ci-submodules/farm-ng-cmake/scripts/download_release.sh
rm -rf $ROOT_DIR/venv/prefix
-
- ls $ROOT_DIR/../cmake/scripts/venv.tar.gz
- tar -xzf $ROOT_DIR/../cmake/scripts/venv.tar.gz --strip-components=1 -C $ROOT_DIR/venv
+ tar -xzf $ROOT_DIR/ci-submodules/farm-ng-cmake/scripts/venv.tar.gz --strip-components=1 -C $ROOT_DIR/venv
if [[ "$OSTYPE" == "darwin"* ]]; then
# MacOS RPath works a bit differently. We need to define the RPaths that