[clang] [clang][InstallAPI] Add input file support to library (PR #81701)

Cyndy Ishida via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 14 16:29:47 PST 2024


================
@@ -0,0 +1,53 @@
+//===- InstallAPI/FileList.h ------------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+///
+/// The JSON file list parser is used to communicate input to InstallAPI.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_CLANG_INSTALLAPI_FILELIST_H
+#define LLVM_CLANG_INSTALLAPI_FILELIST_H
+
+#include "clang/Basic/Diagnostic.h"
+#include "clang/Basic/FileManager.h"
+#include "clang/InstallAPI/HeaderFile.h"
+#include "llvm/Support/Error.h"
+#include "llvm/Support/MemoryBuffer.h"
+
+namespace clang {
+namespace installapi {
+
+/// JSON decoder for InstallAPI Inputs.
+class FileListReader {
+
+  class Implementation;
+  Implementation &Impl;
+
+  FileListReader(std::unique_ptr<llvm::MemoryBuffer> InputBuffer,
+                 llvm::Error &Err);
+
+public:
+  /// Decode JSON input and append header input into destination container.
+  /// Headers are loaded in the order they appear in the JSON input.
+  ///
+  /// \param InputBuffer JSON input data.
+  /// \param Destination Container to load headers into.
+  static llvm::Error
+  loadHeaders(std::unique_ptr<llvm::MemoryBuffer> InputBuffer,
----------------
cyndyishida wrote:

I want to keep the signature because the driver will accept multiple file lists but hold a single `HeaderSeq` and it's easier to handle continuous insertion.  

https://github.com/llvm/llvm-project/pull/81701


More information about the cfe-commits mailing list