您应该使用'find_package'还是'include'导入cmake目标?
从一个cmake生成系统导出目标时您应该使用'find_package'还是'include'导入cmake目标?,cmake,imported-targets,Cmake,Imported Targets,从一个cmake生成系统导出目标时 install(TARGETS ${target} EXPORT ${target} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DE
install(TARGETS ${target}
EXPORT ${target}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${target}
)
# install the export info
install(
EXPORT ${target}
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${target}
NAMESPACE ${target}::
FILE ${target}.cmake
)
然后,您应该在CONFIG
模式下使用find_package
从不同的项目中导入此目标,还是只包含生成的cmake脚本?您应该创建另一个名为XXXConfig.cmake
或xxx CONFIG.cmake
的脚本,通过find\u package(XXX)
call,支持将其包含到其他项目中。脚本本身应该包括CMake通过include()
生成的文件。更多信息请参阅。