Commit Graph

218 Commits

Author SHA1 Message Date
Fabian Meumertzheim 8395ec0172 Copybara Merge: https://github.com/bazelbuild/rules_cc/pull/263
BEGIN_PUBLIC
Copybara import of the project:

--
82e44f3c47 by Fabian Meumertzheim <fabian@meumertzhe.im>:

Copy over runfiles library from Bazel

The runfiles library can be maintained independently of Bazel releases and bazel_tools can refer to it via an alias.

--
885d333d55 by Fabian Meumertzheim <fabian@meumertzhe.im>:

Switch to new include path and namespace

--
b8cd815963 by Fabian Meumertzheim <fabian@meumertzhe.im>:

Fix CI

--
41b7d48ed8 by Fabian Meumertzheim <fabian@meumertzhe.im>:

Silence warnings

--
b97a30e8bb by Fabian Meumertzheim <fabian@meumertzhe.im>:

Remove per_file_copt

END_PUBLIC

PiperOrigin-RevId: 697942902
Change-Id: I10a6c9baf0464722fca026db99cf572acfd159f1
2024-11-19 02:58:45 -08:00
Grzegorz Lukasik 4db02b76c9 Removed unused local variable
Copybara Import from https://github.com/bazelbuild/rules_cc/pull/276

BEGIN_PUBLIC
Removed unused local variable (#276)

Closes #276
END_PUBLIC

COPYBARA_INTEGRATE_REVIEW=https://github.com/bazelbuild/rules_cc/pull/276 from hauserx:unused_msvc_vars 72454acb13
PiperOrigin-RevId: 697918518
Change-Id: I88fa8c6836d62cfcbc38818a4241fb623ebc7ae6
2024-11-19 01:23:42 -08:00
Yun Peng 475a3539c4 Copybara Merge: https://github.com/bazelbuild/rules_cc/pull/275
BEGIN_PUBLIC
Copybara import of the project:

--
e4857939bd by Yun Peng <pcloudy@google.com>:

Use full path for dirname and basename in osx_cc_wrapper.sh.tpl

Context: https://github.com/bazelbuild/rules_rust/pull/2998

END_PUBLIC

COPYBARA_INTEGRATE_REVIEW=https://github.com/bazelbuild/rules_cc/pull/275 from bazelbuild:meteorcloudy-patch-4 e4857939bd
PiperOrigin-RevId: 697557587
Change-Id: I6ceb3d5f0fd747acb758926750fa48493edbdf3e
2024-11-18 02:54:44 -08:00
Felix Hanau c5a0333261 Use clang-cl assembler in clang-cl toolchain again
This essentially reverts bazelbuild/bazel#23337 now that the toolchain
configuration has been moved here. clang-cl does support assembly just like
other clang variants and unlike MASM supports assembly using native AT&T syntax
as with regular clang. MSVC-style assembly requires using MASM, which continues
to be available in the MSVC toolchain.

This has previously been discussed in bazelbuild/bazel#24152 and reverted for
Bazel 7.4.1 in bazelbuild/bazel#24211. Ideally, we'd want to have some mechanism
to make assembler selection configurable and support several kinds of asm syntax
in the future.
2024-11-11 15:00:01 -05:00
Googler fe7ca631ab Automated rollback of commit 0640261093.
*** Reason for rollback ***

Breaks cc_builtin_tests

*** Original change description ***

Copybara Merge: https://github.com/bazelbuild/rules_cc/pull/257

BEGIN_PUBLIC
Copybara import of the project:

--
12a8bd59af by Fabian Meumertzheim <fabian@meumertzhe.im>:

Move static library validation helper to `ar_files`

It doesn't need to be staged for every compile or link action. The action that uses it stages `all_files`.

END_PUBLIC

***

PiperOrigin-RevId: 695300596
Change-Id: If10c95c1867716c82a09ad3acdfd479beedcc6c5
2024-11-11 05:50:19 -08:00
Ivo List 28cf2e8160 Copybara Merge: https://github.com/bazelbuild/rules_cc/pull/269
BEGIN_PUBLIC
Copybara import of the project:

--
0c245a456a by Ivo List <ilist@google.com>:

Revert "Remove cc_proto_library from defs.bzl"

This reverts commit b15fed2409.

--
d4311f4bdd by Ivo List <ilist@google.com>:

Move back WORKSPACE.bzlmod (unrevert)

--
e62ddd085a by Ivo List <ilist@google.com>:

Rename protobuf to com_google_protobuf

This keeps compatiblity with WORKSPACE mode in older Bazel versions

--
0e1618fa83 by Ivo List <ilist@google.com>:

Adding deprecated comment

--
a272300c18 by Ivo List <ilist@google.com>:

Restore # @unsorted-dict-items

END_PUBLIC

COPYBARA_INTEGRATE_REVIEW=https://github.com/bazelbuild/rules_cc/pull/269 from comius:add-back-cc_proto_library a272300c18
PiperOrigin-RevId: 694079850
Change-Id: Iaa57586636997fd3db9cf9289bddc40c673033c9
2024-11-07 05:14:59 -08:00
Googler 7e5f6a9391 Remove defs.bzl usages
BEGIN_PUBLIC
Remove defs.bzl usages
END_PUBLIC

PiperOrigin-RevId: 693709660
Change-Id: I1c92999e23c153f865ad68ab802d907abaea74eb
2024-11-06 07:35:53 -08:00
Copybara-Service a5827bf372 Merge pull request #256 from fmeum:235-better-tool-map
PiperOrigin-RevId: 691529088
Change-Id: Idbda52a6b2eecbdefd83b2c89a0c7eb01dfee074
2024-10-30 13:15:53 -07:00
Googler b15fed2409 Remove cc_proto_library from defs.bzl
This makes it possible to remove dependency on protobuf. The dependency causes more problems than compatibility with some users of cc_proto_library from rules_cc.

Move WORKSPACE.bzlmod into correct directory.

PiperOrigin-RevId: 691445019
Change-Id: I45d7b4e381483de14ea2d20110be40f471a1ad12
2024-10-30 09:22:18 -07:00
Copybara-Service 0d44d3ee76 Merge pull request #260 from hauserx:main
PiperOrigin-RevId: 691373476
Change-Id: I7a09129bdc7ac32bbbdb5f06a586bc0ceee2a8b7
2024-10-30 04:54:20 -07:00
Copybara-Service 0640261093 Merge pull request #257 from fmeum:validate-library
PiperOrigin-RevId: 691372917
Change-Id: Idebbc95f1e24990ec61d5224fbc28cd238a8fdbd
2024-10-30 04:51:22 -07:00
Copybara-Service 7381e24175 Merge pull request #198 from zaucy:emscripten-compiler
PiperOrigin-RevId: 691372690
Change-Id: I02e074a82591ba4112fe8449c0a7a86a35d64777
2024-10-30 04:49:48 -07:00
Copybara-Service faeafdb828 Merge pull request #253 from meteorcloudy:fix_compatibility
PiperOrigin-RevId: 689379342
Change-Id: Ia90576c00b917bf58a53362981d1f3e775d6dfd5
2024-10-24 07:51:08 -07:00
Googler f6c19dd20f Remove outdated toolchain README contents.
BEGIN_PUBLIC

Remove outdated toolchain README contents.

END_PUBLIC

PiperOrigin-RevId: 689365688
Change-Id: I78f3be0651e8aeaf842c3ea06d63161dd7ab42b4
2024-10-24 07:02:04 -07:00
Grzegorz Lukasik 7c39729245 Remove redundant with_feature_set for sanitizers
It uses the same name as the feature itself.
2024-10-23 10:52:47 +02:00
Fabian Meumertzheim 12a8bd59af Move static library validation helper to `ar_files`
It doesn't need to be staged for every compile or link action. The action that uses it stages `all_files`.
2024-10-15 14:38:18 +02:00
Fabian Meumertzheim 3d51aaa430 Deduplicate tools for `cc_tool_map`
Fixes #235
2024-10-15 14:30:10 +02:00
Yun Peng f7ca57feac Restore compatibility with Bazel 6 2024-10-11 18:23:48 +02:00
Googler ae44550707 Add missing defaults for cc_toolchain
BEGIN_PUBLIC

Add missing defaults for cc_toolchain

Fixes breakage caused by fully enumerating known attributes of a cc_toolchain without providing default values for optional arguments.

END_PUBLIC

PiperOrigin-RevId: 684719429
Change-Id: I8d031a344a65218fc925025cfef7768d123ad879
2024-10-10 23:37:00 -07:00
Googler 324612d107 Add documentation for `cc_toolchain`
BEGIN_PUBLIC

Add documentation for `cc_toolchain`

Updates and includes documentation for the `cc_toolchain` rule, fixing some minor typos along the way.

END_PUBLIC

PiperOrigin-RevId: 684051451
Change-Id: I5bb62f22b3fb68e2d233fb85255d1a86bb45a47d
2024-10-09 08:44:04 -07:00
Googler 56f4a8bfa1 Add testing for Bazel@HEAD and Bazel 6
PiperOrigin-RevId: 684046113
Change-Id: I98875f8c67b491759f121c21e33ed04ec1d590e0
2024-10-09 08:26:06 -07:00
Googler 013a082858 Redirect cc_proto_library to protobuf
PiperOrigin-RevId: 683876696
Change-Id: I0444b3b3bc3ac67bb641d82fe1d67117a6e2bcae
2024-10-08 21:18:29 -07:00
Googler a2949e206e Fix toolchain argument ordering
BEGIN_PUBLIC

Fix argument ordering

Expected argument ordering should be:

1. Arguments listed in `args`.
2. Legacy/built-in features.
3. User-defined features.

Due to some implementation changes, user-defined arguments were being applied last, reducing the ability for features to properly toggle behaviors dynamically.

This also fixes an issue caught by this change where cc_sysroot was applying flags to actions that had no associated action config.

END_PUBLIC

PiperOrigin-RevId: 683677895
Change-Id: I60e25ca22ffefce717e4e5ce476db0a070ca1993
2024-10-08 10:34:59 -07:00
Googler b96ca29763 Directly exposing functions in toolchain_config_utils.bzl
setup_vc_env_vars should accepts more parameters than the wrapper previously allowed.

PiperOrigin-RevId: 683192260
Change-Id: Ie6063e0706640856e0f4c9dce3e1f4e8fe1ec9e9
2024-10-07 08:24:18 -07:00
Copybara-Service aba461762f Merge pull request #250 from bazelbuild:Wyverald-patch-1
PiperOrigin-RevId: 683088860
Change-Id: I8aae0bbe569e834bc4d1d46dcee29c1c2ee51a64
2024-10-07 01:59:36 -07:00
Xùdōng Yáng 5cbd830262
Fix empty glob in cc/private/BUILD
the glob pattern `**/*.bzl` doesn't match anything there, and this is bad for `--incompatible_disallow_empty_glob`. This PR removes the offending line.
2024-10-04 22:54:53 +02:00
Fabian Meumertzheim 083ace4f11 Make stardoc a dev dependency
Otherwise rules_cc is transitively incompatible with Bazel 6 through the chain stardoc 0.7.0 -> rules_java 7.6.1.

`stardoc` targets are not needed by consumers of the ruleset.
2024-10-04 15:07:57 +02:00
Copybara-Service 7343c660a4 Merge pull request #244 from keith:ks/allow-extra-args-to-cc_sysroot
PiperOrigin-RevId: 682280945
Change-Id: I1f0256f6c99dd1e67efdcd08145700e10ab26e6a
2024-10-04 05:25:37 -07:00
Copybara-Service 565dbd65bd Merge pull request #245 from keith:ks/add-objc_compile-to-compile_actions
PiperOrigin-RevId: 682280777
Change-Id: If9c3a8aa883f7630d9a21d09e65c3c7a230140f2
2024-10-04 05:24:32 -07:00
Googler fd72f9e62a Fix rules_cc copybara
PiperOrigin-RevId: 682280542
Change-Id: Ie5f9dbc05f4d87dbe14b2392a21a23ef0c3ea9a4
2024-10-04 05:23:24 -07:00
Googler c2549f6eb0 Sync cc toolchain from Bazel's tools/cpp
- @bazel_tools//tools/cpp:toolchain_type is not moved.
- Added cc/toolchains/toolchain_config_utils.bzl for exposing util functions for cc toolchain configuration.

Closes https://github.com/bazelbuild/rules_cc/pull/247

Working towards https://github.com/bazelbuild/bazel/issues/23809

PiperOrigin-RevId: 681913803
Change-Id: I16ff456a212ab0e579c137bd74344255f4e49bd8
2024-10-03 09:32:38 -07:00
Googler f364500ba8 Create a concept of a tool capability.
This should make the concept of "sentinel features" work correctly with known_features and enabled_features, rather than enabling them directly in features.

PiperOrigin-RevId: 681688437
Change-Id: I29184a2079ccfd0eb3a275439508a66ca61109af
2024-10-02 19:56:22 -07:00
Googler 1af2140e73 Document feature-related toolchain rules
BEGIN_PUBLIC

Document feature-related toolchain rules

Extends the toolchain API documentation to cover all feature-related rules.

END_PUBLIC

PiperOrigin-RevId: 681476538
Change-Id: Icfe35e03937bdb0bc55eae24f57eafe0db7b16eb
2024-10-02 09:10:38 -07:00
Googler b06d2f7d53 Add cc_action_type and cc_tool documentation
BEGIN_PUBLIC

Add cc_action_type and cc_tool documentation

Extends the toolchain API documentation to include docs for cc_action_type, cc_action_type_set, cc_variable, and cc_tool.

Also improves cross-reference links and copybara behavior for docs.

END_PUBLIC

PiperOrigin-RevId: 680601617
Change-Id: Idbbdfbcb2c5a1c3598b6a7e7ba985ed14f871099
2024-09-30 09:15:19 -07:00
Googler 9cb80cfc32 Add objcopy_embed_data to rules_cc action_names.bzl.
PiperOrigin-RevId: 680579470
Change-Id: I73600ea8df35aa8a7983ebc4e2e278945d2e65cb
2024-09-30 08:07:27 -07:00
Keith Smiley 97cc237a06
Add objc_compile to compile_actions
The majority of the time objc_compile is identical to C/C++ compiles.
Because of this I think by default all of those flags should apply here.
This is a bit funny since the current builtin toolchain doesn't support
Objective-C at all and that's only in the apple_support toolchain, but
new toolchains using these rules may want to support this.

Without this things like `--objccopt` just don't work out of the box.
2024-09-24 15:23:37 -07:00
Googler 848d56aa29 Update copybara to improve docs handling
BEGIN_PUBLIC

Add `@rules_cc` to generated docs

Ensures when docs are generated that the `@rules_cc` prefix is used for anything that appears to come from the repo.

END_PUBLIC

PiperOrigin-RevId: 677883741
Change-Id: I82b910b338aea8b14ecb7b192b5f3d3907be30ee
2024-09-23 11:55:00 -07:00
Keith Smiley b4f54fab89
Allow extra args to cc_sysroot
It's possible for there to be some arguments that are naturally
associated with the sysroot flag, for example on macOS there are
associated framework search paths that should be added with
`-F{sysroot}/Library/Frameworks`. There are also warnings flags you
might want to add such as `-Werror=missing-sysroot`. In this case I
think it's nicer to provide them alongside the sysroot definition,
instead of having to create a custom cc_args for them.
2024-09-22 14:00:13 -07:00
Googler 58debbffe4 Remove experimental_enable_rule_based_toolchains flag
BEGIN_PUBLIC

Remove experimental_enable_rule_based_toolchains flag

Rule-based toolchains will not be gated by a flag when released with rules_cc v0.0.10. Also, this flag is unfortunately inherently incompatible with --experimental_exclude_starlark_flags_from_exec_config.

END_PUBLIC

PiperOrigin-RevId: 674072362
Change-Id: Iebda45d4daf4cec27c48296d61092dc513442911
2024-09-12 17:31:23 -07:00
Googler de86823dde Document args-related toolchain rules
BEGIN_PUBLIC

Document args-related toolchain rules

Adds comprehensive documentation for cc_args, cc_nested_args, and cc_args_list.

END_PUBLIC

PiperOrigin-RevId: 673921558
Change-Id: I1c9c0731925a03dedec983083072f52c6d4c270f
2024-09-12 11:09:02 -07:00
Googler 0d5561bcba Consolidate action labels in toolchain args
BEGIN_PUBLIC

Consolidate action labels in toolchain args

Consolidates action labels used by re-implementation of legacy features to use logical groups rather than individually listing every action. This simplifies the rule definitions slightly.

END_PUBLIC

PiperOrigin-RevId: 673920103
Change-Id: If5453dd5b45d5549ff75d656da8a2873232117ae
2024-09-12 11:05:19 -07:00
Googler da1ac71c8e Create group for c compile actions
BEGIN_PUBLIC

Create group for c compile actions

Adds `c_compile_actions` group to provide a logical C equivalent for `cpp_compile_actions`.

END_PUBLIC

PiperOrigin-RevId: 673408772
Change-Id: Ic5ccb57bc1fa7a98999d944316b97a39aac571ac
2024-09-11 08:46:50 -07:00
Googler 96ac608d34 No public description
PiperOrigin-RevId: 673231375
Change-Id: I61110c5d47898c0ef27af650ad56de6f107d3976
2024-09-10 22:04:14 -07:00
Googler ce4bc8a8de Make `cc_helper.bzl` publicly `load()`-able for `@rules_java`
PiperOrigin-RevId: 672945291
Change-Id: I0c2a32475c1f2fdeffe28239cb0b9bead70295a7
2024-09-10 06:54:08 -07:00
Googler 5c1be25800 Copy a few utilities from `@_builtins` to `@rules_cc`
PiperOrigin-RevId: 672519388
Change-Id: Icb077dd736af10724ffdbfb8330564516b43fb1d
2024-09-09 06:06:10 -07:00
Googler b8bb882895 Fix rule-based implementation of runtime_library_search_directories
BEGIN_PUBLIC

Fix rule-based implementation of runtime_library_search_directories

As runtime_library_search_directories was written and reorganized through review, some instances of `$ORIGIN` were unintentionally renamed to `$EXEC_ORIGIN`. This change fixes those instances to correctly mirror CppActionConfigs.java.

END_PUBLIC

BUG: 349427627
PiperOrigin-RevId: 672401255
Change-Id: Ic20f9e77eccca8bc7e7f895aeaeb44f85022df28
2024-09-08 22:14:44 -07:00
Googler ca8483971c Automated rollback of commit 0f352c3497.
*** Reason for rollback ***

Rollforward with fix for b/365154741

*** Original change description ***

Automated rollback of commit 0bc1ba56ef.

*** Reason for rollback ***

TAP failures in Bazel/Blaze, see b/365154741 and discussion at https://chat.google.com/room/AAAAXE3XKrY/_e3TpBFJvus

*** Original change description ***

Add user-facing documentation for cc_tool_map

BEGIN_PUBLIC

Add user-facing documentation for cc_tool_map

Adds user-facing documentation for the cc_tool_map toolchain rule, including an example and higher level analogies.

END_PUBLIC

***

***

PiperOrigin-RevId: 672000172
Change-Id: If7ad64e2378a2016d389a3718944aa04bc5e9759
2024-09-06 23:05:56 -07:00
Googler 0f352c3497 Automated rollback of commit 0bc1ba56ef.
*** Reason for rollback ***

TAP failures in Bazel/Blaze, see b/365154741 and discussion at https://chat.google.com/room/AAAAXE3XKrY/_e3TpBFJvus

*** Original change description ***

Add user-facing documentation for cc_tool_map

BEGIN_PUBLIC

Add user-facing documentation for cc_tool_map

Adds user-facing documentation for the cc_tool_map toolchain rule, including an example and higher level analogies.

END_PUBLIC

***

PiperOrigin-RevId: 671898382
Change-Id: Iead81a71adb17dff46b1b442471e595769fb5c2e
2024-09-06 14:50:15 -07:00
Googler 0bc1ba56ef Add user-facing documentation for cc_tool_map
BEGIN_PUBLIC

Add user-facing documentation for cc_tool_map

Adds user-facing documentation for the cc_tool_map toolchain rule, including an example and higher level analogies.

END_PUBLIC

PiperOrigin-RevId: 671777889
Change-Id: Ib53de76f355db43a9530f7cbe11face3c9219675
2024-09-06 09:01:28 -07:00
Googler 0cd5c640a7 Implement libraries_to_link as cc_args
BEGIN_PUBLIC

Implement libraries_to_link as cc_args

Implements the libraries_to_link feature as libraries_to_link rules.

END_PUBLIC

PiperOrigin-RevId: 671775909
Change-Id: Ie3758e37f3db5c24ed9d757aa7cbeb78aecb153d
2024-09-06 08:56:38 -07:00