Bash Bazel genrule:在命令中使用换行符
我使用的genrule有很多源代码,它们有一个很长的标识符。该命令需要明确列出所有源,这将导致一个非常长的cmd。因此,我尝试使用换行符(如bash或shell命令所示)。。。 然而,bazel抱怨字符串未端接Bash Bazel genrule:在命令中使用换行符,bash,bazel,Bash,Bazel,我使用的genrule有很多源代码,它们有一个很长的标识符。该命令需要明确列出所有源,这将导致一个非常长的cmd。因此,我尝试使用换行符(如bash或shell命令所示)。。。 然而,bazel抱怨字符串未端接 genrule( name = "Aggregate_Reports", srcs = ["//really/long/path/to/module/ModuleA/src:CoverageHtml", "//really/long/path/to/modul
genrule(
name = "Aggregate_Reports",
srcs = ["//really/long/path/to/module/ModuleA/src:CoverageHtml",
"//really/long/path/to/module/ModuleA/src:TestRun",
"//really/long/path/to/module/ModuleB/src:CoverageHtml",],
outs = ["UT_Summary.txt"],
message = "Create unified report",
tools = [":Create_Summary"],
cmd = "$(location :Create_Summary) -t \
$(location //really/long/path/to/module/ModuleA/src:TestRun) \
$(location //really/long/path/to/module/ModuleB/src:TestRun) \
-c \
$(location //really/long/path/to/module/ModuleA/src:CoverageHtml) \
$(location //really/long/path/to/module/ModuleB/src:CoverageHtml) \
-o $(@)",
executable = True,
visibility=["//visibility:public"],
)
用$转义\不会改变任何东西…在Python中,可以使用三重引号保留换行符:
cmd = """$(location :Create_Summary) -t \
$(location //really/long/path/to/module/ModuleA/src:TestRun) \
$(location //really/long/path/to/module/ModuleB/src:TestRun) \
-c \
$(location //really/long/path/to/module/ModuleA/src:CoverageHtml) \
$(location //really/long/path/to/module/ModuleB/src:CoverageHtml) \
-o $(@)""",
与Python中一样,可以使用三重引号保留换行符:
cmd = """$(location :Create_Summary) -t \
$(location //really/long/path/to/module/ModuleA/src:TestRun) \
$(location //really/long/path/to/module/ModuleB/src:TestRun) \
-c \
$(location //really/long/path/to/module/ModuleA/src:CoverageHtml) \
$(location //really/long/path/to/module/ModuleB/src:CoverageHtml) \
-o $(@)""",