1. 程式人生 > >以slambook-master/project/0.2 工程為例理解CMAKELISTS.TXT

以slambook-master/project/0.2 工程為例理解CMAKELISTS.TXT

cmake_minimum_required( VERSION 2.8 )
project ( myslam )

set( CMAKE_CXX_COMPILER "g++" )
set( CMAKE_BUILD_TYPE "Release" )
set( CMAKE_CXX_FLAGS "-std=c++11 -march=native -O3" )

#PROJECT_SOURCE_DIR為工程的根目錄
#cmake_modules裡面存放自動獲取依賴庫的路徑資訊
list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )
set( EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin ) set( LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib ) ############### dependencies 依賴關係###################### #include_directories:新增標頭檔案路徑 # Eigen include_directories( "/usr/include/eigen3" ) # OpenCV find_package( OpenCV 3.1 REQUIRED ) include_directories
( ${OpenCV_INCLUDE_DIRS} ) #include_directories( "/usr/local/include/opencv" ) #include_directories( "/usr/local/include") #通過find_package( OpenCV 3.1 REQUIRED ),輸出CMAKE為你找到的有關OPENCV的資訊 message(STATUS "OpenCV library status:") message(STATUS " version: ${OpenCV_VERSION}") message(STATUS " libraries: ${OpenCV_LIBS}"
) message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}") # Sophus find_package( Sophus REQUIRED ) include_directories( ${Sophus_INCLUDE_DIRS} ) message(STATUS "Sophus library status:") message(STATUS " version: ${Sophus_VERSION}") message(STATUS " libraries: ${Sophus_LIBRARIES}") message(STATUS " include path: ${Sophus_INCLUDE_DIRS}") # G2O find_package( G2O REQUIRED ) include_directories( ${G2O_INCLUDE_DIRS} ) set( THIRD_PARTY_LIBS ${OpenCV_LIBS} ${Sophus_LIBRARIES} g2o_core g2o_stuff g2o_types_sba ) ############### 新增工程的.cpp source 以及自己建立的.h 庫 ###################### include_directories( ${PROJECT_SOURCE_DIR}/include ) add_subdirectory( src ) add_subdirectory( test )