diff --git a/.gitattributes b/.gitattributes index 58d73653580..818d7339647 100644 --- a/.gitattributes +++ b/.gitattributes @@ -48,7 +48,6 @@ Dockerfile text *.yaml text *.yml text .dockerignore text -uid_entrypoint text # Qt *.pro text diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index d24f7434279..26337be7543 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -9,10 +9,10 @@ jobs: timeout-minutes: 90 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: dorny/paths-filter@v2 + - uses: dorny/paths-filter@v3 id: filter with: filters: | @@ -22,15 +22,15 @@ jobs: - 'debug/**' - 'jtag/**' - name: Set up JDK 21 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '21' distribution: 'temurin' cache: maven - name: Set up Maven - uses: stCarolas/setup-maven@07fbbe97d97ef44336b7382563d66743297e442f # v4.5 + uses: stCarolas/setup-maven@v5 with: - maven-version: 3.9.2 + maven-version: 3.9.6 - name: Install GCC & GDB & other build essentials run: | sudo apt-get update @@ -57,7 +57,7 @@ jobs: name: Code Cleanliness Detailed Logs path: '*.log' - name: Upload Test Results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: success() || failure() with: name: test-results diff --git a/.github/workflows/code-cleanliness.yml b/.github/workflows/code-cleanliness.yml index dc8ad24c353..d317c1f49fe 100644 --- a/.github/workflows/code-cleanliness.yml +++ b/.github/workflows/code-cleanliness.yml @@ -7,13 +7,13 @@ jobs: runs-on: ubuntu-20.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Run Check Code Cleanliness with Docker uses: addnab/docker-run-action@v3 with: - image: quay.io/eclipse-cdt/cdt-infra-plus-eclipse-install-github@sha256:6949adee26f78e9968e16d52bc3accfd7b51d0f16c473ad4b6f1caee849ab519 + image: quay.io/eclipse-cdt/cdt-infra-github@sha256:3d745b7b84e3f9f9492cc1d280ea3b44028a92c7e9748d1ea8771fed211b5dc4 options: -v ${{ github.workspace }}:/work run: | set -x @@ -22,7 +22,7 @@ jobs: ./releng/scripts/check_bundle_versions.sh ./releng/scripts/check_bundle_versions_report.sh - name: Upload Logs - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: success() || failure() with: name: Code Cleanliness Detailed Logs diff --git a/.github/workflows/report.yml b/.github/workflows/report.yml index 307b2f16847..7a345491e3e 100644 --- a/.github/workflows/report.yml +++ b/.github/workflows/report.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Download Test Report - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v7 with: name: test-results path: test-results diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml index def5b6d885c..a61ecb96b6e 100644 --- a/.mvn/extensions.xml +++ b/.mvn/extensions.xml @@ -3,6 +3,6 @@ org.eclipse.tycho tycho-build - 4.0.6 + 4.0.10 diff --git a/BUILDING.md b/BUILDING.md index 60a4a341270..592f0c44eea 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -25,7 +25,7 @@ To build CDT plug-ins you need a standard Maven & Java development environment. 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: ```sh -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 +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 ``` ### Profiles @@ -160,7 +160,7 @@ An additional tip is to set the following in `.gitconfig` to allow you to diff ` 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.) -`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'` +`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'` See also `jniheaders` profile above. diff --git a/Downloads.md b/Downloads.md index 003489a6c96..2f27ab1e669 100644 --- a/Downloads.md +++ b/Downloads.md @@ -437,11 +437,6 @@ Archived p2 repos: There is limited information preserved about these old releases. Some of the download files are available on and -### Development Builds - -Development builds of the Eclipse C/C++ IDE can be found on the [Eclipse Downloads page](https://www.eclipse.org/downloads/packages/) by clicking on the Eclipse Developer Builds tab. - -Bleeding edge continuous (aka nightly) builds are available from the [cdt/main Jenkins build page](https://ci.eclipse.org/cdt/job/cdt/job/main/) and the p2 software repository:  ### Additional Distributions diff --git a/FAQ/README.md b/FAQ/README.md index a28e3eddd7f..584c0c979c4 100644 --- a/FAQ/README.md +++ b/FAQ/README.md @@ -280,7 +280,7 @@ update site. 2. You can take the bleeding edge updates from nightly builds (they are usually quite stable). The update site for most recent nightly builds is - + #### I can't find the CDT download for the XXX operating system? @@ -2413,7 +2413,7 @@ The path to windres.exe must be known to eclipse. #### How do I get a more recent build than is on the downloads page? - + These plugin builds can be installed for use in the usual way via Software Updates -\> Find and Install... but are packed which the diff --git a/Jenkinsfile b/Jenkinsfile index ca99350d270..581d59b2b1e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -59,6 +59,40 @@ pipeline { } } } + stage('Deploy Snapshot') { + steps { + container('jnlp') { + timeout(activity: true, time: 20) { + sshagent ( ['projects-storage.eclipse.org-bot-ssh']) { + sh ''' + SSHUSER="genie.cdt@projects-storage.eclipse.org" + SSH="ssh ${SSHUSER}" + SCP="scp" + + + DOWNLOAD=download.eclipse.org/tools/cdt/builds/cdt/$BRANCH_NAME + DOWNLOAD_MOUNT=/home/data/httpd/$DOWNLOAD + + # Deploying build to nightly location on download.eclipse.org + if $SSH test -e ${DOWNLOAD_MOUNT}-new; then + $SSH rm -r ${DOWNLOAD_MOUNT}-new + fi + if $SSH test -e ${DOWNLOAD_MOUNT}-last; then + $SSH rm -r ${DOWNLOAD_MOUNT}-last + fi + $SSH mkdir -p ${DOWNLOAD_MOUNT}-new + $SCP -rp releng/org.eclipse.cdt.repo/target/repository/* "${SSHUSER}:"${DOWNLOAD_MOUNT}-new + $SCP -rp releng/org.eclipse.cdt.repo/target/org.eclipse.cdt.repo.zip "${SSHUSER}:"${DOWNLOAD_MOUNT}-new + if $SSH test -e ${DOWNLOAD_MOUNT}; then + $SSH mv ${DOWNLOAD_MOUNT} ${DOWNLOAD_MOUNT}-last + fi + $SSH mv ${DOWNLOAD_MOUNT}-new ${DOWNLOAD_MOUNT} + ''' + } + } + } + } + } } post { always { diff --git a/NewAndNoteworthy/CDT-12.0.md b/NewAndNoteworthy/CDT-12.0.md index 198292ff912..13adaf94504 100644 --- a/NewAndNoteworthy/CDT-12.0.md +++ b/NewAndNoteworthy/CDT-12.0.md @@ -6,8 +6,29 @@ This is the New & Noteworthy page for CDT 12.0 which is part of Eclipse 2025-03 # Release Notes +## Minimum version of GLIBC required + +The minimum version of GLIBC required is now 2.31. +This version can be found in Ubuntu 20.04 and later, RHEL 9.0 and later and other distros as well. +CDT's native components will likely work with older versions of glibc too, assuming they provide the required APIs for Eclipse CDT. + # Managed Build +## New *C Project* and new *C++ Project* available via *New C/C++ Project* wizard + +The separate new C and C++ project wizards are now exclusively available via the *New C/C++ Project* wizard. +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. + +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. + +## New *Makefile Project with Existing Code* available via *Existing Code as Makefile Project* import wizard + +The *Makefile Project with Existing Code* wizard is no longer available in the new project wizard. +For users who need it, it remains available in the *Existing Code as Makefile Project* import wizard. +Most users should be using the *Makefile project* type in the *New C/C++ Project* wizard. + +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. + ## Other objects for GNU archive files The managed build system now provides an option to specify other object files to be included when building GNU archive files: @@ -16,6 +37,21 @@ The managed build system now provides an option to specify other object files to The new option applies to static library projects using a _Cross GCC_, _Cygwin GCC_, _Linux GCC_ or _MinGW GCC_ toolchain. +# Debug + +## DSF Preference Pages always visible + +The DSF Preference pages (Preferences -> C/C++ -> Debug -> GDB and children) are not always shown to users. +Prior to CDT 12 these were not visible until after the first debug session was started. + +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. + +## Preferences -> Run/Debug -> View Performance relocated + +The View Performance preference page, which is CDT specific, has been relocated to the Preferences -> C/C++ -> Debug section of preferences. +This only affects where in the Preferences tree the page is located, the preferences and key names have not changed. +In addition, this page is always visible. + # API Changes, current and planned ## Breaking API changes @@ -26,6 +62,10 @@ Please see [CHANGELOG-API](CHANGELOG-API.md) for details on the breaking API cha 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. +## Improved launch configuration for CMake and other Core Build System projects + +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. + # Bugs Fixed in this Release See [GitHub milestones](https://github.com/eclipse-cdt/cdt/milestone/11?closed=1) diff --git a/README.md b/README.md index b3fec14da6d..b397dad2b6e 100644 --- a/README.md +++ b/README.md @@ -14,10 +14,21 @@ See also https://projects.eclipse.org/projects/tools.cdt and https://eclipse.org ## Download -The recommended way to obtain Eclipse CDT is to download it as part of the complete *Eclipse IDE for C/C++ Developers* or *Eclipse IDE for Embedded C/C++ Developers* or *Eclipse IDE for Scientific Computing* from the main [Eclipse IDE download site](https://eclipseide.org/release/). +The recommended way to obtain Eclipse CDT is to download it as part of the complete *Eclipse IDE for C/C++ Developers* or *Eclipse IDE for Embedded C/C++ Developers* from the main [Eclipse IDE download site](https://eclipseide.org/release/). Alternatively Eclipse CDT can be installed into an existing Eclipse installation using this p2 URL: `https://download.eclipse.org/tools/cdt/releases/latest/` ([see how](https://help.eclipse.org/topic/org.eclipse.platform.doc.user/tasks/tasks-127.htm)) +### Download Development Builds + +Milestone builds of the *Eclipse IDE for C/C++ Developers* or *Eclipse IDE for Embedded C/C++ Developers* can be found on the [Eclipse Downloads page](https://www.eclipse.org/downloads/packages/) by clicking on the Eclipse Developer Builds tab (only present when there is a milestone build newer than the latest release). + +Alternatively, milestone builds of Eclipse CDT can be installed into an existing Eclipse installation using one of the p2 URLs in: ([see how](https://help.eclipse.org/topic/org.eclipse.platform.doc.user/tasks/tasks-127.htm)). +See [cdt.aggrcon](https://github.com/eclipse-simrel/simrel.build/blob/main/cdt.aggrcon#L3) for which milestone is currently contributed to Eclipse SimRel. + +Bleeding edge continuous (aka nightly) builds are available for the main branch from the p2 software repository: `https://download.eclipse.org/tools/cdt/builds/cdt/main/` + +### Download older versions + Downloads links for older versions are available in [Downloads](Downloads.md). ## Help & Support @@ -58,6 +69,7 @@ There are many third-party addons for CDT to make it more productive. * [CDT LSP](https://github.com/eclipse-cdt/cdt-lsp#readme): LSP based C/C++ Editor provided by the Eclipse CDT project * [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. * [Sloeber](http://eclipse.baeyens.it/): Eclipse Plugins based on Arduino toolchains or a enhanced Arduino IDE. +* [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. * [CUTE](https://cute-test.com/): C++ unit testing plug-in * [Bracketeer](https://marketplace.eclipse.org/content/bracketeer-cc-cdt): Auto-comments on closing brackets and highlight of matching/mismatching brackets * 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) diff --git a/build/org.eclipse.cdt.autotools.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.autotools.core/META-INF/MANIFEST.MF index c496da9f1f9..dbb33a84a7c 100644 --- a/build/org.eclipse.cdt.autotools.core/META-INF/MANIFEST.MF +++ b/build/org.eclipse.cdt.autotools.core/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name.0 Bundle-SymbolicName: org.eclipse.cdt.autotools.core;singleton:=true -Bundle-Version: 2.2.300.qualifier +Bundle-Version: 2.2.400.qualifier Bundle-Activator: org.eclipse.cdt.autotools.core.AutotoolsPlugin Bundle-Localization: plugin Require-Bundle: org.eclipse.ui;bundle-version="3.4.0", diff --git a/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF index 6296795c77f..30ec5982012 100644 --- a/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF +++ b/build/org.eclipse.cdt.autotools.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name.0 Bundle-SymbolicName: org.eclipse.cdt.autotools.ui;singleton:=true -Bundle-Version: 2.2.400.qualifier +Bundle-Version: 2.2.500.qualifier Bundle-Activator: org.eclipse.cdt.autotools.ui.AutotoolsUIPlugin Bundle-Localization: plugin Bundle-Vendor: %provider diff --git a/build/org.eclipse.cdt.autotools.ui/about.properties b/build/org.eclipse.cdt.autotools.ui/about.properties index c6f2000379e..97c9d0080ba 100644 --- a/build/org.eclipse.cdt.autotools.ui/about.properties +++ b/build/org.eclipse.cdt.autotools.ui/about.properties @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2012, 2024 Contributors to the Eclipse Foundation +# Copyright (c) 2012, 2025 Contributors to the Eclipse Foundation # # See the NOTICE file(s) distributed with this work for additional # information regarding copyright ownership. @@ -24,7 +24,7 @@ blurb=C/C++ Autotools support\n\ Version: {featureVersion}\n\ Build id: {0}\n\ \n\ -Copyright (c) 2012, 2024 Contributors to the Eclipse Foundation +Copyright (c) 2012, 2025 Contributors to the Eclipse Foundation \n\ See the NOTICE file(s) distributed with this work for additional\n\ information regarding copyright ownership.\n\ diff --git a/build/org.eclipse.cdt.core.autotools.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.core.autotools.core/META-INF/MANIFEST.MF index 6acadbcd568..e9558add533 100644 --- a/build/org.eclipse.cdt.core.autotools.core/META-INF/MANIFEST.MF +++ b/build/org.eclipse.cdt.core.autotools.core/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.cdt.core.autotools.core;singleton:=true -Bundle-Version: 1.3.200.qualifier +Bundle-Version: 1.3.300.qualifier Bundle-Activator: org.eclipse.cdt.core.autotools.core.internal.Activator Require-Bundle: org.eclipse.core.runtime, org.eclipse.tools.templates.core;bundle-version="2.0.0", diff --git a/build/org.eclipse.cdt.make.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.make.core/META-INF/MANIFEST.MF index ec674e83701..c5d040ddf62 100644 --- a/build/org.eclipse.cdt.make.core/META-INF/MANIFEST.MF +++ b/build/org.eclipse.cdt.make.core/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.cdt.make.core; singleton:=true -Bundle-Version: 7.6.500.qualifier +Bundle-Version: 7.6.600.qualifier Bundle-Activator: org.eclipse.cdt.make.core.MakeCorePlugin Bundle-Vendor: %providerName Bundle-Localization: plugin diff --git a/build/org.eclipse.cdt.make.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.make.ui/META-INF/MANIFEST.MF index 6a5a517310b..77761083c02 100644 --- a/build/org.eclipse.cdt.make.ui/META-INF/MANIFEST.MF +++ b/build/org.eclipse.cdt.make.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.cdt.make.ui; singleton:=true -Bundle-Version: 8.3.100.qualifier +Bundle-Version: 8.3.200.qualifier Bundle-Activator: org.eclipse.cdt.make.internal.ui.MakeUIPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties index 4883c0cf501..7a12df92941 100644 --- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties +++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.properties @@ -13,6 +13,7 @@ # IBM Corporation # John Dallaway - add library grouping option (#608) # John Dallaway - extend optimization options (#828) +# John Dallaway - extend language standard options (#944) ############################################################################### # plugin names @@ -121,11 +122,15 @@ Option.Posix.Dialect.default= Option.Posix.Dialect.c90=ISO C90 / ANSI C89 (-std=c90) Option.Posix.Dialect.c99=ISO C99 (-std=c99) Option.Posix.Dialect.c11=ISO C11 (-std=c11) +Option.Posix.Dialect.c17=ISO C17 (-std=c17) +Option.Posix.Dialect.c23=ISO C23 (-std=c23) Option.Posix.Dialect.c++98=ISO C++98 (-std=c++98) Option.Posix.Dialect.c++11=ISO C++11 (-std=c++11) Option.Posix.Dialect.c++14=ISO C++14 (-std=c++14) Option.Posix.Dialect.c++17=ISO C++17 (-std=c++17) -Option.Posix.Dialect.c++2a=ISO C++20 (-std=c++2a) +Option.Posix.Dialect.c++2a=ISO C++20 (-std=c++20) +Option.Posix.Dialect.c++23=ISO C++23 (-std=c++23) +Option.Posix.Dialect.c++26=ISO C++26 (-std=c++26) Option.Posix.Dialect.Flags=Other dialect flags Option.Posix.PreprocOnly=Preprocess only (-E) diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml index f952e17d891..f8bcf8c12d8 100644 --- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml +++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/plugin.xml @@ -14,6 +14,7 @@ Contributors: John Dallaway - add assembler debug level option (#727) John Dallaway - extend optimization options (#828) John Dallaway - add archiver other objects option (#653) + John Dallaway - extend language standard options (#944) --> @@ -969,6 +970,14 @@ Contributors: name="%Option.Posix.Dialect.c11" command="-std=c11" id="gnu.c.compiler.dialect.c11" /> + +