// Copyright 2016 The Bazel Authors. All rights reserved. // // 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 package com.google.devtools.build.lib.rules.cpp; /** * A category of artifacts that are candidate input/output to an action, for which the toolchain can * select a single artifact. */ public enum ArtifactCategory { STATIC_LIBRARY("lib%{base_name}.a"), ALWAYSLINK_STATIC_LIBRARY("lib%{base_name}.lo"), DYNAMIC_LIBRARY("lib%{base_name}.so"), EXECUTABLE("%{base_name}"), INTERFACE_LIBRARY("lib%{base_name}.ifso"), PIC_FILE("%{output_name}.pic"), INCLUDED_FILE_LIST("%{output_name}.d"), OBJECT_FILE("%{output_name}.o"), CPP_MODULE("%{output_name}.pcm"), GENERATED_ASSEMBLY("%{output_name}.s"), PROCESSED_HEADER("%{output_name}.processed"), GENERATED_HEADER("%{output_name}.h"), PREPROCESSED_C_SOURCE("%{output_name}.i"), PREPROCESSED_CPP_SOURCE("%{output_name}.ii"), COVERAGE_DATA_FILE("%{output_name}.gcno"), // A matched-clif protobuf. Typically in binary format, but could be text depending on // the options passed to the clif_matcher. CLIF_OUTPUT_PROTO("%{output_name}.opb"); private final String defaultPattern; ArtifactCategory(String defaultPattern) { this.defaultPattern = defaultPattern; } /** Returns the name of the category. */ public String getCategoryName() { return this.toString().toLowerCase(); } public String getDefaultPattern() { return defaultPattern; } }