meson-build - 介子相当于 automake 的 CONFIG_STATUS_DEPENDENCIES?
问题描述
我有一个项目,其构建选项非常复杂,以至于我必须在配置过程中运行多个外部脚本。如果这些脚本或它们读取的文件发生更改,则需要重新运行配置。
目前该项目使用 Autotools,我可以使用CONFIG_STATUS_DEPENDENCIES
变量. 我正在尝试将构建过程移植到 Meson,但找不到等效的。目前是否有等效的,还是我需要提交功能请求?
具体来说,进行中的一个片段meson.build
:
pymod = import('python')
python = pymod.find_installation('python3')
svf_script = files('scripts/compute-symver-floor')
svf = run_command(python, svf_script, files('lib'),
host_machine.system())
if svf.returncode() == 0
svf_results = svf.stdout().split('\n')
SYMVER_FLOOR = svf_results[0].strip()
SYMVER_FILE = svf_results[2].strip()
else
error(svf.stderr())
endif
# next line is a fake API expressing the thing I can't figure out how to do
meson.rerun_configuration_if_files_change(svf_script, SYMVER_FILE)
解决方案
这是custom_target()
为了什么。
最小的例子
svf_script = files('svf_script.sh')
svf_depends = files('config_data_1', 'config_data_2') # files that svf_script.sh reads
svf = custom_target('svf_config', command: svf_script, depend_files: svf_depends, build_by_default: true, output: 'fake')
这将创建一个名为svf_config
. 过期时,它会运行该svf_script
命令。它取决于svf_depends
文件对象中的文件,以及command
关键字参数中列出的所有文件(即脚本本身)。
您还可以使用depends
关键字参数将其他目标指定为依赖项。
output
设置为'fake'
阻止介子抱怨缺少输出关键字参数。确保在相应的构建目录中存在同名文件,以防止目标始终被视为过期。或者,如果您的配置脚本生成输出文件,您可以在此数组中列出它们。
推荐阅读
- wordpress - 如何使 iDangerous Swiper 在 Wordpress 上工作
- javascript - 如果页面重新加载,将参数添加到 URL
- python - 有没有办法找到每一行的 Fisher 分数?
- python - Removing duplicates based on two columns while deleting inconsistent data
- java - How to fix RecyclerView OnClick gap display bug?
- javascript - 带有 Express 应用程序生成器的 Webpack
- ios - 在双面(正面和背面)打印机上打印 WebView 内容,正面和背面具有不同的边距
- sql-server-2008 - Crystal Reports 无法识别 varchar(max) 列或数据类型
- arrays - 从嵌套的 mongo 对象中获取数组元素
- screenshot - 交付到 App Store 时,Fastlane 框架不支持的屏幕尺寸