commit | 12471a77bdd4439f17cc1a665454601c867e1286 | [log] [tgz] |
---|---|---|
author | Ilya Biryukov <ibiryukov@google.com> | Wed Dec 20 05:46:44 2017 -0800 |
committer | Copybara-Service <copybara-piper@google.com> | Wed Dec 20 07:14:54 2017 -0800 |
tree | eabf32d7eba2d15897f453e655089b0da63c923d | |
parent | 44d1571470ff0a145cf13f3728de5d1483143fb7 [diff] |
Make cc_configure script more extensible This commit adds a few extension points to cc_configure script with the ultimate goal to allow downloading the compiler and other tools used for C++ build before generating the crosstool. Specifically, we make the following changes: - Expose the implementation of a cc_autoconf repository rule under a name of cc_autoconf_impl. - Extend cc_autoconf_impl to allow overriding paths to build tools (i.e. compilers, linkers, etc.) - Allow to put any extra artifacts into the generated crosstool repository. All files inside 'extra_tools' folder are added into compiler_files, all_files and linker_files properties of the generated crosstool, so that they are available for the crosstool. With these extension one can do the following to download the compilers used for the build and configure the crosstool: - Create a repository_rule for the toolchain with a custom implementation. - In the implementation function of the repository rule: + Download the compilers and put them into `extra_tools` folder. + Run cc_autoconf_impl with overriden_tools set to relative paths of the compiler and other build tools in the extra_tools folder. Change-Id: I51af6b504578963b3e97bcdd1ccb6d0a5fed1c3e PiperOrigin-RevId: 179675911
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel only rebuilds what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md
Bazel is released in ‘Beta’. See the product roadmap to learn about the path toward a stable 1.0 release.