diff options
author | hlopko <hlopko@google.com> | 2018-05-16 12:32:32 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-16 12:34:09 -0700 |
commit | 6f1a2ecbc05a3d8f7864de8ab085e6c6ec5b9f1a (patch) | |
tree | 729ba817da985381dcb9905bc14dd489f43fc845 | |
parent | 391c4cf4acdc33717b24a1338f51961edac2cb98 (diff) |
Replace use of output_object_file with output_file in CROSSTOOLS.
RELNOTES: None.
PiperOrigin-RevId: 196870840
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java | 12 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL | 168 | ||||
-rw-r--r-- | tools/cpp/CROSSTOOL | 113 | ||||
-rw-r--r-- | tools/cpp/CROSSTOOL.tpl | 124 | ||||
-rw-r--r-- | tools/cpp/crosstool_lib.bzl | 12 | ||||
-rw-r--r-- | tools/osx/crosstool/CROSSTOOL.tpl | 140 |
6 files changed, 248 insertions, 321 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java index 626f343015..f1ec0a19a3 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppActionConfigs.java @@ -1145,21 +1145,17 @@ public class CppActionConfigs { " action: 'c++-header-parsing'", " action: 'lto-backend'", " flag_group {", - " expand_if_all_available: 'output_object_file'", - " flag: '-o'", - " flag: '%{output_object_file}'", - " }", - " flag_group {", " expand_if_all_available: 'output_assembly_file'", " flag: '-S'", - " flag: '-o'", - " flag: '%{output_assembly_file}'", " }", " flag_group {", " expand_if_all_available: 'output_preprocess_file'", " flag: '-E'", + " }", + " flag_group {", + " expand_if_all_available: 'output_file'", " flag: '-o'", - " flag: '%{output_preprocess_file}'", + " flag: '%{output_file}'", " }", " }", "}"))); diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL b/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL index 40e2b6a16d..f283dce3fe 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL +++ b/src/test/java/com/google/devtools/build/lib/packages/util/MOCK_OSX_CROSSTOOL @@ -1240,22 +1240,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { @@ -2982,22 +2978,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { @@ -4719,22 +4711,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { @@ -6456,22 +6444,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { @@ -8201,22 +8185,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { @@ -9950,22 +9930,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { @@ -11722,22 +11698,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { @@ -13476,22 +13448,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { @@ -15245,22 +15213,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { @@ -17014,22 +16978,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { @@ -18806,22 +18766,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { @@ -20580,22 +20536,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } feature { diff --git a/tools/cpp/CROSSTOOL b/tools/cpp/CROSSTOOL index d6a3a53c88..29a71a1066 100644 --- a/tools/cpp/CROSSTOOL +++ b/tools/cpp/CROSSTOOL @@ -679,31 +679,8 @@ toolchain { tool { tool_path: 'wrapper/bin/msvc_cl.bat' } - flag_set { - flag_group { - flag: '/c' - flag: '%{source_file}' - } - } - flag_set { - expand_if_all_available: 'output_object_file' - flag_group { - flag: '/Fo%{output_object_file}' - } - } - flag_set { - expand_if_all_available: 'output_assembly_file' - flag_group { - flag: '/Fa%{output_assembly_file}' - } - } - flag_set { - expand_if_all_available: 'output_preprocess_file' - flag_group { - flag: '/P' - flag: '/Fi%{output_preprocess_file}' - } - } + implies: 'compiler_input_flags' + implies: 'compiler_output_flags' implies: 'legacy_compile_flags' implies: 'user_compile_flags' implies: 'sysroot' @@ -716,31 +693,8 @@ toolchain { tool { tool_path: 'wrapper/bin/msvc_cl.bat' } - flag_set { - flag_group { - flag: '/c' - flag: '%{source_file}' - } - } - flag_set { - expand_if_all_available: 'output_object_file' - flag_group { - flag: '/Fo%{output_object_file}' - } - } - flag_set { - expand_if_all_available: 'output_assembly_file' - flag_group { - flag: '/Fa%{output_assembly_file}' - } - } - flag_set { - expand_if_all_available: 'output_preprocess_file' - flag_group { - flag: '/P' - flag: '/Fi%{output_preprocess_file}' - } - } + implies: 'compiler_input_flags' + implies: 'compiler_output_flags' implies: 'legacy_compile_flags' implies: 'user_compile_flags' implies: 'sysroot' @@ -870,6 +824,65 @@ toolchain { } } + feature { + name: 'compiler_output_flags' + flag_set { + action: 'assemble' + flag_group { + expand_if_all_available: 'output_file' + expand_if_none_available: 'output_assembly_file' + expand_if_none_available: 'output_preprocess_file' + flag: '/Fo%{output_file}' + flag: '/Zi' + } + } + flag_set { + action: 'preprocess-assemble' + action: 'c-compile' + action: 'c++-compile' + action: 'c++-header-parsing' + action: 'c++-header-preprocessing' + action: 'c++-module-compile' + action: 'c++-module-codegen' + flag_group { + expand_if_all_available: 'output_file' + expand_if_none_available: 'output_assembly_file' + expand_if_none_available: 'output_preprocess_file' + flag: '/Fo%{output_file}' + } + flag_group { + expand_if_all_available: 'output_file' + expand_if_all_available: 'output_assembly_file' + flag: '/Fa%{output_file}' + } + flag_group { + expand_if_all_available: 'output_file' + expand_if_all_available: 'output_preprocess_file' + flag: '/P' + flag: '/Fi%{output_file}' + } + } + } + + feature { + name: 'compiler_input_flags' + flag_set { + action: 'assemble' + action: 'preprocess-assemble' + action: 'c-compile' + action: 'c++-compile' + action: 'c++-header-parsing' + action: 'c++-header-preprocessing' + action: 'c++-module-compile' + action: 'c++-module-codegen' + flag_group { + expand_if_all_available: 'source_file' + flag: '/c' + flag: '%{source_file}' + } + } + } + compilation_mode_flags { mode: DBG compiler_flag: "/DDEBUG=1" diff --git a/tools/cpp/CROSSTOOL.tpl b/tools/cpp/CROSSTOOL.tpl index d830aded1d..b4d9edd713 100644 --- a/tools/cpp/CROSSTOOL.tpl +++ b/tools/cpp/CROSSTOOL.tpl @@ -327,15 +327,8 @@ toolchain { tool { tool_path: '%{msvc_ml_path}' } - flag_set { - expand_if_all_available: 'output_object_file' - flag_group { - flag: '/Fo%{output_object_file}' - flag: '/Zi' - flag: '/c' - flag: '%{source_file}' - } - } + implies: 'compiler_input_flags' + implies: 'compiler_output_flags' implies: 'nologo' implies: 'msvc_env' implies: 'sysroot' @@ -347,31 +340,8 @@ toolchain { tool { tool_path: '%{msvc_cl_path}' } - flag_set { - flag_group { - flag: '/c' - flag: '%{source_file}' - } - } - flag_set { - expand_if_all_available: 'output_object_file' - flag_group { - flag: '/Fo%{output_object_file}' - } - } - flag_set { - expand_if_all_available: 'output_assembly_file' - flag_group { - flag: '/Fa%{output_assembly_file}' - } - } - flag_set { - expand_if_all_available: 'output_preprocess_file' - flag_group { - flag: '/P' - flag: '/Fi%{output_preprocess_file}' - } - } + implies: 'compiler_input_flags' + implies: 'compiler_output_flags' implies: 'legacy_compile_flags' implies: 'nologo' implies: 'msvc_env' @@ -387,31 +357,8 @@ toolchain { tool { tool_path: '%{msvc_cl_path}' } - flag_set { - flag_group { - flag: '/c' - flag: '%{source_file}' - } - } - flag_set { - expand_if_all_available: 'output_object_file' - flag_group { - flag: '/Fo%{output_object_file}' - } - } - flag_set { - expand_if_all_available: 'output_assembly_file' - flag_group { - flag: '/Fa%{output_assembly_file}' - } - } - flag_set { - expand_if_all_available: 'output_preprocess_file' - flag_group { - flag: '/P' - flag: '/Fi%{output_preprocess_file}' - } - } + implies: 'compiler_input_flags' + implies: 'compiler_output_flags' implies: 'legacy_compile_flags' implies: 'nologo' implies: 'msvc_env' @@ -1043,6 +990,65 @@ toolchain { } feature { + name: 'compiler_output_flags' + flag_set { + action: 'assemble' + flag_group { + expand_if_all_available: 'output_file' + expand_if_none_available: 'output_assembly_file' + expand_if_none_available: 'output_preprocess_file' + flag: '/Fo%{output_file}' + flag: '/Zi' + } + } + flag_set { + action: 'preprocess-assemble' + action: 'c-compile' + action: 'c++-compile' + action: 'c++-header-parsing' + action: 'c++-header-preprocessing' + action: 'c++-module-compile' + action: 'c++-module-codegen' + flag_group { + expand_if_all_available: 'output_file' + expand_if_none_available: 'output_assembly_file' + expand_if_none_available: 'output_preprocess_file' + flag: '/Fo%{output_file}' + } + flag_group { + expand_if_all_available: 'output_file' + expand_if_all_available: 'output_assembly_file' + flag: '/Fa%{output_file}' + } + flag_group { + expand_if_all_available: 'output_file' + expand_if_all_available: 'output_preprocess_file' + flag: '/P' + flag: '/Fi%{output_file}' + } + } + } + + feature { + name: 'compiler_input_flags' + flag_set { + action: 'assemble' + action: 'preprocess-assemble' + action: 'c-compile' + action: 'c++-compile' + action: 'c++-header-parsing' + action: 'c++-header-preprocessing' + action: 'c++-module-compile' + action: 'c++-module-codegen' + flag_group { + expand_if_all_available: 'source_file' + flag: '/c' + flag: '%{source_file}' + } + } + } + + feature { name : 'def_file', flag_set { expand_if_all_available: 'def_file_path' diff --git a/tools/cpp/crosstool_lib.bzl b/tools/cpp/crosstool_lib.bzl index 875386d47d..1ddd838d0a 100644 --- a/tools/cpp/crosstool_lib.bzl +++ b/tools/cpp/crosstool_lib.bzl @@ -223,18 +223,18 @@ def get_features_to_appear_last(platform): feature( "compiler_output_flags", [ flag_set(COMPILE_ACTIONS,[ - flag_group( - flags("-o", "%{output_object_file}"), - expand_if_all_available=["output_object_file"], - ), flag_group( - flags("-S", "-o", "%{output_assembly_file}"), + flags("-S"), expand_if_all_available=["output_assembly_file"], ), flag_group( - flags("-E", "-o", "%{output_preprocess_file}"), + flags("-E"), expand_if_all_available=["output_preprocess_file"], ), + flag_group( + flags("-o", "%{output_file}"), + expand_if_all_available=["output_file"], + ), ]) ] ), diff --git a/tools/osx/crosstool/CROSSTOOL.tpl b/tools/osx/crosstool/CROSSTOOL.tpl index 79c294c637..63d1cad81f 100644 --- a/tools/osx/crosstool/CROSSTOOL.tpl +++ b/tools/osx/crosstool/CROSSTOOL.tpl @@ -1166,22 +1166,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } action_config { @@ -2812,22 +2808,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } action_config { @@ -4462,22 +4454,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } action_config { @@ -6132,22 +6120,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } action_config { @@ -7790,22 +7774,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } action_config { @@ -9428,22 +9408,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } action_config { @@ -11066,22 +11042,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } action_config { @@ -12724,22 +12696,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } action_config { @@ -14370,22 +14338,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } action_config { @@ -16007,22 +15971,18 @@ toolchain { action: "objc-compile" action: "objc++-compile" flag_group { - flag: "-o" - flag: "%{output_object_file}" - expand_if_all_available: "output_object_file" - } - flag_group { flag: "-S" - flag: "-o" - flag: "%{output_assembly_file}" expand_if_all_available: "output_assembly_file" } flag_group { flag: "-E" - flag: "-o" - flag: "%{output_preprocess_file}" expand_if_all_available: "output_preprocess_file" } + flag_group { + flag: "-o" + flag: "%{output_file}" + expand_if_all_available: "output_file" + } } } action_config { |