cmake文件应该安装在哪里?
cmake文件应该安装在哪里?我目前已经为安装目标设置了cmake文件应该安装在哪里?,cmake,Cmake,cmake文件应该安装在哪里?我目前已经为安装目标设置了 cmake_minimum_required(VERSION 2.8.10) project(projectname) include(CMakePackageConfigHelpers) include(GNUInstallDirs) add_library(projectnameINTERFACE) target_include_directories(projectnameINTERFACE $<INSTAL
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_最低要求(版本2.8.10)
项目(项目名称)
包括(CMakePackageConfigHelpers)
包括(GNUInstallDirs)
添加库(projectnameINTERFACE)
目标目录包括目录(projectnameINTERFACE
$
$
)
配置\u包\u配置\u文件(projectnameConfig.cmake.in${cmake\u CURRENT\u BINARY\u DIR}/projectnameConfig.cmake INSTALL\u DESTINATION${cmake\u INSTALL\u PREFIX})
安装(目标projectname导出projectname目标)
安装(导出projectname目标文件projectnameTargets.cmake目标${cmake\u install\u DATAROOTDIR}/cmake)
安装(文件${CMAKE\u CURRENT\u BINARY\u DIR}/projectnameConfig.CMAKE DESTINATION${CMAKE\u install\u DATAROOTDIR}/CMAKE)
安装(目录./DESTINATION${CMAKE\u install\u INCLUDEDIR}/projectname文件\u匹配模式“*.h”模式“.git”排除)
路径${CMAKE\u INSTALL\u PREFIX}/share/projectname/CMAKE
正确吗
对于Windows版本,应使用CMAKE\u INSTALL\u PREFIX=C:/libs/project
安装它。使用CMAKE\u INSTALL\u PREFIX=/usr
或/usr/local
在Linux中安装时,我不确定CMAKE文件是否应安装在/usr/share/CMAKE
或类似文件夹中
最后,它应该以合理的方式使用这两种方法(
/usr
和path/to/libdir
)。使用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)
/(Windows)
/(cmake | cmake)/(Windows)
/*/(窗口)
/*/(cmake | cmake)/(Windows)
/(lib/
我想我会使用/share/${PROJECT\u NAME}/cmake
,所以在两个平台上都是一样的,使用GNUInstallDirs
cmake文件中的路径是${cmake\u INSTALL\u DATAROOTDIR}/${PROJECT\u NAME}/cmake
。对lib或share不是100%确定,但在Linux上,我更习惯于共享非二进制文件。我在/lib/cmake/${PROJECT\u NAME}
下的大多数cmake配置都与Qt和KDE库相关,其他所有库总共231个。在/share/cmake/${PROJECT\u NAME}
只有9个。我安装的大多数库在cmake目录中都有${PROJECT\u NAME}
目录,而不是相反。但正如您从cmake文档中看到的,这取决于您。