- fix CMakeBuildConfigurationProvider.createBuildConfiguration() to
massage any image name and replace all slashes with underscores
- do the same for MakefileBuildConfigurationProvider and
MesonBuildConfigurationProvider
Change-Id: Ib09ade66059533f089084e50cba95d54e9d40547
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
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
- fix MesonBuildConfiguration to use startBuildProcess instead
of CommandLauncherManager
- change CBuildConfiguration startBuildProcess() method to accept
a build directory and to replace environment variables based
on input parameter
- fix CBuildConfiguration watchProcess routines to ensure that the
ReaderThreads have completed processing output to the console
- change StandardBuildConfiguration and CMakeBuildConfiguration to
pass the working directory to startBuildProcess
Change-Id: Icb4f2d076f0e6bb1513b20f6f198f720eae07e51
- 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
- fix CMakePropertyPage to check if the active config is
a Container build in which case dynamically build the page
using the results of a cmake -LAH call which will give
the various configuration values that can be changed
- add new CMakePropertyCombo, CMakePropertyText, CMakeUtils
and ICMakePropertyPageControl classes
- change CMakeBuildConfiguration build methods to use
startBuildProcess to run commands similar to
what StandardBuildConfiguration does now
- change CMakeBuildConfigurationProvider to use a container image
name to form a build directory so that differnt image targets
are differentiated and easy for the user to figure out what they
are for
- fix main.cpp sample CMake program to actually be a hello
world program
Change-Id: Iea9e2b5cc6895bc95194e28b131a3fb7e3b670ca
Cleaned up add and remove of toolchain files, handling of when
a toolchain changes for a config, and the launch bar tracker to
be more accurate with toolchains.
Change-Id: I1a1efdf08a5f47058552c85404fe8d602d158e73
If we're building for non-local targets we need a toolchain
file. Print out an error message when it's missing at build
time. Recover when one is added.
Also a rider that makes sure the Makefile projects are
marked experimental.
Change-Id: I0c295dc5b3d71a04c60c3385ce790553f172859d
Reuses the old makeNature. Reuses the StandardBuildConfiguration.
Generates a pretty simple project for now. Also handles the case
where you don't want to generate anything, just create an empty or
on an existing source tree.
Change-Id: I2f3cddc85d55792a2c537e37d4bc236a3073d930
Starting for Ninja, check for build.ninja file on whether to run
CMake again. Need to do same for makefiles. Change default to run
cmake --build instead of hardcoding ninja or make. Added message
to the end of the build to know when it's done.
Change-Id: Ibbb352ef7c64f6e1fcbe122ef0b73f2c91bb1aa7
Add c++ to GCCToolChain since that's what CMake uses by default for
MinGW. Synchronize the scannerInfoCache loading. Double check for
toolchain files at load time for configs that don't have any.
Change-Id: I8071e285ce5deb1448cabd45f394c62fe6a7f2f4
A number of changes that clean up how build configs are done. Now
build settings are stored with the build config instead of in launch
configs. That makes it less launch bar specific. Add build settings
UI to change the toolchain used for a given launch config.
Also changed CMake so it's IToolchain based instead of property which
doesn't work when multiple IToolchains match.
Change-Id: I958d90ede3c1f873ab1530c2b2880808e8f7abef
Provide a way to add new toolchains. Also start of UI to allow for
reordering them to help with toolchain selection for targets.
New Generic Target Wizard for the new wizard2 extension point for the
Launch Bar Target UI.
Change-Id: I60635ab27dad5b69df72c339337473183dcf711a
There were issues with how the Core Build calculated whether reindexing
was required due to compiler settings changes. Also if a source file
was built more than once in a CMake build, it ended up always
triggering a reindexing since the second instance looked like a
settings change. We now only use the last compile command for a file.
Change-Id: Icf2922e527ae20e0c3b0dae898d981d334013109
I added cmake arguments in the launch configuration for CMake
projects but didn't add it to the command line.
Also indexing wasn't working on my Mac. llvm-cc overrode the standard
local cc. Added the local compile commands if the toolchain is local.
Change-Id: I914c52dd42fbf84b87cd0e8c7504f024c2449a82
This removes a lot of pom.xml from the source tree. This is using the
"POM-less" Tycho functionality.
See
https://wiki.eclipse.org/Tycho/Release_Notes/0.24#POM-less_Tycho_builds
One advantage of this is that you do not need to update the version in
the pom.xml when you change it in the MANIFEST.MF because the pom.xml is
automatically generated. This also reduces a lot of the duplicated
information and pom.xml repetition.
- Maven 3.3 and up is required.
- Only eclipse-plugins and eclipse-features can be pom-less.
Repositories, target and others still have pom.xml.
- New parent poms are added because a parent is necessary directly one
level above the plug-in/feature that will have its pom generated
- Some test plug-ins had to be renamed .test -> .tests because it's
required so that it detects that it's a test plug-in
- Some suites were renamed so that they all use the same consistent name
"AutomatedIntegrationSuite"
- Profiles were added for the more common test configurations. They are
activated by the presence of simple .properties files that only serve to
activate the correct profile. The profiles:
- One for UI tests (UI present and start in UI thread)
- One for SWTBot tests (UI present and do not start in UI thread)
Other test plug-ins that are too different are kept intact and still
have
a pom.xml
- Fragments are kept intact since they all have different target
platform configurations
Change-Id: I9d73380eb766f547830c552daf08053a30b1845c
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Unify launching for projects that use the new Core Build system.
Starts with CMake projects. We'll do Qt projects next.
Change-Id: I14af8e99decd54cc6548095b3ad3e054c550aea2
For ESP8266, I want to auto discover the toolchains and friends
installed into Eclipse. I also want to handle toolchain files
manually added by the user. Adding providers and listeners.
Adds prefix to gcc commands. Makes CMake config provider for Local
only. ESP8266 has it's own launch config. Add build output to the
build config model. And fix up output folders.
Change-Id: I682c3d08898e5ca275d07f8bb63c6ec1c7605a81
Right now launch configuration delegates need to know too much about
the specific build system for a project (cmake versus qt, for example)
Start decoupling this and test out the theory with CMake.
Change-Id: I8a362f16cddca77b37a5ab5920ee19318035d478
Use launch target os and cpu arch properties to pick toolchains and
toolchain files. UI to add toolchain files. And build support.
Also some clean up of Qt as I found bugs.
Change-Id: Icd1da43460b5954eea15e95ed8ec27850fc4e54e
Reads the compile_commands.json file and feeds the commands into
the processLine method of the build config which creates the scanner
info. The scanner info is cached in memory and stored in the
metadata directory.
Change-Id: I8b04e661dfe767904d1c10119c07167fee8cd7e4
Fixed up CMake new project creation. Hooked up the CMake build config
properly.
Introducing the New C/C++ Project Wizard that hold all the new project
types: Arduino, Qt, CMake.
Change-Id: I9f9c8b1f51b136515fe226c15059cdbb99106275
new build configs now support binary parsers which are by default
driven from the toolchains. Ran into problem with new versions of
toolchains. Added versioning info to toolchains to take that into
account.
Change-Id: Ie1fb7755e84239b525dca0ae11759027a0b44574
Eclipse warns if a String literal does not have a `//$NON-NLS-<n>$`
entry at the end of the line. However, for historic or formatting
reasons, many such occurrences in the CDT source have an intermediate
whitespace, such as `// $NON-NLS-<n>$`
Fix these so that the whitespace is removed between the // and $
characters.
Change-Id: Idc12398fe6e9d619af1d0b1b73fb8b6180da223c
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
Creates a single central CBuilder builder which find the C Build
Config and delegates the builds to it. That give configs full control
over the builds. Qt and CMake build configs are adapted to this new
structure.
More features are added to the default super class for configs.
Change-Id: I5ecfc7a4e9b909da6749189a059cdcd4a208fddd
Move the new build system to cdt.core and remove the previous
plugins. Hook the new system into scanner info and environment
variable manager.
Clean up API in preparation for Neon and API lockdown. Hook up
Qt to the new APIs.
Add discovery of MSYS2's toolchain and Qt and Qt's MinGW toolchain.
Change-Id: I85b1a91da4a44e86f0e9da9310f8106c894623e0
Make the build folder common for build configs. Makes things
consistent.
Also make it clear that we are caching scanner info with the
names of the API calls.
Change-Id: I1da0d90b3358065e28e437d0dfeea730e13c9aef