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
1 file changed
tree: 0736dc3f1ecd6b8700d058e536a321f813913e63
  1. .bazelci/
  2. examples/
  3. scripts/
  4. site/
  5. src/
  6. third_party/
  7. tools/
  8. .bazelrc
  9. .gitattributes
  10. .gitignore
  11. AUTHORS
  12. BUILD
  13. CHANGELOG.md
  14. CODEBASE.md
  15. CODEOWNERS
  16. combine_distfiles.py
  17. combine_distfiles_to_tar.sh
  18. compile.sh
  19. CONTRIBUTING.md
  20. CONTRIBUTORS
  21. distdir.bzl
  22. distdir_deps.bzl
  23. ISSUE_TEMPLATE.md
  24. LICENSE
  25. README.md
  26. WORKSPACE
README.md

Bazel

{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.

Getting Started

Documentation

Contributing to Bazel

See CONTRIBUTING.md

Build status