1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-06 01:06:01 +02:00
Commit graph

3098 commits

Author SHA1 Message Date
Jeff Johnston
a3211e7cf6 Bug 533888 - Simplify Meson Core Build to use startBuildProcess
- 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
2018-04-26 14:48:50 -04:00
Alexander Kurtakov
b9bac6912e Update build machinery.
Move to latest CBI plugins 1.1.5.
Use mylyn docs 3.0.24 in autotools docs generation.

Change-Id: I077afde458c654e40db44bec77b3049efe9715af
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-04-24 11:31:56 -04:00
Jeff Johnston
b56078ed96 Bug 533842 - Fix Launchbar for enabled/disabled Docker Connections
- 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
2018-04-20 12:44:27 -04:00
Samuel Hultgren
bb5f2d7f78 Bug 528940 - Execute pre/post build step
Execute the pre and post build steps as part of the build when using
the internal builder in parallel mode.

Change-Id: I840da0d7025597dc5b3edc1bb54a5ca45b6e2e86
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
Signed-off-by: Samuel Hultgren <samuel.hultgren@st.com>
2018-04-17 15:12:00 -04:00
Jeff Johnston
8982ef90e7 Bug 533444 - Add Container Build support to CMake Projects
- 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
2018-04-17 12:20:21 -04:00
Samuel Hultgren
c2b5e84087 Bug 217674 - Added incremental build support
When building a project with parallel builder using internal builder,
the entire project is rebuilt even if an incremental build was issued.
Store the rebuild state so that next build knows what has already been
compiled.

Change-Id: I1d1836f072bf13b03423fde7b5c427d41e47391e
Signed-off-by: Samuel Hultgren <samuel.hultgren@st.com>
2018-04-17 11:53:41 -04:00
Jeff Johnston
103f4cba4c Adjust Meson NewManuanNinjaTest
- test sometimes is printing extra info like level of ninja found

Change-Id: I2622f79bfc8320a8bd2bf0f6b7a8fe3bb73de55f
2018-04-16 16:19:49 -04:00
Jeff Johnston
2e99babe5b Bug 533222 - Add Container Build support to Std Make Core Build
- 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
2018-04-16 12:10:42 -04:00
Torbjörn Svensson
47d08ec204 Bug 533473 - Dynamically hide option categories
Allow applicabilityCalculator to hide optionCategory items that are
located on the toolchain. Show in the schema that
applicabilityCalculator is a valid attribute for optionCategory.

Change-Id: I6adb22b0af2a2c7fe45ea142049fcc2687d105b9
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
2018-04-12 17:48:53 +02:00
Jeff Johnston
0f9d2cdbba Enable Meson UI tests
Change-Id: I5f0a554c92e1568dd2cda69c198640c2a99769ec
2018-03-29 16:59:37 -04:00
Jeff Johnston
88cc9907cb Update Meson UI tests
- add new NewManualNinjaTest to test the Run ninja context
  menu item
- add a check that Project->Clean... works for Meson
  projects in NewMesonProjectTest
- fix all tests to substitute the project location instead
  of hard-coding it
- fix the build ninja code to use env to run so that
  environment variables can be overridden from run ninja dialog
- add new test to AutomatedIntegrationSuite for Meson UI tests

Change-Id: I0e338df6935f343d6ffbce99a83265d252ea37a6
2018-03-28 18:29:24 -04:00
Jeff Johnston
1a05bf6910 Add a new Meson property page test
- add NewMesonConfigureTest.java
- fix extraneous "meson" string in console output when
  performing a meson configure
- add new test to AutomatedIntegrationSuite for
  Meson UI test plug-in

Change-Id: Ic10520a0d420d380df95117b69200409a48226b3
2018-03-27 19:46:24 -04:00
Jeff Johnston
980eb1b25c Bug 532967 - Meson config properties not being saved/restored properly
- change splitting logic in MesonPropertyPage to split the arg
  string using -- which precedes args and to perform trim()
  operation to remove spaces between
