我第一次使用cmake,我只是没有运气找到帮助我弄清楚我做错了什么的例子。功能似乎非常基本,但到目前为止我没有尝试过任何有意义的输出或错误。
我有一个文档的PRELOAD命令,只要文档已经创建就可以正常工作。
set(variable_name
PRELOAD ${_source_directory}/Documents/output.txt AS output.txt
)
但我希望文档生成(通过python脚本完成)也是cmake构建过程的一部分。我想要运行的命令是
python_script.py ${_source_directory}/Documents/input.txt
${_source_directory}/Documents/output.txt
我希望在PRELOAD语句执行之前运行。
这是我尝试过的一个例子
add_custom_command(
OUTPUT ${_source_directory}/Documents/output.txt
COMMAND python_script.py ${_source_directory}/Documents/input.txt
${_source_directory}/Documents/output.txt
)
set(variable_name
PRELOAD ${_source_directory}/Documents/output.txt AS output.txt
)
但是这给了我同样的错误,就好像add_custom_command甚至没有(“没有规则来制作目标$ {_ source_directory} /Documents/output.txt”)。
答案 0 :(得分:0)
你做错了。正如评论中提到的set()
没有PRELOAD
。
正确的方法是使用add_custom_target()
在期望的目录中生成output.txt
,然后使用add_dependencies()
生成您要构建的目标,并使用output.txt
。