clang 20.0.0git
ArgumentsAdjusters.h
Go to the documentation of this file.
1//===- ArgumentsAdjusters.h - Command line arguments adjuster ---*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file declares type ArgumentsAdjuster and functions to create several
10// useful argument adjusters.
11// ArgumentsAdjusters modify command line arguments obtained from a compilation
12// database before they are used to run a frontend action.
13//
14//===----------------------------------------------------------------------===//
15
16#ifndef LLVM_CLANG_TOOLING_ARGUMENTSADJUSTERS_H
17#define LLVM_CLANG_TOOLING_ARGUMENTSADJUSTERS_H
18
19#include "clang/Basic/LLVM.h"
20#include "llvm/ADT/StringRef.h"
21#include <functional>
22#include <string>
23#include <vector>
24
25namespace clang {
26namespace tooling {
27
28/// A sequence of command line arguments.
29using CommandLineArguments = std::vector<std::string>;
30
31/// A prototype of a command line adjuster.
32///
33/// Command line argument adjuster is responsible for command line arguments
34/// modification before the arguments are used to run a frontend action.
36 const CommandLineArguments &, StringRef Filename)>;
37
38/// Gets an argument adjuster that converts input command line arguments
39/// to the "syntax check only" variant.
41
42/// Gets an argument adjuster which removes output-related command line
43/// arguments.
45
46/// Gets an argument adjuster which removes dependency-file
47/// related command line arguments.
49
51
52/// Gets an argument adjuster which inserts \p Extra arguments in the
53/// specified position.
56
57/// Gets an argument adjuster which inserts an \p Extra argument in the
58/// specified position.
60 const char *Extra,
62
63/// Gets an argument adjuster which strips plugin related command line
64/// arguments.
66
67/// Gets an argument adjuster which adjusts the arguments in sequence
68/// with the \p First adjuster and then with the \p Second one.
70 ArgumentsAdjuster Second);
71
72} // namespace tooling
73} // namespace clang
74
75#endif // LLVM_CLANG_TOOLING_ARGUMENTSADJUSTERS_H
StringRef Filename
Definition: Format.cpp:3001
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
std::vector< std::string > CommandLineArguments
A sequence of command line arguments.
ArgumentsAdjuster getClangSyntaxOnlyAdjuster()
Gets an argument adjuster that converts input command line arguments to the "syntax check only" varia...
ArgumentsAdjuster combineAdjusters(ArgumentsAdjuster First, ArgumentsAdjuster Second)
Gets an argument adjuster which adjusts the arguments in sequence with the First adjuster and then wi...
ArgumentsAdjuster getStripPluginsAdjuster()
Gets an argument adjuster which strips plugin related command line arguments.
ArgumentsAdjuster getClangStripDependencyFileAdjuster()
Gets an argument adjuster which removes dependency-file related command line arguments.
std::function< CommandLineArguments(const CommandLineArguments &, StringRef Filename)> ArgumentsAdjuster
A prototype of a command line adjuster.
ArgumentsAdjuster getInsertArgumentAdjuster(const CommandLineArguments &Extra, ArgumentInsertPosition Pos)
Gets an argument adjuster which inserts Extra arguments in the specified position.
ArgumentsAdjuster getClangStripOutputAdjuster()
Gets an argument adjuster which removes output-related command line arguments.
The JSON file list parser is used to communicate input to InstallAPI.