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
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
Do not check for binaries in the project directory if the user defined
a binary in the Main tab. This supports the case where the user
disables auto build and selects a binary outside the project directory.
Otherwise the binaries check would stop the launch with the message
that no binaries are found in the project.
The launch configuration for local Core Build projects got the
Debugger and Source tabs in debug mode. Now the user can set the stop
at startup, a specific debugger, and all other Debug options as we
know from Managed Build projects.
The GdbLaunch class automatically picks up all the debug settings from
these new tabs. No additional code was needed for that.
The composition of Core Build tab groups is now fully done via the
launchConfigurationTabGroups extension-point.
This change relates to #758. It affects all Core Build projects,
including CMake projects.
A new Main Tab was created for Core Build local projects based on the Main
Tab used for the classic Managed Build projects. It adds these
features:
* Option to select a different binary.
* Option to control launch pre-builds.
The default value for the binary is empty string. With empty string
the behaviour for binary selection stays the same as it was.
The project name is fixed and cannot be changed. A Core Build launch
configuration is created with the project and tied to it.
There is no option to select a build configuration, because for Core
Build projects this is selected via the LaunchBar's Launch Mode.
This change relates to #758. It affects all Core Build projects,
including CMake projects.
Added an Environment tab to the Core Build launch configurations for
the Local target. Similar as the standard C/C++ Application launch
configurations for Managed Build.
Added the CArgumentsTab to the Core Build launch configuration for the
Local target. This enables users to set command line arguments and
specify a working directory.
Wrong active build configuration for Core Build projects.
The CoreBuildLaunchBar tracker always made a non default build
configuration the active build configuration. In other words, it
always made the debug build configuration active.
This caused wrong build flags if a non core build launch configuration
was used to launch a core build project binary.
Fixed the CoreBuildLaunchBar tracker to set the build configuration
to active that matches the launchBar mode.
Fixes#378
Steps:
======
1. Create a managed project and build it
2. Expand the built binary available in binary container in project explorer view
3. Now clean the project, clean will fail irrespective of number of tries you do
Reason:
=======
For finding the sources for binary, Elf instance is created and Section.mapSectionData creates MappedByteBuffer of channel which locks the file on Windows until its garbage collected, see following
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4715154
Solution:
=========
Made ISymbolReader AutoCloseable and user is responsible to properly close it. In case of dwarf reader, we remove all the references of ByteBuffer and call gc.
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.
This mostly is using diamond operator, but includes
adding missing @Override and organizing imports and
applying formatting improvements in the JDT formatter.
Change-Id: Id91cbff33b0a039cc5121945ffbc407ecba45866
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
Many of the disabled tests were failing because they were dependent
on specific combinations of GDB + GCC and where exactly code
stops and steps effect when entering functions. The old code
mostly ran to a function and then stepped a known number of times.
But what changes between GDB versions is how many steps are needed.
Therefore for all failing tests update to run to a specific line
number by using tags in the .cc file and running to them to make
sure the test is precisely on that line.
This partially reverts commit 8220215a2e
and 92272c6465
Reason for revert: These tests were "temporarily" disabled a while ago
as part of the JIRO migration in Bug 545624.
Change-Id: I703429c8a81c856360f1cb4e899026200527f7c6
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>
Straightforward conversion. Still usages left that need deeper
investigation how to be done proper.
Some long time commented code removed as java formatter breaks trailing
whitespaces on save.
Change-Id: If74259bed5735b0d4cc98fc2cfa609c9c53c80c9
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
We need a way to alert the user that we are unable to find a toolchain
that maps to the current target. An ErrorBuildConfiguration is created
that simply prints out an error message at build time to handle this.
We then set one of these as the active build config in the tracker
with the appropriate message.
We also add a target listener so that when a target becomes OK_STATUS,
we run the tracker again to see if we have the right active build
config for that target. Some targets can only determine some of their
attributes when connected.
Hook up the IToolChain matches so we're using it in the toolchain
manager. This allows toolchains to do more complicated matching of
the properties.
Change-Id: Icaff85117e8147cd2793f2915fa75ce33673ab52
- order build config names so when clean for a project goes through
the build configs, it finds the active one last and thus it will
appear in the CDT build console
- do this in CoreBuildLaunchbarTracker.setActiveBuildConfig()
- do this in CBuildConfiguration.setActive()
- do this in CoreBuildLaunchConfigDelegate.buildForLaunch()
Change-Id: I379d6c9ba298f02cbc75d16e9941527cd2f9f45c
- synchronized core build project description
manipulations using CoreModel as synchronization
class
Change-Id: Ic1312d5819ddc08acb492f57a2d87f1998329805
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
Some files which has other cleanups applied meant they needed to be
reformatted again. e.g. the removing of type parameters shortened
some lines of code that meant the wrapping changed.
Change-Id: I68ca09567b9530cc2a085c33923642b6de2ec77b
Command used:
# Remove space at eol in comments
find . ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/^(#.*)[ \t]+$/\1/' {} +
# Remove space at eol in blank lines
find . ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/^[ \t]+$//' {} +
# Replace escaped spaces at eol with unicode
find . ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/([^\\])\\ $/\1\\u0020/' {} +
# Replace unescaped spaces at eol with unicode
find . ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/([^\\]) $/\1\\u0020/' {} +
# Replace escaped tabs at eol with unicode
find . ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/([^\\])\\\t$/\1\\u0009/' {} +
# Replace unescaped tabs at eol with unicode
find . ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/([^\\])\t$/\1\\u0009/' {} +
# Stage all changes
git add -A .
# trim any remaining whitespace and then identify and fixup
# manually
# Only dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/MessagesForDebugVM.properties
# needed this due to missing newline at end of the file
find . ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/[ \t]+$//' {} +
Change-Id: I858f16891fe001f4f7e62d5a4f904146e891cd39
These were inserted in the past automatically by Eclipse but
newer tooling makes them redundant.
These were removed by doing a global find/replace on *.java files
using the following regular expression:
\t/\*\n\t \* \(non-Javadoc\)[^/]*/\n
Change-Id: I59d3248020f10934fde1dda5b5a31e20bb188e19
This was done by selecting all projects in Eclipse then
Source -> Clean Up... -> choosing:
- Remove redundant semicolons
and completing the wizard
Change-Id: I3d3175cfdfadec4f815c551d486e42c9f57b80ce
This was done by selecting all projects in Eclipse then
Source -> Clean Up... -> choosing:
- Remove redundant type arguments
and completing the wizard
Change-Id: Iaecc7010f097b4b1fabd29ccaa34ccb23a716fbf
This was done by selecting all projects in Eclipse then
Source -> Clean Up... -> choosing:
- Add missing Annotations - and selecting all three types:
- @Override
- @Override on interface methods
- @Deprecated
and completing the wizard
Change-Id: I5d367dacb04327107f25e147edc08efc4eb1c2fe
This was done by selecting all projects in Eclipse then
Source -> Clean Up... -> choosing:
- Organize Imports
and completing the wizard
Change-Id: Ia7b305a4c967d0e6f4e8fb8c1041e7028b24006c
This was done by selecting all projects in Eclipse then
Source -> Clean Up... -> choosing:
- Format source code
- Remove trailing white spaces on all lines
and completing the wizard
Change-Id: I63685372c6bcc67719bcf145123bcb72e5b00394
The releng/scripts/apply_jdt_prefs_to_all_projects.sh was run to
copy standard settings to all other projects.
Change-Id: I4436c947d7f0142f56b709e661379c3eb54f666b