Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Skylark API for C++ toolchain/feature configuration #4571

Closed
hlopko opened this issue Feb 2, 2018 · 3 comments
Closed

Implement Skylark API for C++ toolchain/feature configuration #4571

hlopko opened this issue Feb 2, 2018 · 3 comments
Assignees
Labels
P1 I'll work on this now. (Assignee required) team-Rules-CPP Issues for C++ rules type: feature request

Comments

@hlopko
Copy link
Member

hlopko commented Feb 2, 2018

Current API only works for legacy CROSSTOOL fields such as compiler_flag, whereas C++ rules work on top of the "feature configuration" using action_config and feature messages. Implement a new API that will replace the existing one and that will work with feature configuration.

@hlopko hlopko added type: feature request P1 I'll work on this now. (Assignee required) category: rules > C++ labels Feb 2, 2018
@hlopko hlopko self-assigned this Feb 2, 2018
bazel-io pushed a commit that referenced this issue Apr 24, 2018
Working towards #4571.

RELNOTES: CppRules: Feature configuration can be created from Skylark
PiperOrigin-RevId: 194048906
bazel-io pushed a commit that referenced this issue Apr 26, 2018
…line to skylark

This cl enabled skylark rules to compute the command line using feature
configuration, the same mechanism that native C++ rules use.

Working towards #4571.

RELNOTES: CppRules: C++ command lines and env variables for C++ actions can be
retrieved from feature configuration.
PiperOrigin-RevId: 194384637
bazel-io pushed a commit that referenced this issue May 8, 2018
This is to simplify the API that will eventually be exposed to Skylark.

Working towards #4571.

RELNOTES: None.
PiperOrigin-RevId: 195785588
bazel-io pushed a commit that referenced this issue May 14, 2018
This cl enabled skylark rules to create build variables used for C++ compile
actions (in a limited form, e.g. build variables for modules are not exposed
etc).

Working towards #4571.

RELNOTES: None
PiperOrigin-RevId: 196491567
bazel-io pushed a commit that referenced this issue May 14, 2018
*** Reason for rollback ***

Caused a memory regression

*** Original change description ***

Expose cc_common.create_compile_build_variables

This cl enabled skylark rules to create build variables used for C++ compile
actions (in a limited form, e.g. build variables for modules are not exposed
etc).

Working towards #4571.

RELNOTES: None
PiperOrigin-RevId: 196566686
bazel-io pushed a commit that referenced this issue May 16, 2018
This cl enabled skylark rules to create build variables used for C++ compile
actions (in a limited form, e.g. build variables for modules are not exposed
etc).

Working towards #4571.

This is an encore of c4fc620 after fixing memory regression
(CompileBuildVariables.getSafePathStrings fixed to return ImmutableList, which
has smaller memory footprint).

RELNOTES: None
PiperOrigin-RevId: 196797581
bazel-io pushed a commit that referenced this issue Jun 7, 2018
This cl adds Skylark constants allowing users to specify which C++ action they
want for the feature configuration Skylark API.  This is done by exposing a
Skylark file at @bazel_tools//tools/cpp:action_names.bzl.

Skylark api to the C++ toolchain doc:
https://docs.google.com/document/d/1g91BWJITcYw_X-VxsDC0VgUn5E9g0kRBGoBSpoO41gA/edit#.

Progress on #4571.

RELNOTES: None.
PiperOrigin-RevId: 199596778
bazel-io pushed a commit that referenced this issue Jun 8, 2018
This cl enabled skylark rules to create build variables used for C++ link
actions (in a limited form, e.g. build variables for thinlto are not exposed
etc).

Working towards #4571.

RELNOTES: None
PiperOrigin-RevId: 199792130
bazel-io pushed a commit that referenced this issue Jun 28, 2018
This is an implementation of the design at
https://docs.google.com/document/d/1g91BWJITcYw_X-VxsDC0VgUn5E9g0kRBGoBSpoO41gA/edit>.
More thorough documentation will be sent in a separate cl. The api was approved
at
https://docs.google.com/document/d/1M8JA7kzZnWpLZ3WEX9rp6k2u_nlwE8smsHYgVTSSJ9k/edit?ts=5b292400#.

Work towards #4571 (only the docs are missing).

RELNOTES: None.
PiperOrigin-RevId: 202464331
mboes added a commit to tweag/rules_haskell that referenced this issue Jul 1, 2018
We will require >=0.14 in the following commits because that is the
only version that exposes the CC compiler and linker flags in the
toolchain provider. That API will itself change in 0.16 according to
bazelbuild/bazel#4571. Since the new API is
the only way to correctly get the flags we need, we'll probably bump
the minimum required version soon again.
bazel-io pushed a commit that referenced this issue Jul 16, 2018
This is a part of the #4571 effort.

