Compare commits

...

10 Commits

Author SHA1 Message Date
Dustin L. Howett
5facf11da5 Use the Terrapin Retrieval Tool to download vcpkg artifacts 2026-05-26 17:18:31 -05:00
Boliang Zhang (from Dev Box)
bb2c171aa6 fix(vcpkg): pin VcpkgConfiguration; drop unused fixup_pkgconfig
Two follow-ups discovered during HUMAN local Debug-build validation of
this PR and re-investigation of the failing Microsoft-internal signed
release build (Dart 147845158).

1) Cpp.Build.props: force VcpkgConfiguration to follow $(Configuration).

   vcpkg.props (imported via ForceImportBeforeCppProps) infers
   VcpkgConfiguration from $(UseDebugLibraries). By the time vcpkg.props
   runs, Microsoft.Cpp.Default.props has already defaulted
   UseDebugLibraries to "false"; the PowerToys-wide Debug override that
   sets it to "true" lives later in this same file and only takes effect
   AFTER vcpkg.props has already picked its branch. Net effect: every
   Debug build silently linked the Release-built spdlog (MT) into Debug
   consumers (MTd), producing 10x LNK2038 _ITERATOR_DEBUG_LEVEL /
   RuntimeLibrary mismatches and aborting runner.exe link with LNK1319.

   Setting VcpkgConfiguration explicitly before vcpkg.props is imported
   forces the matching debug\lib variant to be auto-linked.

   Shine-oss PR matrix only exercises Release, which is why CI was green
   and this regressed on first local Debug build.

2) deps/vcpkg-overlays/spdlog/portfile.cmake: drop vcpkg_fixup_pkgconfig().

   PowerToys consumes spdlog via vcpkg's MSBuild auto-link, not via
   pkg-config, so this call did no useful work for us. It does, however,
   trigger a pkgconf tool download from mirror.msys2.org. That mirror is
   blocked on Microsoft internal Dart build agents; vcpkg auto-falls
   back to repo.msys2.org and succeeds (exit 0), but the failed first
   attempt writes "error:" to stderr and MSBuild's <Exec> task then
   force-rewrites ExitCode to -1, yielding MSB3077 and a "successful
   download = failed build" inversion. Dropping the call eliminates the
   whole download path. Restricted-network local dev boxes benefit too.

Validated locally on VS 2026 (v145 toolset) at HEAD:
- build-essentials.cmd -Platform x64 -Configuration Debug -> 0 errors
- Link command now uses
  vcpkg_installed\x64\x64-windows-static\debug\lib\*.lib
- logger.vcxproj Release x64 -> logger.lib produced
- Full from-zero vcpkg_installed rebuild of spdlog port: completes with
  no msys2 downloads attempted

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-26 23:37:55 +08:00
Boliang Zhang (from Dev Box)
f5ea0f65c4 review feedback: trim Cpp.Build.props comments; fix stale Error message
Cumulative additions to Cpp.Build.props dropped from 66 to 35 lines.

Comments
--------
Replaced the 26-line lecture explaining MSBuild import order and
per-project-opt-in history with a 4-line summary of what the block does.
The history belongs in commit messages and PR description, not in
permanently-checked-in comments.

Compressed the 6-line fail-fast rationale to a single inline comment.

Error message
-------------
The Error text previously suggested running
`tools\build\build-essentials.cmd` to clone+bootstrap a local vcpkg,
which became stale after the previous commit removed all vcpkg logic
from build-essentials.ps1. Rewrote to:

  - Lead with the .vsconfig path (the maintainer-recommended fix).
  - Point users at the VS Installer with concrete click steps.
  - Mention that Visual Studio will auto-prompt for missing .vsconfig
    components when PowerToys.slnx is opened.
  - Keep the VCPKG_ROOT fallback for users with vcpkg installed elsewhere.
  - Drop the deps/vcpkg clone-yourself instruction (we don't want to
    teach users that path; .vsconfig is the supported route).

Verified
--------
- Bogus VcpkgRoot ('C:\Bogus\NonExistent') triggers the Error with the
  new wording: "PowerToys requires the 'vcpkg' Visual Studio component,
  but it was not found. Open the Visual Studio Installer..."
- Normal build (VCPKG_ROOT set to VS-shipped vcpkg) green:
  src/common/logger/logger.vcxproj Release|x64 builds cleanly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-26 23:35:47 +08:00
Boliang Zhang (from Dev Box)
13639fcdba review feedback (DHowett v2): strict Terminal alignment — drop runtime-clone scripts, declare vcpkg in .vsconfig
Addresses 4 inline comments from https://github.com/microsoft/PowerToys/pull/48039#pullrequestreview-4343165759 :

1. steps-install-vcpkg.yml: dropped the `git checkout $baseline` step.
   DHowett: "Doesn't vcpkg handle the baseline itself? ... Terminal has never
   done this. This seems like an overly complicated way to do what amounts
   to nothing." Correct — vcpkg.json's builtin-baseline controls registry
   resolution regardless of which vcpkg tool commit is checked out.
   The template now matches Terminal's exactly (with the useVSPreview
   parameter kept from the previous commit).

2. deps/spdlog.props: removed the "this sheet" wording and the multi-line
   explanation of MSBuild import order. Per DHowett's "not a sheet" + "this
   is generally true of all props and targets". Replaced with a 3-line
   comment that just says what the file is for.

