================ @@ -0,0 +1,181 @@ +//===- TUSummaryExtractorFrontendAction.cpp -------------------------------===// +// +// 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 +// +//===----------------------------------------------------------------------===// + +#include "clang/Analysis/Scalable/Frontend/TUSummaryExtractorFrontendAction.h" +#include "clang/AST/ASTConsumer.h" +#include "clang/Analysis/Scalable/Serialization/SerializationFormatRegistry.h" +#include "clang/Analysis/Scalable/TUSummary/ExtractorRegistry.h" +#include "clang/Analysis/Scalable/TUSummary/TUSummary.h" +#include "clang/Analysis/Scalable/TUSummary/TUSummaryBuilder.h" +#include "clang/Analysis/Scalable/TUSummary/TUSummaryExtractor.h" +#include "clang/Basic/DiagnosticFrontend.h" +#include "clang/Frontend/MultiplexConsumer.h" ---------------- steakhal wrote:
Let me try to summarise what we currently have and then the problem how I understand it: The `Scalable/` directory contains a bunch of sub-directories such as `Model`, `Serialization`, etc. The sources within those directories are part of the `clangAnalysisScalable` library in the `Scalable/` directory. However, I tried to add an exception, the `Scalable/Fontend` directory that would NOT be part of the `clangAnalysisScalable` library. And this is what I think violates some bazel rule. While it's possible in CMake describe what I wanted (and it provably doesn't have any circles), it's a surprising and undesirable layout because it detaches the library dependency graph from the directory structure. I did this because I wanted to avoid breaking up the `clangAnalysisScalable` library but I don't think there is a way around it to have a sensible library layering here. I think I could fix this by erasing the `clangAnalysisScalable` and creating the libraries in its subdirectories instead. That way, the directories would nicely nest again. For example: - `Scalable/EntityLinker/*.cpp` -> `clangAnalysisScalableEntityLinker` - `Scalable/Frontend/*.cpp` -> `clangAnalysisScalableFrontend` - `Scalable/Model/*.cpp` -> `clangAnalysisScalableModel` - `Scalable/Serialization/*.cpp` -> `clangAnalysisScalableSerialization` - `Scalable/Support/*.cpp` -> `clangAnalysisScalableSupport` - `Scalable/TUSummary/*.cpp` -> `clangAnalysisScalableTUSummary` There wouldn't be a library directly inside `Scalable/` anymore. (I'll likely try to reduce the number of sub-directories to have fewer sub-libraries) https://github.com/llvm/llvm-project/pull/185656 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
