1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-01 14:15:23 +02:00
Commit graph

36488 commits

Author SHA1 Message Date
John Dallaway
cf74c35e5b Detect Homebrew installations on macOS hosts
We provide immediate access to tools installed using the Homebrew
package manager as for the MSYS2 package manager.
2025-07-01 09:06:33 +01:00
John Dallaway
e112fc24b9 Accommodate Mach-O LC_RPATH load command 2025-06-30 17:25:59 +01:00
ewaterlander
591e99e68b
Build not configured correctly (#1201)
Under some circumstances it can happen that a BuildConfiguration is
registered in the CBuildConfigurationManger as both a valid and
invalid ICBuildConfiguration counterpart. This results in a "Build not
configured correctly" error when trying to build a CoreBuild project.
This change removes valid build configurations from the invalid list
before looking for the counterpart.

Fixes #1193
2025-06-26 11:44:26 +01:00
Raghunandana
74fb09c6e1
Viewer limit setup for "Executables" view. (#1216)
"Executables" view makes eclipse unresponsive if it has thousands of
entries. We can limit the number of items shown by applying viewer
limit.

see https://github.com/eclipse-cdt/cdt/issues/1215
2025-06-24 10:34:53 -04:00
Christoph Läubrich
7c1fdec49a
Only import org.eclipse.tm.terminal.connector.telnet+ssh (#1214) 2025-06-23 16:42:42 -04:00
Alexander Fedorov
79c123c269 [#1215] CDT "Executables" view block IDE operations
Version bump(s) for 12.2 stream
2025-06-23 19:27:59 +03:00
Tue Ton
f7d137102b
Add Terminal's native fragment for Linux riscv64 (#1210)
- add a new fragment 'org.eclipse.cdt.core.linux.riscv64' containing
compiled riscv64 natives suitable for the Linux riscv64
platform.

- add the 'libserial.so' binary compiled for
Linux riscv64, for the serial communication interface.

- add the linux/gtk/riscv64 environment triplet to various Maven
build scripts to support building CDT software for that environment.

Fixes #980
2025-06-20 14:41:55 -04:00
Christoph Läubrich
0bbe001574
Only import org.eclipse.tm.terminal.connector.local (#1213) 2025-06-19 07:52:48 -04:00
Christoph Läubrich
9083effab3
Do not require org.eclipse.tm.terminal.connector.process (#1212)
It is already mentioned in the requirement section and therefore
duplicated requirement. Also org.eclipse.tm.terminal.connector.local has
a require-bundle so it will be included anyways.
2025-06-18 13:24:27 -04:00
Jonah Graham
4e11f533ca
Update simrel-site to release 2025-06 version (#1211) 2025-06-18 12:14:27 -04:00
Christoph Läubrich
b961a0532c
Do not require org.eclipse.tm.terminal.view.ui (#1209)
Similar to the one before, the feature should no longer require
org.eclipse.tm.terminal.view.ui but import it.
2025-06-18 11:58:53 -04:00
Jonah Graham
a1cd8a948f
Remove workaround for egit not providing path information for show in terminal (#1208)
To fix https://bugs.eclipse.org/bugs/show_bug.cgi?id=460277 many years
ago some workarounds were added to the terminal to allow adapting
git inputs to locations to open a terminal with.

Since that workaround was added it is no longer necessary because egit
now adapts objects and provides selections in a way that means we don't
need it anymore. In particular 316d0971ad
adapts inputs to Files that we know how to open with.

Fixes https://github.com/eclipse-cdt/cdt/issues/1202
2025-06-17 14:07:47 -04:00
John Dallaway
f591672014 Extend Mach-O load command support
We skip load commands that are not processed by the symbol loader and
log commands that are not recognized.
2025-06-17 05:37:15 +01:00
Christoph Läubrich
e2e1d207c3
Do not require org.eclipse.tm.terminal.view.core in the feature (#1203)
The plugin org.eclipse.tm.terminal.view.core is moved to platform and
should therefore be handled like any other third party dependency. It
actually is already part of the feature imports and the
org.eclipse.tm.terminal.view.ui require bundle it, so mentioning that
one is actually redundant and fixes it to that particular version
otherwhise.
2025-06-16 14:52:10 -04:00
John Dallaway
fec29d7713 Implement LLDB memory service
We use CLI to read address size, replacing MI expression evaluation
which is not supported by LLDB-MI outside the context of a running
process.

We accommodate the LLDB response format when reading addressable size.

We assume little-endian since CLI 'show endian' is not supported.
2025-06-14 08:37:28 +01:00
John Dallaway
931051edfe [releng] Use platform 4.36 release build 2025-06-12 20:56:45 +01:00
Jonah Graham
e36f17fc8a CDT 12.1 New&Noteworthy 2025-06-12 10:18:46 -04:00
Jonah Graham
a7adea84b9 Add composites for CDT 12.1 and CDT LSP 3.2 2025-06-12 09:56:16 -04:00
Jonah Graham
91e25ac721 Automatically set description of build to parameters of build 2025-06-12 09:48:55 -04:00
John Dallaway
7479f4ddcf Report LLDB version and clean up LLDB-MI launch sequence
We use CLI 'version' to replace the MI '-gdb-version' command.
2025-06-11 18:05:57 +01:00
John Dallaway
1035ef2bcc Also use clang executable to identify LLVM tools installation 2025-06-09 21:15:45 +01:00
Raghunandana
5b76b3e24f
Workbench viewer limit is setup for 'C/C++ Projects' view. (#1181)
C/C++ Projects view makes eclipse unresponsive if it has more than 70k
files in a directory inside a cpp project. So we can set up viewr limit
for the JFace viewer.

see https://github.com/eclipse-cdt/cdt/issues/1180
2025-06-09 16:07:24 -04:00
Jonah Graham
2ba5b3d68a
[releng] Prepare repo for 12.2 development (#1185) 2025-06-09 15:31:36 -04:00
Jonah Graham
b4d81a130e Document indexer shows errors on a project that previously worked
This documents the workaround that worked in https://github.com/eclipse-cdt/cdt/issues/1174
2025-05-30 12:48:22 -04:00
Jonah Graham
abe4d1b8e1
Adapt compare control to CompareConfiguration (#1173)
This is to accomodate a bug fix done in Eclipse Platform in
https://github.com/eclipse-platform/eclipse.platform.ui/pull/2629

Fixes https://github.com/eclipse-cdt/cdt/issues/1172
2025-05-28 18:54:00 -04:00
Jonah Graham
2d313f69b8
Make sure remove.doc.isv appears on help.eclipse.org (#1171)
Remove unneeded dependencies in the help bundle because the
infocenter on help.eclipse.org only includes help bundles.

These removed dependencies were actually unused.

Fixes https://github.com/eclipse-cdt/cdt/issues/1170
2025-05-28 12:55:38 -04:00
John Moule
2c82545ba0
Improve CMake Build Settings labels - fixes #1120 (#1163)
The "Build all target" label was renamed to "Build target" to better
reflect what the control does.

Also added tooltips to the tab's controls.
2025-05-22 11:47:06 -04:00
Jonah Graham
9b6fded373 Explicitly use Platform's M3 I-build
Since M3 was published, platform had upped version
of org.eclipse.core.runtime.

See https://github.com/eclipse-cdt/cdt/pull/1165#issuecomment-2892408192
2025-05-19 20:54:39 -04:00
Jonah Graham
60b71ecba7 Migrate tm.terminal.control to eclipse platform
The new location of this bundle's source is
https://github.com/eclipse-platform/eclipse.platform/tree/master/terminal/plugins/org.eclipse.tm.terminal.control

It was mirgated to platform in:
https://github.com/eclipse-platform/eclipse.platform/pull/1851 as part
of the work to achieve https://github.com/eclipse-platform/eclipse.platform/pull/1762
2025-05-19 18:12:53 -04:00
Jonah Graham
8687aec665 [releng] Require target platform bundles as minimum version
Using:

```
mvn org.eclipse.tycho.extras:tycho-version-bump-plugin:4.0.12:update-manifest
```

and then multiple iterations to bump the bundle-version:

```
mvn verify org.eclipse.tycho:tycho-versions-plugin:4.0.12:bump-versions -Dtycho.bump-versions.increment=100 -DskipDoc=true         -DskipTests=true         -P baseline-compare-and-replace -fae -Djgit.dirtyWorkingTree-cdtDefault=warning
```

Make sure bounds of all dependencies match what we built against. This
prevents issues such as Bug 536448 from recurring. In 2025-06 there
are a number of Eclipse Platform changes that make CDT susceptible
to these types of issues again.

Note that this change is similar to previous iterations, such
as 1087dc5f22, but with the automatation
we can now apply this to *all* bundles.

In addition, with the tighter version constraints, building from
simrel repo for the jniheader (releng/scripts/do_rebuild_natives.sh)
is no longer sufficient. This speedup has been removed as it was probably
incorrect to have by default.

The api filters were introduced because some bundles are re-exported. Those
re-exported bundle requirements mean that technically we need to bump
the version, but in reality we effectively required the range as now
documented anyway, so doing a major version bump is unneeded.
2025-05-19 14:28:08 -04:00
Jonah Graham
7fa83d2902 Use latest Eclipse Platform and all dependencies for CDT 12.1
Includes removal of references to Platform internals that have been
changed.

Note the removal of setHoverImageDescriptor matches the change
made to platform in
be4a4aab48 (diff-6b07181bf8beb80046741858e13f5721f608136e00ce17749b5fa6d550cece9b)
2025-05-19 14:28:08 -04:00
Christoph Läubrich
4a499fbf1e
Only import the terminal.control (#1158)
The terminal control is migrated to the Eclipse platform, as those it
should be handled like a thrid-party dependency an not directly included
with an exact version in the feature.

This now changes it to a requirement with a lower bound of 5.5 excluding
the next major version. That way CDT and other consumers can gracefully
upgrade to the new platform variant.
2025-05-14 11:20:28 -04:00
Jonah Graham
eae23dac2f
Document how I diagnose code cleanliness failures (#1161)
These are the steps I used to diagnose https://github.com/eclipse-cdt/cdt/pull/1159#issuecomment-2858751463
2025-05-08 09:12:52 -04:00
John Dallaway
0f47c669c1 Improve MinGW detection for toolchain availability filtering
Use the same logic to locate a MinGW toolchain when filtering toolchains
for selection in the project wizard as we do during project build.
2025-05-07 20:11:05 +01:00
John Dallaway
6c53fd8bc3 Support DWARF attribute form DW_FORM_strx1 2025-05-07 15:12:59 +01:00
Jonah Graham
4f39107b14
Prepare repo for CDT 12.1.0 (#1107)
Includes building with Tycho 4.0.12
2025-05-06 16:16:40 -04:00
Jonah Graham
7f86b4a76c
Remove use of deprecated constant to allow Platform to delete the constant (#1131)
See https://github.com/eclipse-platform/eclipse.platform/pull/1784#pullrequestreview-2702035505
2025-04-23 14:11:39 -04:00
DangMinhTam382
a104a4f88d
Build Type comboBox false update when switching tab (#1119)
The Build type combo custom value was lost when switching to another tab and back again.
Solution: Add modifyListener for buildTypeCombo and generator combo to keep properties up-to-date when switching tab.

Fixes #1118
2025-04-23 14:07:47 -04:00
Christoph Läubrich
af359a7bba
Add accessor for included pty instance (#1109)
Currently if I get passed a Process from by a method call I can check it
for the Spawner and can already call special methods like hangup(). But
there is no way to get access the the PTY used to create the Spawner so
for example one can't call PTY#setTerminalSize or query any other
properties.

This now adds a new method pty() that returns this instance for further
investigation and actions.
2025-04-23 14:06:32 -04:00
Jonah Graham
04105c2457
Set Include Binary Equivalents to false for new major release of CDT in setup file (#1137)
Fixes #1123
2025-04-09 13:26:29 -04:00
Jonah Graham
b25dc65e33
p2 composites for CDT LSP 3.1 (#1136)
Part of https://github.com/eclipse-cdt/cdt-lsp/issues/480
2025-04-09 12:38:55 -04:00
Jonah Graham
fd56a4ee11 Update p2 latest URLs to CDT 12.0 and CDT LSP 3.0 2025-03-12 15:16:31 +00:00
Jonah Graham
52456bc332 Update list of archived folders 2025-03-07 20:43:59 -05:00
Jonah Graham
fb733b00c3 Composites for CDT 12.0 and CDT LSP 3.0 2025-03-07 12:18:49 -05:00
Jonah Graham
d31e62aa3e Add link to CDT LSP 3.0.0 milestone in N&N 2025-03-07 11:48:50 -05:00
Jonah Graham
d89b930e34 Cleanup N&N for CDT 12 and add some missing entries
As we approach the release now I collapsed all the milestones into
the CDT 12.0.0 one as the milestone releases are not really public
once the release is complete.
2025-03-07 11:39:50 -05:00
betamax
d1287b09d5
Update Release Notes with Core Build improvements (#1100)
Updated "Release Notes and New & Noteworthy page" page with details of
the Core Build improvements as part of #1000
2025-03-07 10:13:51 -05:00
Jonah Graham
f96dd1a385 Replace dead link to Bracketeer
Replace dead link https://marketplace.eclipse.org/content/bracketeer-cc-cdt
with https://marketplace.eclipse.org/content/bracketeer2 .
Fixes issue #948 .

Co-authored-by: Julian L. <111023244+juli-99@users.noreply.github.com>
2025-03-04 11:44:28 -05:00
betamax
e138646434
Ensure full ICBuildConfiguration environment is used during scanning (#1095)
Under certain conditions*, the compiler param in the command field of
the compile_commands.json is a relative path rather than absolute. When
this happens, the built-ins detection was not successful and the
following exception was thrown:

!ENTRY org.eclipse.cdt.core 4 0 2025-02-23 20:32:10.752
!MESSAGE Error: Cannot run program "gcc": Launching failed
!STACK 0
java.io.IOException: Cannot run program "gcc": Launching failed
	at org.eclipse.cdt.utils.spawner.Spawner.exec(Spawner.java:450)
	at org.eclipse.cdt.utils.spawner.Spawner.<init>(Spawner.java:147)
	at org.eclipse.cdt.utils.spawner.Spawner.<init>(Spawner.java:134)
	at org.eclipse.cdt.utils.spawner.ProcessFactory$Builder.start(ProcessFactory.java:273)
	at org.eclipse.cdt.utils.spawner.ProcessFactory.exec(ProcessFactory.java:366)
	at org.eclipse.cdt.core.CommandLauncher.execute(CommandLauncher.java:189)
	at org.eclipse.cdt.jsoncdb.core.internal.builtins.CompilerBuiltinsDetector.detectBuiltins(CompilerBuiltinsDetector.java:111)
	at org.eclipse.cdt.jsoncdb.core.CompileCommandsJsonParser.detectBuiltins(CompileCommandsJsonParser.java:290)
	at org.eclipse.cdt.jsoncdb.core.CompileCommandsJsonParser.processJsonFile(CompileCommandsJsonParser.java:193)
	at org.eclipse.cdt.jsoncdb.core.CompileCommandsJsonParser.parse(CompileCommandsJsonParser.java:455)
	at org.eclipse.cdt.cmake.core.CMakeBuildConfiguration.processCompileCommandsFile(CMakeBuildConfiguration.java:361)
	at org.eclipse.cdt.cmake.core.CMakeBuildConfiguration.build(CMakeBuildConfiguration.java:241)

This meant that source file includes were not indexed and could not be
opened using Open Declaration (F3) and info markers of the following
type appeared in the Problems view:

  gcc -E -P -dM -Wp,-v
"...extCmakegcc\\build\\cmake.run.win32.x86_64.Local\\detect_compiler_builtins.c"
  Cannot run program "gcc": Launching failed

  Error: Program "gcc" not found in PATH
  PATH=[...]
    extCmakegcc		Unknown	Compiler Builtins Detector Problem
  gcc -E -P -dM -Wp,-v
"...extCmakegcc\\build\\cmake.run.win32.x86_64.Local\\detect_compiler_builtins.c"
  Cannot run program "gcc": Launching failed

This patch fixes the environment issue for Core Build projects, by
calling ICBuildConfiguration.setBuildEnvironment(Map<String, String>) as
part of the built-ins detection setup, thereby supporting absolute and
relative compiler paths.

Addresses Issue: CDT CMake Improvements #1000, IDE-82683-REQ-011 Source
code navigation and Built-ins detection

*: CMake produces relative compiler path

When the CMAKE_<LANG>_COMPILER variable (eg CMAKE_C_COMPILER) is set in
the CMakeLists.txt *after* the project() or language commands, it causes
a relative path to be used. For example, in the CMakeLists.txt below,
gcc is set after project() command:

  cmake_minimum_required(VERSION 3.10)
  project (track2)
  set(CMAKE_C_COMPILER gcc)
  add_executable(${PROJECT_NAME} track2.c)

The above script creates a relative compiler path in
compile_commands.json:
  "command": "gcc   -O3 -DNDEBUG -o ...

Normally the CMAKE_C_COMPILER variable should be set before the
project() comannd.

  "command": "C:\\msys64\\mingw64\\bin\\c++.exe -IC...

Co-authored-by: Jonah Graham <jonah@kichwacoders.com>
2025-02-25 21:56:41 -05:00
Jonah Graham
74c4844357
Avoid null value being converted to "null" string in environment (#1096)
If the CDT Variable is APPEND or PREPEND, and the incoming environment
did not contain that variable name, the resulting environment would
have null.

For example, if PATH was not set on the incoming environment, and
PATH was supposed to be prepended with /usr/bin, this method
would have set PATH=/usr/bin:null

This change ensures that the delimeter + null are not prended/appended
when the incoming value is null.
2025-02-25 21:55:40 -05:00