Index: tools/gn/ninja_binary_target_writer_unittest.cc |
diff --git a/tools/gn/ninja_binary_target_writer_unittest.cc b/tools/gn/ninja_binary_target_writer_unittest.cc |
index df5f5a7168d32989bcce0b1c39bee0b511c84a9e..f4e4065f3a63381a2653bdf9b29ebea22387f2a3 100644 |
--- a/tools/gn/ninja_binary_target_writer_unittest.cc |
+++ b/tools/gn/ninja_binary_target_writer_unittest.cc |
@@ -357,3 +357,42 @@ TEST(NinjaBinaryTargetWriter, SourceSetDataDeps) { |
" output_extension = \n"; |
EXPECT_EQ(final_expected, final_out.str()); |
} |
+ |
+TEST(NinjaBinaryTargetWriter, SharedLibraryModuleDefinitionFile) { |
+ TestWithScope setup; |
+ setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); |
+ setup.settings()->set_target_os(Settings::WIN); |
+ |
+ Target shared_lib(setup.settings(), Label(SourceDir("//foo/"), "bar")); |
+ shared_lib.set_output_type(Target::SHARED_LIBRARY); |
+ shared_lib.SetToolchain(setup.toolchain()); |
+ shared_lib.sources().push_back(SourceFile("//foo/sources.cc")); |
+ shared_lib.sources().push_back(SourceFile("//foo/bar.def")); |
+ |
+ Err err; |
+ ASSERT_TRUE(shared_lib.OnResolved(&err)); |
+ |
+ std::ostringstream out; |
+ NinjaBinaryTargetWriter writer(&shared_lib, out); |
+ writer.Run(); |
+ |
+ const char expected[] = |
+ "defines =\n" |
+ "include_dirs =\n" |
+ "cflags =\n" |
+ "cflags_c =\n" |
+ "cflags_cc =\n" |
+ "cflags_objc =\n" |
+ "cflags_objcc =\n" |
+ "root_out_dir = .\n" |
+ "target_out_dir = obj/foo\n" |
+ "target_output_name = libbar\n" |
+ "\n" |
+ "build obj/foo/libbar.sources.o: cxx ../../foo/sources.cc\n" |
+ "\n" |
+ "build ./libbar.so: solink obj/foo/libbar.sources.o | ../../foo/bar.def\n" |
+ " ldflags = /DEF:../../foo/bar.def\n" |
+ " libs =\n" |
+ " output_extension = .so\n"; |
+ EXPECT_EQ(expected, out.str()); |
+} |