CMake install路徑指定

在cmake項目里,最終生成的可執(zhí)行文件往往需要一些配置才能正常運行,這些配置可能會存儲入var, etc目錄,不建議自己寫死install路徑,或者將install的函數(shù)再封裝都是不推薦的,畢竟會增加額外的耦合,推薦用cmake內(nèi)置變量指定安裝文件,如下:

CMAKE_INSTALL_BINDIR: bin
CMAKE_INSTALL_DOCDIR: share/doc
CMAKE_INSTALL_INCLUDEDIR: include
CMAKE_INSTALL_DATADIR: share
CMAKE_INSTALL_INFODIR: share/info
CMAKE_INSTALL_LIBDIR: lib
CMAKE_INSTALL_MANDIR: share/man
CMAKE_INSTALL_SBINDIR: sbin
CMAKE_INSTALL_LIBEXECDIR: libexec
CMAKE_INSTALL_SYSCONFDIR: etc
CMAKE_INSTALL_SHAREDSTATEDIR: com
CMAKE_INSTALL_LOCALSTATEDIR: var
CMAKE_INSTALL_RUNSTATEDIR: var/run
CMAKE_INSTALL_DATAROOTDIR: share
CMAKE_INSTALL_LOCALEDIR: share/locale
install(TARGETS my_executable DESTINATION ${CMAKE_INSTALL_BINDIR})
install(FILES my_config.conf DESTINATION ${CMAKE_INSTALL_SYSCONFDIR})
install(FILES my_data_file DESTINATION ${CMAKE_INSTALL_LOCALSTATEDIR})
...

需要注意的是需要導入系統(tǒng)配置, 上面的CMake變量才會有值:

if(WIN32)
    include(InstallRequiredSystemLibraries)
elseif(UINIX)
    include(GNUInstallDirs)
endif()

詳細參考如下
GNUInstallDirs
InstallRequiredSystemLibraries

如果設置的CMAKE_INSTALL_PREFIX為/home/test/Download/install,那么文件會分別安裝到:

/home/test/Download/install/bin
/home/test/Download/install/var
/home/test/Download/install/etc
...

如果重新設置以下路徑為opt:

set(CMAKE_INSTALL_BINDIR "opt")
set(CMAKE_INSTALL_LOCALSTATEDIR "opt")
set(CMAKE_INSTALL_SYSCONFDIR "opt")

那么文件會分別安裝到:

/home/test/Download/install/opt
/home/test/Download/install/opt
/home/test/Download/install/opt
...
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容