diff --git a/src/gn/ninja_binary_target_writer.cc b/src/gn/ninja_binary_target_writer.cc
index e6f0cda..e3e36e5 100644
--- a/src/gn/ninja_binary_target_writer.cc
+++ b/src/gn/ninja_binary_target_writer.cc
@@ -156,7 +156,7 @@
   // don't link at all.
   bool can_link_libs = target_->IsFinal();
 
-  if (can_link_libs && dep->swift_values().builds_module())
+  if (can_link_libs && dep->builds_swift_module())
     classified_deps->swiftmodule_deps.push_back(dep);
 
   if (target_->source_types_used().RustSourceUsed() &&
diff --git a/src/gn/ninja_c_binary_target_writer.cc b/src/gn/ninja_c_binary_target_writer.cc
index 052f03a..2a13c86 100644
--- a/src/gn/ninja_c_binary_target_writer.cc
+++ b/src/gn/ninja_c_binary_target_writer.cc
@@ -678,7 +678,7 @@
       swiftmodules.push_back(dep->swift_values().module_output_file());
       implicit_deps.push_back(dep->swift_values().module_output_file());
     }
-    if (target_->swift_values().builds_module()) {
+    if (target_->builds_swift_module()) {
       swiftmodules.push_back(target_->swift_values().module_output_file());
       implicit_deps.push_back(target_->swift_values().module_output_file());
     }
diff --git a/src/gn/ninja_c_binary_target_writer_unittest.cc b/src/gn/ninja_c_binary_target_writer_unittest.cc
index ff51121..6056c36 100644
--- a/src/gn/ninja_c_binary_target_writer_unittest.cc
+++ b/src/gn/ninja_c_binary_target_writer_unittest.cc
@@ -2378,10 +2378,10 @@
         "target_output_name = bar\n"
         "\n"
         "build obj/bar/Bar.swiftmodule: swift ../../bar/bar.swift"
-        " || obj/foo/foo.stamp\n"
+        " || obj/bar/group.stamp obj/foo/foo.stamp\n"
         "\n"
         "build obj/bar/bar.o: stamp obj/bar/Bar.swiftmodule"
-        " || obj/foo/foo.stamp\n"
+        " || obj/bar/group.stamp obj/foo/foo.stamp\n"
         "\n"
         "build obj/bar/bar.stamp: stamp obj/bar/bar.o "
         "|| obj/bar/group.stamp obj/foo/foo.stamp\n";
diff --git a/src/gn/swift_values.cc b/src/gn/swift_values.cc
index a70c72f..3cfd377 100644
--- a/src/gn/swift_values.cc
+++ b/src/gn/swift_values.cc
@@ -48,7 +48,7 @@
           pair.ptr->swift_values().public_modules().end());
   }
 
-  if (target->swift_values().builds_module())
+  if (target->builds_swift_module())
     target->swift_values().public_modules_.push_back(target);
 }
 
diff --git a/src/gn/swift_values.h b/src/gn/swift_values.h
index 3852366..91ec066 100644
--- a/src/gn/swift_values.h
+++ b/src/gn/swift_values.h
@@ -35,9 +35,6 @@
   std::string& module_name() { return module_name_; }
   const std::string module_name() const { return module_name_; }
 
-  // Returns whether the target generates a .swiftmodule.
-  bool builds_module() const { return !module_output_file_.value().empty(); }
-
   // Name of the generated .swiftmodule file. Computed when the target
   // is resolved.
   const OutputFile& module_output_file() const { return module_output_file_; }
diff --git a/src/gn/target.cc b/src/gn/target.cc
index f0c897e..7b545b5 100644
--- a/src/gn/target.cc
+++ b/src/gn/target.cc
@@ -889,7 +889,7 @@
     // by the current target).
     if (pair.ptr->IsBinary() && !pair.ptr->all_headers_public() &&
         pair.ptr->public_headers().empty() &&
-        !pair.ptr->swift_values().builds_module()) {
+        !pair.ptr->builds_swift_module()) {
       continue;
     }
 
diff --git a/src/gn/target.h b/src/gn/target.h
index de076a8..66e5c6c 100644
--- a/src/gn/target.h
+++ b/src/gn/target.h
@@ -239,7 +239,7 @@
     return output_type_ == ACTION || output_type_ == ACTION_FOREACH ||
            output_type_ == COPY_FILES || output_type_ == CREATE_BUNDLE ||
            output_type_ == BUNDLE_DATA || output_type_ == GENERATED_FILE ||
-           (IsBinary() && has_swift_values() && swift_values().builds_module());
+           builds_swift_module();
   }
 
   // Returns the iterator range which can be used in range-based for loops
@@ -311,6 +311,12 @@
   const SwiftValues& swift_values() const;
   bool has_swift_values() const { return swift_values_.get(); }
 
+  // Return true if this targets builds a SwiftModule
+  bool builds_swift_module() const {
+    return IsBinary() && has_swift_values() &&
+           source_types_used().SwiftSourceUsed();
+  }
+
   RustValues& rust_values();
   const RustValues& rust_values() const;
   bool has_rust_values() const { return rust_values_.get(); }
