You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While working on a recent changeset we realized after a merge that I would end up with a linker error due to a clangBasic -> clangLex edge. It would be nice to statically enforce the library layering constraints before merge.
Current State
Library layering constraints (e.g. clangBasic cannot depend on clangLex) are enforce by the linker after merge.
Desired State
Constraints such as these can be derived from the compile_commands.json and the headers included. Since most headers have standard prefixes llvm/XYZ/..., clang/ABC/..., these can be combined with the linker flags to check if layering constraints are violated or not.
Benefits
Enforce explicitly linking against a projectComponent if #include "project/Component/Thing.h" was found.
Use the layering constraints to actively guide design.
The text was updated successfully, but these errors were encountered:
While working on a recent changeset we realized after a merge that I would end up with a linker error due to a
clangBasic -> clangLex
edge. It would be nice to statically enforce the library layering constraints before merge.Current State
Library layering constraints (e.g.
clangBasic
cannot depend onclangLex
) are enforce by the linker after merge.Desired State
Constraints such as these can be derived from the
compile_commands.json
and the headers included. Since most headers have standard prefixesllvm/XYZ/...
,clang/ABC/...
, these can be combined with the linker flags to check if layering constraints are violated or not.Benefits
projectComponent
if#include "project/Component/Thing.h"
was found.The text was updated successfully, but these errors were encountered: