[modular] Add modular_config output_name parameter

This enables products to contain multiple Modular configuration files
with different names.

Note that at this time, basemgr expects configuration at a hardcoded
path, /config/data/startup.config, which matches the default
output_name.

Bug: 54048
Change-Id: Ie6dd7bbf290e534e93bd1f9e296065d77d2cf38a
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/404710
Commit-Queue: Yegor Pomortsev <ypomortsev@google.com>
Reviewed-by: Gabe Schine <thatguy@google.com>
Reviewed-by: Casey Borders <casbor@google.com>
diff --git a/src/modular/build/modular_config/modular_config.gni b/src/modular/build/modular_config/modular_config.gni
index fa3513d..a0e188f 100644
--- a/src/modular/build/modular_config/modular_config.gni
+++ b/src/modular/build/modular_config/modular_config.gni
@@ -37,13 +37,19 @@
 }
 
 # Packages a modular framework configuration after validating the configuration.
-# Configuration will be found in basemgr's /config/data/startup.config.
+# Configuration will be found in basemgr's /config/data directory.
 #
 # Parameters
 #   config (required)
 #     This is a file containing configuration for the modular framework.
 #     It will be schema-validated.
 #
+#   output_name (optional)
+#     The output name for the configuration file.
+#     For example, if output_name is `foo.config`, basemgr can read this
+#     configuration file from `/config/data/foo.config`.
+#     Default: startup.config
+#
 #   sdk_category (optional)
 #     Publication level of the library in SDKs.
 #     See //build/sdk/sdk_atom.gni.
@@ -73,10 +79,15 @@
     config_data_deps += [ ":" + target_name + "_basemgr.config" ]
   }
 
+  output_name = "startup.config"
+  if (defined(invoker.output_name)) {
+    output_name = invoker.output_name
+  }
+
   config_data(invoker.target_name) {
     for_pkg = "basemgr"
     sources = [ rebase_path(invoker.config) ]
-    outputs = [ "startup.config" ]
+    outputs = [ output_name ]
 
     deps = config_data_deps
   }