- change ContainerTargetTypeProvider.changeEvent() to use
the new ILaunchTargetManager2 interface to use
addLaunchTargetNoNotify to add image targets from a new or
enabled Docker connection so as to prevent scanner info jobs
Change-Id: I2aef96c86c926790702a59853f0baf103c7115fc
- copy ChangeEvent logic from ContainerGCCToolChainProvider to
ContainerTargetTypeProvider when a new connection is added
Change-Id: Idbdaba7d10e4590722ff442447d195a3a2485907
- in ContainerGCCToolChainProvider change collection of
toolchains to be an array before accessing to prevent
ConcurrentModificationException
Change-Id: Ia39ddee181ba814997a34d5b1d68170fe1cda5ce
- change ContainerGCCToolChain.getCommandPath() to just return
the command
- change default command to be gcc instead of /usr/bin/gcc
Change-Id: I62869d974e7fc9707ee02dc6f5e2ab4500ddd0bc
This change adds empty enablement expressions where they are missing, in
order to prevent start-up warnings such as:
Enablement expression is missing for config provider for
org.eclipse.cdt.debug.core.coreBuildDescriptorType
Change-Id: Id7f2b6149230ddde24764772c5b67ff5eef28b65
Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
We weren't checking the case where the size of the toolchains array
was zero. Return a null config in that case and fix up the
CommonBuildTab to deal with that.
Change-Id: Ibd8f659988f1463570bdb2654d6ea2b4a45866c2
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
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
Some Java files were missed, or other cleanups introduced
trailing whitespace. So clean it up with this commit.
Command used:
find . ! -path "./.git/*" -type f -name *.java -exec sed -i -E 's/[ \t]+$//' {} +
Change-Id: I18f5e3a3eb5352443c9e753d427bb8d06107b8a4
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:
- Remove unnecessary casts
and completing the wizard
Change-Id: I287d4066b12fc19d7f73a016e11c9405abb4ceb9
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:
- 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
There is also a new script to verify completeness of .gitattributes:
releng/scripts/verify_gitattributes.sh
Change-Id: I2ce270852ab54b66b6c474a6ec94203fe5bba78b
- add new ContainerPortDialog class to allow user to specify
ports in the launch configuration Container tab
- add new ContainerTabModel and ExposedPortModel classes to
support new functionality
- add new Ports group to ContainerTab and have a table
where a user can add, edit, remove, and select ports
for publishing to the host
- add new attribute ATTR_EXPOSED_PORTS to ILaunchConstants for
saving and restoring user selected ports in C launch
configuration
- add needed internal messages to support new port settings
functionality
- bump up org.eclipse.cdt.docker.launcher version
Change-Id: I93b7503bdc141e3077418800352507ef38e65ab1
- bump up minimum org.eclipse.cdt.core needed for
org.eclipse.cdt.docker.launcher plug-in so that
ICBuildConfigurationManager2 interface is available
Change-Id: I5e77e7b43bdea1f0b59c79fcdfced7c162b64e9a
- modify ContainerGCCToolChainProvider.init so that the
CBuildConfigurationManager.recheckConfigs() call is done
within a separate job so the init() call will return
without causing deadlock
- do the same for ContainerTargetTypeProvider
- modify CBuildConfigurationManager initProviders() method to
be synchronized
Change-Id: I4ca9371fb340887233872b6d315621a24450fb2b
- add synchronized keyword to the various scanner info collecting
methods in ContainerGCCToolChain
Change-Id: I476e0c191379621d5ca8ef266c8590a0954ab4a5
(cherry picked from commit 55569e158c)
- add a new IToolChain property "cdt.needScannerRefresh" that is
set if scanner info needs to be refreshed
- for a Container build, turn the property on in ContainerGCCToolChain
startBuildProcess() if the Container headers for the toolchain's
have been deleted
- in CBuildConfiguration processLine(), look for the toolchain
property when looking to see if scannerinfo should be calculated
- in CBuildConfiguration, turn the toolchain property off in
shutdown()
Change-Id: I67a3537d1e2967dc15b66a1c37abda1ae8f78bff
- it seems that fetching the active configuration for a project
using an ICConfigurationDescription is time-consuming
- the active configuration is sought in ContainerCommandLauncherFactory
to get the optional build properties and thus we can figure out
if the active configuration has enabled container build or not
- see if we are given a CConfigurationDescriptionCache and it
contains a BuildConfigurationData element which allows us to
get an IConfiguration without creating a new one, serializing
it etc.. which is adding to the time taken
Change-Id: I8973f1707a602a73fc5ac751f12a1e8dbd549aab
- fix GCCToolChain and ContainerGCCToolChain to not blindly
take the first token in the command string when processing
scannerinfo; if it is "ccache", take the second token instead
Change-Id: I4b2b7dfaccae6f3ec968bbe4217c57994ad71963
- fix ContainerTargetTypeProvider changeEvent() to start a Job and
return immediately so it will not cause a DockerConnection
to be held in multi-threading
- move the DockerConnectionManager addConnectionListener call
to end of init() method so the fetching of images won't cause
a notification event to occur
- at end of init(), call CBuildConfigurationManager.recheckConfigs()
to make sure any disabled configuration due to a missing
IDockerConnection is now put in the configs master list and
removed from the noconfigs list
- make similar changes to ContainerGCCToolChainProvider
Change-Id: Idc120d613b99ec365522f5e7bf5da82d1b362425
- Launch bar is usually expecting a LaunchConfigurationTargeted
Delegate which calculates the binary but Container build
uses the ContainerLaunchConfigurationDelegate which expects
the program name, working dir, connection, and image id
set up as ILaunchConfiguration attributes
- modify ContainerLaunchConfigurationDelegate to add
finalLaunchCheck method which can verify if the launch
config attributes are set up and if not, set them from
the build config (since this is post-build)
- fix getImageName() in CoreBuildContainerLaunchConfigProvider
to use toolchain attributes
Change-Id: Iad6cc26928c33e964650b99844e065df8653858f
- add check for network ports coming back empty for a Container
launch and if so, fall-back to use the ip address of the Container
for the remote host
Change-Id: I83d68a10e2dc92f7d0f27bb9dec304388594b4a3
- fix problem with launch targets not being set correctly
- for ContainerTargetTypeProvider, make init() and changeEvent()
synchronized
- move the test for ESTABLISHED connection after getImages()
in ContainerTargetTypeProvider.init() method so that we don't
see the connection as being UNKNOWN
- move addConnectionManagerListener() call in init() to be
just after we fetch the list of current connections
- in ContainerGCCToolChainProvider, make init() and changeEvent()
synchronized and move addConnectionManagerListener call to
just after connections list are acquired
Change-Id: I24880a77755d634e8bce85db4f3354cf5ad7671d
- fix CMakeBuildConfigurationProvider to not verify if a toolchain
file exists which doesn't occur for Container Build configurations
- add new ICBuildConfigurationManager2 interface that adds new
recheckConfigs() method, make CBuildConfigurationManager
implement this new interface
- add new recheckConfigs() method to CBuildConfigurationManager so
that if a Docker Connection is enabled, the list of invalid configs
can be rechecked and those that are now valid can be removed from
the noconfigs list
- have ContainerGCCToolChainProvider implement
IDockerConnectionManagerListener and register itself as a listener
during init
- add new changeEvent() method as part of a listener that will add
toolchains for connections that are added/enabled and similarly
will delete toolchains for connections that are removed/disabled
- do the same with ContainerTargetTypeProvider (making it be an
IDockerConnectionManagerListener and adding/deleting targets based
on whether a Docker Connection is added/enabled or deleted/disabled
- as well during the init process of ContainerTargetTypeProvider
remove any targets for Connections that aren't established
Change-Id: Id5e9415eaa770ef7f6ba1ddd11312ed003585391
Check all problem markers until one with severity Error or higher has
been found.
Change-Id: I7b44727eb1f323da75a7aa58bcea2ef307801adf
Signed-off-by: Samuel Hultgren <samuel.hultgren@st.com>
- add new getConsoleHeader() method to ICBuildCommandLauncher
interface and ContainerCommandLauncher class
- modify MakefileBuildConfigurationProvider to create build
configurations based on an Image name when building for Container
and as well support the linux-container os that is used for
Container targets
- add new IConsoleParser2 interface that extends IConsoleParser
and adds new processLine method that takes a List of Job as
a parameter
- make CBuildConfiguration implement IConsoleParser2 and add new
processLine method
- modify watchProcess to recognize an IConsoleParser2 and pass
a Job List then wait for all jobs to finish before calling
shutdown() and possibly reindex
- add new IToolChain2 interface with startBuildProcess() method
- add new startBuildProcess() method to CBuildConfiguration
to look for new IToolChain2 and use its startBuildProcess()
method to perform the build
- make ContainerGCCToolChain implement IToolChain2 and add
new startBuildProcess() method to build in Container
- change StandardBuildConfiguration to use startBuildProcess()
to do build and clean
Change-Id: Icae9a55ef6abfa1b7f611544ad591b6062c72585
- add new ICBuildConfiguration2 to keep API checks happy
- remove refreshScannerInfo method from ICBuildConfiguration and
put it in ICBuildConfiguration2
- make CBuildConfiguration implement ICBuildConfiguration2
- update ContainerPropertyVolumesModel to use new Docker plug-ins
using docker-client 8.9.2.
- fix MesonBuildConfiguration to use a job for each compile line being
processed, then wait until all jobs are done before causing
an reindex to occur (this will maximize parallelism when building
in Containers)
- fix ContainerCommandLauncherFactory to save the project so we
can exclude project directories when copying header files using
the new Docker Tooling interfaces
- fix CoreBuildLaunchBarTracker to use ICBuildConfiguration2
interface to make the call to refreshScannerInfo
Change-Id: I2138f5111614e7821e46c22731397a01035eac0a
The most significant change for CDT is the upgrade of
com.spotify.docker.client which has knock on effects
due to the API changes.
Includes:
- Updating target platform
- removing Neon and Oxygen as potential target platforms
in OOMPH setup
- Updating CDT standalone debugger
- Changes in API for docker changes
Change-Id: I68d4f93de3a0e6141c7a37a34f9e8fdb2313fbd8
- add new ContainerTargetTypeProvider to create a new target
for each usable Docker image from known connections
- add new ContainerGCCToolChain class which supports gcc in a
Container for projects with Container targets
- add new ContainerGCCToolChainProvider which creates a
ContainerGCCToolChain for each usable Docker image from
known connections
- add new CoreBuildContainerLaunchConfigProvider class
- add new CoreBuildContainerLaunchDescriptorType class
- add new ContainerTargetLabelProvider class to support adding
a new Container target
- add new NewContainerTargetWizard and NewContainerTargetWizardPage
to add/edit a new Container target
- add new IContainerLaunchTarget class
- add new refreshScannerInfo method to ICBuildConfiguration interface
to allow switching ScannerInfo when target is switched
- implement default refreshScannerInfo method in CBuildConfiguration
which currently does nothing
- add new fetchContainerDirs method to CommandLauncherManager to
fetch container directories for a project that is using
Core Model and CBuildConfigurations
- add new verifyIncludePaths method to ICommandLauncherFactory2 that
takes an ICBuildConfiguration and implement this for
ContainerCommandLauncherFactory
- fix ContainerCommandLauncher command handling to use a list
of Strings to preserve spaces in arguments and call new
runCommand interface in Docker UI...as well do not link
any args that are files if they are system directories (e.g.
/usr /bin)
- fix getCommandLauncher in ContainerCommandLauncherFactory when
passing an ICBuildConfiguration so that it uses the configuration's
toolchain properties to figure out if a Container build is asked for
- fix launch method of ContainerLaunchConfigurationDelegate to check
if working directory is null in which case use the project directory
- also add buildForLaunch method override and preLaunchCheck to
ContainerLaunchConfigurationDelegate so it can be used for
Core Build launching as well and ensure that the project name
and active configuration is set properly
- in CoreBuildLaunchBarTracker, use the lastTarget to set the
active target instead of the local field "target" as this will
end up setting a random target as the active target. Also
call the new refreshScannerInfo method of the build configuration
when the active target has changed
- add ICBuildConfiguration support to Docker LaunchShortcut such
that properties will be set appropriately and acquired from the
toolChain
- bump up Docker launcher version to 1.2.0
Change-Id: I074b02314f6ac6942fdf230b1dc8e154ced3088e
- fix ContainerLaunchConfigurationDelegate to look at whether the
daemon is running remotely or locally
- if running remotely, try to connect to gdbserver by using the
Container ip address and the gdbserver port directly
(will not work on Windows, but fixes Linux scenario)
Change-Id: I9a6188d90187e2ca6ab73c8042a02b6ff29d5f2f
- remove new exposed field from CommandLauncherManager and
add correct @since tags
- create new ICommandLauncherFactory2 interface so that no
additions are made to ICommandLauncherFactory
- add @since tag for ICBuildCommandLauncher interface
- make ContainerCommandLauncherFactory implement the new
ICommandLauncherFactory2 as well as ICommandLauncherFactory
Change-Id: I7bbacb59e284b43e6d142accf59b6ab9df274438
- add new ICBuildCommandLauncher interface
- add new defaulted method to ICommandLauncherFactory interface
- add code to look at Build Configuration properties in
ContainerCommandLauncherFactory
- add new methods to CommandLauncherManager and
ContainerCommandLauncher
- add an update dialog call in ContainerTab
- add calls to set and get CBuildConfiguration to
ContainerCommandLauncher
Change-Id: If95fafe592c7ea4580bae1a15d168d1163e132fd
- fix LaunchShortcut find launch config method so that if the
active configuration is not enabled for Container build, then
it will look for config with default connection and image
Change-Id: If11865dd43cd2a08a0565b3483523002b0a00613