cmake 文件应该安装在哪里?我目前有安装目标
cmake_minimum_required(VERSION 2.8.10)
project(projectname)
include(CMakePackageConfigHelpers)
include(GNUInstallDirs)
add_library(projectnameINTERFACE)
target_include_directories(projectnameINTERFACE
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/projectname>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/>
)
configure_package_config_file(projectnameConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/projectnameConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX})
install(TARGETS projectnameEXPORT projectname-targets)
install(EXPORT projectname-targets FILE projectnameTargets.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/projectnameConfig.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake)
install(DIRECTORY ./ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/projectname FILES_MATCHING PATTERN "*.h" PATTERN ".git" EXCLUDE)
是路径${CMAKE_INSTALL_PREFIX}/share/projectname/cmake
正确的?
对于 Windows 版本,应该安装CMAKE_INSTALL_PREFIX=C:/libs/project
。在 Linux 中安装时使用CMAKE_INSTALL_PREFIX=/usr
or /usr/local
,我不确定 cmake 文件是否应该安装在/usr/share/cmake
或类似的文件夹。
最后,它应该适用于这两种方法(/usr
and path/to/libdir
)以合理的方式。
根据官方 cmake 文档,有几种可能的方式来安装这些 cmake 文件。为了使用以下方式找到图书馆,位置很重要find_package()
命令。根据平台的不同,可能的位置有:
<prefix>/ (Windows)
<prefix>/(cmake|CMake)/ (Windows)
<prefix>/<name>*/ (Windows)
<prefix>/<name>*/(cmake|CMake)/ (Windows)
<prefix>/(lib/<arch>|lib*|share)/cmake/<name>*/ (Unix)
<prefix>/(lib/<arch>|lib*|share)/<name>*/ (Unix)
<prefix>/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/ (Unix)
<prefix>/<name>*/(lib/<arch>|lib*|share)/cmake/<name>*/ (Windows/Unix)
<prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/ (Windows/Unix)
<prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/ (Windows/Unix)
<prefix>/<name>.framework/Resources/ (macOS)
<prefix>/<name>.framework/Resources/CMake/ (macOS)
<prefix>/<name>.framework/Versions/*/Resources/ (macOS)
<prefix>/<name>.framework/Versions/*/Resources/CMake/ (macOS)
<prefix>/<name>.app/Contents/Resources/ (macOS)
<prefix>/<name>.app/Contents/Resources/CMake/ (macOS)
前缀由以下定义CMAKE_INSTALL_PREFIX
变量默认为C:/Program Files/${PROJECT_NAME}
在 Windows 和/usr/local
在 Unix 上。
在我的 Arch Linux 系统上,大多数库都使用<prefix>/lib*/cmake/<name>*/
(Unix 风格)位置。对于 Windows 个人来说,我更喜欢<prefix>/cmake
地点。
有关更多详细信息,我建议您阅读 CMake 版本的官方文档(对于 v3.14,请参阅下面参考文献中的链接)。
参考:
- https://cmake.org/cmake/help/v3.14/variable/CMAKE_INSTALL_PREFIX.html https://cmake.org/cmake/help/v3.14/variable/CMAKE_INSTALL_PREFIX.html
- https://cmake.org/cmake/help/v3.14/command/find_package.html?highlight=find_package#id5 https://cmake.org/cmake/help/v3.14/command/find_package.html?highlight=find_package#id5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)