Note that:
- doc/org.eclipse.cdt.doc.isv
- doc/org.eclipse.cdt.doc.user
were updated in commit 149aca51f9 made
this release cycle.
Change-Id: I5b19c7ba14d1c3f837163c109603f9a330e9f138
System.arraycopy is more error prone and subsequent commits will
be modifying the array. This commit is to keep unrelated code
separate.
Change-Id: I2490318176da3e631a63974ffe5fa62da44a96ea
Upgrade the tests to JUnit5 so they can be marked as flaky and slow.
Also removed a bunch of unused code.
This partially reverts commit 8220215a2e.
Reason for revert: These tests were "temporarily" disabled a while ago
as part of the JIRO migration in Bug 545624.
Change-Id: I111cf4d9d9f5e07e49074ca2355a3d1f52fb1070
Added missed license headers
Updated baseline for the parent pom to CDT 10.2
Updated version for pom.xml to 10.3
Updated version for features and bundles to CDT 10.3
Updated copyright for about.properties to be 2021
Incremented version + 100 where needed
Change-Id: I79666fcc0402fee6607499d7dce1eaf87a5f446d
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
When invoking the headless build, the verdict should be the "sum" of
all the build configurations. If one build configuration fails, then
the verdict of the build should also be "failed".
Contributed by STMicroelectronics
Change-Id: Ic3237d3531657f7f89c9338142ebf8fdb477c481
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@st.com>
Moved handling of "-help" to a new plugin using the same approach as
was used for the JavaCodeFormatter in bug 543363. This mainly allows
to get the help text even if the workspace is missing.
Contributed by STMicroelectronics
Change-Id: I4ee2e93f0e8fed13ddebd70c3bce58f047aa1d12
Also-by: Jonah Graham <jonah@kichwacoders.com>
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@st.com>
Allow extenders to extend the ManagedCommandLineGenerator in order to
add options that are placed on the toolchain node instead of the tool.
Contributed by STMicroelectronics
Change-Id: I548bcbf72f1290cd4bc0ce830c27ce032a62c9c9
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@st.com>
A change of build configuration should rebuild the artifact.
With make, this is achieved by depending on the makefile that contains
the rule to build the artifact. If the flags change, so will the
makefile do and the artifact is rebuilt.
Contributed by STMicroelectronics
Change-Id: I56e0376ff9bfa5629b55c1b6c9f94a6f930e0d69
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@st.com>
When there is a linked file in the project, the build target for the
content in the .d file should be the .o file as that is what is
depending on the source file.
Use "$@" rather than "$(@)" as it's the usual syntax for single letter
variables in make.
Contributed by STMicroelectronics
Change-Id: I6b024b2b3a1a8b061740e99de5e96923981c92fa
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@st.com>
The symbols generated are:
* BUILD_ARTIFACT_NAME
Value of "Artifact name" field defined in the build configuration
* BUILD_ARTIFACT_EXTENSION
Value of "Artifact extension" field defined in the build configuration
* BUILD_ARTIFACT_PREFIX
Value of "Output prefix" field defined in the build configuration
* BUILD_ARTIFACT
Assembly of the other values to build the target file name
The above symbols make it easier to extend the generated makefile using
the provided makefile hooks "makefile.init", "makefile.defs" and
"makefile.targets". There is no longer need to duplicate the name of
the target artifact in the hooks files.
The hooks can for example be used when the post-build step is not
flexible enough. By placing the post-build step in makefile.targets,
when done properly, will let the user have full control over the
sequence, including parallelism, for the required steps.
Contributed by STMicroelectronics
Change-Id: I163917837b65cb397eb5943c4357a54e9576cf42
Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@st.com>
to exclude flaky and slow tests from gerrit runs and main build
tests can be tagged as such. See BTreeExpensiveTests for example
of a slow test and Bug_303953Test for an example of a flaky one.
The root README.md has a few notes on converting tests to JUnit5
and adding annotations to mark them slow or flaky.
Change-Id: I03a4004112e6a500d8ec2771d68f14f7dc5f67fb
Add more caches for methods in AbstractLanguageSettingsOutputScanner
that are IO heavy:
- getFilesystemLocation
- determineMappedURI
- resolvePathEntryInFilesystem (File.exists)
These cut down the execution time of command parsing by around 50% on
Windows, more so when considering Java >=12 when
File.getCanonicalPath/File caching is not manually enabled.
See also https://bugs.eclipse.org/bugs/show_bug.cgi?id=565553#c17
and https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8258036
Change-Id: I80828f969547f824d2e45e60b5f4459d03c70bb1
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
This reverts commit 1d226f9273.
Reason for revert: Due to some concerns about use cases and the
desire to resolve those concerns with separate build and args
text boxes this is being reverted for 10.1 until this change
can be done at the same time as https://git.eclipse.org/r/c/cdt/org.eclipse.cdt/+/173118
Change-Id: Iffa37087c00f434d4e684eea19ecacde36004b80
Added a new interface with a method that is called when the value is to
be saved into a resource configuration.
If the function returns false, then the default implementation of
handling property changes will kick in. If the function returns true,
then it's assumed that the value has been handled.
Change-Id: I0523d15ba0a3ec9dbc24c3e4afc070b071d8fb7e
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
Change-Id: I7f682ad313ce275f45e0b4adb4c1280d952cf3ac
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
Also-by: Jonah Graham <jonah@kichwacoders.com>
When possible, precompute the group number in the replacement expression
when parsing option strings, instead of calling replaceAll which is
slower. If the replacement expression is not a simple numbered group,
fall-back to replaceAll.
I have benchmarked this save between 200ms to 2sec depending on the
project size.
Change-Id: Id48fdcf476e2d1739522c9267e214f4c88bf316a
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
Add enforecment script that verifies that only specified file types are
allowed to be mared as executable.
Change-Id: I4b40e3a46b03bfc78a9dcd52e8bf29cb079b7f3b
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
When unchecking the "Use default build command" checkbox, hide the GUI
options to configure the flags as the user should have full control.
This solution was discussed in
https://git.eclipse.org/r/c/cdt/org.eclipse.cdt/+/171735
Change-Id: Ifbd67b279db55f5a83f4a660b9a1248e5c021df2
Also-by: cartu38 opendev <cartu38.opendev@gmail.com>
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
Generalize the type of elements and resolve type safety warnings
Change-Id: Id8e443d0c071bbd5447092099e80574cdf7fd9b3
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
Generalize the type of elements and resolve type safety warnings
Change-Id: Ibbbdc26663a7fede9debef3ca5d1c79ca346608c
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
Change the default workspace indexer setting
Use the active configuration by default, which is less confusing because
the UI is properly reflected on active config change. Using a fixed
config can be seen as a more advanced setting for performance concerns.
A new preference is added, only used at default scope:
org.eclipse.cdt.core/cprojectdescription.configRelations
This can be used by products to customize the default according
to their needs (plugin_customization.ini).
This was done because this is a fairly impactful change for users.
Change-Id: I35888ffe5bc1814943f432f88a12094394924c88
Signed-off-by: Alex Freidin <freidin.alex@gmail.com>
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
Version changes are all to refect non-API changes (micro version)
Change-Id: I372aa2671a4c7f5c765a42156d3f639b8eaff680
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
Narrow down parsers based on option string
Instead of trying to match all patterns one by one, we can check the
start of the option string to be parsed and narrow down which pattern
(parsers) should be used.
Doing so is much less elegant code-wise as we are "unrolling" the
beginning of the patterns by hand, but it gives a good speed up. Around
300ms saved with a test of LLVM code base (~50% of parseOption time) and
much larger gains on much larger projects or course.
Change-Id: I9e841e7233078d6e38ad08943d98966d0e3c661e
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
Make sure the project is still accessible before doing the work.
It's possible that the project got closed before the job had a
chance to start.
Change-Id: If02e818394502397e8958d18284160d4f08ca195
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
Optimize AbstractLanguageSettingsOutputScanner.findResource by checking
under the currentProject first when searching for the IFile
corresponding to the parsed file name.
When the parsed file name is absolute, we can try to make it relative to
the current project and see if it exists as an IFile instead of going
through findFilesForLocationURI which is very slow. Having an absolute
path for the source file is quite common under the current (local)
projet.
This saves around 1.5 sec when parsing all commands of LLVM projet as an
example.
Change-Id: I576a917410e5d5ecbd8e932011555c699b250354
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
- fix Core Make Makefile template to add one for linuxtools
build mode which is used for Linux Tools profiling
- fix the error default to change tab indent to spaces so
make won't treat error message as recipe
- add some default profiling flags for gcov and gprof support when
Linux Tools profiling
Change-Id: I29c2247c9e2b00a4e1c1952198faf881abd7a66a
This make messages stand out more prominently in the build console.
Change-Id: I180a7eb6631870004cca94a7f1d2c8bda5b044f8
Signed-off-by: Martin Weber <fifteenknots505@gmail.com>
And prepare to make it an error in CDT to not have properly handled
an Autocloseable which means a number of fixes to make sure handles
are closed.
Change-Id: I36cd46017bbce6ece1703d688d7754e523eca68f
buildInfo is null in the case that the node list is empty.
Change-Id: I165ec31eeeab57e1eb7bed0268d0f83c70d6e0f7
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
Removed useless catch block that just rethrows the same exception
Change-Id: If3e4faea1ed889d4f7b39a7cff786e0aa9a6803d
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>