Skip to content

build: create subproject links as directories on Windows - #419

Merged
ylatuya merged 1 commit into
masterfrom
fix/windows-subproject-links
Nov 5, 2026
Merged

ylatuya merged 1 commit into
masterfrom
fix/windows-subproject-links

Conversation

@ylatuya

@ylatuya ylatuya commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Fixes the Windows reference decoder builds.

Path.symlink_to() creates a file symlink by default on Windows, so Meson cannot use subprojects/<name> as a subproject directory. It falls back to the stub .wrap file, which has no source_filename/source_url, and disables the subproject with:

Missing key 'source_filename' in mpeg4video.wrap
Subproject mpeg4video is buildable: NO (disabling)

The job stayed green because the subprojects are optional, while the decoders that use them were silently skipped on Windows.

This PR:

  • uses a junction on Windows and a regular symlink elsewhere;
  • verifies that each subproject link resolves to a directory;
  • repairs an existing file symlink or broken link before recreating it;
  • installs make on the Windows CI image, which the existing MPEG-4 AAC build still needs;
  • copies MinGW .exe decoder binaries with their extension, so mp4audec_mc is actually published;
  • skips the MPEG-4 AAC ER decoder on Windows because it is a separate known failure (sys/wait.h), unrelated to the subproject links;
  • verifies all expected reference decoders on every platform, with only the known Windows exclusions (JM and MPEG-4 AAC ER).

This is independent of any decoder change. It fixes the local subproject links used by MPEG-2 video, MPEG-2 AAC, libtsp and MPEG-4 Visual.

Base automatically changed from feat/mpeg4-video-reference-decoder to master November 3, 2026 10:18
@ylatuya
ylatuya force-pushed the fix/windows-subproject-links branch 6 times, most recently from de609bb to 38a9f34 Compare November 3, 2026 12:36
@rsanchez87
rsanchez87 requested review from rsanchez87 and removed request for rsanchez87 November 3, 2026 13:21
A plain symlink_to creates a file symlink on Windows, which Meson cannot
use as a subproject directory. It then falls back to the stub .wrap file,
which has no source_filename, and disables the subproject. This silently
skipped the reference decoders that use local subprojects on Windows.

Use a junction on Windows and a symlink elsewhere, and verify that the
link resolves to a directory. Junctions do not need developer mode or
SeCreateSymbolicLinkPrivilege and are always seen as directories.

Install make on the Windows CI image for the existing MPEG-4 AAC build,
and skip the MPEG-4 AAC ER decoder there because it is a separate known
Windows failure (sys/wait.h). Copy MinGW .exe decoder binaries with their
extension and verify all expected reference decoders in CI.
@ylatuya
ylatuya force-pushed the fix/windows-subproject-links branch from 38a9f34 to 14b9d0c Compare November 3, 2026 16:07
@ylatuya
ylatuya requested a review from rsanchez87 November 3, 2026 17:29
Comment thread .github/workflows/build-decoders.yml Resolved
@ylatuya
ylatuya merged commit 8a66047 into master Nov 5, 2026
9 checks passed
@ylatuya
ylatuya deleted the fix/windows-subproject-links branch November 5, 2026 15:28
@ylatuya ylatuya changed the title fix: create subproject links as directories on Windows build: create subproject links as directories on Windows Nov 5, 2026
@ylatuya

ylatuya commented Nov 5, 2026

Copy link
Copy Markdown
Contributor Author

The commit should have been 'build' instead of 'fix', sorry :(

@rsanchez87

Copy link
Copy Markdown
Contributor

The commit should have been 'build' instead of 'fix', sorry :(

I'm sorry I didn't detect that... at least having commit of #421 as build, we can have better the changelog

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.

2 participants