blob: 7fd19768ea90d1711005926ca9f93385a0e9b002 [file] [log] [blame]
/*
* Copyright 2014-present Facebook, Inc.
*
* 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.facebook.buck.cxx;
/**
* Utilities for working with C-like source types.
*/
public class CxxSourceTypes {
// Utility class; do not instantiate.
private CxxSourceTypes() { }
/**
* Returns true for source types which can be run through the C preprocessor.
*/
public static boolean isPreprocessableType(CxxSource.Type sourceType) {
return
sourceType == CxxSource.Type.C ||
sourceType == CxxSource.Type.CXX ||
sourceType == CxxSource.Type.ASSEMBLER_WITH_CPP ||
sourceType == CxxSource.Type.OBJC ||
sourceType == CxxSource.Type.OBJCXX;
}
/**
* Returns true for source types which can be run through the C preprocessor.
*/
public static boolean isCompilableType(CxxSource.Type sourceType) {
return
sourceType == CxxSource.Type.C_CPP_OUTPUT ||
sourceType == CxxSource.Type.CXX_CPP_OUTPUT ||
sourceType == CxxSource.Type.ASSEMBLER ||
sourceType == CxxSource.Type.OBJC_CPP_OUTPUT ||
sourceType == CxxSource.Type.OBJCXX_CPP_OUTPUT;
}
/**
* Returns true for source types which need to be built with a C++ compiler.
*/
public static boolean needsCxxCompiler(CxxSource.Type sourceType) {
return
sourceType == CxxSource.Type.CXX ||
sourceType == CxxSource.Type.CXX_CPP_OUTPUT ||
sourceType == CxxSource.Type.OBJCXX ||
sourceType == CxxSource.Type.OBJCXX_CPP_OUTPUT;
}
}