1111 2222 3333 4444 5555 6666 7777 8888 9999 10有两种方式来执行脚本。 GN中的所有外部脚本都在Python中。第一种方式是构建步骤。这样的脚本将需要一些输入并生成一些输出作为构建的一部分。调用脚本的目标使用“action”目标类型声明(请参阅gn help action)。 11在构建文件执行期间,执行脚本的第二种方式是同步的。在某些情况下,这是必要的,以确定要编译的文件集,或者获取构建文件可能依赖的某些系统配置。构建文件可以读取脚本的stdout并以不同的方式对其执行操作。 12同步脚本执行由exec_script函数完成(有关详细信息和示例,请参阅gn help exec_script)。因为同步执行脚本需要暂停当前的buildfile执行,直到Python进程完成执行,所以依赖外部脚本很慢,应该最小化。 13为了防止滥用,允许调用exec_script的文件可以在toplevel .gn文件中列入白名单。 Chrome会执行此操作,需要对此类添加进行其他代码审核。请参阅gn help dotfile。 14您可以同步读取和写入在同步运行脚本时不鼓励但偶尔需要的文件。典型的用例是传递比当前平台的命令行限制更长的文件名列表。有关如何读取和写入文件,请参阅gn help read_file和gn help write_file。如果可能,应避免这些功能。 15超过命令行长度限制的操作可以使用响应文件来解决此限制,而不同步写入文件。请参阅gn help response_file_contents。