- Nov 08, 2016
-
-
Justin Bogner authored
When using LLVM_DISTRIBUTION_COMPONENTS, it's possible for clang's export list to be empty. If this happens the install(EXPORTS) command will fail, but since there isn't anything to install anyway we really just want to skip it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@286210 91177308-0d34-0410-b5e6-96231b3b80d8
-
Justin Bogner authored
We need to apply the same export logic in clang as in llvm for LLVM_DISTRIBUTION_COMPONENTS, or the clang exports will be invalid when we use this config. This makes using distribution components without setting LLVM_TOOLCHAIN_ONLY=On work correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@286181 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 26, 2016
-
-
Chris Bieneman authored
These cache file are provided as an example of how to set up simple multi-stage CMake builds. I have a batch of documentation updates for LLVM.org which reference these files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@285206 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 20, 2016
-
-
Michael Gottesman authored
This is needed by downstream projects such as swift to get proper cmake dependency information for LLVM/Clang targets. A few months ago I added support for exporting this information for Clang libraries. In order to be incremental, I did not add support for exporting clang tools as well at that time. Now such support is needed, so I am committing this incremental code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284658 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 19, 2016
-
-
Chris Bieneman authored
This allows you to set PGO_INSTRUMENT_LTO=Thin and have it work correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284646 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Aug 17, 2016
-
-
Chris Bieneman authored
The Xcode toolchain targets are useful on OS X hosts because you can construct and install multiple toolchians that can be used seamlessly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@278987 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
This patch adds a few new convenience options used by the PGO CMake cache to setup options on bootstrap stages. The new options are: PGO_INSTRUMENT_LTO - Builds the instrumented and final builds with LTO PGO_BUILD_CONFIGURATION - Accepts a CMake cache script that can be used for complex configuration of the stage2-instrumented and stage2 builds. The patch also includes a fix for bootstrap dependencies so that the instrumented LTO tools don't get used when building the final stage, and it adds distribution targets to the passthrough. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@278862 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Aug 16, 2016
-
-
Chris Bieneman authored
This is just a minor update to the Apple packaging configuration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@278849 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Aug 15, 2016
-
-
Chris Bieneman authored
LibCXX settings are configured in stage2 so we don't need them here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@278729 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jul 10, 2016
-
-
Michael Gottesman authored
LLVM_BUILD_TOOLS is a boolean variable that controls whether or not generated targets for llvm tools are built by the "all" target. CLANG_BUILD_TOOLS is an analogous variable for clang targets. This is useful functionality for selectively disabling the building of clang targets by default to speed up builds. In terms of implementation, I just followed the model of LLVM's implementation of this functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@275006 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jul 09, 2016
-
-
Michael Gottesman authored
This matches how LLVM has its cmake files organized and is cleaner than just shoving this business logic into the main CMakeLists.txt. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274992 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jun 30, 2016
-
-
Michael Gottesman authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274212 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jun 29, 2016
-
-
Michael Gottesman authored
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274180 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Gottesman authored
[ClangConfig] Unset some variables after we are done using them to configure ClangConfig.cmake.in files. This ensures that the values do not bleed over in between computations. It may make sense in the future to just refactor this code into functions to provide "true scoping". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274179 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Gottesman authored
[ClangConfig] Instead of hard coding the ClangTargets location to /ClangTargets.cmake, follow LLVM's example and use a pre-computed cmake variable @CLANG_CONFIG_EXPORTS_FILE@. This just makes ClangConfig more consistent with LLVMConfig. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274178 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Gottesman authored
[ClangConfig] Follow LLVM's example and only install Clang{Config,Target}.cmake when LLVM_INSTALL_TOOLCHAIN_ONLY is disabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274177 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Gottesman authored
This will allow for cmake to expand variables in ClangConfig.cmake for downstream users. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274176 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Gottesman authored
[ClangConfig] Copy ClangConfig.cmake to ${CMAKE_BINARY_DIR}/${CLANG_INSTALL_PACKAGE_DIR} instead of to ${CLANG_BINARY_DIR}/${CLANG_INSTALL_PACKAGE_DIR}. This is an obvious bug since ClangConfig.cmake looks for ClangTargets.cmake in ${CMAKE_CURRENT_LIST_DIR}. But ClangTargets.cmake is in ${CMAKE_BINARY_DIR}/${CLANG_INSTALL_PACKAGE_DIR}, so it will always fail with an in tree build. In the case where clang is built out of tree, this is still correct since CMAKE_BINARY_DIR and CLANG_BINARY_DIR will be the same. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274168 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Gottesman authored
[ClangConfig] Replace paths with the same value as CLANG_INSTALL_PACKAGE_DIR with a deref of the variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274158 91177308-0d34-0410-b5e6-96231b3b80d8
-
Michael Gottesman authored
[cmake] Move creation of ClangTargets and installation of ClangConfig.cmake from ./CMakeLists.txt -> ./cmake/modules/CMakeLists.txt. This matches LLVM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274157 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jun 28, 2016
-
-
Chris Bieneman authored
We want to be able to run the compiler-rt tests on stage2 build configurations in CI. This should enable that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274031 91177308-0d34-0410-b5e6-96231b3b80d8
-
- May 09, 2016
-
-
Vedant Kumar authored
This allows llvm-profdata to interact with profiles containing compressed name data. rdar://problem/26122944 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268947 91177308-0d34-0410-b5e6-96231b3b80d8
-
- May 05, 2016
-
-
Chris Bieneman authored
Since the option was removed in r268670, the cache scripts should stop referring to it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268685 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
On Darwin the default is to build PIC and link PIE. We shouldn't need to override that in the Apple Clang distributions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268642 91177308-0d34-0410-b5e6-96231b3b80d8
-
- May 03, 2016
-
-
Chris Bieneman authored
This enables installing the libcxx headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268322 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
This installs the clang headers as part of the install-distribution target. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268320 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
This installs the clang headers as part of the install-distribution target. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268319 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Apr 26, 2016
-
-
Chris Bieneman authored
The Apple stage2 build should include compiler-rt iOS libraries and be built with the stage2 compiler. This matches Apple's production clang builds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@267584 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 23, 2016
-
-
Chris Bieneman authored
This exposes the stage2-llvm-config target though the stage1 build configuration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264125 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 15, 2016
-
-
Chris Bieneman authored
This updates Apple build configurations to adapt to r263566 & r263570, which added a PACKAGE_VENDOR variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@263571 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Mar 14, 2016
-
-
Chris Bieneman authored
This is a big update that gets the public configurations more in line with the ones we're actually using internally to ship Clang in Xcode. From here forward I expect most of the changes in these files to be incremental as the changes get made internally. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@263483 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Feb 26, 2016
-
-
Chris Bieneman authored
This patch causes the 3-stage build pipeline to only build a host compiler in the first stage, and to build all targets for subsequent stages. The host target is determined via the Native target specifier added in r262070. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@262071 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Feb 19, 2016
-
-
Reid Kleckner authored
ClangConfig requires LLVMConfig, so add find_package call in ClangConfig so find_package(clang REQUIRED CONFIG) will just work. This makes it easier for cmake based projects to use clang, e.g., tools using ClangTooling. Patch by Don Hinton Differential Revision: http://reviews.llvm.org/D13622 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@261290 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Feb 10, 2016
-
-
Chris Bieneman authored
Duh! With this change I've verified -O3 builds are deterministic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@260350 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
I had hoped this would work from a single cache file, but turns out there is a bug I can't quite figure out relating to passing list arguments to recursive CMake invocations. This change works around that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@260340 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Feb 09, 2016
-
-
Chris Bieneman authored
This is in response to silvas' post-commit suggestion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@260203 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
This cache file can be used to generate a 3-stage clang build. You can configure using the following CMake command: cmake -C <path to clang>/cmake/caches/3-stage.cmake -G Ninja <path to llvm> You can then run "ninja stage3-clang" to build stage1, stage2 and stage3 clangs. This is useful for finding non-determinism the compiler by verifying that stage2 and stage3 are identical. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@260201 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jan 06, 2016
-
-
Chris Bieneman authored
Summary: This patch adds support for the clang multi-stage bootstrapping to support PGO profdata generation, and can build a 2 or 3 stage compiler. With this patch applied you can configure your build directory with the following invocation of CMake: cmake -G <generator> -C <path_to_clang>/cmake/caches/PGO.cmake <source dir> After configuration the following additional targets will be generated: stage2-instrumented: Builds a stage1 x86 compiler, runtime, and required tools (llvm-config, llvm-profdata) then uses that compiler to build an instrumented stage2 compiler. stage2-instrumented-generate-profdata: Depends on "stage2-instrumented" and will use the instrumented compiler to generate profdata based on the training files in <clang>/utils/perf-training stage2: Depends on "stage2-instrumented-generate-profdata" and will use the stage1 compiler with the stage2 profdata to build a PGO-optimized compiler. stage2-check-llvm: Depends on stage2 and runs check-llvm using the stage3 compiler. stage2-check-clang: Depends on stage2 and runs check-clang using the stage3 compiler. stage2-check-all: Depends on stage2 and runs check-all using the stage3 compiler. stage2-test-suite: Depends on stage2 and runs the test-suite using the stage3 compiler (requires in-tree test-suite). Reviewers: bogner, silvas, chandlerc Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D15584 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@256873 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Dec 19, 2015
-
-
Chris Bieneman authored
This reverts commit r256069, which was an unintentional tag along on another commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@256088 91177308-0d34-0410-b5e6-96231b3b80d8
-
Chris Bieneman authored
Summary: This patch adds support for the clang multi-stage bootstrapping to support PGO profdata generation, and can build a 2 or 3 stage compiler. With this patch applied you can configure your build directory with the following invocation of CMake: cmake -G <generator> -C <path_to_clang>/cmake/caches/PGO.cmake <source dir> After configuration the following additional targets will be generated: stage2-instrumented: Builds a stage1 x86 compiler, runtime, and required tools (llvm-config, llvm-profdata) then uses that compiler to build an instrumented stage2 compiler. stage2-instrumented-generate-profdata: Depends on "stage2-instrumented" and will use the instrumented compiler to generate profdata based on the training files in <clang>/utils/perf-training stage2: Depends on "stage2-instrumented-generate-profdata" and will use the stage1 compiler with the stage2 profdata to build a PGO-optimized compiler. stage2-check-llvm: Depends on stage2 and runs check-llvm using the stage3 compiler. stage2-check-clang: Depends on stage2 and runs check-clang using the stage3 compiler. stage2-check-all: Depends on stage2 and runs check-all using the stage3 compiler. stage2-test-suite: Depends on stage2 and runs the test-suite using the stage3 compiler (requires in-tree test-suite). Reviewers: bogner, silvas, chandlerc Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D15584 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@256069 91177308-0d34-0410-b5e6-96231b3b80d8
-