summaryrefslogtreecommitdiffstats
path: root/runtimes
Commit message (Collapse)AuthorAgeFilesLines
* [CMake] Set toolchain tools in cross-target runtimes buildPetr Hosek2017-07-181-0/+1
| | | | | | | | This is needed for runtimes build to work on Darwin. Differential Revision: https://reviews.llvm.org/D35343 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308359 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake]Use LLVM_LIBRARY_DIR for lib path.Leo Li2017-07-141-3/+5
| | | | | | | | | | | | | | Summary: This makes sure the correct lib path is being used when `CMAKE_CFG_INTDIR` or `LLVM_LIBDIR_SUFFIX` is set. Reviewers: beanz Subscribers: mgorny, srhines, pirama, llvm-commits Differential Revision: https://reviews.llvm.org/D35318 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307985 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Support multi-target runtimes buildPetr Hosek2017-07-112-28/+158
| | | | | | | | | | | | | | | | | | | | | This changes adds support for building runtimes for multiple different targets using LLVM runtimes directory. The implementation follow the model used already by the builtins build which already supports this option. To specify the runtimes targets to be built, use the LLVM_RUNTIME_TARGETS variable, where the valuae is the list of targets to build runtimes for. To pass a per target variable to the runtimes build, you can set RUNTIMES_<target>_<variable> where <variable> will be passed to the runtimes build for <target>. Each runtime target (except for the default one) will be installed into lib/<target> subdirectory. Build targets will be suffixed with the target name. Differential Revision: https://reviews.llvm.org/D32816 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307731 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove circular dependency from runtimes/CMakeListsGeorge Karpenkov2017-07-111-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307605 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Dependencies for tests in "runtimes"George Karpenkov2017-07-101-3/+21
| | | | | | | | | | Many of the test cases in the runtimes require LLVM's testing tools, to facilitate this working as expected we need to have all the test targets in the runtimes depend on all LLVM testing tools used in the runtimes. Differential Revision: https://reviews.llvm.org/D33048 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307572 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake][runtimes] Add install target for runtimes builtinsPetr Hosek2017-06-021-0/+2
| | | | | | | | | This adds an install-builtins target to avoid having to list all builtins targets explicitly. Differential Revision: https://reviews.llvm.org/D32710 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304587 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake][runtimes] Use -nodefaultlibs for the runtimes buildPetr Hosek2017-04-131-1/+19
| | | | | | | | | We may not have a working C++ standard library at this point so we shouldn't rely on it when running CMake checks. Differential Revision: https://reviews.llvm.org/D31942 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300260 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Support single target builtins build on DarwinPetr Hosek2017-03-241-1/+14
| | | | | | | | | | This change allows cross-compiling compiler-rt builtins for multiple targets as part of runtimes on Darwin. This functionality is already supported on other platforms. Differential Revision: https://reviews.llvm.org/D30957 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298678 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Provide an option to disable runtimes buildPetr Hosek2017-03-231-3/+10
| | | | | | | | | This could be used to either disable the runtimes build altogether or avoid building them but still generate the build targets. Differential Revision: https://reviews.llvm.org/D31060 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298653 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Handle common options for runtimes buildPetr Hosek2017-01-101-0/+4
| | | | | | | | | | | All the existing runtimes relies on flags which are set by AddLLVM and HandleLLVMOptions. In the standalone case, they would include these themselves, but when being built using LLVM runtimes we should include these in the top-level runtimes CMake files. Differential Revision: https://reviews.llvm.org/D28389 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291590 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Set HAVE_${runtime} before including any subdirectoriesChris Bieneman2017-01-021-0/+6
| | | | | | This should allow us to avoid most order dependence in the runtime library configurations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@290834 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Multi-target builtins buildPetr Hosek2016-12-121-6/+34
| | | | | | | | | | | | | | This change enables building builtins for multiple different targets using LLVM runtimes directory. To specify the builtin targets to be built, use the LLVM_BUILTIN_TARGETS variable, where the value is the list of targets. To pass a per target variable to the builtin build, you can set BUILTINS_<target>_<variable> where <variable> will be passed to the builtin build for <target>. Differential Revision: https://reviews.llvm.org/D26652 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@289491 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Make the runtimes directory work with bootstrap buildsChris Bieneman2016-10-191-0/+15
| | | | | | | | This patch builds on clang r284648, and allows the runtime directory to make the bootstrap builds depend on the builtin libraries. This patch also make the bootstrap build depend on configuring the other runtimes because the libcxx headers are copied during configuration. I have left a TODO in the code to remove that once I come up with a better solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284650 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Fixing lit for runtimes directoryJonas Hahnfeld2016-09-151-0/+3
| | | | | | | | | | | Copy variable LLVM_BUILD_MAIN_SRC_DIR from LLVMConfig.cmake to LLVM_MAIN_SRC_DIR as it is named for in-tree builds. This ensures that add_lit_target() can reliably find llvm-lit which is not necessarily in the PATH. Differential Revision: https://reviews.llvm.org/D24503 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281585 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Connecting check-all and test-depends targets correctlyChris Bieneman2016-09-011-1/+2
| | | | | | My previous attempt at this connected the sub-project check targets to the test-depends target instead of to the check-all target. That resulted in the tests running multiple times on bots that built "test-depends" and "check-all" in separate build invocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280392 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Ensure that compiler-rt is added firstChris Bieneman2016-08-301-0/+15
| | | | | | This will enable other runtime projects to detect the presence of sanitizer runtimes by referring to the sanitizer targets directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280162 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Builtins build needs LLVM_*_OUTPUT_INTDIR variablesChris Bieneman2016-08-291-0/+2
| | | | | | This allows the builtins archives to build into the correct subdirectory under the binary dir. Addresses the issue discussed in D24001. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280002 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Only generate Components.cmake if components are specifiedChris Bieneman2016-08-271-18/+20
| | | | | | | | Generating the Components import file is useless if there are no components coming in from the runtimes configuration, so we should skip generation in that case. This also should fix the configuration error that Renato reported on llvm-dev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279893 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Expose runtime component check targetsChris Bieneman2016-08-261-0/+4
| | | | | | This will expose the check targets for runtime project components into the top-level build. It will enable exposing targets like check-asan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279861 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Fixing LLVM_INCLUDE_TESTS for runtimes directoryChris Bieneman2016-08-261-5/+10
| | | | | | We need to explicitly pass LLVM_INCLUDE_TESTS through from the top-level to the runtimes configuration because it isn't in LLVMConfig.cmake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279857 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Add support for exposing runtime targetsChris Bieneman2016-08-252-11/+44
| | | | | | | | This patch adds support to the runtimes build for exposing sub-project targets through the high-level configuration. This will enable exposing the build, check and install targets for sub-project components (i.e. asan, check-asan, install-asan...). This patch requires minor changes to the runtime projects to take advantage of it, and I'll phase those changes into Compiler-RT shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279776 91177308-0d34-0410-b5e6-96231b3b80d8
* Hooking up a check-all target for the runtimes projectsChris Bieneman2016-08-251-2/+42
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279756 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Add variables for tracking which runtimes are includedChris Bieneman2016-08-181-0/+4
| | | | | | This allows sub-projects to have conditionals based on the presence of other projects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279172 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Create convenience targets for runtime projectsChris Bieneman2016-08-181-0/+7
| | | | | | Each runtime project has a top-level target that is the name of the runtime (minus the "lib" prefix if applicable). This creates top-level targets mapping to runtime projects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279160 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Make llvm-config implicit dependency for subprojectsChris Bieneman2016-08-181-1/+1
| | | | | | | | The subproject interface being used for runtime libraries expects that llvm-config is passed into the subproject for consumption. We currently do this for every subproject, so we should expect that all LLVM ExternalProjects depend on llvm-config for the time being. Eventually I'd like to see the sub-projects using LLVMConfig.cmake instead of the llvm-config binary, but that will take time to roll out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279155 91177308-0d34-0410-b5e6-96231b3b80d8
* [CMake] Add LLVM runtimes directoryChris Bieneman2016-06-231-0/+90
Summary: There are a few LLVM projects that produce runtime libraries. Ideally runtime libraries should be built differently than other projects, specifically they should be built using the just-built toolchain. There is support for building compiler-rt in this way from the clang build. Moving this logic into the LLVM build is interesting because it provides a simpler way to extend the just-built toolchain to include LLD and the LLVM object file tools. Once this functionality is better fleshed out and tested we’ll want to encapsulate it in a module that can be used for clang standalone builds, and we’ll want to make it the default way to build compiler-rt. With this patch applied there is no immediate change in the build. Moving compiler-rt out from llvm/projects into llvm/runtimes enables the functionality. This code has a few improvements over the method provided by LLVM_BUILD_EXTERNAL_COMPILER_RT. Specifically the sub-ninja command is always invoked, so changes to compiler-rt source files will get built properly, so this patch can be used for iterative development with just-built tools. This first patch only works with compiler-rt. Support for other runtime projects will be coming in follow-up patches. Reviewers: chandlerc, bogner Subscribers: kubabrecka, llvm-commits Differential Revision: http://reviews.llvm.org/D20992 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273620 91177308-0d34-0410-b5e6-96231b3b80d8