From 5410a3d54e833ec5db28c2aa44dc181f056ee498 Mon Sep 17 00:00:00 2001 From: Anand Balakrishnan Date: Mon, 26 Jun 2017 11:54:39 -0400 Subject: [PATCH 1/2] CMake now installs the .so file and headers The library file is installed to /usr/local/lib by default. The header files are installed to /usr/local/include/ORB_SLAM2 by default. The prefix '/usr/local/include/' can be changed as a CMake variable. --- .gitignore | 5 +++++ CMakeLists.txt | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/.gitignore b/.gitignore index 611b5adb2c..94f87d8d79 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,8 @@ build/ *~ lib/ +CMakeFiles + +# VIM + +*.swp diff --git a/CMakeLists.txt b/CMakeLists.txt index 08a8af468e..a84c1473f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,6 +70,7 @@ src/Initializer.cc src/Viewer.cc ) + target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} ${EIGEN3_LIBS} @@ -78,6 +79,11 @@ ${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.so ${PROJECT_SOURCE_DIR}/Thirdparty/g2o/lib/libg2o.so ) +install(TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib +) + +install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}) # Build examples set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/RGB-D) @@ -111,3 +117,5 @@ add_executable(mono_euroc Examples/Monocular/mono_euroc.cc) target_link_libraries(mono_euroc ${PROJECT_NAME}) + + From 525f6003869532c212ad9ccfea7b3d19f30d7ff0 Mon Sep 17 00:00:00 2001 From: Anand Balakrishnan Date: Mon, 26 Jun 2017 16:57:52 -0400 Subject: [PATCH 2/2] Install ORB_SLAM2Config.cmake to common dir. --- CMakeLists.txt | 14 +++++++++++++- cmake_config/ORB_SLAM2.cmake.in | 9 +++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 cmake_config/ORB_SLAM2.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index a84c1473f5..1afad6b7ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,6 +39,7 @@ endif() find_package(Eigen3 3.1.0 REQUIRED) find_package(Pangolin REQUIRED) + include_directories( ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/include @@ -79,11 +80,22 @@ ${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.so ${PROJECT_SOURCE_DIR}/Thirdparty/g2o/lib/libg2o.so ) +configure_file(cmake_config/ORB_SLAM2.cmake.in + "${PROJECT_BINARY_DIR}/ORB_SLAM2Config.cmake" @ONLY) + install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) +install(DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME} +) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ORB_SLAM2Config.cmake" + DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME} +) +install(FILES "${PROJECT_BINARY_DIR}/ORB_SLAM2Config.cmake" + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/cmake/${PROJECT_NAME} +) -install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}) # Build examples set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/RGB-D) diff --git a/cmake_config/ORB_SLAM2.cmake.in b/cmake_config/ORB_SLAM2.cmake.in new file mode 100644 index 0000000000..6ee48ca1c3 --- /dev/null +++ b/cmake_config/ORB_SLAM2.cmake.in @@ -0,0 +1,9 @@ +FIND_LIBRARY(ORB_SLAM2_LIBRARY ORB_SLAM2 + PATHS @CMAKE_INSTALL_PREFIX@/lib +) +FIND_PATH(ORB_SLAM2_INCLUDE_DIR ORB_SLAM2Config.cmake + PATHS @CMAKE_INSTALL_PREFIX@/include/@PROJECT_NAME@ +) +SET(ORB_SLAM2_LIBRARIES ${ORB_SLAM2_LIBRARY}) +SET(ORB_SLAM2_LIBS ${ORB_SLAM2_LIBRARY}) +SET(ORB_SLAM2_INCLUDE_DIRS ${ORB_SLAM2_INCLUDE_DIR})