blob: d3ef979156c1f7ea5a185c4e513d899027242abf [file] [log] [blame]
// Copyright 2020 The Monogon Project Authors.
//
// SPDX-License-Identifier: Apache-2.0
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package ccfixspec;
// CCFixSpec is the root configuration message for bazel_cc_fix
message CCFixSpec {
// replace contains replace directives which modify normal include file resolution. They can be used to for example
// redirect system includes to third-party library to the correct inter-workspace path or to change the location
// of certain generated files.
repeated Replace replace = 1;
// See GeneratedFile
repeated GeneratedFile generated_file = 2;
// If set, all files in this directory are treated as generated files. Useful for out-of-tree build systems like
// meson and cmake. Shouldn't be set on build systems which build in-tree.
string build_dir = 3;
}
message Replace {
enum Type {
UNKNOWN = 0;
// SYSTEM replaces included system headers (within < >) with the given
// workspace or inter-workspace (external/<otherworkspace>) paths. It
// matches literally as these files are generally not resolvable.
SYSTEM = 1;
// WORKSPACE replaces included workspace-relative headers (after resolving)
// with the given workspace or inter-workspace paths. It matches
// pre-resolved workspace-relative paths.
WORKSPACE = 2;
}
Type type = 1;
string from = 2;
string to = 3;
}
// GeneratedFile represents a generated file which is not present in the
// workspace as it has not been generated yet. Specifying it explicitly allows
// the resolver to know about it an resolve it properly.
message GeneratedFile { string path = 1; }