RELNOTES: None
PiperOrigin-RevId: 204754855
allevato pushed a commit to bazelbuild/rules_swift that referenced this issue Jul 31, 2018
This is a part of the bazelbuild/bazel#4571 effort.

RELNOTES: None
PiperOrigin-RevId: 204754855
allevato pushed a commit to bazelbuild/rules_swift that referenced this issue Jul 31, 2018
…t.bzl using new skylark cc toolchain api.

This is a part of the bazelbuild/bazel#4571 effort.

RELNOTES: None
PiperOrigin-RevId: 205096748
allevato pushed a commit to bazelbuild/rules_swift that referenced this issue Jul 31, 2018
This is a part of the bazelbuild/bazel#4571 effort.

RELNOTES: None
PiperOrigin-RevId: 204754855
allevato pushed a commit to bazelbuild/rules_swift that referenced this issue Jul 31, 2018
…t.bzl using new skylark cc toolchain api.

This is a part of the bazelbuild/bazel#4571 effort.

RELNOTES: None
PiperOrigin-RevId: 205096748
@hlopko
Copy link
Member Author

hlopko commented Aug 2, 2018

I declare the API to be done and supported. Please use it over the legacy, unsupported API. There are still some bugfixes that will be released in the next bazel release, but this is Generally Available :)

Docs: https://docs.bazel.build/versions/master/skylark/lib/cc_common.html

@hlopko hlopko closed this as completed Aug 2, 2018
werkt pushed a commit to werkt/bazel that referenced this issue Aug 2, 2018
This cl adds Skylark constants allowing users to specify which C++ action they
want for the feature configuration Skylark API.  This is done by exposing a
Skylark file at @bazel_tools//tools/cpp:action_names.bzl.

Skylark api to the C++ toolchain doc:
https://docs.google.com/document/d/1g91BWJITcYw_X-VxsDC0VgUn5E9g0kRBGoBSpoO41gA/edit#.

Progress on bazelbuild#4571.

RELNOTES: None.
PiperOrigin-RevId: 199596778
werkt pushed a commit to werkt/bazel that referenced this issue Aug 2, 2018
This cl enabled skylark rules to create build variables used for C++ link
actions (in a limited form, e.g. build variables for thinlto are not exposed
etc).

Working towards bazelbuild#4571.

RELNOTES: None
PiperOrigin-RevId: 199792130
werkt pushed a commit to werkt/bazel that referenced this issue Aug 2, 2018
This is an implementation of the design at
https://docs.google.com/document/d/1g91BWJITcYw_X-VxsDC0VgUn5E9g0kRBGoBSpoO41gA/edit>.
More thorough documentation will be sent in a separate cl. The api was approved
at
https://docs.google.com/document/d/1M8JA7kzZnWpLZ3WEX9rp6k2u_nlwE8smsHYgVTSSJ9k/edit?ts=5b292400#.

Work towards bazelbuild#4571 (only the docs are missing).

RELNOTES: None.
PiperOrigin-RevId: 202464331
werkt pushed a commit to werkt/bazel that referenced this issue Aug 2, 2018
This is a part of the bazelbuild#4571 effort.

RELNOTES: None
PiperOrigin-RevId: 204754855
@hlopko hlopko reopened this Sep 26, 2018
@hlopko
Copy link
Member Author

hlopko commented Sep 26, 2018

Reopening to track migration using incompatible flag.

bazel-io pushed a commit that referenced this issue Sep 27, 2018
Progress on #4571.

RELNOTES: Added `--incompatible_disable_legacy_flags_cc_toolchain_api` to
deprecate legacy `cc_toolchain` Skylark API for legacy CROSSTOOL fields.
PiperOrigin-RevId: 214764514
@hlopko hlopko added team-Rules-CPP Issues for C++ rules and removed team-Rules-CPP Issues for C++ rules category: rules > C++ labels Oct 11, 2018
@hlopko
Copy link
Member Author

hlopko commented Nov 28, 2018

And the migration is done (#6434). Declaring this issue fixed.

@hlopko hlopko closed this as completed Nov 28, 2018
tymurmustafaiev pushed a commit to tymurmustafaiev/rules_swift that referenced this issue Jul 19, 2023
This is a part of the bazelbuild/bazel#4571 effort.

RELNOTES: None
PiperOrigin-RevId: 204754855
tymurmustafaiev pushed a commit to tymurmustafaiev/rules_swift that referenced this issue Jul 19, 2023
…t.bzl using new skylark cc toolchain api.

This is a part of the bazelbuild/bazel#4571 effort.

RELNOTES: None
PiperOrigin-RevId: 205096748
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1 I'll work on this now. (Assignee required) team-Rules-CPP Issues for C++ rules type: feature request
Projects
None yet
Development

No branches or pull requests

1 participant