Meta+LibWeb: Pass IDL files to codegen using response file on Windows

It might be a good idea to do this on other platforms as well, but at
least on Windows, the command line for GenerateWindowOrWorkerInterfaces
becomes too large.
This commit is contained in:
Andrew Kaster 2025-02-12 05:23:02 -07:00 committed by Andrew Kaster
commit 80c259125c
Notes: github-actions[bot] 2025-02-13 02:15:07 +00:00
2 changed files with 27 additions and 1 deletions

View file

@ -356,6 +356,25 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
VERIFY(!paths.is_empty());
VERIFY(!base_paths.is_empty());
if (paths.first().starts_with("@"sv)) {
// Response file
auto file_or_error = Core::File::open(paths.first().substring_view(1), Core::File::OpenMode::Read);
paths.remove(0);
VERIFY(paths.is_empty());
if (file_or_error.is_error()) {
s_error_string = ByteString::formatted("Unable to open response file {}", paths.first());
return Error::from_string_view(s_error_string.view());
}
auto file = file_or_error.release_value();
auto string = TRY(file->read_until_eof());
for (auto const& path : StringView(string).split_view('\n')) {
if (path.is_empty())
continue;
paths.append(path);
}
}
Vector<ByteString> lexical_bases;
for (auto const& base_path : base_paths) {
VERIFY(!base_path.is_empty());