cmake:separate_arguments 拼搏现实的明天。 2022-10-11 13:59 10阅读 0赞 将命令行参数解析为分号分隔的列表。 separate_arguments(<variable> <mode> [PROGRAM [SEPARATE_ARGS]] <args>) 将空格分隔的字符串< args >解析为项列表,并将该列表以分号分隔的标准形式存储在< variable >中。 此函数用于解析命令行参数。整个命令行必须作为一个字符串在参数< args >中传递。 具体的解析规则取决于操作系统。它们由< mode >参数指定,该参数必须是以下关键字之一: * `UNIX_COMMAND`: * 参数之间用不带引号的空格隔开。 * 同时考虑单引号和双引号对。 * 反斜杠转义下一个文字字符(`\"`相当于`"`); * 没有特殊的转义符(`\n`只是`n`)。 * WINDOWS\_COMMAND: * Windows命令行使用运行时库在启动时用于构造argv的相同语法进行解析。 * 它用没有双引号的空格分隔参数。 * 反斜杠是文字,除非它们位于双引号之前。 * 详细信息请参见MSDN文章解析C命令行参数。 * NATIVE\_COMMAND: * 3.9新版功能。 * 如果主机系统是Windows,则执行WINDOWS\_COMMAND模式。否则,执行UNIX\_COMMAND模式。 PROGRAM: * 3.19新版功能。 * < args >中的第一个项假定为可执行文件,将在系统搜索路径中搜索,或作为完整路径保留。 * 如果未找到,< variable>将为空。 * 否则,< variable>是两个元素的列表: * 程序的绝对路径 * 在< args >中作为字符串出现的任何命令行参数 例如: separate_arguments (out UNIX_COMMAND PROGRAM "cc -c main.c") * 列表的第一个元素:/path/to/cc * 列表的第二个元素:" -c main.c" SEPARATE\_ARGS * 当指定了PROGRAM选项的子选项时,命令行参数也会被分割并存储在< variable >中。 例如: separate_arguments (out UNIX_COMMAND PROGRAM SEPARATE_ARGS "cc -c main.c") * out的内容将是: /path/to/cc;-c;main.c separate_arguments(<var>) 将< var >的值转换为分号分隔的列表。所有空格都用“;”替换。这有助于生成命令行。
还没有评论,来说两句吧...