Граф коммитов

52 Коммитов

Автор SHA1 Сообщение Дата
Garrett Campbell 661e9ed3e3
Add script mode and ability to connect to externally launched CMake process. (#3277)
* storing initial thoughts

* rough version of trying to work on new options for debugger configurations

* made progress enabling script debugging from launch.json

* add some output messaging regarding the debugger and script

* add TODO's in case I don't get to it today

* log statements, ensure package.json allows the right args in right situation, set up env for script debugging

* push worst case copying the description and settings of the debugger options

* I think I've covered all launch config cases

* better package.json schema, though still not perfect, matches other debug types, and stub validation in code

* localize error messages

* add 'The'

* switch to double quotes

* add docs page for debugging

* slight modifications

* didn't handle case where scriptEnv was undefined

* add configurationSnippets

* add stub for debugconfigurationprovider

* add ability to 'run and debug' without launch.json on *.cmake files

* modify when we sanity check

* make adjustments based on feedback and add automatic configuration

* ensure that configure with debugger works with the right format

* update changelog
2023-09-20 13:20:31 -04:00
Garrett Campbell c19f923e04
loc fixes from CTI test pass (#3286)
* loc fixes from CTI test pass

* update with some more loc fixes
2023-08-16 14:16:59 -04:00
snehara99 aa2139531f
allow a way to run jobs in parallel (#3271)
* allowed a way to run jobs in parallel

* updated changelog

* fixed extra command and description

* addressed Ben's comments (changelog linking to issue and setting scope to resource)
2023-08-01 12:30:07 -07:00
Garrett Campbell 2014508a34
localize descriptions and make names better (#3252)
* localize descriptions and make names better

* update string to be less awkward
2023-07-21 14:57:40 -04:00
Garrett Campbell 1ffca88092
update docs for parallel jobs (#3221) 2023-06-29 11:23:51 -04:00
Garrett Campbell 8687691879
Integrate the CMake Debugger (#3181)
* save some stubbing for UI entry points for cmake debugger

* very close to fully integrated! I think entry points are mostly there, but needs work on UI and icons

* use debug icon for 'configure with debugger' from project outline

* wrap up integration of cmake debugger entry points and invocations, more docs might be needed and changelog

* add TODO to remind about using -E capabilities flag

* when cmake exe changes, recheck for debugger

* slight name changes and ensure debug capabilities are updated

* add changelog

* a couple of removals

* some slight refactoring to make the code better, more to come

* make debugger name avaiable for multiple debug sessions and for linux

* refactor to allow for launch configurations

* fix linux debugging. It was not looking at the same directory for the pipe name, put it in the tmp directory

* handle debugger dap log

* remove unused import

* react to a cmake debug session stopping

* slight fixes
2023-06-23 15:52:23 -04:00
snehara99 7aa4eaba88
Dev/snehara/sidebar ab testing (#3167)
* both sidebar and statusbar visible

* toggle is working

* updated description

* renamed sideBar.ts to projectStatus.ts

* changed name of projectOutlineProvider.ts to projectOutline.ts to match

* removed unused icons

* updated sidebar to use displayName whenever possible

* fixed issue with build/debug/launch presets when no kit is selected

* addressed some comments and fixed loc

* selecting kit refreshed all nodes

* fixed build error (unused variable)

* simplified code calling useProjectStatusView

* updated changelog

* updated changelog
2023-06-01 17:30:32 +00:00
Elaheh Rashedi bbf76e539d
"Side Bar" feature implementation (#2993) 2023-03-27 21:10:58 +00:00
philippewarren 39c7266562
Add default compiler search paths for msys2 default installation paths, fix mingw bugs (#3056)
* Add default compiler search paths for msys2 default installation paths, fix mingw bugs, fixes #2880, fixes #1064, might fix #460

* Fix linting errors

* Fix PR comments (keep config for backward compatibility, typo, changelog)

* Fix linting bug
2023-03-18 07:41:51 +00:00
xisui-MSFT 787937365e
Test Explorer - Part 1 (#3032)
* Need better multiroot

* Multi-root

* Show all projects path on init, and fix issues related to multi-proj folder

* Workaround test failures

---------

Co-authored-by: Ben McMorran <bemcmorr@microsoft.com>
2023-03-17 21:34:05 +00:00
maxmitti af36fb3098
Automatically configure CMake project directories when the kit or the configuration preset is changed (#2973) 2023-02-08 09:44:35 -08:00
Bob Brown 589906e08e
Added a setting to ignore unknown presets features from versions we don't support yet (#2945) 2023-01-13 20:28:21 +00:00
Elaheh Rashedi 896f499b99
CMake Multi Root and Multi Project support (#2835) 2022-12-27 08:46:15 -08:00
暴躁暴躁最暴躁/Bigforce 5767a155e8
Add a setting to disable reading compile_commands.json for higher performance experience (#2609) 2022-09-06 12:04:40 -07:00
Elaheh Rashedi aa00c930f9
Support for "preset" and "env" in task provider (#2636) 2022-08-26 09:30:30 -07:00
Elaheh Rashedi 8ca6852842
Add markdown description for LaunchBehavior (#2681) 2022-08-09 16:20:47 +00:00
Elaheh Rashedi b8d2cc9902
modify localized messages (#2667) 2022-08-02 17:45:47 +00:00
Elaheh Rashedi c2281b404a
add revealLog description (#2654) 2022-07-21 20:47:57 +00:00
Liviu Ionescu e37a1a5624
Add "cmake.ignoreCMakeListsMissing" (#2532) (#2537) 2022-05-11 01:12:43 +00:00
Bharatvaj 4a9dafd46c
Add setting showSystemKits (#2520) 2022-04-28 18:31:18 +00:00
Bob Brown 5ead5b1d5f
Add IntelliSense support for `debugConfig.console` (#2479) 2022-04-06 18:03:46 +00:00
Colin Duquesnoy fe831f4305
Allow to launch multiple targets with the launch button of the status bar (#2266) 2022-03-04 10:22:10 -08:00
Mark Ulrich 1a6976565a
Don't add '-j' argument if parallelJobs <= 1 (#2187) 2021-10-21 12:05:11 -07:00
Bob Brown 0470334b80
Add a setting to allow comments in CMakePresets files (#2175)
* Add a setting to allow comments in CMakePresets

* lint

* changelog
2021-10-14 11:43:34 -07:00
Felix L 73358f92e2
compdb: mergedCompileCommands for CMake subprojects (#2029)
* compdb: opt to use any compile_commands.json in build dir

Signed-off-by: Felix Lelchuk <felix-el@users.noreply.github.com>

* Introduce mergeCompileCommands configuration

This replaces the collectCompileCommands addition,
which altered the behavior of copyCompileCommands
into a standalone mergeCompileCommands config option
so both can co-exist without cross-interference.

* Emit a warning in case both copyCompileCommands and mergedCompileCommands are set, notifying the developer that the copy setting is ignored.

* Fix merge

Co-authored-by: Felix Lelchuk <felix-el@users.noreply.github.com>
Co-authored-by: Andreea Isac <48239328+andreeis@users.noreply.github.com>
Co-authored-by: Felix Lelchuk <felix.2.sausmikat@aptiv.com>
Co-authored-by: Andreea Isac <andris@microsoft.com>
2021-10-11 14:39:53 -07:00
xisui-MSFT d28a4f872c
Add build and configure commands to show cmake commands without running them (#1767)
* Add dry run commands

* Change 'dry run' to 'log * command'

* Change 'log' to 'show'

* Pass in build target for kits and vars

* Stop logging any extra besides the configure command, when command showConfigureCommand is used

* Simplify IF condition

Co-authored-by: Elaheh Rashedi <elahehrashedi@gmail.com>
Co-authored-by: Andreea Isac <48239328+andreeis@users.noreply.github.com>
Co-authored-by: Andreea Isac <andris@microsoft.com>
2021-10-11 14:17:42 -07:00
Bob Brown f6dfcffea7
Add Log Diagnostics command (#2141) 2021-09-30 09:26:31 -07:00
xisui-MSFT 4293388501
CMake Presets (#1725) 2021-04-12 09:48:08 -07:00
Pedro 84181ce041
Changed ctest --output-on-failure from hardcode to default argument (#1729)
* Changed ctest --output-on-failure from hardcode to deafult argument

* Adding setting for default CTest arguments

* Set scope of cmake.ctestDefaultArgs to "machine"

Co-authored-by: Andreea Isac <48239328+andreeis@users.noreply.github.com>
2021-04-01 13:49:05 -07:00
Andreea Isac 354e794ae3
User defined additional kits (#1701)
* User configured kits file

* Add test for user additional kits

* Make additional kits files a string array and modify test to look also outside of project folder

* Use array of promisses pattern when computing expanded paths for additional kit files.

* String type validation for setting additionalKits in package.json
2021-03-17 16:05:04 -07:00
Andreea Isac 98cccc2a97
Ensure kit selection quickPick doesn't show on non CMake projects (#1689)
* Ensure kit selection quickPick doesn't show on non CMake projects

* A new approach to stop asking for kits for a non CMake project

* Consider having CMakeLists.txt at the end of sourceDirectory

* Fix mistake when joining a path.

* Fix bad merge.
2021-03-02 11:55:09 -08:00
Elaheh Rashedi fe98026e29 change compilecommand to compilecommands 2020-12-14 11:37:49 -08:00
Elaheh Rashedi f72aec66ab add cmake.exportCompileCommandFile 2020-11-17 18:40:51 -08:00
Bob Brown 3b2c9eb378
Add a setting to control whether the Touch Bar is visible or not (#1529) 2020-11-06 09:18:04 -08:00
Bob Brown 389f311607
Add CMake GUI (#1490)
* Add CMake GUI

* forgot to undo one thing

Co-authored-by: Andreea Isac <48239328+andreeis@users.noreply.github.com>
2020-10-16 04:29:22 -07:00
tonka3000 2a543f4be3
add option to set CMAKE_BUILD_TYPE also on multi config generators (#1393)
Co-authored-by: Andreea Isac <48239328+andreeis@users.noreply.github.com>
2020-10-07 07:13:30 -07:00
Sergej Sawazki a265d47e8f
Add output parser for Wind River Diab compiler (#1267)
Co-authored-by: Sergej Sawazki <sergej.sawazki@zf.com>
2020-07-15 15:20:55 -07:00
SE2Dev c271903ac9
Fix i18n Typo (#1363) 2020-07-13 10:00:06 -07:00
Andreea Isac d1539be372
Partial/full activation mode and multi root. Disable automatic configures. (#1295)
* Partial/full activation mode and multi root. Disable automatic configures.

* Improvements from code review feedback

* Rephrase warning message.

* experiment, will undo some things after seeing tests results

* Fix one test baseline. Check if bringing back the sourceDirectory listeners and call to enableFullFeatureSet still causes Electron issue.

Co-authored-by: Bob Brown <bobbrow@users.noreply.github.com>
2020-06-17 12:23:31 -07:00
Bob Brown 9e2736b6ee
Merge branch 'develop' into statusbar-update_212_952_1189 2020-05-11 09:33:44 -07:00
Andreea Isac ca4dcc58c7
Skip configuring when cache is present and according setting is ON (#1212)
* Skip configuring when cache is present and according setting is ON before various operations that require config change check. Configure on open remains unchanged.

* Add missing description for new setting

* Use camelCase naming for local variable

* Fixed typo mistake

Co-authored-by: Bob Brown <bobbrow@users.noreply.github.com>
2020-05-06 18:43:10 -07:00
Bob Brown 9c4befd7fd
Remove `cmake.useCMakeServer` setting from package.json (#1218)
Co-authored-by: Andreea Isac <48239328+andreeis@users.noreply.github.com>
2020-05-06 09:19:57 -07:00
Stefan Schweizer cfc9ffb561 loca update 2020-05-06 08:13:29 +02:00
Stefan Schweizer a3d6da229d added loca and default values to advanced settings 2020-05-04 11:34:14 +02:00
Stefan Schweizer a93e509070 config update:
- renamed type to visibility
- added toplevel localization
2020-05-04 11:15:51 +02:00
Bob Brown 848cc80e70
file-api tweaks (#1029) 2020-01-28 16:43:56 -08:00
KoeMai 0b55e5bea9 cmake-file-api(7) (#720)
* Replace workspace path read from vscode to constructor variable

- The workspace is read from vscode, this makes it hard to refactor
  cms-driver to test compiler integration on a lower level.
  The workspace needed to be set by a higher level, to make low level driver
  independent of vscode ui and data structures.

- Make non public function protected.

* Replaced pickGenerator by variable for generator

The cms client normally started a pick call in the UI.
This modification moves the questions infront of the start.
This removes the required callback from cms client.

* Clean up CMake Build Start Problem UI interaction

The CMake Driver has many dependencies to UI. This
modification moves the dependencies from CMakeDriver into
cmake-tools. This allows to test the driver without UI interaction.

- Move quickstart and missing source dir warning
- Remove not required configuration setting `autoRestartBuild`
  I was not able to bring the driver into a state where two
  builds run in parallel. The `CMakePreconditionProblemSolver`
  never signals `busy` CMake.
- Change visability of some do methods in cms-driver.

* Fix working path getter

* Fix parallel clean and configure on driver level

The parallel execution of cmake configure is allowed by the driver. This modification will
forbid a parallel configuration.

* Move selection of prefered generator

The prefered generators are extracted by the cmake drive from configuration,
kit files or settings. This modification moves the aggregation of different
prefered generator out of the driver into the cmake tools.
This allows to defines exact preferred generators for testing (no hidden
dependency). The driver only checks the prefered generator list,
if there is more then one then the first existing generator is selected.

- Fix wrong preferred generator definition in test
- Extend debug information

* Remove toolset dependency in cms-client

The CMS Server client had a dependency to configuration reader to
read the toolset. For my this is a inconsistent information. Only
the toolset was from config file but not the platform.

* Add cms driver test for linux

* Fix problem with invalid preferred generator

* Add tests for reconfiguration and generator switch

* Harmonize cleanConfigure with configure in driver.

* Remove Workspace state dependency from driver

This modification reduces the dependency of the cmake driver layer to the  workspace context. This modification allows to setup low level CMake driver tests, so that the driver code could be tested with different cmake versions.
The UI parts can then tested with a driver mock, or by system tests.

- Replace DirectoryContext by ConfigurationReader
- Moved access to DirectoryContext state by setter funcions (setVarianOptions). This allows to set variant in a consistent way.
- Reduces fakes from tests

* Clean up and fix variant naming

* Extract cmake flags generation out of configure method for readability

* Stabilize tests and reformat code

* Set timeout for teardown of driver

* Fix some errors

* Restructure drivers

* Move cmake server client driver part

* Add first parts of cmake file api implementation

* Clean up cmake file api code

* Add workaround for preconfigured projects

Added a workaround to get the preconfigured generator and
its settings from cache file.

* Implement target listing and restructure code

- Fix test for switching kit files
- Implement target map for configurations
- Add workaround for recover already configured cmake projects
- Add  file api helpers and interface

* Fix wrong generator configuration in tests and assign default value of generator in driver.

* Fix problems on generator errors or missing query response

- CI: Add cmake to search path
- Fix FileAPI driver compatibility on missing generator
- Fix FileAPI driver problem with missing reply file
- Add test for configuration behavior on configuration error of cmake

* Generate api query files on start of cmake configuration

The generation of the api query files should although be done when
a "unspecified kit" is used. This requires to create the file on each
configuration, not only on init of a new build directory or an clean up
before build.

* CI loads wrong cmake version

* Fix cmake version problem for unix global

* Try to fix travis mac os problem with bad executable

* Restructure codemodel api

This modification extracts the code model from
the UI elements (tree view) and compile information into a code model API.
It is necessary to implement two driver variants
- CMake Server CodeModel
- CMake FileAPI Code Model

The code model support is detected by a special driver family
(`CMakeCodeModelDriver`), which provides a property for
`onCodeModelChanged`.

The driver api contains one required information from
cmake code model for generation of cpptool compiler information and
for the cmake tree view.

* Implement code model parts for the tree view.

- Inherit from `CMakeCodeModelDriver`  instead of `CMakeDriver`
- Implement FileAPI translation functions for Extension Driver_API

* Add first implementation for cpptool required compile information

- Replace cmake server depencencies by driver_api
- Extend API py missing language information
- Extend CMake FileAPI interface for CompileGroups
- Implement required convert functions

* Fix access on map from undefined object

* Add missing "all" target and "install" target and fix problems on switch between MsBuild and ninja

* Fix some path resolving problems in code model

* Fix cmake tree view - open file and missing headers

* Fix/harmonize cms-driver and cmfileapi-driver tests

- Fix `Test generator switch`
  Now it is a more realistic test case. This test used the same
  driver methods like the pre-configured cmake build folder test.
  This makes it difficult to detect pre-configured build folders. The
  cmake-tool class(extension front-end) use a different way to
  switch the kits on a running cmake driver instance used.
- Add cmake configuration fail test to cms-driver.

* Fix problem with invalid active kit

* Add driver code model interface

- Create driver code model interfac
  The cms client class has a code model. This code model is defined
  by the cmake cmake-server(7). The cmake-tools-extension needs
  a code model, which does not have to be identical to the cmake server.
  For more flexibility in future, a separate model is created.
  The first version contains all information required for the extension
  (e.g. for cpptools, code model tree) and is based on
  the cmake-server(7) model.

- Separate code mode driver support from CMS driver version

* Add first code model test and fix typos and a small bug

* Fix unix build by separate test for single configuration generators

* Fix node.js version problem with streamfilter

* Add tests for project and target information

* Fix linux build and reformat code model tests

* Extend tests for shared library and utilities

- Add tests for interface parts of cpptools
- Add tests for utilities parts of tree view
- Extend CMake test Project by required calls

* Fix missing isGenerated in cms-client

* Fix wrong library filename

* Fix MacOS build and disable windows test for mingw (#775)

* Fix regex

* Update codemodel driver interface .documentation

* Clean up tests and add sysroot test

Clean up
- Add helper for code model generation
- Restructure test
- Fix spelling

Add missing sysroot test

* Fix instable tests

- Different CMake versions generate different code model outputs.
- macOS test fails. I am unable to test the problem,
  but it seems the sysroot variable is required to build on macOS.

* Remove test filter

* Refactor test suite generation for driver test

This modification allows reusing driver tests for all driver types.
The tests check information and behavior to be according to the
driver interface. We know then that the CMake tools frontend
see the same behavior from the driver.

* Added execution of driver tests to FileAPI Driver

* Clean up description and reformat code

* Update driver creation with new configuration setting

* Implement sysroot mapping for FileApi

* Fix lint and style

* Review comments

- Move setting description
- Replace cmake version for CI tests
- Move convertion of  `useCMakeServer` to `cmakeCommunicationMode`
- Create missing interface types
- Search for newest index file

* Insert review comments

- Update setting behavior for automatic mode
- Fix spelling
- Remove not required query content
- Add version check for code model and cache (index file has no version)

* Fix merge conflicts

* Change code model load behavior on init of driver

* Insert localization to warnings.
2020-01-27 12:20:47 -08:00
xisui-MSFT 4fa7e036a7 Multi-root support (#958) 2020-01-16 13:31:31 -08:00
Colen Garoutte-Carson e4d536721b Address PR feedback 2019-09-24 10:30:16 -07:00
Colen Garoutte-Carson 4a75a49de4 Address PR feedback 2019-09-06 17:50:07 -07:00