1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-01 05:15:43 +02:00
Commit graph

1090 commits

Author SHA1 Message Date
Jonah Graham
f14ee6a61d Bug 314428: speedup build console - better handle duplicate markers
This changes the algorithm used to handle duplicate markers when build
is running.

Change-Id: I8d8b61edd80ae4da4c0e0eea3806b0efecb570e0
2017-05-12 11:50:08 -04:00
cartu38 opendev
a27309d507 Bug 514385: defaultValue-generation for a build-option
Change-Id: I15550a75206baf906285d3fc7becb491cac13ffa
Signed-off-by: cartu38 opendev <cartu38.opendev@gmail.com>
2017-04-18 09:06:51 +01:00
Jeff Johnston
795a90288b Bug 497670 - Support compiler provided "fix-it" hints
- add new FixitErrorParser that extends RegexErrorParser and is
  used to replace the error parser for GNUCErrorParser
- add new FixManager class to bind a fixit message with its
  problem marker
- modify ProblemMarkerFilterManager to register the last
  accepted ProblemMarkerInfo for a particular resource so
  the FixitErrorParser can find the last error marker for
  the file that precedes the fixit message
- FixitErrorParser looks for fix-it messages and binds them
  via FixitManager to the last error marker for the file
- add new Fixit class to contain the details of a gcc fix-it
- add new QuickFixForFixit which applies the gcc fix-it for the
  file
- add new (.*) regex in codan.ui.checkers patterns that will
  trigger before any other error and will look for the
  fix-it message format
- change cdt.core to expose cdt.internal.errorparsers to
  codan.checkers.ui
- change codan.core to expose codan.internal.core.model to
  codan.checkers.ui
- fix CDocumentProvider.setOverlay method to not overlay
  a CMarkerAnnotation that has a quick fix
- when deleting all C problem markers, also make a call
  to FixManager.deleteAllMarkers() so markers aren't
  left referenced

Change-Id: Ibf8ff7d8addb1bf092dc4ef35de0d92de0309589
2017-04-17 20:01:27 -04:00
Alexander Kurtakov
5bec70f68f Remove unneeded casts.
Change-Id: Ie506aa209db9be9c56ed8d80c0c97634c6f0cecf
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2017-03-23 04:35:03 -04:00
John Dallaway
57332b1d1d Bug 513763 - Save workspace following headless build
Change-Id: I657f8bf8155dd669921caef951d16e23601f01ad
Signed-off-by: John Dallaway <john@dallaway.org.uk>
2017-03-18 17:01:27 -04:00
Marc-Andre Laperle
00b30bb03a Bug 512096 - Fix NPE selecting an LLVM toolchain in toolchain editor
When a toolchain is selected along with its builder, the builder gets
matched to a “real builder” (ManagedBuildManager.getRealBuilder). If the
builder is abstract, the builder is not in the possible list of matches,
as implemented in Builder.getMatchKey. This causes
getCurrentBuilderCompatibilityInfo to return null which is not handled.

This patch changes the base LLVM builder to a non-abstract one, which
solves this specific NPE.
Also, in order to be more helpful to the user in case it happens to
another toolchain, a null check was added with an error message that the
builder is incompatible. Then at least, it is more clear that something
is wrong and the user can pick a different builder. 

Change-Id: I4d26c568dfe6307b496719c10908a36933fd3ab8
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
2017-02-19 21:51:36 -05:00
Marc-Andre Laperle
0046099052 releng: Make use of Tycho POM-less functionality
This removes a lot of pom.xml from the source tree. This is using the
"POM-less" Tycho functionality.
See
https://wiki.eclipse.org/Tycho/Release_Notes/0.24#POM-less_Tycho_builds

One advantage of this is that you do not need to update the version in
the pom.xml when you change it in the MANIFEST.MF because the pom.xml is
automatically generated. This also reduces a lot of the duplicated
information and pom.xml repetition.

