Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在生成的foo-config.cmake文件中引入find_依赖项调用?_C++_Cmake_Installation_Dependencies - Fatal编程技术网

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如何生成该文件(除了我通常不想添加的其他自定义命令之外)。我在回答中提到了这一点。你看过医生了吗?