C++ 如何在生成的foo-config.cmake文件中引入find_依赖项调用?
我有一个名为C++ 如何在生成的foo-config.cmake文件中引入find_依赖项调用?,c++,cmake,installation,dependencies,C++,Cmake,Installation,Dependencies,我有一个名为foo的CMake项目。在其CMakeLists.txt和其他命令中,我有: install( EXPORT foo_export DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/foo" NAMESPACE "foo::" FILE foo-config.cmake ) (以及稍后的write_basic_package_version_file()调用。) 现在,我希望foo
foo
的CMake项目。在其CMakeLists.txt
和其他命令中,我有:
install(
EXPORT foo_export
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/foo"
NAMESPACE "foo::"
FILE foo-config.cmake
)
(以及稍后的write_basic_package_version_file()
调用。)
现在,我希望foo config.cmake
也使用find_dependency()
检查foo
的依赖项bar
。除了将.cmake
文件生成替换为手动生成之外,我该怎么做
注:
- 我对
是一个需要的依赖项和它是可选的两种情况都感兴趣bar
- 我宁愿不在中编写
foo config.in,除非它是唯一的选项
foo config.CMake的不是CMake,它可以被find\u package(foo)
使用。作为项目的作者,您应该创建此文件并包括由CMake生成的所有其他文件。例如,write\u basic\u package\u version\u file
的结果文件未被CMake使用:应手动将其包含在foo config.CMake
中。确切地说,您的foo config.cmake
可以使用find\u dependency
来定位依赖包。更多信息请参见类似问题。@Tsyvarev:嗯?CMake确实生成了其他项目作者用来利用我安装的foo
的foo config.CMake
。您的另一个答案没有意义,因为您的示例显示了CMake如何生成该文件(除了我通常不想添加的其他自定义命令之外)。我在回答中提到了这一点。你看过文档了吗?应该生成foo config.CMake
的不是CMake,它可以被find\u package(foo)
使用。作为项目的作者,您应该创建此文件并包括由CMake生成的所有其他文件。例如,write\u basic\u package\u version\u file
的结果文件未被CMake使用:应手动将其包含在foo config.CMake
中。确切地说,您的foo config.cmake
可以使用find\u dependency
来定位依赖包。更多信息请参见类似问题。@Tsyvarev:嗯?CMake确实生成了其他项目作者用来利用我安装的foo
的foo config.CMake
。您的另一个答案没有意义,因为您的示例显示了CMake如何生成该文件(除了我通常不想添加的其他自定义命令之外)。我在回答中提到了这一点。你看过医生了吗?