llvm-project/clang
Chris Bieneman 3878bc4a33 [CMake] Improve the clang order-file generation workflow
Summary:
This commit re-lands r259862. The underlying cause of the build breakage was an incorrectly written capabilities test. In tools/Driver/CMakeLists.txt I was attempting to check if a linker flag worked, the test was passing it to the compiler, not the linker. CMake doesn't have a linker test, so we have a hand-rolled one.

Original Patch Review: http://reviews.llvm.org/D16896

Original Summary:
With this change generating clang order files using dtrace uses the following workflow:

cmake <whatever options you want>

ninja generate-order-file

ninja clang

This patch works by setting a default path to the order file (which can be overridden by the user). If the order file doesn't exist during configuration CMake will create an empty one.

CMake then ties up the dependencies between the clang link job and the order file, and generate-order-file overwrites CLANG_ORDER_FILE with the new order file.

Reviewers: bogner

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D16999

llvm-svn: 260742
2016-02-12 21:36:55 +00:00
..
INPUTS
bindings libclang: expose dllexport, dllimport attributes 2015-12-10 18:45:18 +00:00
cmake [CMake] For multi-stage builds to be deterministic we need to disable timestamps. 2016-02-10 02:17:21 +00:00
docs UsersManual: update clang-cl commands 2016-02-12 01:01:37 +00:00
examples Revert r260265, "clang-cl: Support loading plugins on Windows" 2016-02-11 16:33:20 +00:00
include [CUDA] Tweak attribute-based overload resolution to match nvcc behavior. 2016-02-12 18:29:18 +00:00
lib Added missing '__'. 2016-02-12 20:26:43 +00:00
runtime Remove autoconf support 2016-01-26 21:30:40 +00:00
test test/Headers/float.c: fix theoretical edge values 2016-02-12 19:24:36 +00:00
tools [CMake] Improve the clang order-file generation workflow 2016-02-12 21:36:55 +00:00
unittests tests: Add explicit -stdlib=libstdc++ to tests that require it 2016-02-12 07:48:28 +00:00
utils [CMake] Improve the clang order-file generation workflow 2016-02-12 21:36:55 +00:00
www Test commit, fixed "clang" to "Clang" in docs 2016-02-10 21:06:10 +00:00
.arcconfig Revert r242365. 2015-07-16 00:32:26 +00:00
.clang-format
.clang-tidy
.gitignore Add the clang debug info test directory to .gitignore as it's managed separately. 2016-01-29 01:35:55 +00:00
CMakeLists.txt [CMake] Improve the clang order-file generation workflow 2016-02-12 21:36:55 +00:00
CODE_OWNERS.TXT Added Anastasia Stulova as a code owner for OpenCL 2016-02-03 18:51:19 +00:00
INSTALL.txt Honor system specific paths of MAN pages 2015-11-20 18:49:02 +00:00
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt Update mailing list references to lists.llvm.org 2015-08-05 03:55:23 +00:00

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source-level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:              http://clang.llvm.org/
Building and using Clang:          http://clang.llvm.org/get_started.html
Clang Static Analyzer:             http://clang-analyzer.llvm.org/
Information on the LLVM project:   http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/