Skip to content

Commit 7fc6a66

Browse files
authored
Merge branch 'eclipse-cdt:main' into SyncLRUAccess
2 parents 7d47221 + f0c74ed commit 7fc6a66

File tree

403 files changed

+15224
-3800
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

403 files changed

+15224
-3800
lines changed

.gitattributes

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ Dockerfile text
4848
*.yaml text
4949
*.yml text
5050
.dockerignore text
51-
uid_entrypoint text
5251

5352
# Qt
5453
*.pro text
@@ -157,6 +156,15 @@ output-1 text
157156
*.srec text eol=lf
158157
test_commands text
159158

159+
# Font awesome files (other files could have the same extensions)
160+
*.eot binary
161+
*.less binary
162+
*.otf binary
163+
*.scss binary
164+
*.ttf binary
165+
*.woff binary
166+
*.woff2 binary
167+
160168
# Other special files
161169
cdtOptions text
162170
.clang-format text

.github/workflows/build-test.yml

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,40 @@ on: [push, pull_request]
55
jobs:
66
build:
77

8-
runs-on: ubuntu-20.04
9-
timeout-minutes: 90
8+
runs-on: ubuntu-24.04
9+
timeout-minutes: 120
1010

1111
steps:
12-
- uses: actions/checkout@v3
12+
- uses: actions/checkout@v4
1313
with:
1414
fetch-depth: 0
15-
- uses: dorny/paths-filter@v2
15+
- uses: dorny/paths-filter@v3
1616
id: filter
1717
with:
18+
# dsf filters are to know when to run dsf-gdb tests (See ref below)
19+
# it includes any changes to debug, or anything likely to affect gdb
20+
# testing
1821
filters: |
1922
dsf:
2023
- 'dsf-gdb/**'
2124
- 'dsf/**'
2225
- 'debug/**'
2326
- 'jtag/**'
27+
- 'pom.xml'
28+
- 'releng/**'
29+
- '.github/**'
30+
docs:
31+
- 'doc/org.eclipse.cdt.doc.user/**'
2432
- name: Set up JDK 21
25-
uses: actions/setup-java@v3
33+
uses: actions/setup-java@v4
2634
with:
2735
java-version: '21'
2836
distribution: 'temurin'
2937
cache: maven
3038
- name: Set up Maven
31-
uses: stCarolas/setup-maven@07fbbe97d97ef44336b7382563d66743297e442f # v4.5
39+
uses: stCarolas/setup-maven@v5
3240
with:
33-
maven-version: 3.9.2
41+
maven-version: 3.9.6
3442
- name: Install GCC & GDB & other build essentials
3543
run: |
3644
sudo apt-get update
@@ -49,18 +57,38 @@ jobs:
4957
-DexcludedGroups=flakyTest,slowTest \
5058
-Ddsf.gdb.tests.timeout.multiplier=50 \
5159
-Ddsf-gdb.skip.tests=$(test ${{ steps.filter.outputs.dsf }} == 'false' && echo 'true' || echo 'false') \
52-
-Dindexer.timeout=300
60+
-Dindexer.timeout=300 \
61+
-Dsurefire.rerunFailingTestsCount=3
5362
- name: Upload Logs
54-
uses: actions/upload-artifact@v3
63+
uses: actions/upload-artifact@v4
5564
if: success() || failure()
5665
with:
57-
name: Code Cleanliness Detailed Logs
58-
path: '*.log'
66+
name: Detailed Logs
67+
path: '**/*.log'
68+
- name: Prepare Test Results for upload
69+
if: (success() || failure())
70+
run: |
71+
cp ${{ github.event_path }} event.json
5972
- name: Upload Test Results
60-
uses: actions/upload-artifact@v3
73+
uses: actions/upload-artifact@v4
6174
if: success() || failure()
6275
with:
6376
name: test-results
6477
path: |
78+
event.json
6579
*/*/target/surefire-reports/*.xml
6680
terminal/plugins/org.eclipse.tm.terminal.test/target/surefire-reports/*.xml
81+
- name: Prepare Docs for upload
82+
if: (success() || failure()) && steps.filter.outputs.docs
83+
run: |
84+
mkdir -p docs/user
85+
cd docs/user
86+
unzip ../../releng/org.eclipse.cdt.repo/target/repository/plugins/org.eclipse.cdt.doc.user_*.jar
87+
- name: Upload Docs
88+
uses: actions/upload-artifact@v4
89+
if: (success() || failure()) && steps.filter.outputs.docs
90+
with:
91+
name: docs
92+
include-hidden-files: true
93+
path: |
94+
docs/**

.github/workflows/code-cleanliness.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,22 @@ jobs:
77
runs-on: ubuntu-20.04
88

99
steps:
10-
- uses: actions/checkout@v3
10+
- uses: actions/checkout@v4
1111
with:
1212
fetch-depth: 0
1313
- name: Run Check Code Cleanliness with Docker
1414
uses: addnab/docker-run-action@v3
1515
with:
16-
image: quay.io/eclipse-cdt/cdt-infra-plus-eclipse-install-github@sha256:6949adee26f78e9968e16d52bc3accfd7b51d0f16c473ad4b6f1caee849ab519
16+
image: quay.io/eclipse-cdt/cdt-infra-github@sha256:3d745b7b84e3f9f9492cc1d280ea3b44028a92c7e9748d1ea8771fed211b5dc4
1717
options: -v ${{ github.workspace }}:/work
1818
run: |
19-
set -x
19+
set -ex
2020
cd /work
2121
./releng/scripts/check_code_cleanliness_only.sh
2222
./releng/scripts/check_bundle_versions.sh
2323
./releng/scripts/check_bundle_versions_report.sh
2424
- name: Upload Logs
25-
uses: actions/upload-artifact@v3
25+
uses: actions/upload-artifact@v4
2626
if: success() || failure()
2727
with:
2828
name: Code Cleanliness Detailed Logs

.github/workflows/licensecheck.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This workflow will check for Maven projects if the licenses of all (transitive) dependencies are vetted.
22

3-
name: License vetting status check
3+
name: License check
44

55
on:
66
push:
@@ -13,8 +13,8 @@ on:
1313
types: [created]
1414

1515
jobs:
16-
call-license-check:
17-
uses: eclipse/dash-licenses/.github/workflows/mavenLicenseCheck.yml@master
16+
call:
17+
uses: eclipse-dash/dash-licenses/.github/workflows/mavenLicenseCheck.yml@master
1818
with:
1919
projectId: tools.cdt
2020
secrets:

.github/workflows/report.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414

1515
steps:
1616
- name: Download Test Report
17-
uses: dawidd6/action-download-artifact@v2
17+
uses: dawidd6/action-download-artifact@v7
1818
with:
1919
name: test-results
2020
path: test-results
@@ -26,3 +26,5 @@ jobs:
2626
with:
2727
commit: ${{ github.event.workflow_run.head_sha }}
2828
junit_files: "test-results/**/*.xml"
29+
event_file: test-results/event.json
30+
event_name: ${{ github.event.workflow_run.event }}

