xref: /llvm-project/clang/lib/Basic/ASTSourceDescriptor.cpp (revision 8918d35dbde126c95350b674a2bb102692d90260)
1*8918d35dSDavid Stone //===- ASTSourceDescriptor.cpp -------------------------------------===//
2*8918d35dSDavid Stone //
3*8918d35dSDavid Stone // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*8918d35dSDavid Stone // See https://llvm.org/LICENSE.txt for license information.
5*8918d35dSDavid Stone // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*8918d35dSDavid Stone //
7*8918d35dSDavid Stone //===----------------------------------------------------------------------===//
8*8918d35dSDavid Stone //
9*8918d35dSDavid Stone /// Defines the clang::ASTSourceDescriptor class, which abstracts clang modules
10*8918d35dSDavid Stone /// and precompiled header files
11*8918d35dSDavid Stone //
12*8918d35dSDavid Stone //===----------------------------------------------------------------------===//
13*8918d35dSDavid Stone 
14*8918d35dSDavid Stone #include "clang/Basic/ASTSourceDescriptor.h"
15*8918d35dSDavid Stone 
16*8918d35dSDavid Stone namespace clang {
17*8918d35dSDavid Stone 
ASTSourceDescriptor(Module & M)18*8918d35dSDavid Stone ASTSourceDescriptor::ASTSourceDescriptor(Module &M)
19*8918d35dSDavid Stone     : Signature(M.Signature), ClangModule(&M) {
20*8918d35dSDavid Stone   if (M.Directory)
21*8918d35dSDavid Stone     Path = M.Directory->getName();
22*8918d35dSDavid Stone   if (auto File = M.getASTFile())
23*8918d35dSDavid Stone     ASTFile = File->getName();
24*8918d35dSDavid Stone }
25*8918d35dSDavid Stone 
getModuleName() const26*8918d35dSDavid Stone std::string ASTSourceDescriptor::getModuleName() const {
27*8918d35dSDavid Stone   if (ClangModule)
28*8918d35dSDavid Stone     return ClangModule->Name;
29*8918d35dSDavid Stone   else
30*8918d35dSDavid Stone     return std::string(PCHModuleName);
31*8918d35dSDavid Stone }
32*8918d35dSDavid Stone 
33*8918d35dSDavid Stone } // namespace clang
34