- don't process an empty arg after splitting
- fix the boolean arg logic to use parseBoolean instead of getBoolean
  which is only for system properties

Change-Id: I390911bbf9d7f63f0cf6a13278f3644fe175847b
2018-03-27 15:35:53 -04:00
Jeff Johnston
407352736a Bug 532917 - env vars in Meson properties causes failures to occur
- fix MesonBuildConfiguration to check if any environment variables
  have been specified in properties page and if so, to change
  the command to run /usr/bin/env ENVVARS /bin/sh -c "meson ..."
- using env will cause the current env to be used (both locally
  and in a Container where the env has been set up) and modify it
  according to what the user specifies

Change-Id: Ide3997cf78edf65857dea3119f0a9d71679cfe68
2018-03-26 18:36:36 -04:00
Jeff Johnston
0144d3e819 Update Meson UI test
- update test for create, build, and run

Change-Id: I8a7d43336f8be28bc5cbd567dffed5f4fdc1b46f
2018-03-23 20:31:06 -04:00
Jeff Johnston
1ce1b3df5f Add Meson UI tests plug-in
Change-Id: Ib5af6980e90963876307f719a73f911394e72e1a
2018-03-22 15:57:46 -04:00
Jeff Johnston
60affd8b9f Bug 532420 - Make Container Core Build indexing more efficient
- 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
2018-03-19 21:50:31 -04:00
Alexander Kurtakov
84d6fdefaa Sonar fixes in Meson plugins.
Change-Id: I27a75d6dac41ae820d6af0b7c30922eb5bac58f7
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-03-09 10:40:53 +02:00
Alexander Kurtakov
c158b0bdd2 Use lamdbas.
Change-Id: Iece00d9c1af64bb0218a41519e995d33d8edee31
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-03-09 03:23:00 -05:00
Jeff Johnston
d468345bc3 Add Meson docs plug-in
Change-Id: I9153edd6f2708de475855ca3dbdb6323432e37ac
2018-03-07 12:15:56 -05:00
Jeff Johnston
82b0f6ab28 Bug 531985 - Support Container build with new Core Build
- add support for Container build to Meson
- add fixes to MesonBuildConfiguration clean build to use sh -c
  like normal meson build
- add new refreshScannerInfo method to MesonBuildConfiguration to
  re-process the commands json file so indexing will correctly
  switch from local to Container build and vice-versa
- add MESON_PROJECT_ARGUMENTS to IMesonConstants
- in MesonBuildConfigurationProvider getCBuildConfiguration
  method, remove checks for toolChainfile and for Container
  build, name the configuration based on the image name

Change-Id: Ia8a85c05e0cb9d46d2987ed4d39fcee914302467
2018-03-06 14:48:48 -05:00
Doug Schaefer
10c5897080 Remove extra colon in CMake build output.
Change-Id: I624d7e7079a3c1473fb591e24af1f7dcdd6617dd
2018-03-01 15:25:24 -05:00
Alexander Kurtakov
33291e5989 Move to wikitext 3.0.23.
Change-Id: Iaf8a7698106bf38578907f4fdab27f0cc20a0763
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-02-26 23:29:16 +02:00
Alexander Kurtakov
61442cf3be Bug 530000 - Add Meson Build support
Editors for meson.build, meson_options.txt and *.ninja files. Just
highlighting for now based on textmate grammars.
Added tm4e to target to enable resolving tm4e bundles.

Change-Id: I22859b2d39a96dcd777ee96d2a5e7465e4884839
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-02-21 04:46:04 -05:00
Jeff Johnston
dcfc276062 Bug 530000 - Add Meson Build support
- use sh -c to invoke meson and ninja commands so that
  the default environment including PATH is set up
- don't bother trying to find the commands locally and
  don't bother trying to find local environment (only
  use env options from property page or run ninja command)