.mvn/extensions.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
<extension>
44
<groupId>org.eclipse.tycho</groupId>
55
<artifactId>tycho-build</artifactId>
6-
<version>4.0.6</version>
6+
<version>4.0.10</version>
77
</extension>
88
</extensions>

BUILDING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ To build CDT plug-ins you need a standard Maven & Java development environment.
2525
The CI build automatically run code cleanliness checks. To run them on your computer it is recommended to use the Docker image, for example like this from the root of the checked out CDT repo:
2626

2727
```sh
28-
docker run --rm -it -v $(git rev-parse --show-toplevel):/work -w /work/$(git rev-parse --show-prefix) --cap-add=SYS_PTRACE --security-opt seccomp=unconfined quay.io/eclipse-cdt/cdt-infra-plus-eclipse-install:latest releng/scripts/check_code_cleanliness.sh
28+
docker run --rm -it -v $(git rev-parse --show-toplevel):/work -w /work/$(git rev-parse --show-prefix) --cap-add=SYS_PTRACE --security-opt seccomp=unconfined quay.io/eclipse-cdt/cdt-infra:latest releng/scripts/check_code_cleanliness.sh
2929
```
3030

3131
### Profiles
@@ -160,7 +160,7 @@ An additional tip is to set the following in `.gitconfig` to allow you to diff `
160160

161161
When the host is Windows, getting docker to behave as encoded in the pom.xml may be challenging, instead a command like this will probably work (replace your path to git root). Note that running this in git bash causes problems because of the /work in the command line arguments. (TODO integrate this command line way of running into the pom.xml so the original instructions work.)
162162

163-
`docker 'run' '--rm' '-t' '-v' 'D:\cdt\git\org.eclipse.cdt:/work' '-w' '/work/core/org.eclipse.cdt.core.native' 'quay.io/eclipse-cdt/cdt-infra-eclipse-full:latest' 'make' '-C' 'native_src' 'rebuild'`
163+
`docker 'run' '--rm' '-t' '-v' 'D:\cdt\git\org.eclipse.cdt:/work' '-w' '/work/core/org.eclipse.cdt.core.native' 'quay.io/eclipse-cdt/cdt-infra:latest' 'make' '-C' 'native_src' 'rebuild'`
164164

165165
See also `jniheaders` profile above.
166166

Jenkinsfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ pipeline {
66
}
77
options {
88
timestamps()
9+
buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '2'))
910
}
1011
stages {
1112
stage('initialize PGP') {
@@ -53,6 +54,12 @@ pipeline {
5354
-Dmaven.repo.local=/home/jenkins/.m2/repository \
5455
--settings /home/jenkins/.m2/settings.xml \
5556
'''
57+
sh '''
58+
echo "TIMESTAMP: $(date)" > releng/org.eclipse.cdt.repo/target/repository/ci-and-git-info.txt
59+
echo "CI URL: ${BUILD_URL}" >> releng/org.eclipse.cdt.repo/target/repository/ci-and-git-info.txt
60+
echo "Most recent git commits: (output of git log --graph --pretty='tformat:%h [%ci] - %s' -20)" >> releng/org.eclipse.cdt.repo/target/repository/ci-and-git-info.txt
61+
git log --graph --pretty='tformat:%h [%ci] - %s' -20 | tee -a releng/org.eclipse.cdt.repo/target/repository/ci-and-git-info.txt
62+
'''
5663
}
5764
}
5865
}

NewAndNoteworthy/CDT-12.0.md

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,44 @@ This is the New & Noteworthy page for CDT 12.0 which is part of Eclipse 2025-03
66

77
# Release Notes
88

9+
## Minimum version of GLIBC required
10+
11+
The minimum version of GLIBC required is now 2.31.
12+
This version can be found in Ubuntu 20.04 and later, RHEL 9.0 and later and other distros as well.
13+
CDT's native components will likely work with older versions of glibc too, assuming they provide the required APIs for Eclipse CDT.
14+
15+
# Core Build
16+
17+
## More CMake build settings are now available in the user interface
18+
19+
The CMake build setting GUI has been updated to include more CMake settings, and some of the settings that did not used to do the correct thing have been updated for more consistent behavior.
20+
The way these settings are saved has been slightly modified, meaning workspaces with CMake projects from before CDT 12 will have their build settings restored to defaults.
21+
Build settings can be customized by unchecking "Use default CMake settings".
22+
23+
TODO: Before release add the final screenshot for the build settings here. I am not including it now because the UI keeps changing.
24+
25+
## Default build system generator for CMake changed to Ninja on all platforms
26+
27+
The default for CMake's build system generator is now Ninja on all platforms.
28+
Users who want to use other build system generators can select their desired generator in the build settings.
29+
930
# Managed Build
1031

32+
## New *C Project* and new *C++ Project* available via *New C/C++ Project* wizard
33+
34+
The separate new C and C++ project wizards are now exclusively available via the *New C/C++ Project* wizard.
35+
From the second page of *New C/C++ Project* wizard select *C Managed Build* to access the *New C Project* wizard and select *C++ Managed Build* to access the *New C++ Project* wizard.
36+
37+
See [Issue #965](https://github.com/eclipse-cdt/cdt/issues/965) for additional details, including how to restore these menu entries if your Eclipse CDT product depends on it.
38+
39+
## New *Makefile Project with Existing Code* available via *Existing Code as Makefile Project* import wizard
40+
41+
The *Makefile Project with Existing Code* wizard is no longer available in the new project wizard.
42+
For users who need it, it remains available in the *Existing Code as Makefile Project* import wizard.
43+
Most users should be using the *Makefile project* type in the *New C/C++ Project* wizard.
44+
45+
See [Issue #965](https://github.com/eclipse-cdt/cdt/issues/965) for additional details, including how to restore these menu entries if your Eclipse CDT product depends on it.
46+
1147
## Other objects for GNU archive files
1248

1349
The managed build system now provides an option to specify other object files to be included when building GNU archive files:
@@ -16,8 +52,40 @@ The managed build system now provides an option to specify other object files to
1652

1753
The new option applies to static library projects using a _Cross GCC_, _Cygwin GCC_, _Linux GCC_ or _MinGW GCC_ toolchain.
1854

55+
# Debug
56+
57+
## DSF Preference Pages always visible
58+
59+
The DSF Preference pages (Preferences -> C/C++ -> Debug -> GDB and children) are not always shown to users.
60+
Prior to CDT 12 these were not visible until after the first debug session was started.
61+
62+
At the first debug session CDT enables the [activity](https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.isv/reference/extension-points/org_eclipse_ui_activities.html) for DSF (`org.eclipse.cdt.debug.dsfgdbActivity`), with this change nothing in CDT is bound to this activity key anymore.
63+
64+
## Preferences -> Run/Debug -> View Performance relocated
65+
66+
The View Performance preference page, which is CDT specific, has been relocated to the Preferences -> C/C++ -> Debug section of preferences.
67+
This only affects where in the Preferences tree the page is located, the preferences and key names have not changed.
68+
In addition, this page is always visible.
69+
70+
# Terminal
71+
72+
## Default encoding for terminal is now UTF-8
73+
74+
For a [while](https://eclipse.dev/eclipse/news/4.24/platform.html#explicit-encoding-workspaces), the default encoding in Eclipse has been UTF-8.
75+
Starting in CDT 12, the Terminal will now default to UTF-8.
76+
77+
<p align="center"><img src="images/CDT-12.0-default-terminal-encoding.png"></p>
78+
1979
# API Changes, current and planned
2080

81+
## CMake Support easier for extenders and ISVs
82+
83+
Improvements to the API for CMake has made it easier to extend and specialize CMake for ISVs.
84+
A fully worked example demonstrating the support is now provided in the CDT source in [org.eclipse.cdt.cmake.example](https://github.com/eclipse-cdt/cdt/tree/main/cmake/org.eclipse.cdt.cmake.example).
85+
This example demonstrates the API, and how to contribute a new project wizard to make such a project.
86+
87+
<p align="center"><img src="images/CDT-12.0-cmake-example-project-for-isvs.png"></p>
88+
2189
## Breaking API changes
2290

2391
Please see [CHANGELOG-API](CHANGELOG-API.md) for details on the breaking API changes in this release as well as future planned API changes.
@@ -26,6 +94,14 @@ Please see [CHANGELOG-API](CHANGELOG-API.md) for details on the breaking API cha
2694

2795
See [Noteworthy issues and PRs](https://github.com/eclipse-cdt/cdt/issues?q=is%3Aclosed+label%3Anoteworthy+milestone%3A12.0.0) for this release in the issue/PR tracker.
2896

97+
## Improved launch configuration for CMake and other Core Build System projects
98+
99+
The CMake and CBS Makefile project launch configurations for local applications have an improved Main tab and new Arguments, Environment, Debugger, Source, and Common tabs.
100+
29101
# Bugs Fixed in this Release
30102

31-
See [GitHub milestones](https://github.com/eclipse-cdt/cdt/milestone/11?closed=1)
103+
See GitHub milestones:
104+
- [![12.0.0 M1](https://img.shields.io/github/milestones/issues-total/eclipse-cdt/cdt/12)](https://github.com/eclipse-cdt/cdt/milestone/12?closed=1)
105+
- [![12.0.0 M2](https://img.shields.io/github/milestones/issues-total/eclipse-cdt/cdt/13)](https://github.com/eclipse-cdt/cdt/milestone/13?closed=1)
106+
- [![12.0.0 M3](https://img.shields.io/github/milestones/issues-total/eclipse-cdt/cdt/18)](https://github.com/eclipse-cdt/cdt/milestone/18?closed=1)
107+
- [![12.0.0](https://img.shields.io/github/milestones/issues-total/eclipse-cdt/cdt/14)](https://github.com/eclipse-cdt/cdt/milestone/14?closed=1)

NewAndNoteworthy/CHANGELOG-API.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,23 @@ This section describes API removals that occurred in past releases, and upcoming
88

99
Below is the detailed descriptions of API changes and mitigation efforts API consumers need to take.
1010

11+
## API Changes in CDT 12.0.
12+
13+
### org.eclipse.cdt.cmake.core.properties refactored
14+
15+
A significant simplification to the CMake build properties was completed, this included removing some API that was not used.
16+
The following classes have been removed or modified in API breaking ways:
17+
18+
- org.eclipse.cdt.cmake.core.properties.ICMakePropertiesController removed
19+
- org.eclipse.cdt.cmake.core.properties.IGeneralProperties removed
20+
- org.eclipse.cdt.cmake.core.properties.IOsOverrides removed
21+
- org.eclipse.cdt.cmake.core.properties.ICMakeProperties:
22+
- new methods added to compensate for removal of IOsOverrides
23+
- reset method removed
24+
- spelling corrected for methods with Uninitialized in the name
25+
- setWarnUnused renamed to setWarnUnusedVars and isWarnUnused renamed to isWarnUnusedVars
26+
27+
1128
## API Changes in CDT 11.5.
1229

1330
### org.eclipse.cdt.make.ui.dialogs.DiscoveredPathContainerPage removed

NewAndNoteworthy/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
What's new and noteworthy in:
44

5-
- [CDT 12.0/2024-09](CDT-12.0.md)
5+
- [CDT 12.0/2025-03](CDT-12.0.md)
66
- [CDT 11.6/2024-06](CDT-11.6.md)
77
- [CDT 11.5/2024-03](CDT-11.5.md)
88
- [CDT 11.4/2023-12](CDT-11.4.md)
Loading
Loading

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ There are many third-party addons for CDT to make it more productive.
6969
* [CDT LSP](https://github.com/eclipse-cdt/cdt-lsp#readme): LSP based C/C++ Editor provided by the Eclipse CDT project
7070
* [cmake4eclipse](https://github.com/15knots/cmake4eclipse#abstract): This Eclipse plug-in automatically generates build-scripts for the Eclipse CDT managed build system from CMake scripts.
7171
* [Sloeber](http://eclipse.baeyens.it/): Eclipse Plugins based on Arduino toolchains or a enhanced Arduino IDE.
72+
* [SonarQube for Eclipse](https://marketplace.eclipse.org/content/sonarqube-ide): Eclipse plug-in for static analysis for quality and security issues in your C/C++ code directly inside the IDE.
7273
* [CUTE](https://cute-test.com/): C++ unit testing plug-in
7374
* [Bracketeer](https://marketplace.eclipse.org/content/bracketeer-cc-cdt): Auto-comments on closing brackets and highlight of matching/mismatching brackets
7475
* And many more in the [Eclipse Marketplace](https://marketplace.eclipse.org/), for example, try the [CDT tag](https://marketplace.eclipse.org/category/free-tagging/cdt)

build/org.eclipse.cdt.autotools.core/META-INF/MANIFEST.MF

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: %Bundle-Name.0
44
Bundle-SymbolicName: org.eclipse.cdt.autotools.core;singleton:=true
5-
Bundle-Version: 2.2.300.qualifier
5+
Bundle-Version: 2.2.400.qualifier
66
Bundle-Activator: org.eclipse.cdt.autotools.core.AutotoolsPlugin
77
Bundle-Localization: plugin
88
Require-Bundle: org.eclipse.ui;bundle-version="3.4.0",

build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-Name: %Bundle-Name.0
44
Bundle-SymbolicName: org.eclipse.cdt.autotools.ui;singleton:=true
5-
Bundle-Version: 2.2.400.qualifier
5+
Bundle-Version: 2.2.500.qualifier
66
Bundle-Activator: org.eclipse.cdt.autotools.ui.AutotoolsUIPlugin
77
Bundle-Localization: plugin
88
Bundle-Vendor: %provider

0 commit comments

Comments
 (0)