diff --git a/src/gn/compile_commands_writer.cc b/src/gn/compile_commands_writer.cc
index c0c9ae7..9ab038e 100644
--- a/src/gn/compile_commands_writer.cc
+++ b/src/gn/compile_commands_writer.cc
@@ -105,7 +105,7 @@
   if (!module_dep_info.empty()) {
     std::ostringstream module_deps_out;
     for (const auto& module_dep : module_dep_info) {
-      module_deps_out << " -fmodule-file=";
+      module_deps_out << " -fmodule-file=" << module_dep.module_name << "=";
       path_output.WriteFile(module_deps_out, module_dep.pcm);
     }
     base::EscapeJSONString(module_deps_out.str(), false,
@@ -114,7 +114,8 @@
     std::ostringstream module_deps_no_self_out;
     for (const auto& module_dep : module_dep_info) {
       if (!module_dep.is_self) {
-        module_deps_no_self_out << " -fmodule-file=";
+        module_deps_no_self_out << " -fmodule-file=" << module_dep.module_name
+                                << "=";
         path_output.WriteFile(module_deps_no_self_out, module_dep.pcm);
       }
     }
diff --git a/src/gn/compile_commands_writer_unittest.cc b/src/gn/compile_commands_writer_unittest.cc
index badd100..9dff19d 100644
--- a/src/gn/compile_commands_writer_unittest.cc
+++ b/src/gn/compile_commands_writer_unittest.cc
@@ -666,7 +666,7 @@
       "    \"file\": \"../../foo/dep.cc\",\r\n"
       "    \"directory\": \"out/Debug\",\r\n"
       "    \"command\": \"c++ ../../foo/dep.cc    "
-      "-fmodule-file=withmodules/obj/foo/module.foo.pcm   -o  "
+      "-fmodule-file=module=withmodules/obj/foo/module.foo.pcm   -o  "
       "withmodules/obj/foo/dep.dep.o\"\r\n"
       "  }\r\n"
       "]\r\n";
@@ -677,7 +677,7 @@
       "    \"file\": \"../../foo/dep.cc\",\n"
       "    \"directory\": \"out/Debug\",\n"
       "    \"command\": \"c++ ../../foo/dep.cc    "
-      "-fmodule-file=withmodules/obj/foo/module.foo.pcm   -o  "
+      "-fmodule-file=module=withmodules/obj/foo/module.foo.pcm   -o  "
       "withmodules/obj/foo/dep.dep.o\"\n"
       "  }\n"
       "]\n";
diff --git a/src/gn/ninja_c_binary_target_writer.cc b/src/gn/ninja_c_binary_target_writer.cc
index cc98af4..4d9d6e9 100644
--- a/src/gn/ninja_c_binary_target_writer.cc
+++ b/src/gn/ninja_c_binary_target_writer.cc
@@ -195,6 +195,8 @@
       if (!module_dep.is_self || include_self) {
         out_ << " ";
         EscapeStringToStream(out_, "-fmodule-file=", options);
+        EscapeStringToStream(out_, module_dep.module_name, options);
+        out_ << "=";
         path_output_.WriteFile(out_, module_dep.pcm);
       }
     }
diff --git a/src/gn/ninja_c_binary_target_writer_unittest.cc b/src/gn/ninja_c_binary_target_writer_unittest.cc
index 9789327..97ddad0 100644
--- a/src/gn/ninja_c_binary_target_writer_unittest.cc
+++ b/src/gn/ninja_c_binary_target_writer_unittest.cc
@@ -2584,7 +2584,7 @@
 include_dirs =
 cflags =
 cflags_cc =
-module_deps = -fmodule-file=obj/blah/liba.a.pcm
+module_deps = -fmodule-file=a=obj/blah/liba.a.pcm
 module_deps_no_self =
 label = //blah$:a
 root_out_dir = withmodules
@@ -2630,8 +2630,8 @@
 include_dirs =
 cflags =
 cflags_cc =
-module_deps = -fmodule-file=obj/blah/liba.a.pcm -fmodule-file=obj/stuff/libb.b.pcm
-module_deps_no_self = -fmodule-file=obj/blah/liba.a.pcm
+module_deps = -fmodule-file=a=obj/blah/liba.a.pcm -fmodule-file=b=obj/stuff/libb.b.pcm
+module_deps_no_self = -fmodule-file=a=obj/blah/liba.a.pcm
 label = //stuff$:b
 root_out_dir = withmodules
 target_out_dir = obj/stuff
@@ -2674,8 +2674,8 @@
 include_dirs =
 cflags =
 cflags_cc =
-module_deps = -fmodule-file=obj/blah/liba.a.pcm -fmodule-file=obj/stuff/libb.b.pcm -fmodule-file=obj/stuff/libc.c.pcm
-module_deps_no_self = -fmodule-file=obj/blah/liba.a.pcm -fmodule-file=obj/stuff/libb.b.pcm
+module_deps = -fmodule-file=a=obj/blah/liba.a.pcm -fmodule-file=b=obj/stuff/libb.b.pcm -fmodule-file=c=obj/stuff/libc.c.pcm
+module_deps_no_self = -fmodule-file=a=obj/blah/liba.a.pcm -fmodule-file=b=obj/stuff/libb.b.pcm
 label = //things$:c
 root_out_dir = withmodules
 target_out_dir = obj/things
@@ -2714,8 +2714,8 @@
 include_dirs =
 cflags =
 cflags_cc =
-module_deps = -fmodule-file=obj/blah/liba.a.pcm -fmodule-file=obj/stuff/libb.b.pcm
-module_deps_no_self = -fmodule-file=obj/blah/liba.a.pcm -fmodule-file=obj/stuff/libb.b.pcm
+module_deps = -fmodule-file=a=obj/blah/liba.a.pcm -fmodule-file=b=obj/stuff/libb.b.pcm
+module_deps_no_self = -fmodule-file=a=obj/blah/liba.a.pcm -fmodule-file=b=obj/stuff/libb.b.pcm
 label = //zap$:c
 root_out_dir = withmodules
 target_out_dir = obj/zap
diff --git a/src/gn/ninja_module_writer_util.cc b/src/gn/ninja_module_writer_util.cc
index b08aafd..168895f 100644
--- a/src/gn/ninja_module_writer_util.cc
+++ b/src/gn/ninja_module_writer_util.cc
@@ -46,10 +46,6 @@
     if (!modulemap)  // Not a module or no .modulemap file.
       return;
 
-    std::string label;
-    CHECK(SubstitutionWriter::GetTargetSubstitution(
-        t, &SubstitutionLabelNoToolchain, &label));
-
     const char* tool_type;
     std::vector<OutputFile> modulemap_outputs;
     CHECK(
@@ -58,7 +54,8 @@
     const OutputFile& pcm_file = modulemap_outputs[0];
 
     if (added_pcms.insert(pcm_file).second) {
-      ret.emplace_back(modulemap, label, pcm_file, is_self);
+      // GN sets the module name to the name of the target.
+      ret.emplace_back(modulemap, t->label().name(), pcm_file, is_self);
     }
   };
 
