1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-21 21:52:10 +02:00
cdt/NewAndNoteworthy
betamax fe74d8dfee
Improve CMake build option handling and API (#1046)
Summary:

- Add some new API to make it easier for ISVs to provide defaults.
- Fully connect UI elements to CMake build process
- Add some missing UI elements (such as customizing generator)
- CMake generator default within CDT changed to Ninja

Details:

Add API to set CMake generator default (eg Ninja) ISV can set
their desired CMake generator by overriding
`CMakeBuildConfiguration.getDefaultProperties`. ISVs can also further
fine tune the build process by overriding
`CMakeBuildConfiguration.getDefaultProperties`

Remove API `IOsOverrides` and related code. `IOsOverrides` was a partial
implementation to achieve builds in Docker containers, however the
work was not complete and it the extra code was complicating some
basic use cases of setting defaults

Add support for all generators to CMake build settings UI page by
using a Combo instead of radio buttons. The non-deprecated generators
that are built-in to CDT populate the Combo, but additional generators
can be manually entered in the Combo.

Rename clean command to clean target to better reflect its use as
the argument passed to cmake's --target command line.

Add all target for the argument passed to cmake's --target
command line when doing a normal build.

Clarify usage of UI overrides and change the UI to be "use defaults"
(i.e. invert the checkbox). This is a **breaking** change as it means
user projects that were using UI overrides will revert to using defaults.
This is done on purpose as so many little things have changed in CMake
settings, that reverting to defaults on upgrade seems like a logical
decision. In addition *use defaults* matches the other GUIs in Eclipse,
for example the MBS build command settings.

Populate all defaults in getDefaultProperties() so that all CMake build
settings are displayed as used (greyed out) and can be used as a starting
point when editing settings.

Simplify some of the code in CMakeBuildTab.

Fix parsing of extra args so that quoted strings work.

Refactored manual tests document and brought it up to date.

Correct command line option for CMake's --warn-unused-vars

Correct command line option for CMake's --warn-uninitialized

Overall this is an API breaking change and the CHANGELOG-API.md has been
updated with all the API changes in and around ICMakeProperties,
including fixing typos in WarnUninitialized methods.

Fixes #1055
Fixes #818
Part of #1000

Co-authored-by: Jonah Graham <jonah@kichwacoders.com>
2025-01-27 12:31:38 -05:00
..
images Provide an example of extending CMake project type in Core Build (#1052) 2025-01-23 09:20:39 -05:00
OlderReleases Migrate New and Noteworthy from Wiki to GitHub 2022-10-02 20:46:56 -04:00
CDT-10.0.md Update wiki.eclipse links to their new locations 2022-11-09 10:56:55 -05:00
CDT-10.1.md Update wiki.eclipse links to their new locations 2022-11-09 10:56:55 -05:00
CDT-10.2.md Move https://wiki.eclipse.org/CDT/StandaloneDebugger to GitHub 2022-11-09 10:56:55 -05:00
CDT-10.3.md Migrate New and Noteworthy from Wiki to GitHub 2022-10-02 20:46:56 -04:00
CDT-10.4.md Migrate New and Noteworthy from Wiki to GitHub 2022-10-02 20:46:56 -04:00
CDT-10.5.md Migrate New and Noteworthy from Wiki to GitHub 2022-10-02 20:46:56 -04:00
CDT-10.6.md Update wiki.eclipse links to their new locations 2022-11-09 10:56:55 -05:00
CDT-10.7.md Migrate New and Noteworthy from Wiki to GitHub 2022-10-02 20:46:56 -04:00
CDT-11.0.md Add lack Dwarf5 support to release notes 2022-12-07 19:54:49 -05:00
CDT-11.1.md CDT 11.1.1 Release Notes updates 2023-03-20 09:27:32 -04:00
CDT-11.2.md Add Cross GCC toolchain uses GNU Elf Parser to N&N 2023-04-24 15:25:02 +01:00
CDT-11.3.md Add CDT LSP information to CDT's READMEs and N&N (#566) 2023-09-20 06:38:22 -04:00
CDT-11.4.md Convert \b to 0x7f to properly handle backspace in the terminal (#619) 2023-11-14 17:53:17 -05:00
CDT-11.5.md Bug579242: allow user to override CMake Settings (#683) 2024-02-07 13:52:58 -05:00
CDT-11.6.md Updates for CDT 11.6.1 (#858) 2024-07-02 21:11:07 -04:00
CDT-12.0.md Improve CMake build option handling and API (#1046) 2025-01-27 12:31:38 -05:00
CHANGELOG-API.md Improve CMake build option handling and API (#1046) 2025-01-27 12:31:38 -05:00
README.md Bump version to CDT 12.0.0 (#911) 2024-10-08 12:52:15 -04:00

CDT Release Notes and New & Noteworthy

What's new and noteworthy in:

CDT LSP

The CDT LSP (LSP based C/C++ Editor) provides its own changelog highlighting its release notes and new and noteworthy entries.

Older Versions

Older Versions

Older Versions

Older versions of CDT's New & Noteworthy page have not been converted from Wikitext to GitHub markdown, instead these older pages have simply been saved from the browser to preseve them. This may lead to some minor rendering issues that hopefully do not detract too much from the overall information provided.

API Changes

The Eclipse CDT project announces and tracks breaking API changes in CHANGELOG-API.

How to write a New & Noteworthy entry

How to write a New & Noteworthy entry

Use the model of any of the previous New & Noteworthy entry pages as a starting point. CDT 10.3/2021-06 is a fairly extensive entry and is a useful page to copy examples from.

Using Images

Upload images to the images/ subfolder and prefix the file with the version number, e.g. CDT-10.5-. The images should be embedded using the <img> tag with (gernally) a width of 50% like this:

<p align="center"><img src="images/CDT-10.0-CTAD.jpg" width="50%"></p>

Referecing Code

Especially when writing New & Noteworthy entries about API it is useful to link to the file. This should be done using a relative path, such as:

The [SerialPort](../native/org.eclipse.cdt.native.serial/src/org/eclipse/cdt/serial/SerialPort.java) supports arbitrary baud rates.

which renders like this:

The SerialPort supports arbitrary baud rates.

API Changes and Improvements

Improvements and changes to API should be announced in the New and Noteworthy for the release so they get visibility. Linking directly to the code or Javadoc for the new API is encouraged.

API Breakages and Removals

Anything that breaks or removes API should be listed in the CHANGELOG-API. If the API change is very significant (such as a new version of Java) listing it in the New and Noteworthy for the release is also advisable.