- Maven 3.3 and up is required.
- Only eclipse-plugins and eclipse-features can be pom-less.
Repositories, target and others still have pom.xml.
- New parent poms are added because a parent is necessary directly one
level above the plug-in/feature that will have its pom generated
- Some test plug-ins had to be renamed .test -> .tests because it's
required so that it detects that it's a test plug-in
- Some suites were renamed so that they all use the same consistent name
"AutomatedIntegrationSuite"
- Profiles were added for the more common test configurations. They are
activated by the presence of simple .properties files that only serve to
activate the correct profile. The profiles:
  - One for UI tests (UI present and start in UI thread)
  - One for SWTBot tests (UI present and do not start in UI thread)
Other test plug-ins that are too different are kept intact and still
have
a pom.xml
- Fragments are kept intact since they all have different target
platform configurations

Change-Id: I9d73380eb766f547830c552daf08053a30b1845c
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
2017-02-13 23:19:56 -04:00
Morten Kristiansen
10428dd53a [Bug 340300] Fix parallel make when using pre-build steps
Pre-build will always run in parallel to compilation of source files
unless each and every source file depends on pre-build. Also, when
parallel build was enabled, the "Make build target" under "Workbench
Build Behavior" was ignored. Instead of doing make -j all, Eclipse ran
make -j pre-build main-build. While the intentions are good, make will
attempt to build pre-build and main-build in parallel for previous
stated reasons.

This patch changes two things:

1. Eclipse will consistently respect the "Workbench Build Behavior" for
both single- and multi-process build.
2. The generated makefile is changed to guarantee pre-build is run
first.

   Changed from

       all: pre-build main-build

   to

       all:
           $(MAKE) --no-print-directory pre-build
           $(MAKE) --no-print-directory main-build

Change-Id: Icf3a1057ee3b3cc8a04a433820492a4f469e17dd
Signed-off-by: Morten Kristiansen <millibit@gmail.com>
2017-01-03 08:26:18 -04:00
Marc Khouzam
8cf5ed53f2 Update version to 9.3.0
Change-Id: Ic953ccc5d38ff3661ca44de21ed8c4b7dad5b246
2016-11-15 20:32:51 -05:00
Marc Khouzam
334777eb6e Update version to 9.2.0
Change-Id: I36ad4218b20b8ea70584c89f5be45c757bf4c714
2016-11-14 23:50:05 -05:00
jantje
5cafc1413a Bug 422378: allow case of getOutputNames() returning null
Allow GnuMakefileGenerator to completely ignore an input file

Change-Id: If4b45db8482b273f4729211d55cfa4f201760b29
Signed-off-by: jantje <eclipse@baeyens.it>
2016-11-08 21:07:28 +00:00
Jonah Graham
4d0a556446 Bug 505868: Split clean command when cleaning lots of files
This change overcomes the Cannot run program "rm": Command line
too long error when there are hundreds to thousands of files.

This change only applies to the interal builder.

Change-Id: Idc32067e27d76e3b438b2b1a07376859c7c8d1e4
2016-10-14 09:56:25 -04:00
Jonah Graham
33d12e75c9 Cosmetics
Change-Id: I584622013f810d8ac51dcb618074663a79cd5b19
2016-10-13 15:00:03 -04:00
Marc Khouzam
cd559dafaf Update version to 9.1.0
This commit used the script releng/scripts/ChangeFeaturesVersion.sh

Change-Id: I8274a6e8dd5c0f1e450f07952e138b265a441a62
2016-08-17 10:11:57 -04:00
Marc Khouzam
f38cbb85c3 Remove old .cvsignore files
Change-Id: Ia66de47055a15d94c0aa45d1198f0a9e78d82ad0
2016-06-30 09:58:00 -04:00
Marc Khouzam
9e1e981b4d Move the rest of the CDT plugins to java 8
This change was generated using the script:
releng/scripts/ChangeJavaVersion.sh

Change-Id: I2ad96dc682a5acb8529c3edec40de279c331b5a4
2016-06-22 14:51:43 -04:00
Jeff Johnston
9fd79b0596 Bug 491619 - Choosing a C++ dialect should reindex
- changed gcc builtin settings providers to prefer non-shared
- added isIndexerAffected method override to ToolSettingsTab which
  looks at new isIndexerAffected boolean
- add logic to ToolSettingsTab setOptions() method to look for
  dirty options that return true for isForScannerDiscovery() or
  are special options that affect include path or defines
