129 lines
4.6 KiB
Diff
129 lines
4.6 KiB
Diff
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||
|
index 4c7e690..4b391b5 100644
|
||
|
--- a/CMakeLists.txt
|
||
|
+++ b/CMakeLists.txt
|
||
|
@@ -73,12 +73,15 @@ set_package_properties(OpenGL PROPERTIES
|
||
|
URL "http://opengl.org"
|
||
|
PURPOSE "Used to render graphics in ompl_app.")
|
||
|
set(OpenGL_GL_PREFERENCE GLVND)
|
||
|
-find_package(OpenGL)
|
||
|
+if (OMPLAPP_WITH_OPENGL)
|
||
|
+find_package(OpenGL REQUIRED)
|
||
|
+endif()
|
||
|
set_package_properties(Python PROPERTIES
|
||
|
URL "http://python.org"
|
||
|
PURPOSE "Used for python bindings.")
|
||
|
# This includes our own FindPython.cmake in ompl/CMakeModules. It defines,
|
||
|
# among other things, the find_python_module() function used below.
|
||
|
+if (OMPLAPP_WITH_PYTHON)
|
||
|
find_package(Python)
|
||
|
find_boost_python()
|
||
|
|
||
|
@@ -105,55 +108,76 @@ find_python_module(OpenGL)
|
||
|
if (NOT OPENGL_FOUND OR NOT PY_OPENGL)
|
||
|
message(WARNING "Both OpenGL and the Python OpenGL module need to be installed to use the GUI")
|
||
|
endif()
|
||
|
+endif()
|
||
|
set_package_properties(Eigen3 PROPERTIES
|
||
|
URL "http://eigen.tuxfamily.org"
|
||
|
PURPOSE "A linear algebra library used throughout OMPL.")
|
||
|
-find_package(Eigen3 REQUIRED)
|
||
|
+find_package(Eigen3 CONFIG REQUIRED)
|
||
|
set_package_properties(Triangle PROPERTIES
|
||
|
URL "http://www.cs.cmu.edu/~quake/triangle.html"
|
||
|
PURPOSE "Used to create triangular decompositions of polygonal 2D environments.")
|
||
|
+if (OMPLAPP_WITH_TRIANGLE)
|
||
|
find_package(Triangle QUIET)
|
||
|
+endif()
|
||
|
set_package_properties(flann PROPERTIES
|
||
|
URL "https://github.com/mariusmuja/flann"
|
||
|
PURPOSE "If detetected, FLANN can be used for nearest neighbor queries by OMPL.")
|
||
|
+if (OMPLAPP_WITH_FLANN)
|
||
|
find_package(flann 1.8.3 QUIET)
|
||
|
+endif()
|
||
|
set_package_properties(spot PROPERTIES
|
||
|
URL "http://spot.lrde.epita.fr"
|
||
|
PURPOSE "Used for constructing finite automata from LTL formulae.")
|
||
|
+if (OMPLAPP_WITH_SPOT)
|
||
|
find_package(spot)
|
||
|
+endif()
|
||
|
set_package_properties(MORSE PROPERTIES
|
||
|
URL "https://www.openrobots.org/wiki/morse"
|
||
|
PURPOSE "OMPL includes a plugin for the MORSE Robot Simulation engine.")
|
||
|
+if (OMPLAPP_WITH_MORSE)
|
||
|
find_package(MORSE QUIET)
|
||
|
+endif()
|
||
|
set_package_properties(ODE PROPERTIES
|
||
|
URL "http://ode.org"
|
||
|
PURPOSE "The Open Dynamics Engine can be used as a \"black box\" for kinodynamic planning.")
|
||
|
-find_package(ODE QUIET)
|
||
|
+if (OMPLAPP_WITH_ODE)
|
||
|
+find_package(ODE CONFIG REQUIRED)
|
||
|
+set(ODE_LIBRARIES ODE::ODE)
|
||
|
+endif()
|
||
|
set_package_properties(Drawstuff PROPERTIES
|
||
|
URL "http://ode.org"
|
||
|
PURPOSE "Part of the ODE source distribution, used in one demo program.")
|
||
|
+if (OMPLAPP_WITH_DRAWSTUFF)
|
||
|
find_package(Drawstuff QUIET)
|
||
|
+endif()
|
||
|
set_package_properties(assimp PROPERTIES
|
||
|
URL "http://assimp.org"
|
||
|
PURPOSE "Used in ompl_app for reading meshes representing robots and environments.")
|
||
|
-find_package(assimp REQUIRED)
|
||
|
+find_package(assimp CONFIG REQUIRED)
|
||
|
+set(ASSIMP_LIBRARIES assimp::assimp)
|
||
|
set_package_properties(ccd PROPERTIES
|
||
|
URL "https://github.com/danfis/libccd"
|
||
|
PURPOSE "Collision detection library used by fcl.")
|
||
|
-find_package(ccd REQUIRED)
|
||
|
+find_package(ccd CONFIG REQUIRED)
|
||
|
set_package_properties(fcl PROPERTIES
|
||
|
URL "https://github.com/flexible-collision-library/fcl"
|
||
|
PURPOSE "The default collision checking library.")
|
||
|
+if (OMPLAPP_WITH_OCTOMAP)
|
||
|
find_package(octomap QUIET)
|
||
|
+endif()
|
||
|
find_package(fcl REQUIRED)
|
||
|
set_package_properties(Threads PROPERTIES
|
||
|
URL "https://en.wikipedia.org/wiki/POSIX_Threads"
|
||
|
PURPOSE "Pthreads is sometimes needed, depending on OS / compiler.")
|
||
|
+if (OMPLAPP_WITH_THREADS)
|
||
|
find_package(Threads QUIET)
|
||
|
+endif()
|
||
|
set_package_properties(Doxygen PROPERTIES
|
||
|
URL "http://doxygen.org"
|
||
|
PURPOSE "Used to create the OMPL documentation (i.e., http://ompl.kavrakilab.org).")
|
||
|
+if (OMPLAPP_WITH_DOXYGEN)
|
||
|
find_package(Doxygen)
|
||
|
+endif()
|
||
|
|
||
|
enable_testing()
|
||
|
|
||
|
@@ -177,9 +201,7 @@ include_directories(SYSTEM "${Boost_INCLUDE_DIR}")
|
||
|
include_directories(
|
||
|
"${OMPLAPP_INCLUDE_DIRS}"
|
||
|
"${OMPL_INCLUDE_DIRS}"
|
||
|
- "${EIGEN3_INCLUDE_DIR}"
|
||
|
- "${FCL_INCLUDE_DIRS}"
|
||
|
- "${ASSIMP_INCLUDE_DIRS}")
|
||
|
+ "${FCL_INCLUDE_DIRS}")
|
||
|
|
||
|
# ROS installs fcl in /usr. In /usr/include/fcl/config.h it says octomap was
|
||
|
# enabled. Octomap is installed in /opt/ros/${ROS_DISTRO}/include (most
|
||
|
@@ -242,12 +264,14 @@ endif()
|
||
|
set_package_properties(PQP PROPERTIES
|
||
|
URL "http://gamma.cs.unc.edu/SSV/"
|
||
|
PURPOSE "Used as an alternative, additional collision checking library (the default is FCL).")
|
||
|
+IF (OMPLAPP_WITH_PQP)
|
||
|
find_package(PQP QUIET)
|
||
|
if(PQP_FOUND)
|
||
|
include_directories("${PQP_INCLUDE_DIR}")
|
||
|
set(OMPLAPP_MODULE_LIBRARIES ${OMPLAPP_MODULE_LIBRARIES} ${PQP_LIBRARY})
|
||
|
set(OMPLAPP_LIBRARIES ${OMPLAPP_LIBRARIES} ${PQP_LIBRARY})
|
||
|
endif()
|
||
|
+endif()
|
||
|
|
||
|
add_subdirectory(ompl/doc)
|
||
|
add_subdirectory(ompl/src)
|