Skip to content

Bundle pkgconf with VitaSDK - #190

Draft
devnoname120 wants to merge 2 commits into
vitasdk:masterfrom
devnoname120:fix/windows-pkg-config
Draft

devnoname120 wants to merge 2 commits into
vitasdk:masterfrom
devnoname120:fix/windows-pkg-config

Conversation

@devnoname120

@devnoname120 devnoname120 commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Dependency

Depends on vitasdk/vita-toolchain#305.

This PR is intentionally a draft while #305 is unmerged. To exercise the coordinated change in CI, this branch temporarily points TOOLCHAIN_REPOSITORY at devnoname120/vita-toolchain and pins the exact signed #305 head, 9e3860c1617b8f55162851ff4093d3446093d8b9. Before this PR is merged, restore the official vitasdk/vita-toolchain URL and replace the pin with #305's eventual upstream squash commit.

Problem

VitaSDK currently installs the target-aware arm-vita-eabi-pkg-config frontend but does not ship its host pkg-config/pkgconf backend. A fresh installation therefore depends on the user installing a compatible host implementation separately. On Windows, that also leaves the native frontend introduced by #305 without a guaranteed sibling backend.

Changes

  • build pinned pkgconf 3.0.7 as a host-native tool for every SDK host;
  • install pkgconf/pkgconf.exe and its license in the core SDK;
  • make finalization, SDK validation, core-package validation, and bootstrap validation require both the backend and Vita frontend;
  • extend Unix and Windows bootstrap smoke tests to query a target .pc file from an SDK path containing spaces while hostile host PKG_CONFIG_* values are set;
  • make the native Windows bootstrap smoke test configure an actual CMake project using find_package(PkgConfig) and pkg_check_modules(IMPORTED_TARGET ...) through #305's frontend;
  • add package and SDK-fixture regression coverage for Unix and Windows layouts.

Verification

  • Native Linux and MinGW pkgconf 3.0.7 ExternalProject builds pass.
  • The Windows pkgconf.exe depends only on ADVAPI32.dll, KERNEL32.dll, and msvcrt.dll.
  • Bootstrap/core package contract tests pass for Unix and Windows layouts.
  • SDK validation fixtures reject missing frontend/backend pairs and accept complete pairs.
  • The PowerShell bootstrap smoke-test contract passes.
  • A coupled MinGW stage-2 superbuild built and installed both executables, and resolved a Vita target .pc file through Wine from an SDK path containing spaces.
  • A separate end-to-end test using Windows CMake 3.31.6 under Wine successfully ran find_package(PkgConfig) and pkg_check_modules(IMPORTED_TARGET ...), selected package version 1.0, and ignored hostile host metadata.

Build a pinned host-native pkgconf for every SDK, validate and package it with the cross frontend, and exercise target metadata isolation in bootstrap smoke tests.
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.

1 participant