- add performok method to ToolSettingsTab to look if isIndexerAffected
  when user hits OK without hitting APPLY
- change the message for bringing up the question dialog for end-user
  to choose whether to reindex or not

Change-Id: Icd740caafe638f272b6f1434d5817f2377ffe04a
2016-05-13 09:54:29 -04:00
Alex Blewitt
c73978c03a Bug 492210 - Remove ChangeLog files from project
ChangeLog is an archaic format for identifying what has changed in a
project. Fortunately more powerful version control systems are capable
of generating this information and displaying information such as this
paragraph in order to determine what has changed in a project and when.

Change-Id: Ia71a05fa51869c1adb193d94f71c28b3b36beb37
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-25 22:53:31 +01:00
Alex Blewitt
12904409a3 Bug 492304 - Fix NLS warnings
Eclipse warns if a String literal does not have a `//$NON-NLS-<n>$`
entry at the end of the line. However, for historic or formatting
reasons, many such occurrences in the CDT source have an intermediate
whitespace, such as `// $NON-NLS-<n>$`

Fix these so that the whitespace is removed between the // and $
characters.

Change-Id: Idc12398fe6e9d619af1d0b1b73fb8b6180da223c
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-25 22:53:30 +01:00
Alex Blewitt
6bdca5f4a2 Bug 492230 - Replace buffer.append(a+b) calls
When using a `StringBuilder` or `StringBuffer` to create a string message,
using implicit string concatenation inside an `.append()` call will
create a nested StringBuilder for the purposes of creating the arguments,
which will subsequently be converted to a String and then passed to
the outer StringBuilder.

Skip the creation of the intermediate object and String by simply
replacing such calls with `buffer.append(a).append(b)`.

Where values are compile time String constants, leave as is so
that the javac compiler can perform compile-time String concatenation.
Ensure that NEWLINE isn't appended in such a way since it is not
a compile time constant `System.getProperty("line.separator")`

Change-Id: I4126aefb2272f06b08332e004d7ea76b6f02cdba
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-25 11:38:47 -05:00
Alex Blewitt
ccbab86d6c Bug 492200 - Replace StringBuffer with StringBuilder
There are many opportunities for replacing `StringBuffer` with
`StringBuilder` provided that the type isn't visible from the
public API and is used only in internal methods. Replace these
where appropriate.

Change-Id: I769ceb6eaee18d183fb0e00fa0d730651f8a7edb
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-21 18:49:32 -04:00
Alex Blewitt
b23de2f366 Bug 491984 - Optimise toString().isEmpty() checks
The use of toString().toEmpty() is a potential code smell, and has
identified a couple of places where this pattern could be optimised.

Change-Id: I1a37e62ed8546a48151a494e9f24fea46d9d2497
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-20 17:58:12 -04:00
Alex Blewitt
2114f6b108 Bug 491984 - Replace .equals("") with .isEmpty()
In many cases a String's empty status is tested with `.equals("")`.
However, Java 1.6 added `.isEmpty()` which can be more efficient since
it compares the internal length parameter only for testing. Replace
code using the `.isEmpty()` variant instead.

Some tests for `"".equals(expr)` can be replaced with `expr.isEmpty()`
where it is already known that the `expr` is not null; however,
these have to be reviewed on a case-by-case basis.

Change-Id: I3c6af4d8b7638e757435914ac76cb3a67899a5fd
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-19 13:35:54 -04:00
Alex Blewitt
4ad7f81c23 Bug 491945 - Refactor ToolReference::getToolCommand()
The implementation of `ToolReference::getToolCommand()` different from its
neighbours by checking if the `parent` was non-null. Change this so it looks for
the `parent` being null and swap the bodies of the `if` statement around to
maintain compatibility.

Change-Id: I8a188b350f94db9b1bd9d240b7a7320a930280a2
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-18 23:45:20 +01:00
Alex Blewitt
470de4e66b Bug 491945 - Remove new String() from expressions
Replace all occurrences of `new String(expr)` with `expr` provided that the
`expr` is not a byte array or a char array.

