================
@@ -45,6 +45,10 @@ class GlobalCompilationDatabase {
     return std::nullopt;
   }
 
+  virtual std::vector<std::string> getAllFilesInProjectOf(PathRef File) const {
----------------
mathstuf wrote:

Probably easiest to see it by the writer code 
[here](https://gitlab.kitware.com/ben.boeckel/cmake/-/commit/9866da328034fbb3a0e96f5cca81e913c0ab8678#b94b7587efb540b6ad866ae5620492d78f6cff24_0_23).
 Basically, it is:

```json
{
  "version": 1,
  "revision": 0,
  "module_sets": [
    {
      "name": "unique name of module set",
      "visible_module_sets": [
        "module sets",
        "which can satisfy",
        "required modules within this module set",
      ],
      "modules": [
        "work-directory": "/path/to/working/directory",
        "source": "path/to/source/file",
        "name": "name.of.provided.module",
        "private": false,
        "requires": [
          "list",
          "of",
          "required",
          "modulest"
        ],
        "flag_sets": [
          "-fstandalone-flag",
          ["-fflag", "with-arg"],
        ]
      ]
    }
  ]
}
```

The semantics are:

- module sets may refer to other module sets named in order to satisfy their 
required modules;
- however, private modules in other module sets are not usable;
- `work-directory` is optional;
- `private` defaults to `false`;
- flag sets need to be used to compile the BMI in question (Daniel Ruoso's 
"local preprocessor arguments");
- flags may be deduplicated/merged by top-level identities.

https://github.com/llvm/llvm-project/pull/66462
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to