3. tools/build/build-essentials.ps1: removed the entire vcpkg detection +
   runtime-clone block.
   DHowett: "Terminal has never needed this. ... We can just direct users
   to install the vcpkg component in visual studio. We don't need a script
   or anything else to do it, we just put it in .vsconfig and then visual
   studio will warn them when they do not have it installed."
   Users now install via .vsconfig (#4 below). If they don't, the
   fail-fast <Target> in Cpp.Build.props produces a clear error.

4. .vsconfig: added Microsoft.VisualStudio.Component.Vcpkg to the
   existing component list. Matches Terminal's .vsconfig. Visual Studio
   prompts users to install missing components when they open
   PowerToys.slnx, so no separate setup step is needed.

Unchanged
---------
- Three-tier VcpkgRoot fallback in Cpp.Build.props (matches Terminal's
  src/common.build.pre.props exactly).
- Fail-fast PowerToysEnsureVcpkgAvailable <Target> (gives a clearer error
  than missing-include when all three tiers miss).
- Overlay port at deps/vcpkg-overlays/spdlog/ (unchanged).

Verification
------------
Local Release|x64 build of FancyZonesLib.vcxproj green (~27 s on a warm
binary cache) via VS-shipped vcpkg.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-26 23:35:47 +08:00
Boliang Zhang (from Dev Box)
44b2c91013 review feedback (Copilot): plumb useVSPreview into steps-install-vcpkg
Addresses 1 of 3 nit comments from https://github.com/microsoft/PowerToys/pull/48039#pullrequestreview-4343165759
(the other 2: PR description updated via gh pr edit; ForceImportAfterCppTargets unconditional set declined as it matches the existing PowerToys pattern in Directory.Build.props:85).

Adds a `useVSPreview` boolean parameter (default false) to
`steps-install-vcpkg.yml` and only appends `-prerelease` to the vswhere
call when it's true. job-build-project.yml passes through the existing
parameter of the same name so stable-VS pipelines no longer risk picking
up a Preview install when both are present on the agent.

Local dev (`tools/build/build-essentials.ps1`) keeps `-prerelease`
unconditionally because developer machines often have only a single VS
install (frequently Preview), and selecting deterministically is less
valuable than "find whatever VS is here" locally.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-26 23:35:47 +08:00
Boliang Zhang (from Dev Box)
ac64dfb51f review feedback (Copilot): pin runtime vcpkg clones, share install dir across configs, fail fast, fix stale comments
Addresses 6 of 7 review comments from https://github.com/microsoft/PowerToys/pull/48039#pullrequestreview-4342550944
(the 7th — global VcpkgEnabled=true — is a deliberate trade-off; see the
expanded Cpp.Build.props comment for why per-project opt-in via spdlog.props
proved unworkable on this codebase's import order).

What changes
------------
Cpp.Build.props
  - VcpkgInstalledDir: dropped $(Configuration) from the path
    (now `vcpkg_installed\$(Platform)\`). vcpkg already separates debug/
    release artifacts inside the same triplet directory ($triplet/lib vs
    $triplet/debug/lib), so a single install dir per platform is correct
    and avoids redundant restores on config switches.
  - Added a fail-fast <Target>: when VcpkgEnabled=true but vcpkg.props
    cannot be found at the resolved VcpkgRoot, abort with a clear error
    listing the three resolution paths (VS component, VCPKG_ROOT, or
    build-essentials.cmd). Previously the import was silently skipped and
    surfaced as opaque C1083/LNK2019 errors much later in the build.
  - Expanded the leading comment to call out the per-project-opt-in
    trade-off explicitly so future readers don't repeat the attempt.

.pipelines/v2/templates/steps-install-vcpkg.yml
  - When falling back to a fresh vcpkg clone, check out the commit listed
    in vcpkg.json's `builtin-baseline` after cloning, before bootstrapping.
    Previously the clone tracked microsoft/vcpkg HEAD, which makes CI
    non-reproducible (a new vcpkg HEAD can change tool behavior or break
    restores even when the manifest baseline is pinned). The baseline
    commit is read from vcpkg.json at runtime so the two cannot drift.

tools/build/build-essentials.ps1
  - Same baseline-pinning behavior as the CI template.
  - Handles three states correctly: (a) no clone yet -> clone+checkout
    baseline, (b) existing clone at the wrong revision -> fetch+checkout
    baseline, (c) existing clone at the right revision -> no-op. Avoids
    unnecessary network round-trips on subsequent runs.
  - Updated the leading comment: vcpkg integration is wired in
    Cpp.Build.props (with vcpkg.targets in Cpp.Build.targets), not
    deps/spdlog.props.

.pipelines/v2/templates/job-build-project.yml
  - Updated the leading comment for the same reason.

Verification
------------
Local Release|x64 build of src/modules/fancyzones/FancyZonesLib/FancyZonesLib.vcxproj
green (~87 s) with the new VcpkgInstalledDir layout. /preprocess output
confirms the fail-fast <Target> is properly merged into every .vcxproj.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-26 23:35:47 +08:00
Boliang Zhang (from Dev Box)
42fd684c48 fix(vcpkg): wire vcpkg integration globally so import order is correct; fix 3 hard-coded spdlog include paths; spell-check
Two root causes of the v2 CI failure on PR #48039:

1. Wrong import location for vcpkg integration
-----------------------------------------------
v2 put VcpkgEnabled/VcpkgRoot/vcpkg.props import into deps/spdlog.props,
which was then imported per-project. That works ONLY for projects that
import spdlog.props BEFORE Microsoft.Cpp.targets (e.g. src/common/logger/
logger.vcxproj, which imports it at line 42 before Cpp.targets at line 80).

But the majority of PowerToys .vcxproj files import spdlog.props AFTER
Microsoft.Cpp.targets (e.g. FancyZonesLib at L156/L157, SettingsAPI at
L54/L55, CmdPalKeyboardService at L132/L133). At that point Microsoft.Cpp.
targets has already set up ClCompile, so vcpkg.props' include-path wiring
is dead-on-arrival → C1083 errors for spdlog/spdlog.h.

Fix: follow the Windows Terminal pattern strictly — set all vcpkg properties
and import vcpkg.props in Cpp.Build.props (loaded via ForceImportBeforeCppProps
for every .vcxproj BEFORE Microsoft.Cpp.props). vcpkg.targets continues to
be imported in Cpp.Build.targets (loaded via ForceImportAfterCppTargets,
AFTER Microsoft.Cpp.targets). Order is now guaranteed correct for every
C++ project, regardless of where they import spdlog.props.

Side effect: vcpkg integration is now global rather than per-project opt-in.
Since the manifest at the repo root declares only spdlog, non-spdlog C++
projects pay only the vcpkg install latency (~0.5 s on cache hits) and
have an unused spdlog include path. With binary cache enabled this is
negligible.

deps/spdlog.props is reduced to a thin shim that just adds the historical
SPDLOG_* preprocessor defines for consumers (kept for backwards-compat;
85 projects already import it).

2. Three projects had hard-coded `deps\spdlog\include` paths
-----------------------------------------------------------
The earlier audit only checked for `<Import Project="...spdlog.props">`,
but missed projects that put `..\deps\spdlog\include` directly into
<AdditionalIncludeDirectories>. With deps/spdlog gone (submodule deleted)
these paths no longer exist.

Removed the hard-coded path entries from:
  - src/common/UnitTests-CommonUtils/UnitTests-CommonUtils.vcxproj
  - src/modules/LightSwitch/LightSwitchLib/LightSwitchLib.vcxproj
  - src/modules/LightSwitch/LightSwitchService/LightSwitchService.vcxproj

These projects already get the spdlog include path from vcpkg's global
auto-integration (via Cpp.Build.props), so no replacement needed. The
SPDLOG_* defines come from logger.h's transitive use, which still works.

3. Spell-check
--------------
Three more words flagged by check-spelling: `vcpkg` (lowercase variant,
case-sensitive against existing `Vcpkg`), `Applocal` (from
VcpkgApplocalDeps in Cpp.Build.props), and `pdbs` (lowercase variant from
`vcpkg_copy_pdbs` in the overlay portfile).

Verification
------------
Local builds all green:
  - src/common/logger/logger.vcxproj (Release|x64, 23.7 s) - sanity
  - src/modules/fancyzones/FancyZonesLib/FancyZonesLib.vcxproj (Release|x64, 70.7 s)
    - the LATE-import pattern that was failing in CI
  - src/modules/LightSwitch/LightSwitchLib (Release|x64, 10.8 s) - was hard-coded
  - src/common/SettingsAPI (Release|x64, 17.0 s) - late-import
  - src/common/UnitTests-CommonUtils (Debug|x64, 30.2 s) - was hard-coded AND
    exercises the MSVC 14.51 stdext::checked_array_iterator patch

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-26 23:35:47 +08:00
Boliang Zhang (from Dev Box)
8cffb59279 review feedback (DHowett): drop vcpkg submodule, use Visual Studio's vcpkg via VCPKG_ROOT
Addresses https://github.com/microsoft/PowerToys/pull/48039#pullrequestreview-4338835150
and the inline comment "why did this file get reformatted?" on .gitmodules.

Mirrors the pattern used by microsoft/terminal so developers can rely on the
vcpkg shipped with Visual Studio (`Microsoft.VisualStudio.Component.Vcpkg`),
override it via the VCPKG_ROOT env var, or fall back to a local clone — all
without the PowerToys repo carrying its own vcpkg submodule.

What changes
------------
- Remove `deps/vcpkg` as a git submodule:
  - Drop the [submodule "deps/vcpkg"] entry from .gitmodules and restore the
    surrounding formatting (the previous rewrite collapsed tabs and dropped
    the trailing newline; this brings the file back to a clean removal of
    just the spdlog block plus the existing expected-lite block).
  - Add `deps/vcpkg/` to .gitignore so a runtime fallback clone there isn't
    tracked.

- New reusable pipeline template `.pipelines/v2/templates/steps-install-vcpkg.yml`
  adapted from microsoft/terminal's `steps-install-vcpkg.yml`:
  prefers VS-shipped vcpkg via vswhere, falls back to cloning microsoft/vcpkg
  into deps/vcpkg and bootstrapping if VS doesn't have it; sets the
  pipeline-scoped VCPKG_ROOT variable either way.

- `.pipelines/v2/templates/job-build-project.yml`: use the new template
  instead of the inline bootstrap-vcpkg call. The Cache@2 key no longer
  references the (gone) deps/vcpkg HEAD.

- `deps/spdlog.props`: implement the same three-tier VcpkgRoot fallback as
  terminal/src/common.build.pre.props#L290-L293 :
    1. $(VCPKG_ROOT) (env var; CI sets this, build-essentials sets this)
    2. $(VsInstallRoot)\VC\vcpkg (VS-shipped vcpkg)
    3. $(RepoRoot)deps\vcpkg (runtime-cloned fallback)
  Also adopt VcpkgUseStatic + VcpkgPlatformTarget so the static-CRT triplet
  is derived rather than hard-coded per Platform.

- `tools/build/build-essentials.ps1`: same vswhere-first detection for local
  dev. Clones + bootstraps to deps/vcpkg only if VS doesn't ship vcpkg.
  Idempotent; sets VCPKG_ROOT for subsequent MSBuild invocations.

- `.github/actions/spell-check/expect.txt`: add 6 words newly introduced by
  the spdlog migration (buildsystems, DSPDLOG, portfile, SCL, stdext,
  toolsets) to clear the check-spelling CI failure.

Verification
------------
Local Debug|x64 build of src/common/logger/logger.vcxproj green (~50 s) via
the third fallback (runtime-cloned deps/vcpkg at tag 2026.04.27). The
VS-shipped vcpkg on my Dev Box happens to be the older 2026-02-21 release
which has a stale-lock issue when invoked through MSBuild integration on
this machine; CI agents with newer VS installs should land directly on the
first or second tier.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-26 23:35:47 +08:00
Boliang Zhang (from Dev Box)
a209cb7fbf ci/build: bootstrap vcpkg before MSBuild (CI + local dev), cache vcpkg binary archives
Follow-up to the spdlog vcpkg migration. Without these the first-time CI run
fails because vcpkg.exe doesn't exist when vcpkg.targets fires during VSBuild.

What changes
------------
.pipelines/v2/templates/job-build-project.yml
  - Add `Cache@2` task keyed on (vcpkg HEAD + vcpkg.json + vcpkg-configuration.json
    + every file under deps/vcpkg-overlays/), restoring/saving %LOCALAPPDATA%\vcpkg\archives.
    Only enabled when parameters.enablePackageCaching == true (same gate as the
    existing nuget caches).
  - Add a `Bootstrap vcpkg` pwsh step right after package caching, before VSBuild,
    invoking deps/vcpkg/bootstrap-vcpkg.bat -disableMetrics.

tools/build/build-essentials.ps1
  - Call deps/vcpkg/bootstrap-vcpkg.bat right after Ensure-VsDevEnvironment, so
    first-time local builds (and CI dry-runs that use build-essentials) just work
    without a separate manual step. Idempotent; subsequent calls return fast.
  - Soft-fail with a clear hint if deps/vcpkg is not initialized.

Notes / out of scope
--------------------
- Binary cache here is a LOCAL pipeline cache only. A remote NuGet-feed binary
  cache (Azure Artifacts) would survive across pipelines and across agents, and
  is the long-term answer; leaving that as a separate follow-up so this PR stays
  focused on "make CI green".
- No changes to job-build-sdk.yml / job-build-ui-tests.yml / job-fuzz.yml yet —
  those don't build the C++ projects that consume spdlog (job-build-sdk.yml
  builds the CmdPal Toolkit SDK; job-build-ui-tests builds dotnet test projects).
  If a future submodule migration affects those jobs, the same two steps can be
  inlined there.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-26 23:35:47 +08:00
Boliang Zhang (from Dev Box)
53e660f4c0 deps: migrate spdlog from git submodule to vcpkg manifest mode (overlay port pinned to 616866fc)
Per maintainer guidance (Mike Griese):
  - Convert each submodule to vcpkg one at a time.
  - Atomic commit per dep.
  - Do not bump the version; only variable is submodule -> vcpkg.

This commit is spdlog-only. expected-lite remains a submodule and will be
migrated separately.

What changes
------------
- Add deps/vcpkg as a git submodule pinned to vcpkg 2026.04.27
  (commit 56bb2411609227288b70117ead2c47585ba07713).
- Add vcpkg.json + vcpkg-configuration.json at repo root declaring spdlog
  as a manifest dependency with builtin-baseline pinned to the same commit.
- Add an overlay port at deps/vcpkg-overlays/spdlog/ that fetches the EXACT
  submodule commit (gabime/spdlog@616866fc, the snapshot 38 commits past
  v1.8.5 that deps/spdlog used to point at). The overlay applies a single-
  hunk patch that works around MSVC 14.51 removing
  stdext::checked_array_iterator (STL4043) in spdlog's bundled fmt 7 -
  same source-level workaround as the previous polyfill header, but
  applied to the upstream source via vcpkg's standard patch mechanism
  instead of being force-included into every consumer.
- Add Cpp.Build.targets, wired in via <ForceImportAfterCppTargets>, which
  imports vcpkg.targets conditionally on $(VcpkgEnabled) == 'true'. This
  keeps vcpkg auto-install + auto-link strictly opt-in per project.
- Rewrite deps/spdlog.props to set VcpkgEnabled=true, the right
  static-CRT triplet (x64-windows-static / arm64-windows-static), and to
  import vcpkg.props. The historical SPDLOG_* preprocessor defines are
  preserved so consumer source code compiles identically.
- Remove deps/spdlog submodule, deps/spdlog-msvc-fix/ polyfill, and
  src/logging/ (the in-tree wrapper that compiled spdlog .cpp sources
  into spdlog.lib). spdlog.lib now comes from vcpkg's installed
  artifacts via MSBuild auto-link.
- Remove the single <ProjectReference Include="..\..\logging\logging.vcxproj">
  from src/common/logger/logger.vcxproj, plus 3 stale references from
  PowerToys.Settings.slnf, CommandPalette.slnf, and
  Microsoft.CmdPal.Ext.PowerToys.slnf.
- Add vcpkg_installed/ to .gitignore.

Blast radius
------------
- VcpkgEnabled stays false by default in Cpp.Build.props. Only projects
  that import deps/spdlog.props flip it to true, so non-spdlog projects
  are byte-for-byte unaffected.
- The static-CRT triplet (x64-windows-static / arm64-windows-static)
  matches PowerToys's existing /MT (Release) and /MTd (Debug) runtime,
  so there is no CRT crossover.
- Bundled fmt is preserved via -DSPDLOG_FMT_EXTERNAL=OFF; vcpkg's default
  spdlog port would have pulled in an external fmt dependency, which
  this overlay deliberately avoids (the MSVC 14.51 bug is in bundled
  fmt 7 and is what the patch targets).

Verification
------------
- Local manifest install + MSBuild smoke build of src/common/logger/logger.vcxproj
  (Release|x64): spdlog 1.8.5-pt-616866fc fetched, patch applied,
  built (~21 s end-to-end), logger.lib produced. spdlog.lib auto-linked
  from vcpkg's installed packages.

Out of scope
------------
- CI bootstrap (.pipelines\v2\templates) and a remote vcpkg binary cache
  are intentionally NOT touched here. First-time CI builds will add
  ~3-5 min per triplet to install spdlog; a follow-up will wire a
  binary cache (Azure Artifacts or NuGet feed) to bring that back to <30 s.
- deps/expected-lite remains a submodule (next migration PR per Mike's
  one-at-a-time rule).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-26 23:35:47 +08:00
30 changed files with 281 additions and 408 deletions

View File

@@ -63,6 +63,7 @@ APPEXECLINK
appext
apphost
APPLICATIONFRAMEHOST
Applocal
appmanifest
APPMODEL
APPNAME
@@ -165,6 +166,7 @@ bugreport
bugreportfile
BUILDARCH
BUILDNUMBER
buildsystems
buildtransitive
builttoroam
BUNDLEINFO
@@ -398,6 +400,7 @@ DEVMODE
DEVMODEW
DEVNODES
devpal
devpackages
DEVTYP
dfx
DIALOGEX
@@ -441,6 +444,7 @@ drawingcolor
dreamsofameaningfullife
drivedetectionwarning
DROPFILES
DSPDLOG
DSTINVERT
DString
dto
@@ -1113,6 +1117,7 @@ msstore
mstsc
msvcp
mswhql
msys
MT
MTND
multimonitor
@@ -1326,6 +1331,7 @@ pchast
PCIDLIST
PCTSTR
PCWSTR
pdbs
PDBs
PDEVMODE
PDFs
@@ -1364,6 +1370,7 @@ pinfo
pinvoke
pipename
PKBDLLHOOKSTRUCT
pkgconf
pkgfamily
PKI
plib
@@ -1384,6 +1391,7 @@ Pokedex
Pomodoro
popups
POPUPWINDOW
portfile
POSITIONITEM
POWERBROADCAST
powerdisplay
@@ -1601,6 +1609,7 @@ sancov
SAVEFAILED
schedtasks
SCID
SCL
Scode
SCREENFONTS
screenruler
@@ -1776,6 +1785,7 @@ STDAPI
stdc
stdcpp
stdcpplatest
stdext
STDMETHODCALLTYPE
STDMETHODIMP
steamapps
@@ -1898,6 +1908,7 @@ TNP
Toggleable
tontrager
Toolhelp
toolsets
toolwindow
TOPDOWNDIB
TOUCHEVENTF
@@ -1995,6 +2006,7 @@ vcgtq
VCINSTALLDIR
vcp
Vcpkg
vcpkg
vcpname
VCRT
vcruntime

5
.gitignore vendored
View File

@@ -370,3 +370,8 @@ installer/*/*.wxs.bk
.squad-workstream
.github/agents/**squad**.md
.github/workflows/**squad**.yml
# vcpkg manifest mode installed packages
vcpkg_installed/
deps/vcpkg/

3
.gitmodules vendored
View File

@@ -1,6 +1,3 @@
[submodule "deps/spdlog"]
path = deps/spdlog
url = https://github.com/gabime/spdlog.git
[submodule "deps/expected-lite"]
path = deps/expected-lite
url = https://github.com/martinmoene/expected-lite.git

View File

@@ -104,6 +104,10 @@ extends:
# Have msbuild use the release nuget config profile
additionalBuildOptions: /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:EnableCmdPalAOT=true
beforeBuildSteps:
# Install the Terrapin retrieval tool, which replaces vcpkg's download handler
# to redirect it to a safe Microsoft-controlled location
- template: .pipelines/v2/templates/steps-install-terrapin.yml@self
# Sets versions for all PowerToy created DLLs
- pwsh: |-
.pipelines/versionSetting.ps1 -versionNumber '${{ parameters.versionNumber }}' -DevEnvironment ''
@@ -140,6 +144,10 @@ extends:
signCertName: $(SigningSignCertName)
useManagedIdentity: $(SigningUseManagedIdentity)
clientId: $(SigningOriginalClientId)
beforeBuildSteps:
# Install the Terrapin retrieval tool, which replaces vcpkg's download handler
# to redirect it to a safe Microsoft-controlled location
- template: .pipelines/v2/templates/steps-install-terrapin.yml@self
- stage: Publish
displayName: Publish

View File

@@ -270,6 +270,34 @@ jobs:
parameters:
directory: $(build.sourcesdirectory)\src\modules\cmdpal
# --- vcpkg detection + binary cache --------------------------------------
# PowerToys consumes spdlog (and, over time, other native deps) via vcpkg in
# manifest mode. steps-install-vcpkg.yml prefers the vcpkg shipped with
# Visual Studio (Microsoft.VisualStudio.Component.Vcpkg) and falls back to a
# fresh clone of microsoft/vcpkg into deps/vcpkg if VS doesn't have it.
# Either way it sets the VCPKG_ROOT pipeline variable; MSBuild integration
# is wired globally from Cpp.Build.props (with vcpkg.targets in
# Cpp.Build.targets) using the three-tier VcpkgRoot fallback
# (env var > VS-shipped > deps/vcpkg runtime clone).
#
# Vcpkg's MSBuild integration runs `vcpkg install` once per project, so the
# binary cache below saves ~3-5 minutes per triplet on cache hits.
- template: .\steps-install-vcpkg.yml
parameters:
useVSPreview: ${{ parameters.useVSPreview }}
- ${{ if eq(parameters.enablePackageCaching, true) }}:
- task: Cache@2
displayName: 'Cache vcpkg binary archives'
inputs:
# Key on the inputs vcpkg uses to compute its package ABI: the manifest,
# configuration, every overlay-port file, and the agent OS.
key: '"vcpkg" | "$(Agent.OS)" | vcpkg.json | vcpkg-configuration.json | deps/vcpkg-overlays/**'
restoreKeys: |
"vcpkg" | "$(Agent.OS)"
"vcpkg"
path: $(LOCALAPPDATA)\vcpkg\archives
- ${{ parameters.beforeBuildSteps }}

View File

@@ -15,6 +15,9 @@ parameters:
- name: signingIdentity
type: object
default: {}
- name: beforeBuildSteps
type: stepList
default: []
jobs:
- job: "BuildSDK"
@@ -45,6 +48,8 @@ jobs:
parameters:
directory: $(build.sourcesdirectory)\src\modules\cmdpal
- ${{ parameters.beforeBuildSteps }}
- pwsh: |-
& "$(build.sourcesdirectory)\src\modules\cmdpal\extensionsdk\nuget\BuildSDKHelper.ps1" -Configuration "Release" -BuildStep "build" -IsAzurePipelineBuild
displayName: Build SDK

View File

@@ -0,0 +1,6 @@
steps:
- pwsh: |-
nuget install -source "https://microsoft.pkgs.visualstudio.com/Dart/_packaging/PowerToysDependencies/nuget/v3/index.json" TerrapinRetrievalTool -Prerelease -OutputDirectory _trt -Config "$(Build.SourcesDirectory)\.pipelines\release-nuget.config"
$TerrapinRetrievalToolPath = (Get-Item _trt\TerrapinRetrievalTool.*\win-x64\TerrapinRetrievalTool.exe).FullName
Write-Host "##vso[task.setvariable variable=X_VCPKG_ASSET_SOURCES]x-script,${TerrapinRetrievalToolPath} -b https://vcpkg.storage.devpackages.microsoft.io/artifacts/ -a true -u None -p {url} -s {sha512} -d {dst};x-block-origin"
displayName: Set up the Terrapin Retrieval Tool (vcpkg cache)

View File

@@ -0,0 +1,41 @@
# Adapted from microsoft/terminal build/pipelines/templates-v2/steps-install-vcpkg.yml.
#
# Detects vcpkg from (in order):
# 1. The Visual Studio installation (Microsoft.VisualStudio.Component.Vcpkg,
# declared in the repo-root .vsconfig).
# 2. A local clone at deps/vcpkg, cloned and bootstrapped on demand.
#
# Sets the pipeline-scoped VCPKG_ROOT variable; the rest of the build
# resolves vcpkg through it (see the three-tier VcpkgRoot fallback in
# Cpp.Build.props). No repo-level vcpkg submodule required.
parameters:
- name: useVSPreview
type: boolean
default: false
steps:
- pwsh: |-
# vswhere -prerelease is opt-in via the useVSPreview parameter so CI on
# stable VS doesn't accidentally pick up a Preview install when both
# are present. Matches the existing useVSPreview plumbing for
# verifyAndSetLatestVCToolsVersion.ps1.
$vswhereArgs = @('-latest', '-requires', 'Microsoft.VisualStudio.Component.Vcpkg', '-property', 'installationPath')
$useVSPreview = '${{ parameters.useVSPreview }}' -eq 'True'
if ($useVSPreview) { $vswhereArgs = @('-prerelease') + $vswhereArgs }
$VsInstallRoot = & 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe' @vswhereArgs
If ([String]::IsNullOrEmpty($VsInstallRoot)) {
Remove-Item -Recurse -Force deps/vcpkg -ErrorAction:Ignore
git clone https://github.com/microsoft/vcpkg deps/vcpkg
if ($LASTEXITCODE -ne 0) { throw "git clone vcpkg failed (exit $LASTEXITCODE)" }
Push-Location deps/vcpkg
& ./bootstrap-vcpkg.bat -disableMetrics
if ($LASTEXITCODE -ne 0) { Pop-Location; throw "bootstrap-vcpkg failed (exit $LASTEXITCODE)" }
$VcpkgRoot = $PWD
Pop-Location
Write-Host "Using vcpkg from local checkout ($VcpkgRoot)"
} Else {
$VcpkgRoot = Join-Path $VsInstallRoot 'VC\vcpkg'
Write-Host "Using vcpkg from Visual Studio installation ($VcpkgRoot)"
}
Write-Host "##vso[task.setvariable variable=VCPKG_ROOT]$VcpkgRoot"
displayName: Detect VS vcpkg or bootstrap locally

View File

@@ -18,6 +18,7 @@
"Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.ATL.Spectre",
"Microsoft.VisualStudio.Component.Vcpkg",
"Microsoft.VisualStudio.ComponentGroup.WindowsAppSDK.Cs"
]
}

View File

@@ -39,7 +39,8 @@
<PropertyGroup>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
<PreferredToolArchitecture Condition="'$(PROCESSOR_ARCHITECTURE)' == 'ARM64' or '$(PROCESSOR_ARCHITEW6432)' == 'ARM64'">arm64</PreferredToolArchitecture>
<VcpkgEnabled>false</VcpkgEnabled>
<!-- vcpkg.targets is imported via Cpp.Build.targets after Microsoft.Cpp.targets. -->
<ForceImportAfterCppTargets>$(MSBuildThisFileDirectory)Cpp.Build.targets</ForceImportAfterCppTargets>
<ReplaceWildcardsInProjectItems>true</ReplaceWildcardsInProjectItems>
<ExternalIncludePath>$(MSBuildThisFileDirectory)deps;$(MSBuildThisFileDirectory)packages;$(ExternalIncludePath)</ExternalIncludePath>
<!-- Enable control flow guard for C++ projects that don't consume any C++ files -->
@@ -121,6 +122,48 @@
<SpectreMitigation>Spectre</SpectreMitigation>
</PropertyGroup>
<!--
vcpkg integration. Set globally and loaded before Microsoft.Cpp.props (via
ForceImportBeforeCppProps) so that vcpkg.props' ClCompile hook is in place
before the C++ targets run. VcpkgRoot is resolved via the same three-tier
fallback used by microsoft/terminal (env var → VS-shipped → deps/vcpkg).
-->
<PropertyGroup Label="vcpkg">
<VcpkgEnabled>true</VcpkgEnabled>
<VcpkgEnableManifest>true</VcpkgEnableManifest>
<VcpkgManifestEnabled>true</VcpkgManifestEnabled>
<VcpkgManifestRoot>$(MSBuildThisFileDirectory)</VcpkgManifestRoot>
<VcpkgOSTarget>windows</VcpkgOSTarget>
<VcpkgUseStatic>true</VcpkgUseStatic>
<!--
Force VcpkgConfiguration to follow $(Configuration). Without this,
vcpkg.props infers VcpkgConfiguration from $(UseDebugLibraries), which
Microsoft.Cpp.Default.props has already defaulted to 'false' by the
time vcpkg.props is imported here (the PowerToys-wide Debug override
below runs LATER). That would silently link the Release-built spdlog
into Debug consumers and trigger LNK2038 (MT/MTd, _ITERATOR_DEBUG_LEVEL).
-->
<VcpkgConfiguration>$(Configuration)</VcpkgConfiguration>
<!-- vcpkg validates triplets case-sensitively; PowerToys uses ARM64 capital-case. -->
<VcpkgPlatformTarget Condition="'$(Platform)' == 'ARM64'">arm64</VcpkgPlatformTarget>
<VcpkgApplocalDeps>false</VcpkgApplocalDeps>
<VcpkgInstalledDir>$(MSBuildThisFileDirectory)vcpkg_installed\$(Platform)\</VcpkgInstalledDir>
<VcpkgRoot Condition="'$(VcpkgRoot)' == ''">$(VCPKG_ROOT)</VcpkgRoot>
<VcpkgRoot Condition="'$(VcpkgRoot)' == '' and '$(VsInstallRoot)' != ''">$(VsInstallRoot)\VC\vcpkg</VcpkgRoot>
<VcpkgRoot Condition="'$(VcpkgRoot)' == '' or !Exists('$(VcpkgRoot)\vcpkg.exe')">$(MSBuildThisFileDirectory)deps\vcpkg</VcpkgRoot>
<CAExcludePath>$(CAExcludePath);$(VcpkgInstalledDir)</CAExcludePath>
<VCPkgLocalAppDataDisabled>true</VCPkgLocalAppDataDisabled>
</PropertyGroup>
<!-- Fail fast with an actionable message instead of opaque C1083 spdlog/spdlog.h errors. -->
<Target Name="PowerToysEnsureVcpkgAvailable"
BeforeTargets="PrepareForBuild"
Condition="'$(MSBuildProjectExtension)' == '.vcxproj' and '$(VcpkgEnabled)' == 'true' and !Exists('$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg.props')">
<Error Text="PowerToys requires the 'vcpkg' Visual Studio component, but it was not found.%0A%0AOpen the Visual Studio Installer, click Modify on your VS install, search for 'vcpkg', enable 'C++ vcpkg package manager', and click Modify. (Visual Studio will also prompt you to install missing .vsconfig components when you open PowerToys.slnx.)%0A%0AIf you have vcpkg installed elsewhere, set the VCPKG_ROOT environment variable to its root before building.%0A%0ASearched: '$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg.props'" />
</Target>
<Import Project="$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg.props"
Condition="'$(MSBuildProjectExtension)' == '.vcxproj' and Exists('$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg.props')" />
<!-- Debug/Release props -->
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>

16
Cpp.Build.targets Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<!--
PowerToys global C++ post-targets. Wired in via
<ForceImportAfterCppTargets> in Cpp.Build.props so MSBuild loads this
file AFTER Microsoft.Cpp.targets for every .vcxproj.
Conditionally imports vcpkg.targets to hook ClCompile into vcpkg's
VcpkgInstallManifestDependencies target so spdlog headers are
auto-discovered on the include path and spdlog.lib is auto-linked.
vcpkg.props is imported in Cpp.Build.props (before Microsoft.Cpp.props);
vcpkg.targets needs the matching "after" hook here.
-->
<Import Project="$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg.targets"
Condition="'$(MSBuildProjectExtension)' == '.vcxproj' and '$(VcpkgEnabled)' == 'true' and Exists('$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg.targets')" />
</Project>

View File

@@ -68,10 +68,7 @@
<Project Path="src/common/interop/PowerToys.Interop.vcxproj" Id="f055103b-f80b-4d0c-bf48-057c55620033" />
</Folder>
<Folder Name="/common/log/">
<Project Path="src/common/logger/logger.vcxproj" Id="d9b8fc84-322a-4f9f-bbb9-20915c47ddfd">
<BuildDependency Project="src/logging/logging.vcxproj" />
</Project>
<Project Path="src/logging/logging.vcxproj" Id="7e1e3f13-2bd6-3f75-a6a7-873a2b55c60f" />
<Project Path="src/common/logger/logger.vcxproj" Id="d9b8fc84-322a-4f9f-bbb9-20915c47ddfd" />
</Folder>
<Folder Name="/common/notifications/">
<Project Path="src/common/notifications/BackgroundActivator/BackgroundActivator.vcxproj" Id="0b593a6c-4143-4337-860e-db5710fb87db" />

1
deps/spdlog vendored

Submodule deps/spdlog deleted from 616866fcf4

View File

@@ -1,94 +0,0 @@
// spdlog-msvc-fix.h
//
// Workaround for MSVC 14.51 (compiler version 19.51, _MSC_VER >= 1951) removing
// stdext::checked_array_iterator. Force-included for all spdlog consumers via
// deps/spdlog.props, because spdlog v1.8.5's bundled fmt format.h(357) still
// references this type inside #if defined(_SECURE_SCL) && _SECURE_SCL -- a
// branch entered in Debug builds where _ITERATOR_DEBUG_LEVEL > 0.
//
// On MSVC 14.50 and earlier, the type still exists in <iterator>, so this shim
// is a no-op via the _MSC_VER guard. On MSVC 14.51+, it provides a minimal
// pointer-backed substitute that satisfies the bundled fmt's usage:
//
// template <typename T> using checked_ptr = stdext::checked_array_iterator<T*>;
// template <typename T> checked_ptr<T> make_checked(T* p, size_t size) {
// return {p, size};
// }
// ... return make_checked(get_data(c) + size, n);
//
// When deps/spdlog is bumped past v1.14 (which ships fmt 10.2 and drops this
// dependency), this shim and its <ForcedIncludeFiles> entry in deps/spdlog.props
// can be deleted.
#pragma once
#if defined(__cplusplus) && defined(_MSC_VER) && _MSC_VER >= 1951
#include <cstddef>
#include <iterator>
#include <type_traits>
namespace stdext
{
template <typename _Ptr>
class checked_array_iterator
{
_Ptr _Myarray = nullptr;
std::size_t _Mysize = 0;
std::size_t _Myindex = 0;
public:
using iterator_category = std::random_access_iterator_tag;
using value_type = std::remove_cv_t<std::remove_pointer_t<_Ptr>>;
using difference_type = std::ptrdiff_t;
using pointer = _Ptr;
using reference = std::remove_pointer_t<_Ptr>&;
constexpr checked_array_iterator() = default;
constexpr checked_array_iterator(_Ptr arr, std::size_t size, std::size_t idx = 0) noexcept
: _Myarray(arr), _Mysize(size), _Myindex(idx)
{
}
constexpr reference operator*() const noexcept { return _Myarray[_Myindex]; }
constexpr pointer operator->() const noexcept { return _Myarray + _Myindex; }
constexpr reference operator[](difference_type n) const noexcept
{
return _Myarray[_Myindex + static_cast<std::size_t>(n)];
}
constexpr checked_array_iterator& operator++() noexcept { ++_Myindex; return *this; }
constexpr checked_array_iterator operator++(int) noexcept { auto t = *this; ++_Myindex; return t; }
constexpr checked_array_iterator& operator--() noexcept { --_Myindex; return *this; }
constexpr checked_array_iterator operator--(int) noexcept { auto t = *this; --_Myindex; return t; }
constexpr checked_array_iterator& operator+=(difference_type n) noexcept
{
_Myindex = static_cast<std::size_t>(static_cast<difference_type>(_Myindex) + n);
return *this;
}
constexpr checked_array_iterator& operator-=(difference_type n) noexcept
{
_Myindex = static_cast<std::size_t>(static_cast<difference_type>(_Myindex) - n);
return *this;
}
friend constexpr checked_array_iterator operator+(checked_array_iterator it, difference_type n) noexcept { it += n; return it; }
friend constexpr checked_array_iterator operator+(difference_type n, checked_array_iterator it) noexcept { return it + n; }
friend constexpr checked_array_iterator operator-(checked_array_iterator it, difference_type n) noexcept { it -= n; return it; }
friend constexpr difference_type operator-(checked_array_iterator a, checked_array_iterator b) noexcept
{
return static_cast<difference_type>(a._Myindex) - static_cast<difference_type>(b._Myindex);
}
friend constexpr bool operator==(checked_array_iterator a, checked_array_iterator b) noexcept { return a._Myindex == b._Myindex; }
friend constexpr bool operator!=(checked_array_iterator a, checked_array_iterator b) noexcept { return !(a == b); }
friend constexpr bool operator<(checked_array_iterator a, checked_array_iterator b) noexcept { return a._Myindex < b._Myindex; }
friend constexpr bool operator>(checked_array_iterator a, checked_array_iterator b) noexcept { return b < a; }
friend constexpr bool operator<=(checked_array_iterator a, checked_array_iterator b) noexcept { return !(b < a); }
friend constexpr bool operator>=(checked_array_iterator a, checked_array_iterator b) noexcept { return !(a < b); }
};
} // namespace stdext
#endif // __cplusplus && _MSC_VER >= 1951

19
deps/spdlog.props vendored
View File

@@ -1,9 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)spdlog\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>SPDLOG_WCHAR_TO_UTF8_SUPPORT;SPDLOG_COMPILED_LIB;SPDLOG_WCHAR_FILENAMES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ForcedIncludeFiles>$(MSBuildThisFileDirectory)spdlog-msvc-fix\include\spdlog-msvc-fix.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
</ClCompile>
</ItemDefinitionGroup>
<!--
SPDLOG_* preprocessor defines for spdlog consumers. The actual vcpkg
integration (VcpkgEnabled, VcpkgRoot, triplet, manifest install) lives
in Cpp.Build.props; this file just carries the defines that match how
the pre-vcpkg in-tree build was configured.
-->
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>SPDLOG_WCHAR_TO_UTF8_SUPPORT;SPDLOG_COMPILED_LIB;SPDLOG_WCHAR_FILENAMES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
</Project>

View File

@@ -0,0 +1,16 @@
--- a/include/spdlog/fmt/bundled/format.h
+++ b/include/spdlog/fmt/bundled/format.h
@@ -354,7 +354,12 @@ inline typename Container::value_type* get_data(Container& c) {
return c.data();
}
-#if defined(_SECURE_SCL) && _SECURE_SCL
+// PowerToys: stdext::checked_array_iterator was deprecated in VS 2019 16.10
+// and removed entirely in MSVC 14.51 (compiler 19.51, _MSC_VER >= 1951;
+// see microsoft/STL STL4043). Skip the broken branch on those toolsets so the
+// pointer-based fallback below is used instead. Drop this guard once
+// deps/spdlog is bumped past v1.14 (which ships fmt 10.2 and removes this code).
+#if defined(_SECURE_SCL) && _SECURE_SCL && (!defined(_MSC_VER) || _MSC_VER < 1951)
// Make a checked iterator to avoid MSVC warnings.
template <typename T> using checked_ptr = stdext::checked_array_iterator<T*>;
template <typename T> checked_ptr<T> make_checked(T* p, size_t size) {

View File

@@ -0,0 +1,50 @@
# PowerToys overlay port for spdlog.
#
# Pinned to the same git commit that the deleted deps/spdlog submodule pointed
# at, so this is a 1:1 submodule->vcpkg migration with no version change
# (per the maintainer guidance: convert one submodule at a time, atomic
# commit, don't also bump the version).
#
# A single hunk patch works around MSVC 14.51 STL4043 (removal of
# stdext::checked_array_iterator) in spdlog's bundled fmt 7. Drop this overlay
# (and switch to upstream vcpkg's spdlog port) once PowerToys bumps spdlog
# past v1.14, which ships fmt 10.2 and removes the affected code path.
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO gabime/spdlog
REF 616866fcf40340ea25a8f218369bad810ef58e72
SHA512 2076c527c7768627e6856b2f7ef663b185fd6251894cffd9299203d00f3d2de5696461060442dd72b96c9d3f0fd27f7f63ad2edfdf295e9b06c5fac6d6212faf
HEAD_REF v1.x
PATCHES
msvc-14.51-stdext-checked-array-iterator.patch
)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DSPDLOG_BUILD_EXAMPLE=OFF
-DSPDLOG_BUILD_TESTS=OFF
-DSPDLOG_BUILD_BENCH=OFF
-DSPDLOG_FMT_EXTERNAL=OFF
-DSPDLOG_WCHAR_SUPPORT=ON
-DSPDLOG_WCHAR_FILENAMES=ON
-DSPDLOG_NO_EXCEPTIONS=OFF
-DSPDLOG_BUILD_SHARED=OFF
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(PACKAGE_NAME spdlog CONFIG_PATH lib/cmake/spdlog)
# Intentionally omit vcpkg_fixup_pkgconfig(): PowerToys consumes spdlog via
# vcpkg's MSBuild auto-link (Cpp.Build.props), not via pkg-config. Calling
# fixup_pkgconfig triggers a pkgconf tool download from mirror.msys2.org,
# which is blocked on Microsoft internal Dart build agents. vcpkg falls back
# to repo.msys2.org and the download succeeds, but the stderr "error:" lines
# from the failed first attempt confuse MSBuild's Exec task into setting
# ExitCode=-1 (MSB3077) even though vcpkg.exe itself returns 0. Skipping
# the call avoids the whole problem; the resulting spdlog.pc is unused.
vcpkg_copy_pdbs()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

18
deps/vcpkg-overlays/spdlog/vcpkg.json vendored Normal file
View File

@@ -0,0 +1,18 @@
{
"name": "spdlog",
"version-string": "1.8.5-pt-616866fc",
"port-version": 0,
"description": "Very fast, header-only/compiled, C++ logging library. PowerToys overlay pinned to gabime/spdlog@616866fc (the exact submodule commit before this migration), with a single-hunk patch that works around MSVC 14.51 removing stdext::checked_array_iterator (STL4043).",
"homepage": "https://github.com/gabime/spdlog",
"license": "MIT",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}

View File

@@ -8,9 +8,6 @@
</Project>
<Project Path="../src/common/Telemetry/EtwTrace/EtwTrace.vcxproj" Id="8f021b46-362b-485c-bfba-ccf83e820cbd" />
<Project Path="../src/common/version/version.vcxproj" Id="cc6e41ac-8174-4e8a-8d22-85dd7f4851df" />
<Project Path="../src/logging/logging.vcxproj" Id="7e1e3f13-2bd6-3f75-a6a7-873a2b55c60f">
<Build Solution="Debug|ARM64" Project="false" />
</Project>
<Project Path="PowerToysSetupCustomActionsVNext/PowerToysSetupCustomActionsVNext.vcxproj" Id="b3a354b0-1e54-4b55-a962-fb5af9330c19">
<Build Solution="Debug|ARM64" Project="false" />
</Project>

View File

@@ -27,7 +27,7 @@
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>..\;..\utils;..\Telemetry;..\..\;..\..\..\deps\;..\..\..\deps\spdlog\include;..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.260126.7\include;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\;..\utils;..\Telemetry;..\..\;..\..\..\deps\;..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.260126.7\include;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp23</LanguageStandard>
<PreprocessorDefinitions>SPDLOG_WCHAR_TO_UTF8_SUPPORT;SPDLOG_HEADER_ONLY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>

View File

@@ -70,9 +70,6 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\logging\logging.vcxproj">
<Project>{7e1e3f13-2bd6-3f75-a6a7-873a2b55c60f}</Project>
</ProjectReference>
<ProjectReference Include="..\version\version.vcxproj">
<Project>{cc6e41ac-8174-4e8a-8d22-85dd7f4851df}</Project>
</ProjectReference>

View File

@@ -1,164 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<ProjectName>spdlog</ProjectName>
</PropertyGroup>
<Import Project="$(RepoRoot)deps\spdlog.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<DebugInformationFormat>None</DebugInformationFormat>
<ExceptionHandling>Sync</ExceptionHandling>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<WarningLevel>Level4</WarningLevel>
<PreprocessorDefinitions>WIN32;_WINDOWS;SPDLOG_COMPILED_LIB;SPDLOG_WCHAR_FILENAMES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)</ObjectFileName>
<FunctionLevelLinking>true</FunctionLevelLinking>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
</ClCompile>
<Lib>
<AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="$(RepoRoot)deps\spdlog\src\spdlog.cpp" />
<ClCompile Include="$(RepoRoot)deps\spdlog\src\stdout_sinks.cpp" />
<ClCompile Include="$(RepoRoot)deps\spdlog\src\color_sinks.cpp" />
<ClCompile Include="$(RepoRoot)deps\spdlog\src\file_sinks.cpp" />
<ClCompile Include="$(RepoRoot)deps\spdlog\src\async.cpp" />
<ClCompile Include="$(RepoRoot)deps\spdlog\src\cfg.cpp" />
<ClCompile Include="$(RepoRoot)deps\spdlog\src\fmt.cpp" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\async.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\async_logger-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\async_logger.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\common-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\common.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\formatter.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fwd.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\logger-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\logger.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\pattern_formatter-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\pattern_formatter.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\spdlog-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\spdlog.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\stopwatch.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\tweakme.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\version.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\backtracer-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\backtracer.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\circular_q.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\console_globals.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\file_helper-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\file_helper.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\fmt_helper.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\log_msg-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\log_msg.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\log_msg_buffer-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\log_msg_buffer.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\mpmc_blocking_q.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\null_mutex.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\os-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\os.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\periodic_worker-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\periodic_worker.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\registry-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\registry.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\synchronous_factory.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\tcp_client-windows.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\tcp_client.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\thread_pool-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\thread_pool.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\details\windows_include.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\android_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\ansicolor_sink-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\ansicolor_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\base_sink-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\base_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\basic_file_sink-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\basic_file_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\daily_file_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\dist_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\dup_filter_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\msvc_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\null_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\ostream_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\ringbuffer_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\rotating_file_sink-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\rotating_file_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\sink-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\stdout_color_sinks-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\stdout_color_sinks.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\stdout_sinks-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\stdout_sinks.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\syslog_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\systemd_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\tcp_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\win_eventlog_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\wincolor_sink-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\sinks\wincolor_sink.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bin_to_hex.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\chrono.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\fmt.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\ostr.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\chrono.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\color.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\compile.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\core.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\format-inl.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\format.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\locale.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\os.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\ostream.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\posix.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\printf.h" />
<ClInclude Include="$(RepoRoot)deps\spdlog\include\spdlog\fmt\bundled\ranges.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,122 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="$(ProjectDir)..\..\deps\spdlog\src\spdlog.cpp" />
<ClCompile Include="$(ProjectDir)..\..\deps\spdlog\src\stdout_sinks.cpp" />
<ClCompile Include="$(ProjectDir)..\..\deps\spdlog\src\color_sinks.cpp" />
<ClCompile Include="$(ProjectDir)..\..\deps\spdlog\src\file_sinks.cpp" />
<ClCompile Include="$(ProjectDir)..\..\deps\spdlog\src\async.cpp" />
<ClCompile Include="$(ProjectDir)..\..\deps\spdlog\src\cfg.cpp" />
<ClCompile Include="$(ProjectDir)..\..\deps\spdlog\src\fmt.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\async.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\async_logger-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\async_logger.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\common-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\common.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\formatter.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fwd.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\logger-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\logger.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\pattern_formatter-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\pattern_formatter.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\spdlog-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\spdlog.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\stopwatch.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\tweakme.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\version.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\backtracer-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\backtracer.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\circular_q.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\console_globals.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\file_helper-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\file_helper.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\fmt_helper.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\log_msg-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\log_msg.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\log_msg_buffer-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\log_msg_buffer.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\mpmc_blocking_q.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\null_mutex.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\os-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\os.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\periodic_worker-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\periodic_worker.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\registry-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\registry.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\synchronous_factory.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\tcp_client-windows.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\tcp_client.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\thread_pool-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\thread_pool.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\details\windows_include.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\android_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\ansicolor_sink-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\ansicolor_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\base_sink-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\base_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\basic_file_sink-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\basic_file_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\daily_file_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\dist_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\dup_filter_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\msvc_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\null_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\ostream_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\ringbuffer_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\rotating_file_sink-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\rotating_file_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\sink-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\stdout_color_sinks-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\stdout_color_sinks.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\stdout_sinks-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\stdout_sinks.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\syslog_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\systemd_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\tcp_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\win_eventlog_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\wincolor_sink-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\sinks\wincolor_sink.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bin_to_hex.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\chrono.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\fmt.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\ostr.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\chrono.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\color.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\compile.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\core.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\format-inl.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\format.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\locale.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\os.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\ostream.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\posix.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\printf.h" />
<ClInclude Include="$(ProjectDir)..\..\deps\spdlog\include\spdlog\fmt\bundled\ranges.h" />
</ItemGroup>
<ItemGroup>
<Filter Include="Header Files">
<UniqueIdentifier>{CDF4BA23-560C-3A6F-8D1C-2F5ACA434329}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\spdlog">
<UniqueIdentifier>{EFFE8123-D806-3145-8ABC-B48562A6C8F2}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\spdlog\details">
<UniqueIdentifier>{C546A431-88F1-390F-B0F0-D9CAC274B7F5}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\spdlog\fmt">
<UniqueIdentifier>{08320F28-6D0D-3217-B0B3-A98758C02C97}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\spdlog\fmt\bundled">
<UniqueIdentifier>{C856528D-4506-3A62-B279-CBB4558CB61D}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\spdlog\sinks">
<UniqueIdentifier>{A5EE33C4-AB64-38F0-BF4A-CCD02FFAB715}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{8B480F42-A230-3344-A387-2D050CFF7D9C}</UniqueIdentifier>
</Filter>
</ItemGroup>
</Project>

View File

@@ -84,7 +84,6 @@
..\..\..\common;
..\..\..\common\logger;
..\..\..\common\utils;
..\..\..\..\deps\spdlog\include;
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
</ClCompile>

View File

@@ -63,7 +63,6 @@
$(RepoRoot)src\common\SettingsAPI;
$(RepoRoot)src\common\Telemetry;
$(RepoRoot)src\;
..\..\..\..\deps\spdlog\include;
./;
%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>

View File

@@ -12,7 +12,6 @@
"src\\common\\interop\\PowerToys.Interop.vcxproj",
"src\\common\\logger\\logger.vcxproj",
"src\\common\\version\\version.vcxproj",
"src\\logging\\logging.vcxproj",
"src\\modules\\MouseUtils\\MouseJump.Common\\MouseJump.Common.csproj",
"src\\modules\\ZoomIt\\ZoomItSettingsInterop\\ZoomItSettingsInterop.vcxproj",
"src\\modules\\cmdpal\\CmdPalKeyboardService\\CmdPalKeyboardService.vcxproj",

View File

@@ -12,7 +12,6 @@
"src\\common\\interop\\PowerToys.Interop.vcxproj",
"src\\common\\logger\\logger.vcxproj",
"src\\common\\version\\version.vcxproj",
"src\\logging\\logging.vcxproj",
"src\\modules\\MouseUtils\\MouseJump.Common\\MouseJump.Common.csproj",
"src\\modules\\Workspaces\\Workspaces.ModuleServices\\Workspaces.ModuleServices.csproj",
"src\\modules\\Workspaces\\WorkspacesCsharpLibrary\\WorkspacesCsharpLibrary.csproj",

View File

@@ -14,7 +14,6 @@
"src\\common\\interop\\PowerToys.Interop.vcxproj",
"src\\common\\logger\\logger.vcxproj",
"src\\common\\version\\version.vcxproj",
"src\\logging\\logging.vcxproj",
"src\\modules\\MouseUtils\\MouseJump.Common\\MouseJump.Common.csproj",
"src\\modules\\ZoomIt\\ZoomItSettingsInterop\\ZoomItSettingsInterop.vcxproj",
"src\\modules\\powerdisplay\\PowerDisplay.Lib\\PowerDisplay.Lib.csproj",

6
vcpkg-configuration.json Normal file
View File

@@ -0,0 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
"overlay-ports": [
"deps/vcpkg-overlays"
]
}

11
vcpkg.json Normal file
View File

@@ -0,0 +1,11 @@
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
"name": "powertoys",
"description": "Native dependencies for PowerToys consumed via vcpkg manifest mode.",
"homepage": "https://github.com/microsoft/PowerToys",
"license": "MIT",
"dependencies": [
"spdlog"
],
"builtin-baseline": "56bb2411609227288b70117ead2c47585ba07713"
}