CMake學(xué)習(xí)筆記5.doc_第1頁(yè)
CMake學(xué)習(xí)筆記5.doc_第2頁(yè)
CMake學(xué)習(xí)筆記5.doc_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

cmake學(xué)習(xí)筆記(五)在cmake 學(xué)習(xí)筆記(三) 中簡(jiǎn)單學(xué)習(xí)了 find_package 的 model 模式,在cmake 學(xué)習(xí)筆記(四)中了解一個(gè)CMakeCache相關(guān)的東西。但靠這些知識(shí)還是不能看懂PySide使用CMakeLists文件,接下來(lái)繼續(xù)學(xué)習(xí)find_package的 config 模式及package configure文件相關(guān)知識(shí)find_package 的 config 模式當(dāng)CMakeLists.txt中使用find_package命令時(shí),首先啟用的是 module 模式:按照 CMAKE_MODULE_PATH 路徑和cmake的安裝路徑去搜索finder文件 Find.cmake如果finder未找到,則開(kāi)始 config 模式:將在下列路徑下查找 配置 文件 Config.cmake 或 -config.cmake/(W)/(cmake|CMake)/(W)/*/(W)/*/(cmake|CMake)/(W)/(share|lib)/cmake/*/(U)/(share|lib)/*/(U)/(share|lib)/*/(cmake|CMake)/(U) find_package 參數(shù)及規(guī)則見(jiàn)manualConfig.cmake該文件至少需提供頭文件路徑和庫(kù)文件信息。比如 ApiExtractorConfig.cmake 在Windows下一個(gè)例子:# - try to find APIEXTRACTOR# APIEXTRACTOR_INCLUDE_DIR - Directories to include to use APIEXTRACTOR# APIEXTRACTOR_LIBRARIES - Files to link against to use APIEXTRACTORSET(APIEXTRACTOR_INCLUDE_DIR D:/shiboken/dist/include/apiextractor)if(MSVC) SET(APIEXTRACTOR_LIBRARY D:/shiboken/dist/lib/apiextractor.lib)elseif(WIN32) SET(APIEXTRACTOR_LIBRARY D:/shiboken/dist/bin/apiextractor.dll)else() SET(APIEXTRACTOR_LIBRARY D:/shiboken/dist/lib/apiextractor.dll)endif()該文件是通過(guò) configure_file 機(jī)制生成的,我們看看 ApiExtractorConfig.cmake.in 文件:SET(APIEXTRACTOR_INCLUDE_DIR CMAKE_INSTALL_PREFIX/include/apiextractorapiextractor_SUFFIX)if(MSVC) SET(APIEXTRACTOR_LIBRARY LIB_INSTALL_DIR/CMAKE_SHARED_LIBRARY_PREFIXapiextractorapiextractor_SUFFIXLIBRARY_OUTPUT_SUFFIX.lib)elseif(WIN32) SET(APIEXTRACTOR_LIBRARY CMAKE_INSTALL_PREFIX/bin/CMAKE_SHARED_LIBRARY_PREFIXapiextractorapiextractor_SUFFIXLIBRARY_OUTPUT_SUFFIXCMAKE_SHARED_LIBRARY_SUFFIX)else() SET(APIEXTRACTOR_LIBRARY LIB_INSTALL_DIR/CMAKE_SHARED_LIBRARY_PREFIXapiextractorapiextractor_SUFFIXLIBRARY_OUTPUT_SUFFIXCMAKE_SHARED_LIBRARY_SUFFIX)endif()對(duì)應(yīng)的命令(變量的定義略過(guò))configure_file($CMAKE_CURRENT_SOURCE_DIR/ApiExtractorConfig.cmake.in $CMAKE_CURRENT_BINARY_DIR/ApiExtractorConfig.cmake ONLY)ConfigVersion.cmake該文件用來(lái)比對(duì)版本是否匹配,看看ApiExtractorConfigVersion.cmake.in 的內(nèi)容:set(PACKAGE_VERSION apiextractor_VERSION)if($PACKAGE_VERSION VERSION_LESS $PACKAGE_FIND_VERSION ) set(PACKAGE_VERSION_COMPATIBLE FALSE)else($PACKAGE_VERSION VERSION_LESS $PACKAGE_FIND_VERSION ) set(PACKAGE_VERSION_COMPATIBLE TRUE) if( $PACKAGE_FIND_VERSION STREQUAL $PACKAGE_VERSION) set(PACKAGE_VERSION_EXACT TRUE) endif( $PACKAGE_FIND_VERSION STREQUAL $PACKAGE_VERSION)endif($PACKAGE_VERSION VERSION_LESS $PACKAGE_FIND_VERSION )一般提供設(shè)置下面的變量PACKAGE_VERSION完整的版本字符串PACKAGE_VERSION_EXACT如果完全匹配為真PACKAGE_VERSION_COMPATIBLE如果兼容為真PACKAGE_VERSION_UNSUITABLE如果不可用為真find_package進(jìn)而根據(jù)這些設(shè)置_VERSIONfull provided version string_VERSION_MAJORmajor version if provided, else 0_VERSION_MINORminor version if provided, else 0_VERSION_PATCHpatch version if provided, else 0_VERSION_TWEAKtweak version if provided, else 0參考/cmake/help/cmake-2-8-docs.ht

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論