From 9cdc01dbb0018add0719ab77213fd371bc3b3cfc Mon Sep 17 00:00:00 2001 From: seock Date: Wed, 3 Jun 2020 23:46:28 +0900 Subject: [PATCH] Do not build at source directory --- .gitignore | 7 ------ CMakeLists.txt | 28 +++++++++++++----------- Thirdparty/DBoW2/CMakeLists.txt | 9 +++----- Thirdparty/g2o/CMakeLists.txt | 11 +--------- Thirdparty/g2o/{config.h.in => config.h} | 4 ++-- include/Converter.h | 5 +++-- include/Frame.h | 5 +++-- include/KeyFrame.h | 5 +++-- include/LoopClosing.h | 3 ++- include/ORBVocabulary.h | 4 ++-- include/Optimizer.h | 2 +- src/Initializer.cc | 4 ++-- src/KeyFrameDatabase.cc | 4 ++-- src/ORBmatcher.cc | 2 +- src/Optimizer.cc | 16 +++++++------- src/PnPsolver.cc | 3 ++- src/Sim3Solver.cc | 2 +- 17 files changed, 51 insertions(+), 63 deletions(-) rename Thirdparty/g2o/{config.h.in => config.h} (85%) diff --git a/.gitignore b/.gitignore index 611b5adb2c..e1f41ef382 100644 --- a/.gitignore +++ b/.gitignore @@ -12,13 +12,6 @@ Examples/ROS/ORB_SLAM2/build/ Examples/Stereo/stereo_euroc Examples/Stereo/stereo_kitti KeyFrameTrajectory.txt -Thirdparty/DBoW2/build/ -Thirdparty/DBoW2/lib/ -Thirdparty/g2o/build/ -Thirdparty/g2o/config.h -Thirdparty/g2o/lib/ Vocabulary/ORBvoc.txt -build/ *~ -lib/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d3c28b627..55cc36b661 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,19 +38,13 @@ endif() find_package(Eigen3 3.1.0 REQUIRED) -include_directories( -${PROJECT_SOURCE_DIR} -${PROJECT_SOURCE_DIR}/include -${EIGEN3_INCLUDE_DIR} -${Pangolin_INCLUDE_DIRS} -) - if (ORB_SLAM2_BUILD_WITH_PANGOLIN) find_package(Pangolin REQUIRED) add_definitions(-DORB_SLAM2_HAS_PANGOLIN) endif() -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib) +add_subdirectory(Thirdparty/DBoW2) +add_subdirectory(Thirdparty/g2o) add_library(${PROJECT_NAME} SHARED src/System.cc @@ -75,11 +69,19 @@ src/Viewer.cc ) target_link_libraries(${PROJECT_NAME} -${OpenCV_LIBS} -${EIGEN3_LIBS} -${Pangolin_LIBRARIES} -${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.so -${PROJECT_SOURCE_DIR}/Thirdparty/g2o/lib/libg2o.so + PUBLIC + ORB_SLAM2_FORKED_g2o + ORB_SLAM2_FORKED_DBoW2 + ${OpenCV_LIBS} + ${EIGEN3_LIBS} + ${Pangolin_LIBRARIES} +) +target_include_directories(${PROJECT_NAME} + PUBLIC + ${PROJECT_SOURCE_DIR}/include + ${PROJECT_SOURCE_DIR}/Thirdparty + ${EIGEN3_INCLUDE_DIR} + ${Pangolin_INCLUDE_DIRS} ) # Build examples diff --git a/Thirdparty/DBoW2/CMakeLists.txt b/Thirdparty/DBoW2/CMakeLists.txt index 0eb512600a..22755725c7 100644 --- a/Thirdparty/DBoW2/CMakeLists.txt +++ b/Thirdparty/DBoW2/CMakeLists.txt @@ -32,9 +32,6 @@ if(NOT OpenCV_FOUND) endif() endif() -set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) - -include_directories(${OpenCV_INCLUDE_DIRS}) -add_library(DBoW2 SHARED ${SRCS_DBOW2} ${SRCS_DUTILS}) -target_link_libraries(DBoW2 ${OpenCV_LIBS}) - +add_library(ORB_SLAM2_FORKED_DBoW2 SHARED ${SRCS_DBOW2} ${SRCS_DUTILS}) +target_include_directories(ORB_SLAM2_FORKED_DBoW2 PUBLIC ${OpenCV_INCLUDE_DIRS}) +target_link_libraries(ORB_SLAM2_FORKED_DBoW2 PUBLIC ${OpenCV_LIBS}) diff --git a/Thirdparty/g2o/CMakeLists.txt b/Thirdparty/g2o/CMakeLists.txt index 620e68876e..6eb37ea387 100644 --- a/Thirdparty/g2o/CMakeLists.txt +++ b/Thirdparty/g2o/CMakeLists.txt @@ -23,14 +23,6 @@ if(MSVC90) endif(MSVC90) # Set the output directory for the build executables and libraries -IF(WIN32) - SET(g2o_LIBRARY_OUTPUT_DIRECTORY ${g2o_SOURCE_DIR}/bin CACHE PATH "Target for the libraries") -ELSE(WIN32) - SET(g2o_LIBRARY_OUTPUT_DIRECTORY ${g2o_SOURCE_DIR}/lib CACHE PATH "Target for the libraries") -ENDIF(WIN32) -SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${g2o_LIBRARY_OUTPUT_DIRECTORY}) -SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${g2o_LIBRARY_OUTPUT_DIRECTORY}) -SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${g2o_RUNTIME_OUTPUT_DIRECTORY}) # Set search directory for looking for our custom CMake scripts to # look for SuiteSparse, QGLViewer, and Eigen3. @@ -76,7 +68,6 @@ ENDIF(EIGEN3_FOUND) # Generate config.h SET(G2O_CXX_COMPILER "${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER}") -configure_file(config.h.in ${g2o_SOURCE_DIR}/config.h) # Set up the top-level include directories INCLUDE_DIRECTORIES( @@ -86,7 +77,7 @@ ${g2o_SOURCE_DIR}/stuff ${G2O_EIGEN3_INCLUDE}) # Include the subdirectories -ADD_LIBRARY(g2o ${G2O_LIB_TYPE} +ADD_LIBRARY(ORB_SLAM2_FORKED_g2o ${G2O_LIB_TYPE} #types g2o/types/types_sba.h g2o/types/types_six_dof_expmap.h diff --git a/Thirdparty/g2o/config.h.in b/Thirdparty/g2o/config.h similarity index 85% rename from Thirdparty/g2o/config.h.in rename to Thirdparty/g2o/config.h index 49c686b1c0..9f5bc61d1f 100644 --- a/Thirdparty/g2o/config.h.in +++ b/Thirdparty/g2o/config.h @@ -1,8 +1,8 @@ #ifndef G2O_CONFIG_H #define G2O_CONFIG_H -#cmakedefine G2O_OPENMP 1 -#cmakedefine G2O_SHARED_LIBS 1 +/* #undef G2O_OPENMP */ +/* #undef G2O_SHARED_LIBS */ // give a warning if Eigen defaults to row-major matrices. // We internally assume column-major matrices throughout the code. diff --git a/include/Converter.h b/include/Converter.h index 0002ad62c2..bb00a3aa27 100644 --- a/include/Converter.h +++ b/include/Converter.h @@ -24,8 +24,9 @@ #include #include -#include"Thirdparty/g2o/g2o/types/types_six_dof_expmap.h" -#include"Thirdparty/g2o/g2o/types/types_seven_dof_expmap.h" + +#include"g2o/g2o/types/types_six_dof_expmap.h" +#include"g2o/g2o/types/types_seven_dof_expmap.h" namespace ORB_SLAM2 { diff --git a/include/Frame.h b/include/Frame.h index a6a8032f57..c8c2ba5ed1 100644 --- a/include/Frame.h +++ b/include/Frame.h @@ -23,9 +23,10 @@ #include +#include "DBoW2/DBoW2/BowVector.h" +#include "DBoW2/DBoW2/FeatureVector.h" + #include "MapPoint.h" -#include "Thirdparty/DBoW2/DBoW2/BowVector.h" -#include "Thirdparty/DBoW2/DBoW2/FeatureVector.h" #include "ORBVocabulary.h" #include "KeyFrame.h" #include "ORBextractor.h" diff --git a/include/KeyFrame.h b/include/KeyFrame.h index 67f4348273..d6f8cb760f 100644 --- a/include/KeyFrame.h +++ b/include/KeyFrame.h @@ -21,9 +21,10 @@ #ifndef KEYFRAME_H #define KEYFRAME_H +#include "DBoW2/DBoW2/BowVector.h" +#include "DBoW2/DBoW2/FeatureVector.h" + #include "MapPoint.h" -#include "Thirdparty/DBoW2/DBoW2/BowVector.h" -#include "Thirdparty/DBoW2/DBoW2/FeatureVector.h" #include "ORBVocabulary.h" #include "ORBextractor.h" #include "Frame.h" diff --git a/include/LoopClosing.h b/include/LoopClosing.h index 7eb0416b15..58fcdccd93 100644 --- a/include/LoopClosing.h +++ b/include/LoopClosing.h @@ -31,7 +31,8 @@ #include #include -#include "Thirdparty/g2o/g2o/types/types_seven_dof_expmap.h" + +#include "g2o/g2o/types/types_seven_dof_expmap.h" namespace ORB_SLAM2 { diff --git a/include/ORBVocabulary.h b/include/ORBVocabulary.h index ca5fa8d777..047596b7de 100644 --- a/include/ORBVocabulary.h +++ b/include/ORBVocabulary.h @@ -22,8 +22,8 @@ #ifndef ORBVOCABULARY_H #define ORBVOCABULARY_H -#include"Thirdparty/DBoW2/DBoW2/FORB.h" -#include"Thirdparty/DBoW2/DBoW2/TemplatedVocabulary.h" +#include"DBoW2/DBoW2/FORB.h" +#include"DBoW2/DBoW2/TemplatedVocabulary.h" namespace ORB_SLAM2 { diff --git a/include/Optimizer.h b/include/Optimizer.h index 2c4378ed3b..52bf7d65c6 100644 --- a/include/Optimizer.h +++ b/include/Optimizer.h @@ -27,7 +27,7 @@ #include "LoopClosing.h" #include "Frame.h" -#include "Thirdparty/g2o/g2o/types/types_seven_dof_expmap.h" +#include "g2o/g2o/types/types_seven_dof_expmap.h" namespace ORB_SLAM2 { diff --git a/src/Initializer.cc b/src/Initializer.cc index 6094b8f51b..30cecc40b5 100644 --- a/src/Initializer.cc +++ b/src/Initializer.cc @@ -20,11 +20,11 @@ #include "Initializer.h" -#include "Thirdparty/DBoW2/DUtils/Random.h" - #include "Optimizer.h" #include "ORBmatcher.h" +#include "DBoW2/DUtils/Random.h" + #include namespace ORB_SLAM2 diff --git a/src/KeyFrameDatabase.cc b/src/KeyFrameDatabase.cc index 826860cab9..dc795aaa43 100644 --- a/src/KeyFrameDatabase.cc +++ b/src/KeyFrameDatabase.cc @@ -19,9 +19,9 @@ */ #include "KeyFrameDatabase.h" - #include "KeyFrame.h" -#include "Thirdparty/DBoW2/DBoW2/BowVector.h" + +#include "DBoW2/DBoW2/BowVector.h" #include diff --git a/src/ORBmatcher.cc b/src/ORBmatcher.cc index 56bf279d0f..704f879342 100644 --- a/src/ORBmatcher.cc +++ b/src/ORBmatcher.cc @@ -25,7 +25,7 @@ #include #include -#include "Thirdparty/DBoW2/DBoW2/FeatureVector.h" +#include "DBoW2/DBoW2/FeatureVector.h" #include diff --git a/src/Optimizer.cc b/src/Optimizer.cc index 83d9264546..103173941d 100644 --- a/src/Optimizer.cc +++ b/src/Optimizer.cc @@ -20,16 +20,16 @@ #include "Optimizer.h" -#include "Thirdparty/g2o/g2o/core/block_solver.h" -#include "Thirdparty/g2o/g2o/core/optimization_algorithm_levenberg.h" -#include "Thirdparty/g2o/g2o/solvers/linear_solver_eigen.h" -#include "Thirdparty/g2o/g2o/types/types_six_dof_expmap.h" -#include "Thirdparty/g2o/g2o/core/robust_kernel_impl.h" -#include "Thirdparty/g2o/g2o/solvers/linear_solver_dense.h" -#include "Thirdparty/g2o/g2o/types/types_seven_dof_expmap.h" - #include +#include "g2o/g2o/core/block_solver.h" +#include "g2o/g2o/core/optimization_algorithm_levenberg.h" +#include "g2o/g2o/solvers/linear_solver_eigen.h" +#include "g2o/g2o/types/types_six_dof_expmap.h" +#include "g2o/g2o/core/robust_kernel_impl.h" +#include "g2o/g2o/solvers/linear_solver_dense.h" +#include "g2o/g2o/types/types_seven_dof_expmap.h" + #include "Converter.h" #include diff --git a/src/PnPsolver.cc b/src/PnPsolver.cc index af3511b165..49ebd66587 100644 --- a/src/PnPsolver.cc +++ b/src/PnPsolver.cc @@ -55,9 +55,10 @@ #include #include #include -#include "Thirdparty/DBoW2/DUtils/Random.h" #include +#include "DBoW2/DUtils/Random.h" + using namespace std; namespace ORB_SLAM2 diff --git a/src/Sim3Solver.cc b/src/Sim3Solver.cc index 4ad44ff0de..25527457e4 100644 --- a/src/Sim3Solver.cc +++ b/src/Sim3Solver.cc @@ -28,7 +28,7 @@ #include "KeyFrame.h" #include "ORBmatcher.h" -#include "Thirdparty/DBoW2/DUtils/Random.h" +#include "DBoW2/DUtils/Random.h" namespace ORB_SLAM2 {