Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "CDT/Build/Doug"
< CDT
Line 29: | Line 29: | ||
**** Pretty ugly on startup. Would need to make sure things aren't too broken. | **** Pretty ugly on startup. Would need to make sure things aren't too broken. | ||
**** Prompt the user to convert? | **** Prompt the user to convert? | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 15:34, 22 July 2015
Here's my current thoughts on a new build model.
- Use org.eclipse.core.resources IBuildConfiguration to model build configs
- Allows for config specific references and references to configs for finer grain build dependencies.
- Build configurations are bags of attributes
- Adapt from IBuildConfiguration to ICBuildConfiguration which implements the bag
- Bag stored per configuration as project properties (i.e. in .settings).
- Builders implemented as real IncrementalProjectBuilders
- Attribute in ICBuildConfiguration to know whether a given builder is enabled for a given config.
- Allows for different builders to work on the same project, e.g. CMake and Xcode builders
- Project Property page for editing builder settings that are stored in the attribute bag.
- Attribute in ICBuildConfiguration to know whether a given builder is enabled for a given config.
- Build configurations also have Toolchain
- Contributes to build environment vars, e.g. PATH to find the tools to execute and other necessary env vars.
- Scanner Discovery settings to find built-ins and parse build output
- target os/arch so we can tell whether the build configurations supports a given IRemoteConnection for the Launch Bar.
- Toolchains can be defined in extension, or in toolchain files (local or shared a la .launch files).
- Anticipated Builders
- CMake
- qmake
- autotools
- plain make, or whatever build command the user wants
- Arduino builder that generates makefiles based on Arduino SDK metadata
- CDT generated makefiles (backwards compat, deprecated?)
- CDT internal (backwards compat, deprecated?)
- Backwards compat issues
- How to map IBuildConfiguration to IConfiguration
- Use the default IBuildConfiguration that exists already to signal using old configs?
- Actually, that would let us build the new system without breaking old ones
- Project conversion?
- Pretty ugly on startup. Would need to make sure things aren't too broken.
- Prompt the user to convert?
- Use the default IBuildConfiguration that exists already to signal using old configs?
- How to map IBuildConfiguration to IConfiguration