Sopus庫中FindEigen3.cmake內容詳解筆記


FindEigen3.cmake:

# - Try to find Eigen3 lib
# Once done this will define
#
#  EIGEN3_FOUND - system has eigen lib
#  EIGEN3_INCLUDE_DIR - the eigen include directory

# Copyright (c) 2006, 2007 Montel Laurent, <montel@kde.org>
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.

if( EIGEN3_INCLUDE_DIR )
    # in cache already
    set( EIGEN3_FOUND TRUE )
else (EIGEN3_INCLUDE_DIR)
#這里的PATH_SUFFIXES表示附加的路徑后綴,也就是后面 HINTS后面的路徑結尾處
#都加上PATH_SUFFIXES 后面的東西,這里是都加上eigen3/
#比如/usr/loacal/include/eigen3/ 他們會在這些路徑中找NAMES后面的Eigen/Core這個文件 
#然后將這個文件的路徑送到新建立的變量EIGEN3_INCLUDE_DIR中
#參考網址:http://www.cnblogs.com/coderfenghc/archive/2012/07/19/2599988.html
    find_path( EIGEN3_INCLUDE_DIR NAMES Eigen/Core
        PATH_SUFFIXES eigen3/
        HINTS
        ${INCLUDE_INSTALL_DIR}
        /usr/local/include
        ${KDE4_INCLUDE_DIR}
        )
#這個include作用是找到FindPackageHandleStandardArgs.cmake文件(這個文件在CMake中的Modules文件夾),使得find_package_handle_standard_args()該函數可用。
#If a module file is specified, the include command will search the CMake module directory automatically. Just use:include(FindPackageHandleStandardArgs)
#參考網址:https://stackoverflow.com/questions/7005782/cmake-include-findpackagehandlestandardargs-cmake
    include( FindPackageHandleStandardArgs )

#找Eigen3 這個安裝包,在EIGEN3_INCLUDE_DIR 指示的路徑中,或者后面添加的其他路徑變量,如果能夠找到
#那么EIGEN3_FOUND就會自動設置成true 表示找到了這個庫 如果DEFAULT_MSG_EIGEN3這個可選的參數寫上了,則會
#輸出相應的成功找到或者失敗找到的信息。
#參考網址:https://cmake.org/cmake/help/v3.0/module/FindPackageHandleStandardArgs.html
    find_package_handle_standard_args( Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR )   

#標記變量為高級,如果這個變量被設置成了高級或者非高級,則繼續保持原來狀態。
#參考:https://cmake.org/cmake/help/v3.0/command/mark_as_advanced.html
    mark_as_advanced( EIGEN3_INCLUDE_DIR )
endif(EIGEN3_INCLUDE_DIR)

 

歡迎大家關注我的微信公眾號「佛系師兄」,里面有關於 Ceres 以及 OpenCV 等更多技術文章。

比如

反復研究好幾遍,我才發現關於 CMake 變量還可以這樣理解!

更多好的文章會優先在里面不定期分享!打開微信客戶端,掃描下方二維碼即可關注!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM