commit | 871bf8377f6324e7db8859e5d3996fd7f6c867f0 | [log] [tgz] |
---|---|---|
author | John Laxson <jlaxson@mac.com> | Fri Feb 12 04:48:06 2021 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Feb 12 04:49:21 2021 -0800 |
tree | 0736dc3f1ecd6b8700d058e536a321f813913e63 | |
parent | 0eb70f9e0bb25f12b55e9ad3ea61c2222b7f54a9 [diff] |
Specify wrapped_clang_pp for c++ compile actions The OSX crosstool actions export the `wrapped_clang` path for all actions, even ones that are ostensibly c++, which results in clang getting called as `clang`, not `clang++` for c++ sources. I assume this works because other features replicate the c++ specific parts of the compiler driver. However, some downstream tools such as rules_foreign_cc don't preserve that behavior well enough for it to work, and as a result fail to compile c++ sources due to effectively using clang and not clang++ to compile. As an example, rules_foreign_cc retrieves the c++ compiler with: ``` cxx = cc_common.get_tool_for_action( feature_configuration = feature_configuration, action_name = CPP_COMPILE_ACTION_NAME, ), ``` As it exists now, this returns `wrapped_clang`, not `wrapped_clang_pp`. With this patch, `wrapped_clang_pp` is correctly returned and c++ compilation succeeds. Closes #12974. PiperOrigin-RevId: 357166950
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only 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