blob: ff4b06c48542c1dca5cfaeb8918136d28d150a21 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2019-2020 Martin Weber.
*
* Content is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 "EPL".
* A copy of the EPL is available at http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
package org.eclipse.cdt.jsoncdb.core.participant.builtins;
import java.util.List;
/**
* Specifies how built-in compiler macros and include path detection is handled
* for a specific compiler.
*
* @author Martin Weber
*/
public interface IBuiltinsDetectionBehavior {
/**
* Gets the compiler arguments that tell the compiler to output its built-in
* values for include search paths and predefined macros. For the GNU compilers,
* these are {@code -E -P -dM -Wp,-v}.
*/
List<String> getBuiltinsOutputEnablingArgs();
/**
* Creates an object that parses the output from built-in detection.
*/
IBuiltinsOutputProcessor createCompilerOutputProcessor();
/**
* Gets whether to suppress the error-message that is printed if the compiler
* process exited with a non-zero exit status code. Except for some special
* cases, most implementations, should return {@code false} here.
*/
boolean suppressErrormessage();
}