summaryrefslogtreecommitdiffstats
path: root/clang/lib/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* Add Cross Translation Unit support libraryGabor Horvath2017-09-221-0/+1
| | | | | | | | | | | | | | | | | | This patch introduces a class that can help to build tools that require cross translation unit facilities. This class allows function definitions to be loaded from external AST files based on an index. In order to use this functionality an index is required. The index format is a flat text file but it might be replaced with a different solution in the near future. USRs are used as names to look up the functions definitions. This class also does caching to avoid redundant loading of AST files. Right now only function defnitions can be loaded using this API because this is what the in progress cross translation unit feature of the Static Analyzer requires. In to future this might be extended to classes, types etc. Differential Revision: https://reviews.llvm.org/D34512 llvm-svn: 313975
* Fix build with various feature flag combinationsAlp Toker2014-07-141-3/+1
| | | | llvm-svn: 212996
* Fix dependencies now that the ARC migrator depends on the static analyzer.Jordan Rose2013-08-221-1/+3
| | | | | | | | | | Thanks for pointing this out, Stephen. I think this is right now -- I attempted to try all four valid combinations with both the autoconf and CMake builds. See also LLVM changes to the configure script. llvm-svn: 189027
* Rename libIDE to libIndex.Argyrios Kyrtzidis2013-08-171-1/+1
| | | | | | | Per feedback from Chandler, it's better to have libraries with more specific functionality. LibIndex will contain the indexing functionality of libclang, which includes USR generation. llvm-svn: 188601
* Introduce the clangIDE library.Argyrios Kyrtzidis2013-08-161-0/+1
| | | | | | | | | | Libclang has a lot of functionality that is inaccessible. The purpose of clangIDE is to move most of the functionality of libclang to it so we can expose it and have libclang be more of a thin C wrapper over clangIDE. Start by moving the USR generation functionality into clangIDE. llvm-svn: 188569
* Turn CLANG_ENABLE_{ARCMT,REWRITER,STATIC_ANALYZER} into proper options so thatRoman Divacky2013-05-291-2/+6
| | | | | | users can disable those. Just like in autoconf generated makefiles. llvm-svn: 182881
* Initial version of formatting library.Daniel Jasper2012-12-031-0/+1
| | | | | | | | | | | | | This formatting library will be used by a stand-alone clang-format tool and can also be used when writing other refactorings. Manuel's original design document: https://docs.google.com/a/google.com/document/d/1gpckL2U_6QuU9YW2L1ABsc4Fcogn5UngKk7fE5dDOoA/edit The library can already successfully format itself. Review: http://llvm-reviews.chandlerc.com/D80 llvm-svn: 169137
* Adds the AST Matcher library, which provides a in-C++ DSL to expressManuel Klimek2012-07-061-0/+1
| | | | | | | matches on interesting parts of the AST, and callback mechanisms to act on them. llvm-svn: 159805
* Fix a big layering violation introduced by r158771.Chandler Carruth2012-06-201-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | That commit added a new library just to hold the RawCommentList. I've started a discussion on the commit thread about whether that is really meritted -- it certainly doesn't seem necessary at this stage. However, the immediate problem is that the AST library has a hard dependency on the Comment library, but the dependencies were set up completely backward. In addition to the layering violation, this had an unfortunate effect if scattering the Comments library dependency throughout the build system, but inconsistently so -- several parts of the CMake dependencies were missing and only showed up due to transitive deps or the fact that the target wasn't being built by tho bots. It turns out that the Comments library can't (currently) be a well formed layer *below* the AST library either, as it has an API that accepts an ASTContext. That parameter is currently unused, so maybe that was a mistake? Anyways, it really seems like this is logically part of the AST -- that's the whole point of the ASTContext providing access to it as far as I can tell -- so I've merged it into the AST library to solve the immediate layering violation problems and remove some of the churn from our library dependencies. llvm-svn: 158807
* Structured comment parsing, first step.Dmitri Gribenko2012-06-201-0/+1
| | | | | | | | | * Retain comments in the AST * Serialize/deserialize comments * Find comments attached to a certain Decl * Expose raw comment text and SourceRange via libclang llvm-svn: 158771
* Remove the unused, unmaintained, incomplete 'Index' library.Douglas Gregor2012-04-131-1/+0
| | | | llvm-svn: 154672
* Adds a tooling library.Manuel Klimek2012-04-041-0/+1
| | | | | | | | | | | | | | | Provides an API to run clang tools (FrontendActions) as standalone tools, or repeatedly in-memory in a process. This is useful for unit-testing, map-reduce style applications, source transformation daemons or command line tools. The ability to run over multiple translation units with different command line arguments enables building up refactoring tools that need to apply transformations across translation unit boundaries. See tools/clang-check/ClangCheck.cpp for an example. llvm-svn: 154008
* Add new code migrator support for migrating existing Objective-C code to useTed Kremenek2012-03-061-0/+1
| | | | | | | | | | | the new Objective-C NSArray/NSDictionary/NSNumber literal syntax. This introduces a new library, libEdit, which provides a new way to support migration of code that improves on the original ARC migrator. We now believe that most of its functionality can be refactored into the existing libraries, and thus this new library may shortly disappear. llvm-svn: 152141
* The ARC Migration Tool. All the credit goes to Argyrios and FariborzJohn McCall2011-06-151-0/+1
| | | | | | for this. llvm-svn: 133104
* Reverts the Tooling changes as requested by Chris.Manuel Klimek2011-06-021-1/+0
| | | | llvm-svn: 132462
* Adds a function to run FrontendActions over in-memory code. This isManuel Klimek2011-04-211-0/+1
| | | | | | | | the first step towards a standalone Clang tool infrastructure. The plan is to make it easy to build command line tools that run over the AST of source files in a project outside of the build system. llvm-svn: 129924
* [analyzer] Move the files in lib/StaticAnalyzer to lib/StaticAnalyzer/Core.Argyrios Kyrtzidis2011-02-081-1/+0
| | | | | | | Eventually there will also be a lib/StaticAnalyzer/Frontend that will handle initialization and checker registration. Yet another library to avoid cyclic dependencies between Core and Checkers. llvm-svn: 125124
* Chris Lattner has strong opinions about directoryTed Kremenek2010-12-231-2/+2
| | | | | | | | | | | | layout. :) Rename the 'EntoSA' directories to 'StaticAnalyzer'. Internally we will still use the 'ento' namespace for the analyzer engine (unless there are further sabre rattlings...). llvm-svn: 122514
* Rename headers: 'clang/GR' 'clang/EntoSA' andTed Kremenek2010-12-231-2/+2
| | | | | | update Makefile. llvm-svn: 122493
* Add GR/Checkers subdir for CMake build.Argyrios Kyrtzidis2010-12-221-0/+1
| | | | llvm-svn: 122432
* [analyzer] Refactoring: lib/Checker -> lib/GR and libclangChecker -> ↵Argyrios Kyrtzidis2010-12-221-1/+1
| | | | | | libclangGRCore llvm-svn: 122421
* Move ExecuteCompilerInvocation to a new library FrontendToolPeter Collingbourne2010-08-241-0/+1
| | | | | | | | | | 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. llvm-svn: 111873
* Reintroduce the serialization library, with fixed dependencies.Sebastian Redl2010-08-171-0/+1
| | | | llvm-svn: 111279
* Revert Sebastian's build-breaking patch.Douglas Gregor2010-08-171-1/+0
| | | | llvm-svn: 111265
* Create a new Serialization module that contains all the PCH code, and will ↵Sebastian Redl2010-08-171-0/+1
| | | | | | contain all the module code in the future. Update the Makefiles, CMake projects and the Xcode project. I hope I did everything right for Xcode. No functionality change. llvm-svn: 111258
* Split libAnalysis into two libraries: libAnalysis and libChecker.Ted Kremenek2010-01-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | (1) libAnalysis is a generic analysis library that can be used by Sema. It defines the CFG, basic dataflow analysis primitives, and inexpensive flow-sensitive analyses (e.g. LiveVariables). (2) libChecker contains the guts of the static analyzer, incuding the path-sensitive analysis engine and domain-specific checks. Now any clients that want to use the frontend to build their own tools don't need to link in the entire static analyzer. This change exposes various obvious cleanups that can be made to the layout of files and headers in libChecker. More changes pending. :) This change also exposed a layering violation between AnalysisContext and MemRegion. BlockInvocationContext shouldn't explicitly know about BlockDataRegions. For now I've removed the BlockDataRegion* from BlockInvocationContext (removing context-sensitivity; although this wasn't used yet). We need to have a better way to extend BlockInvocationContext (and any LocationContext) to add context-sensitivty. llvm-svn: 94406
* Introduce the 'Index' library.Argyrios Kyrtzidis2009-07-051-0/+1
| | | | | | | | | Its purpose is to provide the basic infrastructure for cross-translation-unit analysis like indexing, refactoring, etc. Currently it is very "primitive" and with no type-names support. It can provide functionality like "show me all references of this function from these translation units". llvm-svn: 74802
* Really fix cmake style builds.Mike Stump2009-03-241-0/+1
| | | | llvm-svn: 67633
* Fix cmake builds.Mike Stump2009-03-021-1/+1
| | | | llvm-svn: 65847
* CMake: Builds and installs clang binary and libs (no docs yet). ItOscar Fuentes2008-10-261-0/+10
must be under the `tools' subdirectory of the LLVM *source* tree. llvm-svn: 58180