clang
17.0.0git
lib
Driver
ToolChains
Ananas.h
Go to the documentation of this file.
1
//===--- Ananas.h - Ananas ToolChain Implementations --------*- 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
#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ANANAS_H
10
#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ANANAS_H
11
12
#include "
Gnu.h
"
13
#include "
clang/Driver/Tool.h
"
14
#include "
clang/Driver/ToolChain.h
"
15
16
namespace
clang
{
17
namespace
driver {
18
namespace
tools {
19
20
/// ananas -- Directly call GNU Binutils assembler and linker
21
namespace
ananas {
22
class
LLVM_LIBRARY_VISIBILITY
Assembler
:
public
Tool
{
23
public
:
24
Assembler
(
const
ToolChain
&TC) :
Tool
(
"ananas::Assembler"
,
"assembler"
, TC) {}
25
26
bool
hasIntegratedCPP
()
const override
{
return
false
; }
27
28
void
ConstructJob(
Compilation
&C,
const
JobAction
&JA,
29
const
InputInfo
&Output,
const
InputInfoList
&Inputs,
30
const
llvm::opt::ArgList &TCArgs,
31
const
char
*LinkingOutput)
const override
;
32
};
33
34
class
LLVM_LIBRARY_VISIBILITY
Linker
:
public
Tool
{
35
public
:
36
Linker
(
const
ToolChain
&TC) :
Tool
(
"ananas::Linker"
,
"linker"
, TC) {}
37
38
bool
hasIntegratedCPP
()
const override
{
return
false
; }
39
bool
isLinkJob
()
const override
{
return
true
; }
40
41
void
ConstructJob(
Compilation
&C,
const
JobAction
&JA,
42
const
InputInfo
&Output,
const
InputInfoList
&Inputs,
43
const
llvm::opt::ArgList &TCArgs,
44
const
char
*LinkingOutput)
const override
;
45
};
46
}
// end namespace ananas
47
}
// end namespace tools
48
49
namespace
toolchains {
50
51
class
LLVM_LIBRARY_VISIBILITY
Ananas
:
public
Generic_ELF
{
52
public
:
53
Ananas
(
const
Driver
&D,
const
llvm::Triple &Triple,
54
const
llvm::opt::ArgList &Args);
55
56
protected
:
57
Tool
*buildAssembler()
const override
;
58
Tool
*buildLinker()
const override
;
59
};
60
61
}
// end namespace toolchains
62
}
// end namespace driver
63
}
// end namespace clang
64
65
#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ANANAS_H
clang::driver::tools::ananas::Assembler::Assembler
Assembler(const ToolChain &TC)
Definition:
Ananas.h:24
clang::driver::tools::ananas::Assembler::hasIntegratedCPP
bool hasIntegratedCPP() const override
Definition:
Ananas.h:26
clang::driver::tools::ananas::Linker::hasIntegratedCPP
bool hasIntegratedCPP() const override
Definition:
Ananas.h:38
clang::driver::tools::ananas::Linker::Linker
Linker(const ToolChain &TC)
Definition:
Ananas.h:36
llvm::SmallVector
Definition:
LLVM.h:38
clang::driver::InputInfo
InputInfo - Wrapper for information about an input source.
Definition:
InputInfo.h:22
clang::driver::toolchains::Ananas
Definition:
Ananas.h:51
clang::driver::Tool
Tool - Information on a specific compilation tool.
Definition:
Tool.h:32
clang::driver::toolchains::Generic_ELF
Definition:
Gnu.h:363
clang::driver::tools::ananas::Linker
Definition:
Ananas.h:34
clang::driver::tools::ananas::Linker::isLinkJob
bool isLinkJob() const override
Definition:
Ananas.h:39
Tool.h
ToolChain.h
Gnu.h
clang::driver::ToolChain
ToolChain - Access to tools for a single platform.
Definition:
ToolChain.h:91
clang::driver::tools::ananas::Assembler
Definition:
Ananas.h:22
clang::driver::Compilation
Compilation - A set of tasks to perform for a single driver invocation.
Definition:
Compilation.h:45
clang
Definition:
CalledOnceCheck.h:17
clang::driver::Driver
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
Definition:
Driver.h:76
clang::driver::JobAction
Definition:
Action.h:398
Generated on Sat Jan 28 2023 08:32:29 for clang by
1.8.17