Removed ICBuildConfiguration.getBinaryParserId() and
IToolChain.getBinaryParserId(). Replaced with methods that return a list
of IDs.
Updated API changes doc.
Rearranged tests so that the test for IToolChain is in a new gcc test
plugin.
Update since tags to 8.0.
Remove api filter.
Fix other since tags after removing of api filter.
Remove interface defaults.
Add default implementations where necessary.
Update tests - TBC.
Warning in build.properties will be errors when they run
in the tycho build, like this:
```
Error: Failed to execute goal org.eclipse.tycho:tycho-packaging-plugin:2.7.5:package-plugin
(default-package-plugin) on project org.eclipse.cdt.core.tests:
/home/runner/work/cdt/cdt/core/org.eclipse.cdt.core.tests/build.properties:
bin.includes value(s) [test.xml] do not match any files. -> [Help 1]
```
So make them errors in the workspace so that the issue is
detected before push.
Some build.properties issues don't affect the build, but
are still indicative of a problem.
The CDT Cleanup profile had a bunch of extra cleanups applied to it, this
prevents running the CDT cleanup profile manually to simulate running the
save actions on all Java files
Change-Id: Iad491e1258a4ba90d81d1457ea0f6779e3663e38
All the about.html files are updated, so every bundle that hasn't
already had a bump in 10.7 needs one now
Change-Id: I6143d2fbe77a58a3a6d2f4a226d96087117f9ac1
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>
Add /clang:-isystem. It's handled similarly to /imsvc but interestingly it
doesn't support having spaces between the option name and it's value.
Change-Id: Ic5d61df1c7adebbf707d93a60858e942354c9ed9
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>
Fix a NPE I just introduced. This method gets called before things are
initialized, just like before. I prefer being conservative by restoring
previous behavior and not change too many things by revising the
initialization sequence at the same time of other bigger changes.
Change-Id: I1096621e29b51c67d218c7e55eaf3ebe29858d07
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
With this change, support for VS 2008, 2010 and 2012 is dropped
and support for 2017 and 2019 is added.
The new detection uses vswhere.exe as we cannot rely on registry keys
anymore. We also retrieve correct values for INCLUDE, LIB, and PATH
by executing vcvars.bat, which is less brittle and hard-coded than
before. Doing this also partially addresses bug 357980.
We also now store knowledge about multiple VS installation (one for
each major version) and related MSVC toolchain. This is one step closer
to letting users choose which version to use and store this per
configuration in the project.
Change-Id: I3b3579d8c6742ef232626b5e5294bb6f8634a326
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
It is the same as GCC built-in provider but with tweaked parameters to
pass to Clang driver. It has to be enabled by hand since there is no
toolchain associated with it for now.
Change-Id: I5455d04725b2ee4709844d32ee32d355d120d807
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
Optimize MSVCBuildCommandParser.unescapeString.
Instead of running a Matcher/replaceAll every time, check first if the
string contains the characters to unescape first. Finding a substring in
a string is much faster than matching a pattern so this saves quite a
bit of time on large MSVC projects since many options will not have the
characters needed to be unescaped.
Change-Id: If2ad7892c29374458d5de446d4492ce3ba576c9c
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
This feature was never really fully mature. It lacks important things
like proper built-in detection, ability to select VS version, target
architecture, Windows SDK, etc. And now the supported VS versions are
quite behind. I have the intention to improve it over time but I think
it is better to set more reasonable expectations by flagging it as
experimental and it will also allow more ambitious but possibly
incompatible changes workspace-wise.
Change-Id: Iceaa316fb5cf17dde9a6f056d5ced1b3ce496c7f
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
The check-code-cleanliness CI jobs have not been running recently,
so this commit is to the code up to those minor changes
Change-Id: I9fb4b0213dec558f58c5ca718b3d2685564ef456
This change adds a few more macro to define things that are supposed to
be built-in in MSVC. Eventually we might want to move some of those to
the parser but it's not clear to me if we want to polute the GCC parser
with all of this.
Change-Id: I6672d8f14470115aa37a0d76b2b4fb086fe4494f
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
This new Language Settings Provider allows parsing MSVC (cl.exe) compilation
commands, It is done similarly to the GCC Build Output Parser.
It is not enabled by default but can be enabled when in the context of
building with an external builder.
In general, MSVC support still needs some work but this output parser greatly
facilitates setup for certain types of projects.
Change-Id: I3fb110ecdfbac1cabbc16239ad6667a5e628d443
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
The previous alignment of all the warnings/ignores
led to too many warnings that weren't there before. This
commit relaxes them a bit.
The core/org.eclipse.cdt.core/.settings/org.eclipse.jdt.core.prefs
is still the "master" copy, with
releng/scripts/check_code_cleanliness.sh containing the
exceptions that apply to test plug-ins.
Change-Id: Ibd4e31ade0b42b31e7cbe5a94f06c6fc15183a56