Contribute

Bazel C++ Rules Roadmap

Last verified: 2018-08-08 (update history)

Skylark API for the C++ toolchain (2018/Q3)

Status: DONE

Objective: It’s possible to obtain the exact command line as C++ actions would use from Skylark (tracking issue, design doc, owner: mhlopko).

Simplifying Linking Modes (2018/Q3)

Status: IN PROGRESS

Objective: Crosstool definition for linking modes is based on features; it is possible to control linking of system libraries (design doc, owner: mhlopko).

C++ Sandwich (2018/Q3)

Status: IN PROGRESS

Objective: It’s possible to write a custom skylark rule that can depend on C++ rules, and C++ rules can depend on skylark (C++ sandwich) (tracking issue, owner: oquenchil).

Migrate Crosstools to Features (2018/Q3)

Status: IN PROGRESS

Objective: Features are the only way of defining crosstool flags (owner: mhlopko).

Crosstool in Skylark (2018/Q3)

Status: IN PROGRESS

Objective: Crosstool can be written in Skylark (design doc, tracking issue, owner: scentini).

C++ rules use platforms (2018/Q4)

Status: NOT STARTED

Objective: C++ toolchain is selected using platforms.

Removing hardcoded linux/gcc/libstdc++ assumptions (2018/Q4)

Status: NOT STARTED

Objective: Bazel doesn’t assume linux/gcc anywhere (including include directories).

Transitive Libraries (2019/Q1)

Status: NOT STARTED

Objective: It’s possible to build a static or a shared library with full control over which dependencies are linked statically and which dynamically (design doc).

System-installed libraries (2019/Q1)

Status: NOT STARTED

Objective: C++ rules are able to depend on a system library using cc_import (possibly build it from source if absent) in a way that works with remote cache/execution and multiple platforms.