- add a check after running meson to ensure that
  ninja.build file gets created, otherwise issue error
  message and stop build
- fix comments for RunNinjaPage
- add future Container support by allowing a special
  target OS when checking for isLocal build

Change-Id: Ie8d736c0909b44fe8db14265afbc8b05262b51f3
2018-02-19 20:37:43 -05:00
Jeff Johnston
70151ce491 Bug 531360 - Run ninja menu item is showing up in Docker views
- fix visibleWhen attribute of menuContribution
- also fix some warnings due to command not being set up
  properly

Change-Id: I8b5239b1edcd5da20201e71d23dce3bfb18c6d0c
2018-02-19 19:39:47 -05:00
Doug Schaefer
45966dd76d Fix up handling of esp32 on Windows.
Need to convert paths from MSYS style to proper Windows
native.

Change-Id: I8c459274a1eb33af026c1ae383db67c8cbcdc29f
(cherry picked from commit fea65eeb15)
2018-02-15 10:46:01 -05:00
Jeff Johnston
e31e23bb4e Apply CMake changes from Bug 530673 to Meson
- Fix issue with Meson and changing toolchains since
  Meson is based on CMake plug-ins
- Cleaned up add and remove of toolchain files and handling of when
  a toolchain changes for a config

Change-Id: I147a30454c69e3d8d86fc50c561a1667ddfb5df3
2018-02-14 13:09:18 -05:00
Jeff Johnston
3405063203 Bug 531125 - Tupled gcc toolchains should not be the local default
- change ToolChainManager so that when creating the types map for
  the first time, make it a LinkedHashMap instead of HashMap so
  order of input is preserved (first in = first out)
- fix GCCPathToolChainProvider so that it adds non-tupled gcc
  to the ToolChainManger before adding any tupled version

Change-Id: I84602a98dd4949a2f9847d4e72c428cdedd60688
2018-02-14 12:23:03 -05:00
William Riley
fdd018365c Bug 531131 - Consider superclass value to avoid unnecessary changes
Consider the superclass value when setting pre & post build steps, error
parsers, tool commands & tool command line patterns to avoid changing
the .cproject file unnecessary

Change-Id: Ida323982fe5bce7b0dd9b70eb23a6ee778be5403
Signed-off-by: William Riley <william.riley@renesas.com>
2018-02-14 09:18:08 +00:00
William Riley
689ad9f6ec Bug 531043 - Display errors/warning count for makefile & cmake builds
Change-Id: I8b2ab525af137ddd890f5713a3278cce6d17bffd
Signed-off-by: William Riley <william.riley@renesas.com>
2018-02-13 16:42:33 +00:00
William Riley
9a4853aa2d Bug 531106 - Modify MBS option serialize to handle empty string lists
Store a flag to indicate if an empty or null list. Existing projects
without flag will be considered as non-empty when loaded to maintain
existing behaviour for them.

Change-Id: I745c887eb2888910c6e76d5bc057d592a3d8fb3a
Signed-off-by: William Riley <william.riley@renesas.com>
2018-02-13 14:13:37 +00:00
Jonah Graham
3afc828ae0 [releng] Bump version to 9.5.0
Change-Id: Ie342f02f7aae633f41a7ab7d39c21e056793a04a
2018-02-13 11:25:08 +00:00
William Riley
6a72f4f07c Bug 531028 - Pass build config to all builders during headless build
Change-Id: Ia802d07e9da88fcb42274633d4321212d5eb6096
Signed-off-by: William Riley <william.riley@renesas.com>
2018-02-12 15:24:12 -05:00
Alexander Kurtakov
35bf85ebde autotools: Automate regenerating docs
Don't rely on hardcoded path to wikitext but instead use maven to
download it and call ant properly. Moved to latest 3.0.22 wikitext.
Regenerated the help with the latest wikitext too.
To auto regenerat one has to call maven with -PregenHelp.

