commit
						3558ab8727
					
				|  | @ -6,6 +6,38 @@ | |||
| 
 | ||||
| set -x -e | ||||
| 
 | ||||
| # install TBB with _debug.so files | ||||
| function install_tbb() | ||||
| { | ||||
|   TBB_BASEURL=https://github.com/oneapi-src/oneTBB/releases/download | ||||
|   TBB_VERSION=4.4.5 | ||||
|   TBB_DIR=tbb44_20160526oss | ||||
|   TBB_SAVEPATH="/tmp/tbb.tgz" | ||||
| 
 | ||||
|   if [ "$(uname)" == "Linux" ]; then | ||||
|     OS_SHORT="lin" | ||||
|     TBB_LIB_DIR="intel64/gcc4.4" | ||||
|     SUDO="sudo" | ||||
| 
 | ||||
|   elif [ "$(uname)" == "Darwin" ]; then | ||||
|     OS_SHORT="osx" | ||||
|     TBB_LIB_DIR="" | ||||
|     SUDO="" | ||||
| 
 | ||||
|   fi | ||||
| 
 | ||||
|   wget "${TBB_BASEURL}/${TBB_VERSION}/${TBB_DIR}_${OS_SHORT}.tgz" -O $TBB_SAVEPATH | ||||
|   tar -C /tmp -xf $TBB_SAVEPATH | ||||
| 
 | ||||
|   TBBROOT=/tmp/$TBB_DIR | ||||
|   # Copy the needed files to the correct places. | ||||
|   # This works correctly for CI builds, instead of setting path variables. | ||||
|   # This is what Homebrew does to install TBB on Macs | ||||
|   $SUDO cp -R $TBBROOT/lib/$TBB_LIB_DIR/* /usr/local/lib/ | ||||
|   $SUDO cp -R $TBBROOT/include/ /usr/local/include/ | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| if [ -z ${PYTHON_VERSION+x} ]; then | ||||
|     echo "Please provide the Python version to build against!" | ||||
|     exit 127 | ||||
|  | @ -27,6 +59,8 @@ fi | |||
| 
 | ||||
| PATH=$PATH:$($PYTHON -c "import site; print(site.USER_BASE)")/bin | ||||
| 
 | ||||
| [ "${GTSAM_WITH_TBB:-OFF}" = "ON" ] && install_tbb | ||||
| 
 | ||||
| case $WRAPPER in | ||||
| "cython") | ||||
|     BUILD_CYTHON="ON" | ||||
|  | @ -53,6 +87,7 @@ cd $GITHUB_WORKSPACE/build | |||
| cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Release \ | ||||
|     -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_UNSTABLE=ON \ | ||||
|     -DGTSAM_USE_QUATERNIONS=OFF \ | ||||
|     -DGTSAM_WITH_TBB=${GTSAM_WITH_TBB:-OFF} \ | ||||
|     -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF \ | ||||
|     -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF \ | ||||
|     -DGTSAM_INSTALL_CYTHON_TOOLBOX=${BUILD_CYTHON} \ | ||||
|  |  | |||
|  | @ -66,7 +66,6 @@ function configure() | |||
|       -DGTSAM_BUILD_EXAMPLES_ALWAYS=${GTSAM_BUILD_EXAMPLES_ALWAYS:-ON} \ | ||||
|       -DGTSAM_ALLOW_DEPRECATED_SINCE_V41=${GTSAM_ALLOW_DEPRECATED_SINCE_V41:-OFF} \ | ||||
|       -DGTSAM_USE_QUATERNIONS=${GTSAM_USE_QUATERNIONS:-OFF} \ | ||||
|       -DGTSAM_TYPEDEF_POINTS_TO_VECTOR=${GTSAM_TYPEDEF_POINTS_TO_VECTOR:-OFF} \ | ||||
|       -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF \ | ||||
|       -DBOOST_ROOT=$BOOST_ROOT \ | ||||
|       -DBoost_NO_SYSTEM_PATHS=ON \ | ||||
|  |  | |||
|  | @ -23,6 +23,7 @@ jobs: | |||
|           # ubuntu-18.04-gcc-9,  # TODO Disabled for now because of timeouts | ||||
|           ubuntu-18.04-clang-9, | ||||
|           macOS-10.15-xcode-11.3.1, | ||||
|           ubuntu-18.04-gcc-5-tbb, | ||||
|         ] | ||||
| 
 | ||||
|         build_type: [Debug, Release] | ||||
|  | @ -50,6 +51,12 @@ jobs: | |||
|             compiler: xcode | ||||
|             version: "11.3.1" | ||||
| 
 | ||||
|           - name: ubuntu-18.04-gcc-5-tbb | ||||
|             os: ubuntu-18.04 | ||||
|             compiler: gcc | ||||
|             version: "5" | ||||
|             flag: tbb | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@master | ||||
|  | @ -86,6 +93,11 @@ jobs: | |||
|             echo "::set-env name=CC::clang" | ||||
|             echo "::set-env name=CXX::clang++" | ||||
|           fi | ||||
|       - name: Set GTSAM_WITH_TBB Flag | ||||
|         if: matrix.flag == 'tbb' | ||||
|         run: | | ||||
|           echo "::set-env name=GTSAM_WITH_TBB::ON" | ||||
|           echo "GTSAM Uses TBB" | ||||
|       - name: Build (Linux) | ||||
|         if: runner.os == 'Linux' | ||||
|         run: | | ||||
|  |  | |||
|  | @ -23,7 +23,7 @@ jobs: | |||
|           [ | ||||
|             ubuntu-gcc-deprecated, | ||||
|             ubuntu-gcc-quaternions, | ||||
|             ubuntu-gcc-points-vector, | ||||
|             ubuntu-gcc-tbb, | ||||
|           ] | ||||
| 
 | ||||
|         build_type: [Debug, Release] | ||||
|  | @ -41,11 +41,11 @@ jobs: | |||
|             version: "9" | ||||
|             flag: quaternions | ||||
| 
 | ||||
|           - name: ubuntu-gcc-points-vector | ||||
|           - name: ubuntu-gcc-tbb | ||||
|             os: ubuntu-18.04 | ||||
|             compiler: gcc | ||||
|             version: "9" | ||||
|             flag: points-vector | ||||
|             flag: tbb | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|  | @ -91,21 +91,21 @@ jobs: | |||
| 
 | ||||
|       - name: Set Allow Deprecated Flag | ||||
|         if: matrix.flag == 'deprecated' | ||||
|         env: | ||||
|           GTSAM_ALLOW_DEPRECATED_SINCE_V41: ON | ||||
|         run: echo "Allow deprecated since version 4.1" | ||||
|         run: | | ||||
|           echo "::set-env name=GTSAM_ALLOW_DEPRECATED_SINCE_V41::ON" | ||||
|           echo "Allow deprecated since version 4.1" | ||||
| 
 | ||||
|       - name: Set Use Quaternions Flag | ||||
|         if: matrix.flag == 'quaternions' | ||||
|         env: | ||||
|           GTSAM_USE_QUATERNIONS: ON | ||||
|         run: echo "Use Quaternions for rotations" | ||||
|         run: | | ||||
|           echo "::set-env name=GTSAM_USE_QUATERNIONS::ON" | ||||
|           echo "Use Quaternions for rotations" | ||||
| 
 | ||||
|       - name: Set Typedef Points to Vector Flag | ||||
|         if: matrix.flag == 'points-vector' | ||||
|         env: | ||||
|           GTSAM_TYPEDEF_POINTS_TO_VECTOR: ON | ||||
|         run: echo "Typedef Points to Vector" | ||||
|       - name: Set GTSAM_WITH_TBB Flag | ||||
|         if: matrix.flag == 'tbb' | ||||
|         run: | | ||||
|           echo "::set-env name=GTSAM_WITH_TBB::ON" | ||||
|           echo "GTSAM Uses TBB" | ||||
| 
 | ||||
|       - name: Build & Test | ||||
|         run: | | ||||
|  |  | |||
|  | @ -2,12 +2,10 @@ | |||
| // These are required to save one copy operation on Python calls
 | ||||
| #ifdef GTSAM_ALLOCATOR_TBB | ||||
| PYBIND11_MAKE_OPAQUE(std::vector<gtsam::Key, tbb::tbb_allocator<gtsam::Key>>); | ||||
| PYBIND11_MAKE_OPAQUE(std::vector<gtsam::Point2, Eigen::aligned_allocator<gtsam::Point2> >); | ||||
| PYBIND11_MAKE_OPAQUE(std::vector<gtsam::Pose3>); | ||||
| PYBIND11_MAKE_OPAQUE(std::vector<gtsam::BetweenFactor<gtsam::Pose3>>); | ||||
| #else | ||||
| PYBIND11_MAKE_OPAQUE(std::vector<gtsam::Key>); | ||||
| #endif | ||||
| PYBIND11_MAKE_OPAQUE(std::vector<gtsam::Point2, Eigen::aligned_allocator<gtsam::Point2> >); | ||||
| PYBIND11_MAKE_OPAQUE(std::vector<gtsam::Pose3>); | ||||
| PYBIND11_MAKE_OPAQUE(std::vector<gtsam::BetweenFactor<gtsam::Pose3>>); | ||||
| #endif | ||||
| PYBIND11_MAKE_OPAQUE(std::vector<boost::shared_ptr<gtsam::BetweenFactor<gtsam::Pose3> > >); | ||||
| PYBIND11_MAKE_OPAQUE(std::vector<boost::shared_ptr<gtsam::BetweenFactor<gtsam::Pose2> > >); | ||||
|  |  | |||
|  | @ -9,4 +9,3 @@ py::bind_vector<std::vector<gtsam::Point2, Eigen::aligned_allocator<gtsam::Point | |||
| py::bind_vector<std::vector<gtsam::Pose3> >(m_, "Pose3Vector"); | ||||
| py::bind_vector<std::vector<boost::shared_ptr<gtsam::BetweenFactor<gtsam::Pose3> > > >(m_, "BetweenFactorPose3s"); | ||||
| py::bind_vector<std::vector<boost::shared_ptr<gtsam::BetweenFactor<gtsam::Pose2> > > >(m_, "BetweenFactorPose2s"); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue