Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

return expandedPreset, not preset #4008

Merged
merged 2 commits into from
Aug 27, 2024
Merged

return expandedPreset, not preset #4008

merged 2 commits into from
Aug 27, 2024

Conversation

gcampbell-msft
Copy link
Collaborator

@gcampbell-msft gcampbell-msft commented Aug 27, 2024

Small bug where we were returning the wrong variable from the expandBuildPresetVariables method.

Fixes the testing done here #3905 (comment).

Also fixes #4011

Thanks @v-frankwang!

@qarni FYI.

@qarni qarni merged commit 5820bc5 into main Aug 27, 2024
4 checks passed
@qarni qarni deleted the dev/gcampbell/BuildPreset branch August 27, 2024 20:18
@v-frankwang
Copy link
Collaborator

@gcampbell-msft @qarni We verified both issues on CMake Tools: v1.19.47 (pre-release) and they have been fixed:

Actual result:
Issue:#2934
image

Issue:#4011
image

qarni pushed a commit that referenced this pull request Aug 28, 2024
* return expandedPreset, not preset

* make sure user presets are considered
qarni added a commit that referenced this pull request Aug 28, 2024
* reversed order of creating workspace browse configurations (#3758)

* reversed order of creating workspace browse configurations

* updated tests

* minimized change by only reversing fileGroups, and reverted tests

* Add clarity in the build log when builds are out of source (#3778)

* Add chesscc to the allow-list of compilers. (#3777)

Co-authored-by: snehara99 <[email protected]>

* Fix doubling of cpack args passed by package preset (#3766)

* Remove unnecessary logging about string expansion (#3761)

* Remove unnecessary logging about string expansion

* Fix typo in var name

---------

Co-authored-by: snehara99 <[email protected]>

* Fix UI for settings override of package presets (#3770)

* Fix UI for settings override of package presets

* Fix linter errors

* Skip full configure on variant change for multi-config generators (#3763)

* Don't fully configure after variant change for multi-config generators. Only change parameter for build and refresh IntelliSense.

* Added missing return on 'if else'

* Removed unnecessary log. No previous configure message was printed before it.'

* Run clean-configure when workflow has different configure preset than project (#3768)

* Let cmake.configureArgs overwrite the default cmake args (#3762)

Co-authored-by: snehara99 <[email protected]>

* Handle "~" in binaryDir path (#3764)

* File system APIs don't recognize ~ in paths and because of this the extension cannot properly interpret cmake file-api jsons to list targets.

* Fix path typo

---------

Co-authored-by: snehara99 <[email protected]>

* Warning when VS installation instance not found (#3775)

* Add warning about not found VS installation instance and suggestion to re-scan kits, at the request of developers in the community.

* Fix linter errors

---------

Co-authored-by: snehara99 <[email protected]>

* Fix GitHub 3602, mention --build-config even for default test preset (#3779)

* Better validations that validate before running.  (#3774)

* initial commit

* add better values

* check notice and changelog before release version

* Update kits-variants doc with unsupported commands that are specific for presets (#3784)

Co-authored-by: Garrett Campbell <[email protected]>

* colorization support in pre-release (#3794)

* colorization support in pre-release

* update changelog

* Sort CMakeLists.txt by depth (#3789)

* Sort CMakeLists.txt by depth

* Add changes to CHANGELOG.md

---------

Co-authored-by: Garrett Campbell <[email protected]>

* Fixed string parameters and added clarification to the log message (#3787)

* Localization - Translated Strings (#3753)

Co-authored-by: Garrett Campbell <[email protected]>

* fix schema field in v8 schema (#3809)

* Add check that limits when we -R a regex of all tests (#3814)

* fix ctest

* only try to be smart about this in the test explorer entry points

* updating comment

* add try catch in debug createRunProfile

* Localization - Translated Strings (#3816)

* Update CHANGELOG.md

* update localization for project status view and quick pick (#3810)

* fix issue with test results not found (#3823)

* update braces dependency (#3839)

* Fixes #3725 - user presets not read correctly (#3826)

* get all presets to show in inherit

* if new configure preset inherits from a user preset add to the user presets file

* todo: finish update for different types of presets

* checks for configure inherit and inherit. todo - check workflow

* cleanup + mark as isUserPreset

* undo use isuserpreset field

* cleanup and changelog

* cleanup

* rename interface

* update workflow preset to not extend preset + refactor inheritsfromuserpreset func

* remove preset class fields from workflow preset

* more workflow preset cleanup

* Fixes #3811 - checks for cmake.exe again if it wasnt present the previous time  (#3840)

checks for exe again if it wasn't present the previous time

* Tree view for tests using test suite delimiter (#3759)

* Implement treeview for tests using test suite delimiter

* Support regular expressions for delimiters

* Improve UI string

* Improve UI string

* Address CR comments

* Fix spacing

* make sure to pass entry point through

---------

Co-authored-by: Garrett Campbell <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>

* Update telemetry API to latest version. (#3843)

* presets + cmake.buildToolArgs: make sure `--` is added in all cases (#3755)

* presets + cmake.buildToolArgs: make sure `--` is added in all cases

Fixes #3754.
This issue was introduced in #3537 (cmake.buildToolsArgs was ignored for presets before).

* Update changelog

---------

Co-authored-by: Garrett Campbell <[email protected]>

* Update CHANGELOG.md

* Fixes #3140 - Test log unavailable (#3752)

* Using \r\n as line ending

Seems like \r\n is the line ending characters in the Test Output even on systems different from win32

* Specify the test item in the call to appendOutput

Doing so allows to have the output of the test to be printed out in the left part of the "TEST RESULTS" pane when clicking on the desired test in the right part of the same pane.
Before this change we get "The test case did not report any output"

* Adds location information in the call to appendOutput.

The test object may have uri and ranges that can help localization

* Adds entry in the CHANGELOG

---------

Co-authored-by: Garrett Campbell <[email protected]>

* Upgrade cmake_minimum_required version 3.0.0 -> 3.5.0 (#3805)

* Update cmakeProject.ts

Upgrade cmake_minimum_required version 3.0.0 -> 3.5.0

* Update CHANGELOG.md

---------

Co-authored-by: Garrett Campbell <[email protected]>

* Add setting for deleting whole build dir when clean configuring (#3783)

* Add setting for deleting whole build dir when clean configuring

* Remove unnecessary tag in new setting in package.json

* Add changelog entry. Remove unnecessary | null from new boolean setting.

---------

Co-authored-by: Garrett Campbell <[email protected]>

* log error for cmake exe not found (#3847)

* Fixed how we use our '--warn-unused-cli' flag (#3860)

* '--warn-unused-cli' is now used to remove the default '--no-warn-unused-cli' command instead of removing and also adding itself to the arguments

* only removed '--warn--unused-cli' instead of all initial_common_flgs

* Set useCMakePresets context after quick start (#3853)

update active proj to set userpreset context

* remove from pre-release (#3861)

* clean configures when platform differs between old and new selected kit (#3859)

* clean configures when only platform changes between kits

* updated changelog

* check toolset too

* changelog

* update changelog

* add rel to branches (#3867)

* update third parties

* fix release pipeline verification

* fix release pipeline

* update release version for prerelease

* fix variable ref

* Localization - Translated Strings (#3833)

Co-authored-by: Garrett Campbell <[email protected]>

* Use relative intralinks; Point 'issues' to main GH repo (#3858)

* Replace intra-repo absolute URLs with relative ones.
* Replace remaining pointers to `vector-of-bool` with `microsoft`
  in the URLs than must remain absolute.

Co-authored-by: Garrett Campbell <[email protected]>

* Update Preferred Generator selection logic (#3869)

* Update preferred generator selection logic

* Update changelog

* Fix lint error

* updated command string to better reflect function (#3876)

* Add guard against reloading a file that's not a variants file (#3878)

* Add guard against reloading a file that's not a variants file

* Update CHANGELOG.md

* Update CHANGELOG.md

* Fix debugger hang on restart (#3846)

* telemetry check for trigger, also include trigger and folder in obj for debugger

* update origin telemetry

* add enum for debug origin

* pass in from command info and cleanup

* Update cmakeFileApiDriver.ts take out import

* move to 1.19 changelog

---------

Co-authored-by: Garrett Campbell <[email protected]>

* update warning to be an error (#3881)

* add try catch and attempt to grab specifically the json (#3868)

* add try catch and attempt to grab specifically the json

* fix lint errors

---------

Co-authored-by: Fatima Qarni <[email protected]>

* show userpresets in project  outline (#3877)

* move user env expansion forkits to after vsenv merged in (#3887)

* move user env expansion forkits to after vsenv merged in

* changelog

* fix for penv and env differentiation

* avoiding stringifying extensionContext (#3880)

* attempt avoiding stringifying extensionContext

* update changelog

* Skip initializing variant manager when using CMakePresets (#3888)

* Fixed spelling in Delete Build Dir On Clean Configure description (#3893)

* Allow CMake to select a default internal generator when the user selects "__unspec__" for the kit (#3889)

* updated to allow no generator when using file api and cmake 3.15.0 or greater

* fixed kit name check

* updated changelog

* throw nogenerator error if kit isn't __unspec__

* Add "Unspecified" Build Type and Use by Default (Kits Only) (#3879)

* add unspecified build type and remove CMAKE_BUILD_TYPE prop when it's used

* reverted commenting out debugger

* let debugger stop on error again

* updated changelog

* updated the docs with the new option

* updated default kit build type

* fix failing tests

---------

Co-authored-by: Garrett Campbell <[email protected]>

* localize override settings applied (#3896)

* change langext check for cpp (#3897)

* fix debug environment config being overwritten (#3894)

* fix debug environment config being overwritten

* changelog

* localized the additional properties case (#3895)

* show build task if preset is set to activebuildpreset (#3898)

* show build task if preset is set to activebuildpreset

* changelog

* fix our depth search for CMakeLists.txt (#3904)

* if installDir is a relative path, calculate it relative to the source directory (#3903)

* if installDir is a relative path, I calculate it relative to the source dir

* updated location of checking and updating installDir

* combined with expansion check

* add permissions to workflow

* Fix localized file path for schemas (#3906)

* Add setting to control how we use VS Dev Env (#3892)

* committing state, no progress, just thinking through

* fix how we apply and override devenv to ensure we don't accidentally delete preset environment modifications from user

* check if ninja exists and it's the generator, use that to determine if we should add vs devenv as well

* currently broken, but saving state for adding a setting

* this works well, but I need to add back code that prohibits repeated devenv searching with where.exe

* finalize implementation of the setting for useVsDeveloperEnvironment

* minimize branches

* fix import

* update comments

* fix comment

* remove unnecessary comment

* fallback to better architecture/toolset

* update devenv vars and tests

* fix test for mac

* fix tests

* update changelog

* fix test expand and where.exe env

* update test to explicitly test architecture unit test

---------

Co-authored-by: snehara99 <[email protected]>

* Fix link in configure.md (#3899)

The section is called "General options", not "Generic options".

* Fix typo in configure.md (#3900)

als -> also

Co-authored-by: Garrett Campbell <[email protected]>

* The kit name for Clang/MSVC too long, put the arch at the front (#3835)

[kit] Found Kit (trusted): Clang 17.0.3 (MSVC CLI) for MSVC 17.10.35004.147 (Visual Studio Community 2022 Release - x86)
[kit] Found Kit (trusted): Clang 17.0.3 (GNU CLI) for MSVC 17.10.35004.147 (Visual Studio Community 2022 Release - x86)
[kit] Found Kit (trusted): Clang 17.0.3 (MSVC CLI) for MSVC 17.10.35004.147 (Visual Studio Community 2022 Release - amd64)
[kit] Found Kit (trusted): Clang 17.0.3 (GNU CLI) for MSVC 17.10.35004.147 (Visual Studio Community 2022 Release - amd64)

Signed-off-by: Yonggang Luo <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>

* Update triage-labels.yml

* Update OneLocBuild process (#3912)

* try service connection already there

* use variables

* Delete .github/workflows/closed-fixed-pending-release.yml

* Only visual studio 2015 neesd fixes the windows sdk path (#3837)

Co-authored-by: Garrett Campbell <[email protected]>

* Dispose of Launch terminal if environment has changed (#3902)

* Compare entire terminal launch environment and dispose if not equal

* Updated CHANGELOG

---------

Co-authored-by: Garrett Campbell <[email protected]>

* Localization - Translated Strings (#3884)

Co-authored-by: Garrett Campbell <[email protected]>

* implement  #2521 by adding output channel argument (#3785)

* implement  #2521 by adding output channel argument

* fix failed configuration not showing output channel on "on error"

* implement review, add changelog

* fix changelog

---------

Co-authored-by: Garrett Campbell <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>

* doc: cmake.environment is not applied to launch/debug (#3926)

* Don't require Ninja or Make on PATH when checking generators (#3927)

* Preset file expansion on open/save and expansion validation (#3905)

This change changes the way we do preset file expansion. Expansion now occurs upfront on file open or save, and if there are no errors, the expanded presets will be cached so repeated expansion is not necessary every time getAll{type of preset}Presets() is called.

The only time expansion will happen again is on set preset, which will then also apply the VS developer environment as needed. This is avoided on the initial expansion for performance.

If there are errors in expansion, the errors are shown in the problems panel per file. The presets file will also be set to undefined, which will invalidate that file and not allow any presets in that file to be recognized/selected as valid presets. This is in line with the CMake command line experience.

Some notes:

- The ${generator} macro should not work for packagePresets, but should now expand correctly for all other presets and evaluate conditions correctly
- Tertiary preset cache was added (really its just the original presets cache but used in a new way) to account for included json files that wouldnt be in the original presets files

* better match keybindings to what vscode has (#3928)

* better match keybindings to what vscode has

* update changelog

* Revert "Don't require Ninja or Make on PATH when checking generators (#3927)" (#3938)

This reverts commit bbc74d8.

* check for quick start in select configure preset to prevent second configure (#3933)

Co-authored-by: Garrett Campbell <[email protected]>

* ensure we take deep copy of presets for presetsPlusIncluded (#3939)

* update telemetry key (#3944)

* update telemetry key

* typo

* Fix GitHub 1401, diagnostics relative to workspace folder (#3780)

* Fix GitHub 1401, diagnostics relative to workspace folder

 - relative diagnostics files are searched in build_dir and src_dir,
   first existing file is returned
 - defaults to old behavior : `path.resolve(build_dir, file)`
 - `resolveDiagnostics` has been made async to not slow down IDE when
   testing files

* update ChangeLog for #1401

* fix relative file resolution diagnostics test

 - diagnostics paths always use POSIX separators (see `normalizePath` in
   [src/util.ts](src/util.ts))

---------

Co-authored-by: Sylvain Fargier <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>

* Configure precondition handler to return boolean to signal a successful recovery case (#3776)

* Making configure precondition handler return a boolean helps to differentiate the successful recovery cases

* Fix pre-condition handler prototype errors in tests

* Experiment with prototypes to fix linter errors

* Add setting for building whole build dir when clean configure

* Remove anything related to deleteBuildDirOnCleanConfigure since it's in a different PR. Keep proper promise<bool> prototype for pre-configure handler return and fix appropriately compilation and lint errors in tests.

* Forgot one file to remove deleteBuildDirOnCleanConfigure from

* Remove forgotten comment

* Add changelog entry

* remove changes not needed

* removing more bad changes

* add logic to regenerate the driver after selecting cmakelists

* remove unused imports

* keep sanity check in _beforeConfigureOrBuild

* only ensure we set the variable so that on retry, it works

* switch return

* erroneous update

* fix

---------

Co-authored-by: Garrett Campbell <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>

* Localization - Translated Strings (#3932)

* Use template for release pipelines (converted from classic) (#3945)

* try to convert release pipeline to yaml

* ensure trigger

* fix variable expansion

* specify name specifically

* add release and fix powershell setup

* fix name

* uncomment vsce task

* only do release pipeline on release branch

* only allow rel branch for release

* enable trigger always, we can rely on manual verification

* evaluate inherit presets based on presets that should be visible from file (#3941)

* initial changes

* modify other preset flows

* fix unused import

* remove unused import

* check for default preset

* acocunt for userpresets

* remove extra condition

---------

Co-authored-by: Garrett Campbell <[email protected]>

* fix pipelineArtifact reference (#3948)

* fix pipelineArtifact reference

* update variable update

* try corrected destinationPath

* fix destination typo

* switch to targetPath test

* use correct manual validation task

* Update pipeline (#3952)

* fix validation and pipeline, commented out vsce for testing

* fix indentation for job

* uncomment vsce

* Set usepresets context after manually creating presets file (#3935)

Fixes #3854. Support for watching multiple paths (cmakepresets.json/cmakeuserpresets.json/include files) was broken due to a Chokidar bug. Created a wrapper class to handle this scenario.

* Localization - Translated Strings (#3954)

* Ensure we correctly inherit preset from UserPreset (#3958)

* fix

* analyze user presets first because it's the base if it exists

* more updates to fix include files and telemetry, still needs work and testing

* ensure telemetry and other uses of 'all..Presets' is right

* more fixes

* ensure we don't duplicate cmakepresets in userpresets includes

* remove unnecessary return

* unionWith consistency

* add test

* saving progress (#3960)

* only do special handling of ~ in linux, it breaks windows (#3965)

* Remove popups and update defaults for `configureOnOpen` (#3967)

* update defaults and remove popups

* update changelog

* fix types for configureOnOpen

* fix eslint

* Update vscode-tas-client. (#3981)

* add telemetry for developer environment use (#3975)

* fix node versions in pipelines

* remove item from yml

* Localization - Translated Strings (#3984)

* Update cmake-presets.md (#3992)

Fixing broken links

* fix regression of kit environment variables (#3991)

* rollbar try catch (#3985)

Co-authored-by: Fatima Qarni <[email protected]>

* switch to variable

* switch to variable

* fix env expansion (#3997)

* In short, with our recent updates, we are attempting to expand every
string in the environment. This isn't a problem in most cases, but it
exposed a bug in certain linux distros that use aliasing (environment
variables).

Therefore, we should be wiser about what we attempt to expand and only
expand the presets environment variables the user has in their files.
To do this, we need to be smarter about what we save in our cache and
update by reference.


* updated the other presets so they dont always have to reexpand configure preset. when they do, use plusIncludes which has the dev env cached if its been expanded before. also include the inherited parent envs

* Fix environment expansion so we don't expand unnecessary variables - don't save the process.env or parent environment to the environment field of the cache.

* Don't re-expand configure presets in the associated build/test/etc presets.

* Fix expansion reporting issues with reporting an invalid config preset, and changing for each loop to a traditional for loop to make sure we dont have async issues with reporting.

* fix validation bug for not being able to find a null config preset

---------

Co-authored-by: Garrett Campbell <[email protected]>

* update third parties (#4001)

* return expandedPreset, not preset (#4008)

* return expandedPreset, not preset

* make sure user presets are considered

* Localization - Translated Strings (#4003)

* add change from rel that I didn't do here (#4014)

---------

Signed-off-by: Yonggang Luo <[email protected]>
Co-authored-by: snehara99 <[email protected]>
Co-authored-by: Andreea Isac <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>
Co-authored-by: Joan Marcè i Igual <[email protected]>
Co-authored-by: [email protected] <[email protected]>
Co-authored-by: vinocher-bc <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>
Co-authored-by: Bob Brown <[email protected]>
Co-authored-by: Jeremie Allard <[email protected]>
Co-authored-by: hippo91 <[email protected]>
Co-authored-by: LiuZengqiang <[email protected]>
Co-authored-by: Cy 'kkm' Katsnelson <[email protected]>
Co-authored-by: Jonathan Phippen <[email protected]>
Co-authored-by: moyo1997 <[email protected]>
Co-authored-by: Andrew Shark <[email protected]>
Co-authored-by: Yonggang Luo <[email protected]>
Co-authored-by: stepeos <[email protected]>
Co-authored-by: fargies <[email protected]>
Co-authored-by: Sylvain Fargier <[email protected]>
Co-authored-by: Sean McManus <[email protected]>
Co-authored-by: Sinem Akinci <[email protected]>
qarni added a commit that referenced this pull request Sep 3, 2024
* reversed order of creating workspace browse configurations (#3758)

* reversed order of creating workspace browse configurations

* updated tests

* minimized change by only reversing fileGroups, and reverted tests

* Add clarity in the build log when builds are out of source (#3778)

* Add chesscc to the allow-list of compilers. (#3777)

Co-authored-by: snehara99 <[email protected]>

* Fix doubling of cpack args passed by package preset (#3766)

* Remove unnecessary logging about string expansion (#3761)

* Remove unnecessary logging about string expansion

* Fix typo in var name

---------

Co-authored-by: snehara99 <[email protected]>

* Fix UI for settings override of package presets (#3770)

* Fix UI for settings override of package presets

* Fix linter errors

* Skip full configure on variant change for multi-config generators (#3763)

* Don't fully configure after variant change for multi-config generators. Only change parameter for build and refresh IntelliSense.

* Added missing return on 'if else'

* Removed unnecessary log. No previous configure message was printed before it.'

* Run clean-configure when workflow has different configure preset than project (#3768)

* Let cmake.configureArgs overwrite the default cmake args (#3762)

Co-authored-by: snehara99 <[email protected]>

* Handle "~" in binaryDir path (#3764)

* File system APIs don't recognize ~ in paths and because of this the extension cannot properly interpret cmake file-api jsons to list targets.

* Fix path typo

---------

Co-authored-by: snehara99 <[email protected]>

* Warning when VS installation instance not found (#3775)

* Add warning about not found VS installation instance and suggestion to re-scan kits, at the request of developers in the community.

* Fix linter errors

---------

Co-authored-by: snehara99 <[email protected]>

* Fix GitHub 3602, mention --build-config even for default test preset (#3779)

* Better validations that validate before running.  (#3774)

* initial commit

* add better values

* check notice and changelog before release version

* Update kits-variants doc with unsupported commands that are specific for presets (#3784)

Co-authored-by: Garrett Campbell <[email protected]>

* colorization support in pre-release (#3794)

* colorization support in pre-release

* update changelog

* Sort CMakeLists.txt by depth (#3789)

* Sort CMakeLists.txt by depth

* Add changes to CHANGELOG.md

---------

Co-authored-by: Garrett Campbell <[email protected]>

* Fixed string parameters and added clarification to the log message (#3787)

* Localization - Translated Strings (#3753)

Co-authored-by: Garrett Campbell <[email protected]>

* fix schema field in v8 schema (#3809)

* Add check that limits when we -R a regex of all tests (#3814)

* fix ctest

* only try to be smart about this in the test explorer entry points

* updating comment

* add try catch in debug createRunProfile

* Localization - Translated Strings (#3816)

* Update CHANGELOG.md

* update localization for project status view and quick pick (#3810)

* fix issue with test results not found (#3823)

* update braces dependency (#3839)

* Fixes #3725 - user presets not read correctly (#3826)

* get all presets to show in inherit

* if new configure preset inherits from a user preset add to the user presets file

* todo: finish update for different types of presets

* checks for configure inherit and inherit. todo - check workflow

* cleanup + mark as isUserPreset

* undo use isuserpreset field

* cleanup and changelog

* cleanup

* rename interface

* update workflow preset to not extend preset + refactor inheritsfromuserpreset func

* remove preset class fields from workflow preset

* more workflow preset cleanup

* Fixes #3811 - checks for cmake.exe again if it wasnt present the previous time  (#3840)

checks for exe again if it wasn't present the previous time

* Tree view for tests using test suite delimiter (#3759)

* Implement treeview for tests using test suite delimiter

* Support regular expressions for delimiters

* Improve UI string

* Improve UI string

* Address CR comments

* Fix spacing

* make sure to pass entry point through

---------

Co-authored-by: Garrett Campbell <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>

* Update telemetry API to latest version. (#3843)

* presets + cmake.buildToolArgs: make sure `--` is added in all cases (#3755)

* presets + cmake.buildToolArgs: make sure `--` is added in all cases

Fixes #3754.
This issue was introduced in #3537 (cmake.buildToolsArgs was ignored for presets before).

* Update changelog

---------

Co-authored-by: Garrett Campbell <[email protected]>

* Update CHANGELOG.md

* Fixes #3140 - Test log unavailable (#3752)

* Using \r\n as line ending

Seems like \r\n is the line ending characters in the Test Output even on systems different from win32

* Specify the test item in the call to appendOutput

Doing so allows to have the output of the test to be printed out in the left part of the "TEST RESULTS" pane when clicking on the desired test in the right part of the same pane.
Before this change we get "The test case did not report any output"

* Adds location information in the call to appendOutput.

The test object may have uri and ranges that can help localization

* Adds entry in the CHANGELOG

---------

Co-authored-by: Garrett Campbell <[email protected]>

* Upgrade cmake_minimum_required version 3.0.0 -> 3.5.0 (#3805)

* Update cmakeProject.ts

Upgrade cmake_minimum_required version 3.0.0 -> 3.5.0

* Update CHANGELOG.md

---------

Co-authored-by: Garrett Campbell <[email protected]>

* Add setting for deleting whole build dir when clean configuring (#3783)

* Add setting for deleting whole build dir when clean configuring

* Remove unnecessary tag in new setting in package.json

* Add changelog entry. Remove unnecessary | null from new boolean setting.

---------

Co-authored-by: Garrett Campbell <[email protected]>

* log error for cmake exe not found (#3847)

* Fixed how we use our '--warn-unused-cli' flag (#3860)

* '--warn-unused-cli' is now used to remove the default '--no-warn-unused-cli' command instead of removing and also adding itself to the arguments

* only removed '--warn--unused-cli' instead of all initial_common_flgs

* Set useCMakePresets context after quick start (#3853)

update active proj to set userpreset context

* remove from pre-release (#3861)

* clean configures when platform differs between old and new selected kit (#3859)

* clean configures when only platform changes between kits

* updated changelog

* check toolset too

* changelog

* update changelog

* add rel to branches (#3867)

* update third parties

* fix release pipeline verification

* fix release pipeline

* update release version for prerelease

* fix variable ref

* Localization - Translated Strings (#3833)

Co-authored-by: Garrett Campbell <[email protected]>

* Use relative intralinks; Point 'issues' to main GH repo (#3858)

* Replace intra-repo absolute URLs with relative ones.
* Replace remaining pointers to `vector-of-bool` with `microsoft`
  in the URLs than must remain absolute.

Co-authored-by: Garrett Campbell <[email protected]>

* Update Preferred Generator selection logic (#3869)

* Update preferred generator selection logic

* Update changelog

* Fix lint error

* updated command string to better reflect function (#3876)

* Add guard against reloading a file that's not a variants file (#3878)

* Add guard against reloading a file that's not a variants file

* Update CHANGELOG.md

* Update CHANGELOG.md

* Fix debugger hang on restart (#3846)

* telemetry check for trigger, also include trigger and folder in obj for debugger

* update origin telemetry

* add enum for debug origin

* pass in from command info and cleanup

* Update cmakeFileApiDriver.ts take out import

* move to 1.19 changelog

---------

Co-authored-by: Garrett Campbell <[email protected]>

* update warning to be an error (#3881)

* add try catch and attempt to grab specifically the json (#3868)

* add try catch and attempt to grab specifically the json

* fix lint errors

---------

Co-authored-by: Fatima Qarni <[email protected]>

* show userpresets in project  outline (#3877)

* move user env expansion forkits to after vsenv merged in (#3887)

* move user env expansion forkits to after vsenv merged in

* changelog

* fix for penv and env differentiation

* avoiding stringifying extensionContext (#3880)

* attempt avoiding stringifying extensionContext

* update changelog

* Skip initializing variant manager when using CMakePresets (#3888)

* Fixed spelling in Delete Build Dir On Clean Configure description (#3893)

* Allow CMake to select a default internal generator when the user selects "__unspec__" for the kit (#3889)

* updated to allow no generator when using file api and cmake 3.15.0 or greater

* fixed kit name check

* updated changelog

* throw nogenerator error if kit isn't __unspec__

* Add "Unspecified" Build Type and Use by Default (Kits Only) (#3879)

* add unspecified build type and remove CMAKE_BUILD_TYPE prop when it's used

* reverted commenting out debugger

* let debugger stop on error again

* updated changelog

* updated the docs with the new option

* updated default kit build type

* fix failing tests

---------

Co-authored-by: Garrett Campbell <[email protected]>

* localize override settings applied (#3896)

* change langext check for cpp (#3897)

* fix debug environment config being overwritten (#3894)

* fix debug environment config being overwritten

* changelog

* localized the additional properties case (#3895)

* show build task if preset is set to activebuildpreset (#3898)

* show build task if preset is set to activebuildpreset

* changelog

* fix our depth search for CMakeLists.txt (#3904)

* if installDir is a relative path, calculate it relative to the source directory (#3903)

* if installDir is a relative path, I calculate it relative to the source dir

* updated location of checking and updating installDir

* combined with expansion check

* add permissions to workflow

* Fix localized file path for schemas (#3906)

* Add setting to control how we use VS Dev Env (#3892)

* committing state, no progress, just thinking through

* fix how we apply and override devenv to ensure we don't accidentally delete preset environment modifications from user

* check if ninja exists and it's the generator, use that to determine if we should add vs devenv as well

* currently broken, but saving state for adding a setting

* this works well, but I need to add back code that prohibits repeated devenv searching with where.exe

* finalize implementation of the setting for useVsDeveloperEnvironment

* minimize branches

* fix import

* update comments

* fix comment

* remove unnecessary comment

* fallback to better architecture/toolset

* update devenv vars and tests

* fix test for mac

* fix tests

* update changelog

* fix test expand and where.exe env

* update test to explicitly test architecture unit test

---------

Co-authored-by: snehara99 <[email protected]>

* Fix link in configure.md (#3899)

The section is called "General options", not "Generic options".

* Fix typo in configure.md (#3900)

als -> also

Co-authored-by: Garrett Campbell <[email protected]>

* The kit name for Clang/MSVC too long, put the arch at the front (#3835)

[kit] Found Kit (trusted): Clang 17.0.3 (MSVC CLI) for MSVC 17.10.35004.147 (Visual Studio Community 2022 Release - x86)
[kit] Found Kit (trusted): Clang 17.0.3 (GNU CLI) for MSVC 17.10.35004.147 (Visual Studio Community 2022 Release - x86)
[kit] Found Kit (trusted): Clang 17.0.3 (MSVC CLI) for MSVC 17.10.35004.147 (Visual Studio Community 2022 Release - amd64)
[kit] Found Kit (trusted): Clang 17.0.3 (GNU CLI) for MSVC 17.10.35004.147 (Visual Studio Community 2022 Release - amd64)

Signed-off-by: Yonggang Luo <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>

* Update triage-labels.yml

* Update OneLocBuild process (#3912)

* try service connection already there

* use variables

* Delete .github/workflows/closed-fixed-pending-release.yml

* Only visual studio 2015 neesd fixes the windows sdk path (#3837)

Co-authored-by: Garrett Campbell <[email protected]>

* Dispose of Launch terminal if environment has changed (#3902)

* Compare entire terminal launch environment and dispose if not equal

* Updated CHANGELOG

---------

Co-authored-by: Garrett Campbell <[email protected]>

* Localization - Translated Strings (#3884)

Co-authored-by: Garrett Campbell <[email protected]>

* implement  #2521 by adding output channel argument (#3785)

* implement  #2521 by adding output channel argument

* fix failed configuration not showing output channel on "on error"

* implement review, add changelog

* fix changelog

---------

Co-authored-by: Garrett Campbell <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>

* doc: cmake.environment is not applied to launch/debug (#3926)

* Don't require Ninja or Make on PATH when checking generators (#3927)

* Preset file expansion on open/save and expansion validation (#3905)

This change changes the way we do preset file expansion. Expansion now occurs upfront on file open or save, and if there are no errors, the expanded presets will be cached so repeated expansion is not necessary every time getAll{type of preset}Presets() is called.

The only time expansion will happen again is on set preset, which will then also apply the VS developer environment as needed. This is avoided on the initial expansion for performance.

If there are errors in expansion, the errors are shown in the problems panel per file. The presets file will also be set to undefined, which will invalidate that file and not allow any presets in that file to be recognized/selected as valid presets. This is in line with the CMake command line experience.

Some notes:

- The ${generator} macro should not work for packagePresets, but should now expand correctly for all other presets and evaluate conditions correctly
- Tertiary preset cache was added (really its just the original presets cache but used in a new way) to account for included json files that wouldnt be in the original presets files

* better match keybindings to what vscode has (#3928)

* better match keybindings to what vscode has

* update changelog

* Revert "Don't require Ninja or Make on PATH when checking generators (#3927)" (#3938)

This reverts commit bbc74d8.

* check for quick start in select configure preset to prevent second configure (#3933)

Co-authored-by: Garrett Campbell <[email protected]>

* ensure we take deep copy of presets for presetsPlusIncluded (#3939)

* update telemetry key (#3944)

* update telemetry key

* typo

* Fix GitHub 1401, diagnostics relative to workspace folder (#3780)

* Fix GitHub 1401, diagnostics relative to workspace folder

 - relative diagnostics files are searched in build_dir and src_dir,
   first existing file is returned
 - defaults to old behavior : `path.resolve(build_dir, file)`
 - `resolveDiagnostics` has been made async to not slow down IDE when
   testing files

* update ChangeLog for #1401

* fix relative file resolution diagnostics test

 - diagnostics paths always use POSIX separators (see `normalizePath` in
   [src/util.ts](src/util.ts))

---------

Co-authored-by: Sylvain Fargier <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>

* Configure precondition handler to return boolean to signal a successful recovery case (#3776)

* Making configure precondition handler return a boolean helps to differentiate the successful recovery cases

* Fix pre-condition handler prototype errors in tests

* Experiment with prototypes to fix linter errors

* Add setting for building whole build dir when clean configure

* Remove anything related to deleteBuildDirOnCleanConfigure since it's in a different PR. Keep proper promise<bool> prototype for pre-configure handler return and fix appropriately compilation and lint errors in tests.

* Forgot one file to remove deleteBuildDirOnCleanConfigure from

* Remove forgotten comment

* Add changelog entry

* remove changes not needed

* removing more bad changes

* add logic to regenerate the driver after selecting cmakelists

* remove unused imports

* keep sanity check in _beforeConfigureOrBuild

* only ensure we set the variable so that on retry, it works

* switch return

* erroneous update

* fix

---------

Co-authored-by: Garrett Campbell <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>

* Localization - Translated Strings (#3932)

* Use template for release pipelines (converted from classic) (#3945)

* try to convert release pipeline to yaml

* ensure trigger

* fix variable expansion

* specify name specifically

* add release and fix powershell setup

* fix name

* uncomment vsce task

* only do release pipeline on release branch

* only allow rel branch for release

* enable trigger always, we can rely on manual verification

* evaluate inherit presets based on presets that should be visible from file (#3941)

* initial changes

* modify other preset flows

* fix unused import

* remove unused import

* check for default preset

* acocunt for userpresets

* remove extra condition

---------

Co-authored-by: Garrett Campbell <[email protected]>

* fix pipelineArtifact reference (#3948)

* fix pipelineArtifact reference

* update variable update

* try corrected destinationPath

* fix destination typo

* switch to targetPath test

* use correct manual validation task

* Update pipeline (#3952)

* fix validation and pipeline, commented out vsce for testing

* fix indentation for job

* uncomment vsce

* Set usepresets context after manually creating presets file (#3935)

Fixes #3854. Support for watching multiple paths (cmakepresets.json/cmakeuserpresets.json/include files) was broken due to a Chokidar bug. Created a wrapper class to handle this scenario.

* Localization - Translated Strings (#3954)

* Ensure we correctly inherit preset from UserPreset (#3958)

* fix

* analyze user presets first because it's the base if it exists

* more updates to fix include files and telemetry, still needs work and testing

* ensure telemetry and other uses of 'all..Presets' is right

* more fixes

* ensure we don't duplicate cmakepresets in userpresets includes

* remove unnecessary return

* unionWith consistency

* add test

* saving progress (#3960)

* only do special handling of ~ in linux, it breaks windows (#3965)

* Remove popups and update defaults for `configureOnOpen` (#3967)

* update defaults and remove popups

* update changelog

* fix types for configureOnOpen

* fix eslint

* Update vscode-tas-client. (#3981)

* add telemetry for developer environment use (#3975)

* fix node versions in pipelines

* remove item from yml

* Localization - Translated Strings (#3984)

* Update cmake-presets.md (#3992)

Fixing broken links

* fix regression of kit environment variables (#3991)

* rollbar try catch (#3985)

Co-authored-by: Fatima Qarni <[email protected]>

* switch to variable

* switch to variable

* fix env expansion (#3997)

* In short, with our recent updates, we are attempting to expand every
string in the environment. This isn't a problem in most cases, but it
exposed a bug in certain linux distros that use aliasing (environment
variables).

Therefore, we should be wiser about what we attempt to expand and only
expand the presets environment variables the user has in their files.
To do this, we need to be smarter about what we save in our cache and
update by reference.


* updated the other presets so they dont always have to reexpand configure preset. when they do, use plusIncludes which has the dev env cached if its been expanded before. also include the inherited parent envs

* Fix environment expansion so we don't expand unnecessary variables - don't save the process.env or parent environment to the environment field of the cache.

* Don't re-expand configure presets in the associated build/test/etc presets.

* Fix expansion reporting issues with reporting an invalid config preset, and changing for each loop to a traditional for loop to make sure we dont have async issues with reporting.

* fix validation bug for not being able to find a null config preset

---------

Co-authored-by: Garrett Campbell <[email protected]>

* update third parties (#4001)

* return expandedPreset, not preset (#4008)

* return expandedPreset, not preset

* make sure user presets are considered

* Localization - Translated Strings (#4003)

* add change from rel that I didn't do here (#4014)

* fix presets expansion (#4024)

* fix presets expansion

* missed a change

* update changelog

* if Win64 is at the end of the generator, use platform x64 (#4025)

* fix generator logic (#4033)

* fix generator logic

* fix logic

* fix logic

* fix use of gen.name

* Correctly store cache and update `binaryDir` (#4028)

* fix binary dir

* fixes the issue, but more testing and possible improvement to come

* set expandedPreset.binaryDir if already set too

* properly update caches, ensure we correctly store cached presets

* remove some unnecessary comments

* fix linter errors

* update envOverride with expandedPreset env

* update the changelog

* update parent environment when never

---------

Signed-off-by: Yonggang Luo <[email protected]>
Co-authored-by: snehara99 <[email protected]>
Co-authored-by: Andreea Isac <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>
Co-authored-by: Joan Marcè i Igual <[email protected]>
Co-authored-by: [email protected] <[email protected]>
Co-authored-by: vinocher-bc <[email protected]>
Co-authored-by: Garrett Campbell <[email protected]>
Co-authored-by: Bob Brown <[email protected]>
Co-authored-by: Jeremie Allard <[email protected]>
Co-authored-by: hippo91 <[email protected]>
Co-authored-by: LiuZengqiang <[email protected]>
Co-authored-by: Cy 'kkm' Katsnelson <[email protected]>
Co-authored-by: Jonathan Phippen <[email protected]>
Co-authored-by: moyo1997 <[email protected]>
Co-authored-by: Andrew Shark <[email protected]>
Co-authored-by: Yonggang Luo <[email protected]>
Co-authored-by: stepeos <[email protected]>
Co-authored-by: fargies <[email protected]>
Co-authored-by: Sylvain Fargier <[email protected]>
Co-authored-by: Sean McManus <[email protected]>
Co-authored-by: Sinem Akinci <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CMakeUserPresets.json - not parsed anymore in v1.19.46
3 participants