Change-Id: Ie30779dfa4bd1c52dfa20411f810c96288daf509
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-02-10 17:08:33 -05:00
William Riley
5e27e4c377 Bug 530941 - Ignore editor file unless editor is active
Change-Id: Ie755f80cc01f55c0d4b9b704ff40008b8bb841af
Signed-off-by: William Riley <william.riley@renesas.com>
2018-02-09 11:36:42 -05:00
Alexander Kurtakov
aac61a6123 meson: Enable warnings
And fix them.

Change-Id: I6a1594559504764aeb325f78fa47ff103b2183a9
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-02-09 00:03:33 +02:00
Alexander Kurtakov
3ebd99eab7 Remove unused private methods.
Change-Id: Ie3c9fa60313d7a14a1f633df2ced698e55dd75ee
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-02-08 23:22:22 +02:00
Jeff Johnston
ba7f4f26eb Add Run ninja command context menu item for Meson projects
- add new RunNinjaCommandHandler, RunNinja,
  AbstractMesonCommandHandler, and
  RunNinjaPage classes to support running ninja manually
  with env variables added and options specified
- add a new build method to MesonBuildConfiguration which
  specifies ninja options and environment variables
- add SWTImagesFactory for supplying the meson logo image
- add WizardMessages class for specifying messages for
  meson ui wizards
- add new MesonUtils class and move stripEnvVars from
  MesonBuildConfiguration to here
- add new constants to IMesonConstants interface

Change-Id: I8d635b2bd96792800bb07f4b3f1730be6e41eb24
2018-02-08 15:03:09 -05:00
Alexander Kurtakov
db1cd491d6 Remove useless imports.
Change-Id: Ie59d3942ea1df97440bd84e46a24753ed6ed429b
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-02-08 21:17:09 +02:00
Alexander Kurtakov
b4f1123050 Remove useless code.
* Else clause.
* Unused constructor in private class.

Change-Id: I51d9ac08000e9ef6364dac96e96297733335a367
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-02-08 21:11:59 +02:00
Alexander Kurtakov
b66f413759 Remove redundant superinterface.
Change-Id: Idf96b85189c03b7a30772751617281806265dcbc
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-02-08 20:11:45 +02:00
Doug Schaefer
5b29b5b5d8 Bug 530673 Fix issue with CMake and changing toolchains.
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-02-03 20:33:56 -05:00
Jeff Johnston
33eeb12ae8 Bug 530000 - Add Meson Build support
- 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-31 18:49:06 -05:00
Chin Huat Ang
59669d9aed Bug 530478 - Relax AC_INIT macro validation in AutoconfEditor
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 <chin.huat.ang@intel.com>
2018-01-31 12:30:19 -05:00
Jeff Johnston
127e71423e Bug 530000 - Add Meson Build support
- initial contribution of Meson Build support based upon
  Core Build CMake

Change-Id: I9a91901254b7750f4f5eef69ed5375a5c1cce0a4
2018-01-30 15:47:12 -05:00
cartu38 opendev
b222d73001 Bug 529448 : Allows build debug level setting to be restored to proper
value

Change-Id: I64182e241e91007fb1c1570c6c0b5231632533d4
Signed-off-by: cartu38 opendev <cartu38.opendev@gmail.com>
2018-01-15 06:07:36 -05:00
Jeff Johnston
1ae56d435a Bug 528169 - Run autotools commands within containers
- 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-10 19:47:29 -05:00
Doug Schaefer
7627e275ef Bug 529121 - NPE fix for projects created with CMake
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 be9c1b8338)
2018-01-10 12:15:56 -05:00
Jeff Johnston
7050f18ecf Bug 529386 - NoSuchMethodError in AutotoolsNewMakeGenerator.runScript
- bump up org.eclipse.cdt.remote.core so that autotools.core
  can refer to the latest version in its dependencies

Change-Id: I4ec198d7c5d367a4a479a1dd39839f3c2d8c4a96
2018-01-03 16:00:52 -05:00