Change-Id: Iecae801b83084908b60b9e146eba87550eac640d
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-18 23:34:01 +01:00
Alex Blewitt
ca4e5b10ee Bug 491945 - Remove new String() literals
Occurrences of `new String("...")` have been replaced with a direct reference
to the literal it was wrapping.

Change-Id: Iefb49a009f210db59e5724e0a232dba2e13292b1
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-18 23:30:05 +01:00
Alex Blewitt
809598db9d Bug 491945 - Remove new String()
Occurrences of `new String()` have been replaced with the equivalent `""` and
additional NON-NLS tags have been inserted in where appropriate.

Change-Id: I54cf71dcd0d5a92a675a71166d66949533de502b
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-18 23:15:05 +01:00
Alex Blewitt
fc07efa909 Bug 491825 - Remove primitive wrapper creation
Using `new Integer` and other wrapper types such as `new Character` results in
potential extra heap utilisation as the values are not cached. The built-in
`Integer.valueOf` will perform caching on numbers in the range -128..127 (at
least) using a flyweight pattern. In addition, parsing `int` values can be done
with `Integer.parseInt` which avoids object construction.

Adjust tests such as `"true".equals(expr)` to `Boolean.parseBoolean(expr)`.

Change-Id: I0408a5c69afc4ca6ede71acaf6cc4abd67538006
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-16 12:17:48 -04:00
Sergey Prigogin
b91b69775f Bug 491825 - Remove uses of new Boolean and friends
Change-Id: Ie358c8385c278472f3b86851f6fc219007bb9b5c
2016-04-15 15:20:15 -04:00
Doug Schaefer
c29243b187 Revert "Bug 489563 - API change for Language Settings Providers."
This reverts the changes we've made for language settings providers
so that I can start again with a cleaner approach.

Change-Id: Icddd5a465a8f217594af5b07011a56bf1dfdf014
2016-03-22 10:32:31 -04:00
Doug Schaefer
5a5de4b1db Bug 489563 - API change for Language Settings Providers.
Use IBuildConfiguration instead of ICConfigurationDescription.
Add adapters to convert back and forth between these. Create
IBuildConfiguration objects when configuration descriptors are
created.

Clean up formating of the code involved.

Change-Id: Iec5ca132dddbf990f116f96b4680ef5f7318e28b
2016-03-20 23:10:46 -04:00
Alvaro Sanchez-Leon
e3a5acb761 minor fix, replace == for .equals
Change-Id: I26f949b64d1d5da0f410c76379d51f7edfcf9474
2016-03-18 11:44:52 -04:00
Sergey Prigogin
728fd554e4 Incremented version of org.eclipse.cdt.core to 6.0.
Change-Id: I059e7eba9eff7f24c84e08a1cbf658381aaaf19d
2016-02-17 10:28:26 -08:00
Marc Khouzam
2ad68f7f80 Update copyright dates
Change-Id: I94ac38c37657e270f62db9bbd2859c2c6de40e5f
2016-02-11 01:50:14 -05:00
Guy Bonneau
8cfa1448ac Bug 461545 Add support of attribute isDisplayable to the Build Property
of a tool and implement the new interface method.

Change-Id: Iee645519c1bf9fbe144021bc81bd6cf7434c3e4b
Signed-off-by: Guy Bonneau <guy.bonneau@videotron.ca>
2016-02-01 09:51:05 -05:00
Alena Laskavaia
f57e0c8acf added description control on Build Variables page
Change-Id: Ib2f6b30bedb88e6ab2c886306171a5668ac1a415
2016-01-27 20:13:05 -05:00
Marc Khouzam
b745736775 Incremented CDT features version to 9.0.0
This includes bumping the standalone debugger to 9.0.0

Change-Id: I55fae1cec995b5f6865a5b174c004ed1b76e9bea
2016-01-18 16:37:47 -05:00
Marc-Andre Laperle
e6a4fe47b3 Bug 463723 - GCC output parser cannot parse macro with a combination of
quotes and escapes

Change-Id: I7b07d3e2cc706f5e7839189bd2968f69c5cad28c
2016-01-04 11:45:31 -05:00
Marc Khouzam
f3ff649041 Fix copyright of all CDT plugins using the copyright tool from platform.
This commit does not add missing copyrights, just updates the date on
the existing ones.

