with one click
vcpkg-export-consumer-debug
// Debug iccDEV vcpkg, install/export, uninstall, and packaged consumer failures, especially Windows static CRT and path quoting regressions.
// Debug iccDEV vcpkg, install/export, uninstall, and packaged consumer failures, especially Windows static CRT and path quoting regressions.
Reproduce and triage ASAN/UBSAN findings against iccDEV tools with authoritative exit-code and stack-frame handling.
Maintainer workflow for scoping and updating iccDEV CI, CTest, CPack, sanitizer, workflow, and release-gate infrastructure.
Maintainer workflow for the pre-PR secure loop: code, build/test, SAST/CodeQL, dynamic sanitizer checks, fixes, and concise handoff.
Add or update iccDEV regression gates and tool-test workflow coverage while preserving GitHub Actions governance, sanitizer reporting, and issue traceability.
Maintain iccDEV repository labels, path labeler rules, issue triage labels, PR CI status labels, and label workflow governance.
Review and edit iccDEV documentation for signal, accuracy, canonical ownership, and low-noise handoff.
| name | vcpkg-export-consumer-debug |
| description | Debug iccDEV vcpkg, install/export, uninstall, and packaged consumer failures, especially Windows static CRT and path quoting regressions. |
| allowed-tools | ["bash","read","grep","glob","shell(git:*)","shell(gh:*)"] |
Use this skill when a review or workflow log mentions ci-vcpkg-ports,
ci-pr-action, examples/hello-iccdev, install manifests, uninstall, or
packaged CMake consumers.
For source refreshes without an upstream version bump, update the port as
version#port-version: increment ports/iccdev/vcpkg.json port-version, and
refresh ports/iccdev/portfile.cmake REF plus SHA512 together. CI should
use local source mode (VCPKG_ICCDEV_SOURCE and VCPKG_KEEP_ENV_VARS) so it
tests the checked-out branch, not the GitHub archive fallback.
gh pr view <PR> --repo InternationalColorConsortium/iccDEV \
--json headRefOid,headRefName,baseRefName,statusCheckRollup
git rev-parse HEAD
Signal:
MT_StaticRelease from Icc*2-static.lib conflicts with MD_DynamicRelease
LNK1169
Cause: the x64-windows-static packaged libraries were built with /MT, but
the consumer executable used the default /MD runtime.
Fix: when configuring the packaged Windows static consumer, pass the matching runtime explicitly:
cmake -S "examples\hello-iccdev" -B $exampleBuild `
-G "Visual Studio 17 2022" `
-A x64 `
-DCMAKE_BUILD_TYPE=Release `
-DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT\scripts\buildsystems\vcpkg.cmake" `
-DVCPKG_MANIFEST_MODE=OFF `
-DVCPKG_TARGET_TRIPLET=x64-windows-static `
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
Signal:
cmake --build ... --target uninstall --config Release
C:/Program Files/CMake/bin/cmake.exe is split at the space
Cause: generated uninstall scripts used unquoted @CMAKE_COMMAND@.
Fix:
execute_process(
COMMAND "@CMAKE_COMMAND@" -E remove "$ENV{DESTDIR}${file}"
)
Run local checks before pushing:
git diff --check -- \
Build/Cmake/RefIccMAXUninstall.cmake.in \
.github/workflows/ci-vcpkg-ports.yml \
.github/skills/vcpkg-export-consumer-debug/SKILL.md
python3 -c "import yaml; yaml.safe_load(open('.github/workflows/ci-vcpkg-ports.yml')); print('YAML parse OK')"
actionlint -no-color .github/workflows/ci-vcpkg-ports.yml
file Build/Cmake/RefIccMAXUninstall.cmake.in .github/skills/vcpkg-export-consumer-debug/SKILL.md
Final proof for these failures requires a GitHub-hosted Windows runner. Monitor
the source install/uninstall job and the packaged hello-iccdev consumer job
after pushing.
../../workflows/ci-vcpkg-ports.yml../../../Build/Cmake/RefIccMAXUninstall.cmake.in../../../examples/hello-iccdev/CMakeLists.txt../../../ports/iccdev/portfile.cmake