This change adds the ALL_FLAGS that does not limit tool options to
those declared as IOption::isForScannerDiscovery when launching the
compiler to discover compiler built-ins.
This is needed as many other flags, either entered manually in "Other
flags" or some of the existing flags with checkboxes such as "-ansi",
"-fPIC", and "-fstack-protector-all" which all affect scanner discovery
as they can all change what macros are built-in to the compiler.
The current solution has as a drawback that some settings, like -I and -D
then appear twice. For example in the "Includes" node in the "Project
Explorer"
My only reservation about this change is if there is an option
that can be specified successfully at build time, but when used
at scanner discovery time causes the compiler to fail, or return
incorrect results. Therefore I have added a new field,
excludeFromScannerDiscovery to tool options (buildDefinitions
extension point) that allows tool integrators to always exclude
a command line option from ALL_FLAGS. I have also added
a new "Other flags (excluded from discovery)" to the
"Miscellaneous" tab to allow compiler options to be entered
by the user.
We eliminate unnecessary command line pattern attributes that were
overriding the default pattern provided by
org.eclipse.cdt.managedbuilder.internal.core.Tool which now includes
${EXTRA_FLAGS}.
Change-Id: I8c4e8e613599e71e31e390f56319bacfd0329ab2
The GnuMakefileGenerator is a huge file that needs lots of fixes.
However most of the time to implement the fixes are taken up trying
to not break API. Most extenders of CDT provide their own
implementation of GnuMakefileGenerator by copying the CDT one
and modifying it. Therefore CDT is going to take that same
approach internally and leave the existing GnuMakefileGenerator
in its unmodifiable state.
Change-Id: I12fafb5e347112648a02d4593267bd88a47b5c88
Add common warning options usually not included in -Wall. (GCC/Clang)
Added hardening options and address randomization under misc
section (GCC)
Added sanitize options under debug section. (GCC/Clang)
Change-Id: I885d8f49192018e50fcc5d28ee5e60d8785aa947
Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com>
Renamed c++0x to c++11, c++1y to c++14. Added c++17 and c++20
aka c++2a.
Change-Id: I3939cb56bf887e193bffe7484c6568cf45bd315d
Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com>
There is a collision in the ids of the pthread options,
"cdt.managedbuild.tool.gnu.c.pthread" is there twice. Change the ids to
be more in line with the other options.
Change-Id: Ice9d003b82b3740df6420811e90a2b157375c243
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
-Projects with default settings for binary parser will see their binary parser
changed to Gnu Elf automatically.
-New projects will have Gnu Elf binary parser enabled.
-Projects overriding the settings will not change
Change-Id: Ie5db969e68da20d16f565923ecb0ec1edf8b79f3
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
...so that it matches the way the GCC C++ compiler is.
Change-Id: I9e32dc3888cfec2c0c01196f44f2e730e2bbc574
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
I added a checkbox to enable gCov via a single checkbox to
enable gcov in the compiler. It then uses the
applicability calculator to automatically enable the linker if
the compiler option is set.
Signed-off-by: Leo Ufimtsev <lufimtse@redhat.com>
Change-Id: I561d7263d578a7807e890fce5518e6fc2ebb2bb2
Reviewed-on: https://git.eclipse.org/r/29403
Reviewed-by: Elena Laskavaia <elaskavaia.cdt@gmail.com>
Tested-by: Elena Laskavaia <elaskavaia.cdt@gmail.com>
case of a reference library project change
Conflicts:
build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/AdditionalInput.java