# Mapping file for include-what-you-use. # Check rules at: https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUMappings.md # Take into account that the order in which entries are given for the same # symbol is important. # For instance for grpc::Status has a higher priority: # { "symbol": [ "grpc::Status", "private", "", "public"] }, # { "symbol": [ "grpc::Status", "private", "", "public"] }, [ # Map C headers { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, # Hide std implementation details headers: { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, { "include": ["", "private", "", "public"] }, # Map symbols: { "symbol": ["timespec", "private", "", "public"] }, { "symbol": ["tm", "private", "", "public"] }, { "symbol": ["AT_FDCWD", "private", "", "public"] }, { "symbol": ["SEEK_END", "private", , "public"] }, { "symbol": ["SEEK_SET", "private", , "public"] }, { "symbol": ["pid_t", "private", , "public"] }, { "symbol": ["std::size_t", "private", "", "public"] }, { "symbol": ["size_t", "private", "", "public"] }, { "symbol": ["std::nullptr_t", "private", "", "public"] }, { "symbol": ["std::ptrdiff_t", "private", "", "public"] }, { "symbol": ["FILE", "private", "", "public"] }, { "symbol": ["NULL", "private", "", "public"] }, { "symbol": ["std::thread::id", "private", "", "public"] }, { "symbol": ["uint", "private", "", "public"] }, { "symbol": ["std::uint", "private", "", "public"] }, { "symbol": ["std::hash", "private", "", "public"] }, # Trick to "ignore" std::allocator and similar types we don't want to # include manually. Taken from: # https://github.com/include-what-you-use/include-what-you-use/blob/d2d092919f2774b5463e236e1ee9d56fb46ceb60/gcc.symbols.imp { "symbol": [ "std::allocator", "private", "", "public"] }, { "symbol": [ "std::allocator", "private", "", "public"] }, { "symbol": [ "std::allocator", "private", "", "public"] }, { "symbol": [ "std::allocator", "private", "", "public"] }, { "symbol": [ "std::allocator", "private", "", "public"] }, { "symbol": [ "std::allocator", "private", "", "public"] }, { "symbol": [ "std::allocator", "private", "", "public"] }, { "symbol": [ "std::allocator", "private", "", "public"] }, { "symbol": [ "std::char_traits", "private", "", "public"] }, { "symbol": [ "std::char_traits", "private", "", "public"] }, { "symbol": [ "std::char_traits", "private", "", "public"] }, { "symbol": [ "std::char_traits", "private", "", "public"] }, { "symbol": [ "std::char_traits", "private", "", "public"] }, { "symbol": [ "std::char_traits", "private", "", "public"] }, { "symbol": [ "std::char_traits", "private", "", "public"] }, { "symbol": [ "std::char_traits", "private", "", "public"] }, { "include": ["", "public", "", "public"] }, # Model the dependencies between the public standard stream headers, # in order to include only the top-most library. # Taken from: # https://github.com/include-what-you-use/include-what-you-use/blob/377eaef70cdda47368939f4d9beabfabe3f628f0/iwyu_include_picker.cc#L623 { "include": [ "", "public", "", "public" ] }, { "include": [ "", "public", "", "public" ] }, { "include": [ "", "public", "", "public" ] }, { "include": [ "", "public", "", "public" ] }, { "include": [ "", "public", "", "public" ] }, { "include": [ "", "public", "", "public" ] }, { "include": [ "", "public", "", "public" ] }, { "include": [ "", "public", "", "public" ] }, { "include": [ "", "public", "", "public" ] }, { "include": [ "", "public", "", "public" ] }, { "include": [ "", "public", "", "public" ] }, { "include": [ "", "public", "", "public"] }, # Use common headers for third-parties: { "include": ["@\"gsl/.*\"", "private", "\"gsl/gsl\"", "public"] }, { "include": ["@\"nlohmann/.*\"", "private", "\"nlohmann/json.hpp\"", "public"] }, # "git2/XXX.h" => where XXX doesn't contain '/' { "include": ["@\"git2/[^/]+\\.h\"", "private", "", "public"] }, # "fmt/core.h" is for compatibility reasons; otherwise, include the suggested # headers if they don't break the pkg build { "include": ["\"fmt/format.h\"", "private", "\"fmt/core.h\"", "public"] }, { "include": ["\"fmt/base.h\"", "private", "\"fmt/core.h\"", "public"] }, { "include": ["@\"catch2/matchers/.*\"", "private", "\"catch2/matchers/catch_matchers_all.hpp\"", "public"] }, { "include": ["@\"catch2/generators/.*\"", "private", "\"catch2/generators/catch_generators_all.hpp\"", "public"] }, # For compatibility reasons map all openssl headers to sha.h { "include": ["@\"openssl/.*\"", "private", "\"openssl/sha.h\"", "public"] }, # GRPC: { "include": ["@\"grpcpp/.*\"", "private", "", "public"] }, { "include": ["@", "private", "", "public"] }, { "symbol": [ "grpc::Status", "private", "", "public"] }, { "symbol": [ "grpc::Status", "private", "", "public"] }, # bazel Digest should be included via our bazel_types header: { "include": [ "\"build/bazel/remote/execution/v2/remote_execution.pb.h\"", "private" , "\"src/buildtool/common/bazel_types.hpp\"", "public" ] }, # bazel_re namespace alias should also come from the bazel_types header: { "symbol": ["bazel_re", "private", "\"src/buildtool/common/bazel_types.hpp\"", "public"] }, ]