1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00
Commit graph

3314 commits

Author SHA1 Message Date
betamax
fc083dad86
The active Launch Target is now saved in the ICBuildConfiguration (#1076)
In addition to the active launch mode and toolchain, the active Launch
Target is now used to determine the Core Build Configuration
(ICBuildConfiguration).

The build output folder name now ends with the name of the Launch Target
(eg: cmake.debug.win32.x86_64.Local)

Additionally, API added to allow the ISV to configure the build output
folder name.

The ICBuildConfigurationProvider implementations, shown below, have been
tidied up to use common code.

  CMakeBuildConfigurationProvider
  AutotoolsBuildConfigurationProvider
  MakefileBuildConfigurationProvider
  MesonBuildConfigurationProvider

Addresses Issue: CDT CMake Improvements #1000, IDE-82683-REQ-016 Launch
Targets used in ICBuildConfiguration
Addresses Issue: CDT CMake Improvements #1000, IDE-82683-REQ-018 Build
output folder name
2025-02-12 12:30:48 -05:00
alicetrifu
b6d64ed76d
Issue #1058: Moved generation of the compile_commands.json (#1075)
Moved compile_commands.json file to performPrebuildGeneration, so the
file to be generated only when Makefiles generation is set to be on.
2025-02-03 10:36:17 -05:00
Jonah Graham
0fcf41aacf
Bump org.eclipse.cdt.core/ui bundle version to 9.0.0 (#1063)
Some of the changes that are about to arrive have specific impacts
of API of core build. Because CBS is largely in org.eclipse.cdt.core/ui
any breaking changes to the CBS API necessitate bumping the entire
bundle to a new version.

One of the most noticeable changes is expected to be that
org.eclipse.cdt.core.build.ICBuildConfigurationProvider.createBuildConfiguration(IProject, IToolChain, String, IProgressMonitor)
needs a new parameter to properly connect the target. The upcoming
PR that makes the API change will document that change in the
CHANGELOG-API.md and N&N documentation.

Part of #1000
2025-01-29 14:21:09 -05:00
Jonah Graham
84d99f277a
Add some documentation and consistency to use of info vs output stream (#1060)
With some better Javadocs the cross referencing between IConsole
and the UI aspects of the console is a little easier to follow.

This resolves #1059 in two parts:

1. For Core Build System this update consistently uses info stream to
show information messages and output stream to be stdout of launched
build tool. This resolves the "Build Complete" appearing as the output
color when doing clean (See screenshots in #1059)

2. CBuildConfiguration.watchProcess(IConsole, IProgressMonitor) incorrectly
passed the info stream as the output stream. Mostly this was used for
the clean stage of builds. This resolves the CMake output like ("Cleaning
all built files...") appearing as the info color when doing clean (See
screenshots in #1059)

Fixes #1059
2025-01-28 18:54:38 -05:00
ewaterlander
9e04dc537b
Fixed CBS Makefile template for profiling. (#1043)
Fixed BUILD_MODE="linuxtools". Changed to "profile".

Added -O0 to BUILD_MODE=debug.
2025-01-20 11:45:27 -05:00
Jonah Graham
64ad743617 Update maven dependencies to latest versions, especially Hamcrest
Fixes #1037
2025-01-16 14:57:42 -05:00
Jonah Graham
2f55372836
Remove New C and New C++ Project Wizard top-level entry points (#993)
Fixes #965
2025-01-07 10:02:19 -05:00
Jonah Graham
39ee2eded4
Update to latest versions of build tools (#986)
Beta versions of maven plugins are omitted from this
upgrade.

A new version of Tycho brings in an update ECJ which means some
of the class files are different, hence the need to bump versions
of bundles too.

A new calendar year brings an update to Copyrights
2025-01-06 20:37:10 -05:00
John Dallaway
95a8c1999c Extend GNU toolchain language standard options for MBS 2024-12-29 16:55:18 +00:00
Jonah Graham
e50f81b95b
Bump version to CDT 12.0.0 (#911) 2024-10-08 12:52:15 -04:00
John Dallaway
c4c11ad964 Detect MSYS2 UCRT64 toolchains for CDT Core Build 2024-08-17 22:42:31 +01:00
alicetrifu
7420b12bb7
Compiler path in compile_commands.json must be absolute (#824)
Added code to create the absolute path of the compiler on compile_commands.json file

Fixes #822
2024-07-31 15:49:34 -04:00
G. Hentschke
597eda2d60
Add enabled to JSON Compilation Database Generator prop page (#847) (#848)
Show the JSON Compilation Database Generator properties page only for
managed build projects.

fixes #847
2024-06-28 18:59:39 -04:00
John Dallaway
6c2eb27ff7 Add GNU archiver other objects option to MBS 2024-06-21 17:48:49 +01:00
John Dallaway
ba16b7008d XML self-closing element consistency clean up only 2024-06-19 08:23:11 +01:00
John Dallaway
736862e805 Extend GNU toolchain optimization options for MBS
Add -Og and -Oz to the option enumerations for both C and C++ compilers.
2024-06-18 20:04:55 +01:00
Jonah Graham
7fcfbb0f96
Prepare repo for 11.7.0 development (#813) 2024-06-05 13:19:53 -04:00
ewaterlander
d8328fb061
Remove 'Experimental' label from Core Build Makefile projects. (#805)
Removed the 'Experimental' label in project creation wizard for Core
Build Makefile projects. Seven years after the inception it's time to
remove it. Core Build Makefile is now in a usable state. The
'Experimental' label scares users away from it, making them fall back
to the old Managed Build Makefile projects.
2024-05-30 09:25:37 -04:00
John Dallaway
4db7bb9971 Restore correct filterPattern expressions 2024-05-28 20:25:15 +01:00
John Dallaway
563a2ad7b5 XML whitespace clean up only 2024-05-28 14:36:43 +01:00
alicetrifu
5ca51073c9
Added feature to generate compile_commands.json file (#692)
Includes:

- Created a new extension point to provide the opportunity to
incorporate additional information into the file
- New tests for the generator
- Preference page to enable/disable generator

Fixes https://github.com/eclipse-cdt/cdt/issues/689
2024-05-16 12:06:18 -04:00
John Dallaway
8222dbeee7 Add GNU assembler debug level option to MBS 2024-03-08 21:17:41 +00:00
Jonah Graham
221d346f6d
Prep repo for 11.6.0 (#729) 2024-03-07 14:17:45 -05:00
Jonah Graham
207bddab5a
Build with Tycho 4.0.6 (#715)
Includes bundle version bumps for new version of ECJ and
target platform update.

Co-authored-by: Александър Куртаков <akurtakov@gmail.com>
2024-02-22 21:38:57 -05:00
Jonah Graham
bfa8700634
Remove unreferenced properties key (#702) 2024-02-08 15:56:25 -05:00
Jonah Graham
64433f4d19
Remove DiscoveredPathContainerPage (#701)
The class DiscoveredPathContainerPage used a number of APIs in
the Eclipse Platform
[removed](https://github.com/eclipse-platform/eclipse.platform.ui/pull/1563) in
[Eclipse 4.31 release](81e406456f/eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/porting/removals.html (L595)).
This class, while API, has not be used, nor usable since the CDT 4
release as it was only for CDT 3.x style projects.
The class had been deprecated since 2010.

To mitigate against the possibility that someone may have a dependency
on this old class the minor version has been bumped so that version
range can have `,8.3)` as their upper version.

Fixes https://github.com/eclipse-cdt/cdt/issues/700
2024-02-08 15:06:12 -05:00
John Dallaway
dd543580a5 Enhance legacy GNU assembler flag detection 2024-01-27 16:03:45 +00:00
John Dallaway
233c6d8696 Invoke "gcc" to build assembler files
Enables pre-processing of *.S and *.sx source files.
2024-01-24 20:25:19 +00:00
Michael Keppler
d4102ca82f
Clean up Maven build (#662)
* remove invalid tycho resolver config (not valid since many versions)
* fix PMD plugin configuration (config attribute was renamed in 3.18)
* remove duplicate versions already managed in pluginManagement section
* fix indentation
* move all not yet configured versions into pluginManagement of the
parent module to avoid further duplication
* consume the target platform as file, not as maven artifact (this
simplifies building a single module A LOT)
* remove invalid tycho-source-plugin configuration
* disable tycho consumer POM generation (not needed here, and avoids a
warning in each module)
* remove prerequisites. that's for maven plugins only, and this POM
already contains the better suited similar maven enforcer rule
* enforce UTF-8 for javadoc generation (the build fails on Windows
otherwise, trying to read some Japanese? characters with the Windows
default encoding)
2023-12-28 14:35:58 -05:00
John Dallaway
9aa6fb158d Use build CWD for object path processing within GNU archive files 2023-12-12 20:30:10 +00:00
Jonah Graham
f7a63377a6
Prepare repo for 11.5.0 (#633) 2023-12-06 18:48:15 -05:00
John Dallaway
f39707a293 Add GNU C++ linker library grouping option to MBS 2023-11-12 17:05:19 +00:00
John Dallaway
e31815210e Add GNU linker library grouping option to MBS 2023-11-10 13:07:33 +00:00
Alexander Fedorov
b0317c09ed Revert "[#592] Managed Build Definitions : prefer "identifier" type of attribute"
This reverts commit 7136606455.
2023-10-11 21:58:54 +03:00
Alexander Fedorov
7136606455 [#592] Managed Build Definitions : prefer "identifier" type of attribute
Add meta information for id-like attributes

Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2023-10-11 20:32:15 +03:00
William Riley
5250f5a07b
Replace org.freemarker with org.freemarker.freemarker (#547)
Also remove re-exports & add package imports

Fixes #546
2023-09-19 14:02:39 -04:00
John Dallaway
8062151c30 Add AbstractGnuToolPrefixMacro copyright notice 2023-09-15 18:59:10 +01:00
Jonah Graham
a92b90a4c8 Bump all bundles that are missing BREE in 11.3.0
Part of #551
2023-09-15 07:24:17 -04:00
Jonah Graham
3bcba2303d Prepare repo for CDT 11.4.0 development
Part of #548
2023-09-14 19:47:15 -04:00
Jonah Graham
c7169b3186 Refactor XML file handling 2023-08-16 11:06:59 -04:00
Jonah Graham
e725b88951 Fix test cases that recently regressed
Recently new extensions were added to CDT for C++ modules in #422
At the time some test failures were not noticed. This change patches
those failing tests.

Fixes #454
2023-08-09 21:37:19 -04:00
Jonah Graham
154d66f815 Add unique display name for some test plug-ins 2023-08-08 15:47:35 -04:00
Jonah Graham
9448058a76
Resolve cast exception - fixup for inferring generic types (#490)
Long ago in 334702ee05 generic types
were added. However in at least one place a previous assumption
that existed was broken. That assumption was the true
type of ResourceInfo.getTools() would be Tool[] as opposed to ITool[].
That commit broke it for ResourceConfiguration.getTools()

Internally in CDT ITool is in practice always Tool, and as a result
there are lots of downcast from ITool -> Tool. However ITool[] cannot
be downcast to Tool[] unless the original type was Tool[].

Instead we use Arrays.copyOf to copy the array into the correct
array type.

Steps to reproduce the problem now fixed:

1. Create a Managed Build executable project.
2. Open the properties window of the source file (as opposed to project)
3. At the Properties page, navigate to "C/C++ Build/Tool Chain Editor".
4. Click the "Apply" button.
2023-08-03 17:12:26 -04:00
Jonah Graham
ac84c4ec86 Prepare repo for CDT 11.3.0 development
Some bundles are bumped because dev happened between 11.2 release and
this version bump. The most significant change that happened
was the bump in Tycho version which changed ECJ version and
hence some class files changed

Part of #420
2023-07-10 21:41:39 -04:00
Jonah Graham
460c0021aa Move all dependencies to maven direct where possible
Includes:

- Sign all artifacts, particularly 3rd party with CDT's PGP key
- Using maven version managed and updated by EF Webmasters
- Update to latest SnakeYAML
- Move some 3rd party dependencies to Import-Package (instead of
  Require-Bundle)
2023-07-10 20:47:10 -04:00
15knots
09728af3db
recognize source file extensions ".ccm", ".cxxm", and ".c++m" (#422)
* recognize source file extensions ".ccm", ".cxxm", and ".c++m"

cmake 3.27 release notes: The "CXX" language now treats source file
extensions ".ccm", ".cxxm", and ".c++m" as C++.

Signed-off-by: 15knots <11367029+15knots@users.noreply.github.com>
2023-06-16 20:56:51 +02:00
Erwin Waterlander
9dcaf509fa Cleanup GCCToolChain
Fixed some possible null pointer uses, detected by a statical code
analysis tool.
2023-06-06 14:10:16 -04:00
Umair Sair
08693047c5 Headless importAll fails with error
importAll fails with error 'Project: .org.eclipse.egit.core.cmp already
exists in the workspace!' and no further projects are imported.

The fix is to not go into special directories .metadata and
.org.eclipse.egit.core.cmp. Moreover, importAll and removeAll do not
fail immediately if operation on a project fails,
instead it keeps on performing operation on all projects and at the end, headless
builder returns with error code if operation of any project failed
2023-05-03 11:35:38 -04:00
Erwin Waterlander
f40f957c6c Improved GCCToolChain.stripCommand()
GCCToolChain.stripCommand() assumed that all resources are at the end
of the command, like in the old version of
GCCToolChain.getResourcesFromCommand() which was fixed in PR #311 (see
commit a89ce59df2). Now stripCommand() is in line with
getResourcesFromCommand().
2023-04-21 13:30:22 -04:00
John Dallaway
82a235fbb9 Improve encapsulation within AbstractGnuToolPrefixMacro
Part of #361
2023-04-19 18:45:01 +01:00