Skip to main content
path: root/build
AgeCommit message (Collapse)AuthorFilesLines
2018-02-08Remove useless imports.Alexander Kurtakov7-17/+7
Change-Id: Ie59d3942ea1df97440bd84e46a24753ed6ed429b Signed-off-by: Alexander Kurtakov <>
2018-02-08Remove useless code.Alexander Kurtakov1-5/+1
* Else clause. * Unused constructor in private class. Change-Id: I51d9ac08000e9ef6364dac96e96297733335a367 Signed-off-by: Alexander Kurtakov <>
2018-02-08Remove redundant superinterface.Alexander Kurtakov2-5/+4
Change-Id: Idf96b85189c03b7a30772751617281806265dcbc Signed-off-by: Alexander Kurtakov <>
2018-02-04Bug 530673 Fix issue with CMake and changing toolchains.Doug Schaefer4-15/+33
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
2018-01-31Bug 530000 - Add Meson Build supportJeff Johnston5-129/+211
- rewrite unconfigure Meson Property page logic to parse the output of meson --help and form the controls accordingly - do not add an entry for help option - add environment variable text entry to unconfigured property page to allow the user to add things such as CFLAGS=xxxxx - fix MesonBuildConfiguration to only use the MESON_ENV property when running meson for the first time and to prepend the current environment first to ensure local path, etc.. is still set, otherwise it won't be able to find commands it needs such as execvp - parse the environment text string to look for entries that use single or double quotes so that entries may use the = sign or spaces - when building, have ninja use the -v option so that the compile and link commands are output to the console Change-Id: I40d04234a7de74417c43f4c39bb2e21c86deb8a2
2018-01-31Bug 530478 - Relax AC_INIT macro validation in AutoconfEditorChin Huat Ang2-3/+7
When AutoconfEditor is set to 2.67 or newer, relax the validation of AC_INIT version string. Change-Id: I65221857905e867e3eea2de219ddf68c60f6d39b Signed-off-by: Chin Huat Ang <>
2018-01-30Bug 530000 - Add Meson Build supportJeff Johnston61-0/+3613
- initial contribution of Meson Build support based upon Core Build CMake Change-Id: I9a91901254b7750f4f5eef69ed5375a5c1cce0a4
2018-01-15Bug 529448 : Allows build debug level setting to be restored to propercartu38 opendev1-4/+4
value Change-Id: I64182e241e91007fb1c1570c6c0b5231632533d4 Signed-off-by: cartu38 opendev <>
2018-01-11Bug 528169 - Run autotools commands within containersJeff Johnston2-9/+38
- add new optional build property to run all Autotool commands in Container - for Autotool nature projects only, add a checkbox to the ContainerPropertyTab to turn this new option on/off - change the AbstractAutotoolsHandler class to look at the optional build properties for the project to determine if the fallback CommandLauncher used to run commands should come from the CommandLauncherManager to run in Container or to a local CommandLauncher - change AutotoolsNewMakeGenerator the same way - add new messages as needed (add a tooltip to warn user that choosing new option may cause inconsistencies for files shared among configurations) Change-Id: Id828ec3015f32f320d2247bd0577944164c71df8
2018-01-10Bug 529121 - NPE fix for projects created with CMakeDoug Schaefer1-1/+3
Not sure what changed but the launcher for these projects is now returning null for an environment. Added a null check. Change-Id: I05c94bb77f951f417577d0c2a3e3b4b6b996214b (cherry picked from commit be9c1b833828d8bb01059579e32fa4c08c47ea4c)
2018-01-03Bug 529386 - NoSuchMethodError in AutotoolsNewMakeGenerator.runScriptJeff Johnston1-1/+1
- bump up org.eclipse.cdt.remote.core so that autotools.core can refer to the latest version in its dependencies Change-Id: I4ec198d7c5d367a4a479a1dd39839f3c2d8c4a96
2017-12-01Fixes for ESP32.CDT_9_4_branchDoug Schaefer1-3/+6
In the new toolchain wizard, the select button wasn't hooked up. So I turned it off. Also, we had no build settings tab on the serial launch. Change-Id: I811f579334889085f49d298878589109c5e4a228
2017-12-01Cleanup Core Build Preference pages.Doug Schaefer2-7/+0
Move Toolchains directly under C/C++ and rename to Core Build Toolchains. Add a label describing what the toolchains are for in hope of avoiding confusion with managed build. Also move Qt into C/C++. Change-Id: Ia1d76087c65b26562d1001243ea355c7ac32365e
2017-11-29Fix manual include/macro settings handling for GCCToolChain.Doug Schaefer1-8/+31
We weren't passing in the base settings to the compiler for discovery. Also had a bug in the defines regex that mishandled values with spaces in them. Change-Id: I48183bfc3f61056324da009e58327cdcfed8754a
2017-11-27Stop launch on error. Fix up set/get make commands.Doug Schaefer3-7/+39
We were missing the dialog to ask if you wanted to continue after build errors in a project. We were missing the method that provided the list of projects to do that check. Also while testing that noticed the handling of the build and clean command UI was broken with make projects. Change-Id: I698e151672a114bb22c815f49d362b6413b9c315
2017-11-27Bug 527818 - Clean up handling of missing toolchain fileDoug Schaefer4-1/+22
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
2017-11-22Hook up the old Include Paths and Symbols page to Makefile projs.Doug Schaefer2-2/+6
Makefile projects depend on build output parsing to pick up compiler options to use while indexing. Sometimes, that just doesn't work. As a back up we've always allowed users to manually add them to the project. Long ago when we had pure make projects we had UI for this. This change hooks that old UI up. It was a time before build configs so they get applied to them all but it serves it's role as a backup when users run into problems. Unmarked everything I use here from deprecated until we decide how to replace these with Core build config aware settings. Change-Id: I6fc4d48e5315df3c60c7591b026ae0a53a1f505e
2017-11-21Releng fixes, ensuring legal files are there. Removing projects.Doug Schaefer7-40/+91
Removed the empty debug.core.tests project. Also removed the utils-feature and remote-feature projects since these shouldn't be features. Change-Id: Ib5d297c626de5328e3421a1fc9346330d9907750
2017-11-20Set CC and CXX variables to toolchain compileCommands in std build.Doug Schaefer1-1/+5
Also set BUILD_MODE to the launch mode so the makefile can do different things based on the mode. Change template to add -g option for debug. Also fix a deadlock I detected due to side affect build folder creation. Change-Id: Ic7b13ba3238e6ef201cccb1b2bfc8dcc6956ea3a
2017-11-20Fix MSYS2 so that it's provider overrides the path provider.Doug Schaefer1-1/+10
Also handle case when launchMode is null when creating a build config. Change-Id: Ie70de785168c2e24c842d517c64a297ba44e24f4
2017-11-17Forgot to add the makefile templates to the build.Doug Schaefer1-1/+2
Change-Id: I538e8610f9e31963a2c8224079de1a2f19c565c3
2017-11-15Fix up leftover toolchain provider id usage.Doug Schaefer1-1/+1
The CMake toolchain file editor was not recording the correct toolchain. The same was also true for the toolchain selection in the build settings tab. Change-Id: I62e4c7ae0175da7c1b5ffb7f89e321a371a6e8e0
2017-11-10Fixes for scanner info for Makefile projects.Doug Schaefer3-12/+90
Using ESP-IDF (the ESP32 FreeRTOS SDK) on MSYS2 as a test bed. Making sure the indexer picks up as much as it can. Removed -j since that messes up build output parsing. Add UI so you can put it back if you want. Change-Id: I767c739dce1412c75fb56d0bb1efceb913883a5f
2017-11-10Add settings to Makefile build configs to build at project root.Doug Schaefer6-6/+170
Often Makefile projects are intended to be built from the project root directory, such as ESP32 IDF projects. This adds a setting to control that. Change-Id: I151ebf60a7609461d24e192a9d6418fccb737055
2017-11-08Add Makefile Projects to collection of core build project types.Doug Schaefer16-23/+332
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
2017-11-07Adjust Arduino to new GCCToolChain API and add type and id/name.Doug Schaefer1-9/+5
Change-Id: Ia089985425c7f1a6fe347c41a6a01e5ab16d8208
2017-11-07Hook up the clang toolchain now split out from GCC.Doug Schaefer9-108/+219
Change-Id: I6edba9e689d903546be3a65060c4ac1b9871167f
2017-11-07Implement ordering of toolchains.Doug Schaefer4-15/+54
Introduce toolchain types independent of providers. Change-Id: I2cf3145920fcf4e7132468b6e653d7ea3e211127
2017-11-05CMake - check for build files, clean up some UX.Doug Schaefer3-9/+16
Starting for Ninja, check for 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
2017-11-05Add the core build gcc ui plugin to the gcc build feature.Doug Schaefer1-36/+43
Change-Id: I309bf8c785107ad8edd68664d175c7e94a900ea4
2017-11-03Hook up the error parser properly in the build configuration.Doug Schaefer2-5/+8
So we can have the error partitions that work with double clicking in the build console. Change-Id: I357f4efb8fd16232b78b18958c9863071feeebcc
2017-11-02Bug 526730 - Autotools should not run autotool commands in the ContainerJeff Johnston2-45/+44
- modify runCommand and runScript methods in AutotoolsNewMakeGenerator class to take an ICommandLauncher to use - modify AutotoolsNewMakeGenerator regenerateMakefile method to pass a local CommandLauncher when running autotool commands, but using one from the CommandLauncherManager when running configure or config.status to do the configuration - modify RemoteCommandLauncher to add a constructor that includes the ICommandLauncher to use if the project is not remote - fix AbstractAutotoolsHandler to use local CommandLauncher Change-Id: Ib3f0deff3cca4b7b40459b5dd691d73dcbf2a87c Signed-off-by: Jeff Johnston <>
2017-11-01Improve when build like autotools is trying to execute a script.Doug Schaefer1-8/+32
The new Autotools core build executes autoreconf which is a perl script. We've been assuming up until now they were always Windows exes or bats. If there's no proper extension, try finding sh and passing the command to it. Change-Id: I71ba66d7658db0bdc45608abc356b5efe80669af
2017-10-31Fix API baseline errors from Command Launcher changes.Doug Schaefer5-5/+5
Change-Id: Ibc5ba38669832f6baa67ff49ce4fe08ab1f5a14a
2017-10-31Fix up MSYS2 autodetect in to use new GCCToolChain API.Doug Schaefer2-4/+39
Make sure we pass the path to gcc as well as the environment with the MSYS2/MINGW* path. Also mark the old API deprecated. Not sure it even works anymore so we need to move things over. Change-Id: I1df10a4a77dbdd9027788bc404ae367421673e26
2017-10-30Bug 525591: autotools: Initial core build implementationChin Huat Ang35-0/+876
Add core, UI and feature plugins for the new autotools project which uses template wizard and core build. The template wizard currently supports generating a simple autotools project as described using a template manifest. The project generator sets new autotools nature associated with new autotools build config provider. The generated autotools project has been tested to compile fine with gcc (x86_64-linux-gnu-gcc) toolchain. Change-Id: I8349999d551bb693725a246340cf46266150fadc Signed-off-by: Chin Huat Ang <>
2017-10-22Bug 513589 - Add support to build CDT projects in a Docker ContainerJeff Johnston23-23/+326
- add IOptionalBuildObjectPropertiesContainer interface to use for objects that supply optional build properties - add new IOptionalBuildProperties interface that defines optional build properties donated by external plug-ins - add new - change IConfiguration to an IOptionalBuildObjectPropertiesContainer - change IManagedProject to be an IOptionalBuildObjectPropertiesContainer - fix ProcessClosure to ensure that readers are not null before accessing them - fix Container launch delegate to look at project optional build properties for active configuration to fetch connection and image info and use said info to find a matching launch or create a new one - have Container launch delegate use the image name as part of the launch config name - have Container launch short-cut also use the project's optional build properties for the active config to get connection and image information before any defaulting - change AutotoolsNewMarkerGenerator to store the command launcher as an ICommandLauncher - add new CommandLauncherFactory extension to cdt.core that allows plug-ins to specify a CommandLauncherFactory that will return an ICommandLauncher based on the project - add macros for new extension to CCorePlugin - add new CommandLauncherManager class that loads CommandLauncherFactory extensions and is used to give an ICommandLauncher wrapper that will go through the list of CommandLauncherFactory extensions until one returns non-null ICommandLauncher - add code to RemoteCommandLauncher so it will use the CommandLauncherManager to get the local launcher - also change RemoteCommandLauncher to check at execution time whether the command is local and in that case use the local command launcher - add new ICommandLauncherFactory interface - add new ContainerCommandLauncher to launch - add new ContainerCommandLauncherFactory class for returning a ContainerCommandLauncher instance to launch commands in a Docker Container - change MakeBuilder to use CommandLauncherManager to get its ICommandLauncher - change CommandBuilder to use CommandLauncherManager too - ditto for Builder and AbstractBuiltinSpecsDetector and ExternalToolInvoker - change Configuration to load/store optional build properties as well as return the properties to get/set - ditto for MultiConfiguration - change ManagedProject to implement IOptionalBuildOptionProperties interface - ditto for ProjectType - create new OptionalBuildProperties class to store optional build properties for a configuration - bump cdt.docker.launcher to 1.1.0 - use CommandLauncherFactory extension to define ContainerCommandLauncherFactory - add optional ContainerPropertyTab which allows the end-user to optionally choose to build a C/C++ project in a Container and specify the connection/image to use - in LanguageSettingsSerializableSettings class, call the CommandLauncherManager getLanguageSettingEntries method to get the massaged language setting entries based on the current list - in LanguageSettingsProviderSerializer, try and get the pooled entries using the cfg description so that it will have the project and can use the CommandLauncherManager to get entries from image - in ContainerCommandLauncherFactory move cached headers under a HEADERS directory in the plug-in area - create a sub-directory for the connection and a sub-directory for the image based on cleansed names - store the real names of the connection and image to use later in the DockerHeaderPreferencePage - modify LanguageSettingsEntriesTab to force the horizontal scroll bar to appear (this is a bug in SWT SashForm support and the fix here isn't quite correct, but is better) - add new DockerHeaderPreferencePage that allows user to remove cached headers from images - change C/C++ Docker preferences to be titled: Docker Container - fix LanguageSettingsWorkspaceProvider.getSettingEntries method to use the CommandLauncherManager so entries will be transformed to use cached headers - add BaseDatabindingModel class - add DataVolumeModel class to model a volume mount - add ContainerPropertyVolumes model to model volume specification and selected volumes - add properties to ContainerCommandLauncher to represent volumes and selected volumes for a configuration - add ContainerDataVolumeDialog for specifying a volume mount by the end-user - add a null detector for cfgDescription in LanguageSettingsSerializableProvider - fix AutotoolsNewMakeGenerator.getWinOSType to not specify "." for working dir - fix GCCBuiltinSpecsDetectorCygwin to not map paths to Cygwin if the current configuration is enabled for container build - add logic to ContainerCommandLauncher to look for Windows file formats and change them to unix format and map any "." working dir to be /tmp - fix ContainerLauncherConfigurationDelegate similarly - fix AbstractBuiltinSpecsDetector to pass in the current configuration description when getting the CommandLauncher since the current configuration may not be the active configuration - change ContainerPropertyTab to add Elf and GNU Elf binary parsers when build in Container is chosen so that output executables are treated as Binaries by the CDT project - add documentationl for the ContainerPropertyTab in Build Settings and the Data Volume dialog pop-up it brings up - change CommandBuilder to accept a project as an argument to its constructor and to pass this as an argument to the CommandLauncherManager - have StepBuilder pass project when creating a CommandBuilder Change-Id: Ia78488b93056e6ec7ca83a6c87b3a9d2b9424943
2017-10-19Fix bugs with emscripten and scannerInfo.Doug Schaefer2-20/+25
Change-Id: I54d3691426a48c2a6f71fee4188364e57eea402d
2017-10-18Make CMake support more resilient.Doug Schaefer3-9/+22
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
2017-10-12Allow for changing manually setting toolchains for build configs.Doug Schaefer16-153/+271
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
2017-10-06Add UI tests plugin for CMake. Fix a couple of bugs it found.Doug Schaefer15-30/+248
Also restructures the pom.xmls to put the modules in the top level so we can order them to have the test plugins build after them. Change-Id: I2f0e4ebd252791fb8844cdf0f635d574946207aa
2017-09-28UI for adding toolchains for Core Build. New Generic Target Wizard.Doug Schaefer27-156/+1365
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
2017-09-11Bug 522077 - New Autotools project doesn't open source file by defaultJeff Johnston3-0/+27
- add open file process to Autotools C ANSI hello world template.xml - add open file process to Autotools CPP ANSI hello work template.xml - add open file process to Autotools Shared library template.xml Change-Id: I2fcba56973374d00006f8ce5664581f3fcc419cf (cherry picked from commit 41e54f16567fd6f934ad525d6ef3b22c4beed2bf)
2017-09-11Update feature versions to CDT 9.4.Doug Schaefer3-3/+3
Also remove remaining pom.xmls for feature projects. Change-Id: I78d6335f92d70ad2699b8a25801ff72d2935aefe
2017-09-07Core Build - add support for Generic targetDoug Schaefer2-6/+5
Adapts to LaunchBar's new Build Tab extension. Change-Id: Icad41a7083f4389a546234d2835a9c4b60fa0eae
2017-08-10Bug 519529 - fix handling of quotes in the GCCToolChain scanner info.Doug Schaefer1-0/+10
Some Arduino boards have properties that feed into defines that have spaces in them. The boards.txt property file adds quotes around those things. When resolving the recipe property it results in -D gcc options that have embedded spaces in them. That messes up the ProcessBuilder and the command fails. We'll just strip the quotes from all the command args since they aren't needed in this scenario anyway. Change-Id: I41086ee264b8715823b3eab7931df4371b9ec873 (cherry picked from commit fc7b2f781c4beed99ee7dd3bb18254bfc87deba7)
2017-08-02Bug 520360 - First created target does not appear in BuildTargetDialogPhilippe NOEL1-13/+15
Change-Id: Ief40f2ee09d3714c65526086db993f6c630dda81 Signed-off-by: Philippe NOEL <>
2017-07-27Bug 520163: Use camel case for new command line argumentJonah Graham2-4/+4
Change-Id: I2e70fd288e0cda8a0fc8d7e8ce53622c4db50abb
2017-07-27Bug 520163: Provide a way to exclude Scanner Errors from headless buildJonah Graham3-37/+123
Implemented by allowing users to specify type of error markers to consider, as well as ability to print out the error markers that are causing build to fail. Change-Id: Iaa0b41be9ec1c1ff5268734697f361dac6fec49e Signed-off-by: Jonah Graham <>
2017-06-07Bug 517908: Don't convert #undef into #include <#undef> anymoreJonah Graham2-0/+10
Change-Id: I24b18e050ac91668bd63626ed39f1bf8807f8feb

Back to the top