gpt4 book ai didi

string - 在 CMake 中如何将命令的多行输出转换为列表?

转载 作者:行者123 更新时间:2023-12-01 01:41:35 24 4
gpt4 key购买 nike

我想做这样的事情

execute_process(
COMMAND bash -c "git --git-dir ${CMAKE_SOURCE_DIR}/.git ls-files"
OUTPUT_VARIABLE TRACKED_FILES)

add_custom_target(all_file_project SOURCES ${TRACKED_FILES})

命令本身似乎按预期工作,但生成的变量“TRACKED_FILES”仅包含一个逻辑条目(一个多行字符串)而不是文件列表。

我可以以某种方式将包含由换行符(“\n”)分隔的多行的字符串转换为 CMake 中的列表吗?

最佳答案

一个选择(正如我的问题的标题所暗示的那样)是主动手动拆分字符串,而不是首先将变量解释为列表:

string(REPLACE "\n" ";" ADDITIONAL_PROJECT_FILES_LIST ${ADDITIONAL_PROJECT_FILES})

这对我有用,但是如果有一些更抽象和更少平台特定的东西会很好(例如,我不知道这是否适用于包括 Windows 在内的所有操作系统)

类似 execute_process(COMMAND find -type f OUTPUT_LIST_VARIABLE MY_LIST)
或者至少 set(MY_LIST FROM_MULTILINE MY_MULTILINE_STRING)

关于string - 在 CMake 中如何将命令的多行输出转换为列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56001683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com