Move ExecuteCompilerInvocation to a new library FrontendTool

r110903 introduced a dependency from Frontend to every library that
declared an Action by introducing Action references that previously
resided in the driver in the file ExecuteCompilerInvocation.cpp.
This patch moves ExecuteCompilerInvocation to a new library named
FrontendTool which is intended to bear these dependencies.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111873 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Peter Collingbourne 2010-08-24 00:31:22 +00:00
Родитель aaa107acc8
Коммит 1b7255de78
11 изменённых файлов: 57 добавлений и 14 удалений

Просмотреть файл

@ -77,13 +77,6 @@ void AttachDependencyFileGen(Preprocessor &PP,
/// a seekable stream.
void CacheTokens(Preprocessor &PP, llvm::raw_fd_ostream* OS);
/// ExecuteCompilerInvocation - Execute the given actions described by the
/// compiler invocation object in the given compiler instance.
///
/// \return - True on success.
bool ExecuteCompilerInvocation(CompilerInstance *Clang);
} // end namespace clang
#endif

Просмотреть файл

@ -0,0 +1,30 @@
//===--- Utils.h - Misc utilities for the front-end -------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This header contains miscellaneous utilities for various front-end actions
// which were split from Frontend to minimise Frontend's dependencies.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_CLANG_FRONTENDTOOL_UTILS_H
#define LLVM_CLANG_FRONTENDTOOL_UTILS_H
namespace clang {
class CompilerInstance;
/// ExecuteCompilerInvocation - Execute the given actions described by the
/// compiler invocation object in the given compiler instance.
///
/// \return - True on success.
bool ExecuteCompilerInvocation(CompilerInstance *Clang);
} // end namespace clang
#endif

Просмотреть файл

@ -10,5 +10,6 @@ add_subdirectory(Rewrite)
add_subdirectory(Driver)
add_subdirectory(Serialization)
add_subdirectory(Frontend)
add_subdirectory(FrontendTool)
add_subdirectory(Index)
add_subdirectory(Checker)

Просмотреть файл

@ -12,7 +12,6 @@ add_clang_library(clangFrontend
DependencyFile.cpp
DiagChecker.cpp
DocumentXML.cpp
ExecuteCompilerInvocation.cpp
FrontendAction.cpp
FrontendActions.cpp
FrontendOptions.cpp

Просмотреть файл

@ -0,0 +1,5 @@
set(LLVM_NO_RTTI 1)
add_clang_library(clangFrontendTool
ExecuteCompilerInvocation.cpp
)

Просмотреть файл

@ -12,7 +12,7 @@
//
//===----------------------------------------------------------------------===//
#include "clang/Frontend/Utils.h"
#include "clang/FrontendTool/Utils.h"
#include "clang/Checker/FrontendActions.h"
#include "clang/CodeGen/CodeGenAction.h"
#include "clang/Driver/CC1Options.h"

13
lib/FrontendTool/Makefile Normal file
Просмотреть файл

@ -0,0 +1,13 @@
##===- clang/lib/FrontendTool/Makefile ---------------------*- Makefile -*-===##
#
# The LLVM Compiler Infrastructure
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
#
##===----------------------------------------------------------------------===##
CLANG_LEVEL := ../..
LIBRARYNAME := clangFrontendTool
include $(CLANG_LEVEL)/Makefile

Просмотреть файл

@ -9,7 +9,7 @@
CLANG_LEVEL := ..
PARALLEL_DIRS = Headers Basic Lex Parse AST Sema CodeGen Analysis \
Checker Rewrite Serialization Frontend Index Driver
Checker Rewrite Serialization Frontend FrontendTool Index Driver
include $(CLANG_LEVEL)/Makefile

Просмотреть файл

@ -1,6 +1,7 @@
set(LLVM_NO_RTTI 1)
set( LLVM_USED_LIBS
clangFrontendTool
clangFrontend
clangDriver
clangSerialization

Просмотреть файл

@ -27,9 +27,10 @@ include $(CLANG_LEVEL)/../../Makefile.config
LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter codegen \
ipo selectiondag
USEDLIBS = clangFrontend.a clangDriver.a clangSerialization.a clangCodeGen.a \
clangParse.a clangSema.a clangChecker.a clangAnalysis.a \
clangIndex.a clangRewrite.a clangAST.a clangLex.a clangBasic.a
USEDLIBS = clangFrontendTool.a clangFrontend.a clangDriver.a \
clangSerialization.a clangCodeGen.a clangParse.a clangSema.a \
clangChecker.a clangAnalysis.a clangIndex.a clangRewrite.a \
clangAST.a clangLex.a clangBasic.a
include $(CLANG_LEVEL)/Makefile

Просмотреть файл

@ -23,7 +23,7 @@
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/Frontend/TextDiagnosticBuffer.h"
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Frontend/Utils.h"
#include "clang/FrontendTool/Utils.h"
#include "llvm/LLVMContext.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Support/ErrorHandling.h"