Change-Id: I646f5afd533a1fcc539bdf2e0686b22f406ecf65
2016-01-03 20:38:31 -05:00
John Dallaway
e62e2772fe Bug 366039: Internal Builder reduced build step input resource count
Change-Id: I7c7c8ba5d1bf7b96bbef66449ea6470f3c266f98
Signed-off-by: John Dallaway <john@dallaway.org.uk>
2015-12-14 10:30:43 -05:00
Marc-Andre Laperle
5656acd253 Bug 481971 - Detect cc compiler in the build output parser
Change-Id: If667583eb3f720aa9ad7907af4673da8437d15d7
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
2015-11-26 09:01:33 -05:00
Marc-Andre Laperle
e18311d2a2 Add missing buildModel tracing option
managedbuilder.core was already calling getDebugOption with this key
but it was not exposed in the launch configutation.

Change-Id: Ib9e983ea9240bf6d911b2e2b94fc5929d91bcea1
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
2015-10-22 15:24:47 -04:00
Alexander Kurtakov
9f03bd1ee2 Use *Scope INSTANCE fields.
Recommended way is to use e.g. InstanceScope.INSTANCE instead of new
InstanceScope() which is deprecated now.

Change-Id: I9fa8e53e180a480805bd0a57903e65b5c2de5f75
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2015-10-22 01:54:54 -04:00
Marc Khouzam
0cfb15135f Remove reference to java environment in build.properties
Change-Id: I053158a23d2783879248320a84a9549e28cfb4d1
2015-09-29 08:57:47 -04:00
Andrew Gvozdev
f635f6c7d8 Bug 470538 - Build selected File(s) should create error/warning marker
Change-Id: I0f37e3733299ab0e0db262a0194c9734b39eea94
Signed-off-by: Andrew Gvozdev <angvoz.dev@gmail.com>
2015-08-14 07:42:26 -04:00
ocagdas
6ab4145c56 Bug 468417
The '.d' files that are generated by CDT, contain 'file_name.d:
file_name.cpp file_name.h' type of target prerequisite relations. 

However, to get benefit of the dependency mechanism, this should be
something like 'file_name.o: file_name.cpp file_name.h'.

Therefore, we need to change ''options[3] = "-MT\"$(@:%.o=%.d)\"";'' as
'options[3] = "-MT\"$(@)\"";'

Also update the test cases.

Change-Id: Iee829a8564e1b134905ee06a8a4b76a1e3b30ecc
Signed-off-by: ocagdas <ocagdas@yahoo.com>
2015-06-24 21:54:00 -04:00
Marc Khouzam
bb61124897 Incremented CDT feature version to 8.8.0
Change-Id: Ib1189a08a5f0225fd676b682dc8a10477ad3acc5
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
2015-06-10 09:33:49 -04:00
Guy
07c9f4fbc3 Bug 421884 - Fixed invalid checking condition. Must be == rather than !=
Change-Id: Ib6321a4b5625fd3fbcb0b23d2174d008f967710d
Signed-off-by: Guy <guy.bonneau@videotron.ca>
2015-05-15 15:57:32 -04:00
Marc Khouzam
e820f872ad Incremented CDT feature version to 8.7.0
Change-Id: Ife0feaaa9263d2b7797e31d628250bd26caff1b5
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
2015-05-04 21:07:13 -04:00
Guy Bonneau
f3781679fa Bug 461628 Some tools within a toolchain can potentially generate an
output resource with the same name even if the input resource name to
the tool is not the same. This fix is to provide this capability to CDT


Change-Id: I9ad9d2ff0cc39797718f8b689c7a828e81f49648
Signed-off-by: Guy Bonneau <guy.bonneau@videotron.ca>

Bug 461628 Some tools within a toolchain can potentially generate an
output resource with the same name even if the input resource name to
the tool is not the same. This fix is to provide this capability to CDT"

Change-Id: I9ad9d2ff0cc39797718f8b689c7a828e81f49648
Signed-off-by: Guy Bonneau <guy.bonneau@videotron.ca>
2015-03-30 19:55:55 -04:00