【问题标题】:cmake - How to make sure a program(dependency) is installed on users machinecmake - 如何确保程序(依赖项)安装在用户机器上
【发布时间】:2022-12-13 10:43:32
【问题描述】:
我的 c 程序(用于 linux)需要用户有一个特定的程序让我们说“foo”被安装工作。我正在使用 cmake 生成构建文件。
这个程序是要分发的。
我怎样才能确保它是使用 cmake 安装的。
我找到了this,但它是为了在运行时检查。我想在构建程序之前检查它。
【问题讨论】:
标签:
c
linux
cmake
dependencies
【解决方案1】:
如果foo提供了CMake包,使用find_package寻找foo:
find_package(foo REQUIRED)
# Use the foo::foo imported target or foo_EXECUTABLE cache variable
CMake 有many built-in packages,包括Python 和FLEX。
如果foo做不是提供一个CMake包,你只需要可执行文件的路径,然后你可以使用find_program:
find_program(Foo_EXECUTABLE foo REQUIRED)
从这里您可以在您的execute_process 或add_custom_command 调用中使用Foo_EXECUTABLE 变量。