我在使用CMake时遇到以下情况:
-
它必须构建两个应用程序:
a. 发电机
b. 其他的东西
The 发电机没什么花哨的,几个 CPP 文件链接在一起
-
The 其他的东西 is:
A。一些“正常”CPP 文件
b.生成的 CPP/h 文件,我必须链接到这些文件。这些 CPP 文件是由发电机
The 发电机在configure阶段配置了一些选项,根据这些选项生成的文件内容不同。
在这里我收到一个错误:如果我指定了中的所有文件(生成的和未生成的)add_application
of 其他的东西配置阶段被阻塞,因为它找不到生成的文件...显然是因为它们还没有生成,因为发电机尚未建成并执行。
所以问题是:使用 CMake 可以吗?如果是,怎么办?
对的,这是可能的。您可以通过提供自定义命令来生成文件来实现此目的,以便 CMake 学习如何生成它们。这是一个例子:
add_executable(generator gen1.cpp gen2.cpp)
add_custom_command(
OUTPUT generated_file1.cpp generated_file2.cpp
COMMAND generator -options --go here
COMMENT "Running generator"
VERBATIM
)
add_executable(something_else
fixed1.cpp
fixed2.cpp
generated_file1.cpp
generated_file2.cpp
)
这样,CMake 将知道文件已生成,并将引入适当的依赖项 - 键入make something_else
在干净的构建目录中将构建generator
,然后运行它,然后构建something_else
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)