[vlc-commits] [Git][videolan/vlc][master] 3 commits: package/win32: make the manifest customizable

Steve Lhomme (@robUx4) gitlab at videolan.org
Thu Oct 15 15:41:29 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
52430729 by Steve Lhomme at 2026-10-15T15:07:47+00:00
package/win32: make the manifest customizable

- - - - -
c45a62be by Steve Lhomme at 2026-10-15T15:07:47+00:00
build: restrict the manifest to an architecture

The possible values are found in https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests?#assemblyIdentity

Unlike some C# binary we only target one CPU architecture at once.

- - - - -
99733c5d by Steve Lhomme at 2026-10-15T15:07:47+00:00
build: do not use include folders with module.rc

It doesn't include anything (no icon, no manifest, etc).

- - - - -


14 changed files:

- bin/Makefile.am
- bin/meson.build
- configure.ac
- extras/package/win32/libvlc.dll.manifest → extras/package/win32/libvlc.dll.manifest.in
- extras/package/win32/libvlccore.dll.manifest → extras/package/win32/libvlccore.dll.manifest.in
- extras/package/win32/package.mak
- extras/package/win32/vlc.exe.manifest → extras/package/win32/vlc.exe.manifest.in
- lib/Makefile.am
- lib/meson.build
- meson.build
- modules/Makefile.am
- modules/meson.build
- src/Makefile.am
- src/meson.build


Changes:

=====================================
bin/Makefile.am
=====================================
@@ -107,8 +107,8 @@ vlc_win32_rc.rc: $(top_builddir)/config.status vlc_win32_rc.rc.in
 	cd "$(top_builddir)" && \
 	$(SHELL) ./config.status --file="bin/$@"
 
-vlc_win32_rc.$(OBJEXT): vlc_win32_rc.rc $(top_srcdir)/extras/package/win32/vlc.exe.manifest
-	$(WINDRES) --include-dir $(top_srcdir)/share/icons --include-dir $(top_srcdir)/extras/package/win32 -i $< -o $@
+vlc_win32_rc.$(OBJEXT): vlc_win32_rc.rc $(top_builddir)/extras/package/win32/vlc.exe.manifest
+	$(WINDRES) --include-dir $(top_srcdir)/share/icons --include-dir $(top_builddir)/extras/package/win32 -i $< -o $@
 
 #
 # Plug-ins cache generator


=====================================
bin/meson.build
=====================================
@@ -30,13 +30,19 @@ if build_vlc and (host_system != 'darwin' or have_osx) and not have_win_store an
             configuration: rc_conf,
             install: false,
         )
+
+        vlc_manifest = configure_file(
+            input: files('../extras/package/win32/vlc.exe.manifest.in'),
+            output: 'vlc.exe.manifest',
+            configuration: rc_conf,
+        )
+
         vlc_win_extra = windows_rc.compile_resources(
             vlc_rc,
             include_directories: [
                 vlc_src_root / 'share/icons',
-                vlc_src_root / 'extras/package/win32',
             ],
-            depend_files: files('../extras/package/win32/vlc.exe.manifest'),
+            depend_files: [vlc_manifest],
         )
     endif
 


=====================================
configure.ac
=====================================
@@ -399,22 +399,26 @@ int foo() { return my_array[0]; }
             aarch64)
                 HAVE_WIN64="1"
                 WINDOWS_ARCH="arm64"
+                MANIFEST_ARCH="arm64"
                 PROGRAMFILES="PROGRAMFILES64"
                 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
             ;;
             amd64|x86_64)
                 HAVE_WIN64="1"
                 WINDOWS_ARCH="x64"
+                MANIFEST_ARCH="amd64"
                 PROGRAMFILES="PROGRAMFILES64"
                 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
                 X86ASMFLAGS="-f win64"
             ;;
             armv7)
                 WINDOWS_ARCH="arm"
+                MANIFEST_ARCH="arm"
                 PROGRAMFILES="PROGRAMFILES"
             ;;
             i?86)
                 WINDOWS_ARCH="x86"
+                MANIFEST_ARCH="x86"
                 PROGRAMFILES="PROGRAMFILES"
                 X86ASMFLAGS="-f win32"
                 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
@@ -425,6 +429,7 @@ int foo() { return my_array[0]; }
             ;;
         esac
         AC_SUBST([WINDOWS_ARCH])
+        AC_SUBST([MANIFEST_ARCH])
         AC_SUBST([PROGRAMFILES])
 
     fi
@@ -5306,6 +5311,9 @@ AM_COND_IF([HAVE_WIN32], [
     extras/package/win32/NSIS/spad.nsi
     extras/package/win32/NSIS/vlc.win32.nsi
     extras/package/win32/msi/config.wxi
+    extras/package/win32/libvlc.dll.manifest
+    extras/package/win32/libvlccore.dll.manifest
+    extras/package/win32/vlc.exe.manifest
   ])
 ])
 


=====================================
extras/package/win32/libvlc.dll.manifest → extras/package/win32/libvlc.dll.manifest.in
=====================================
@@ -2,7 +2,7 @@
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
     <assemblyIdentity
         version="1.0.0.0"
-        processorArchitecture="*"
+        processorArchitecture="@MANIFEST_ARCH@"
         name="libvlc.dll"
         type="win32"
     />


=====================================
extras/package/win32/libvlccore.dll.manifest → extras/package/win32/libvlccore.dll.manifest.in
=====================================
@@ -2,7 +2,7 @@
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
     <assemblyIdentity
         version="1.0.0.0"
-        processorArchitecture="*"
+        processorArchitecture="@MANIFEST_ARCH@"
         name="libvlccore.dll"
         type="win32"
     />


=====================================
extras/package/win32/package.mak
=====================================
@@ -190,9 +190,9 @@ package-win32-release: package-win32-src $(win32_destdir)/NSIS/nsProcess.dll pac
 .PHONY: package-win-install package-win-common package-win-strip package-win32-src package-win32-exe package-win32-zip package-win32-debug-zip package-win32-7zip package-win32-debug-7zip package-win32-cleanup package-win32 package-win32-debug
 
 EXTRA_DIST += \
-	extras/package/win32/vlc.exe.manifest \
-	extras/package/win32/libvlc.dll.manifest \
-	extras/package/win32/libvlccore.dll.manifest \
+	extras/package/win32/vlc.exe.manifest.in \
+	extras/package/win32/libvlc.dll.manifest.in \
+	extras/package/win32/libvlccore.dll.manifest.in \
 	extras/package/win32/configure.sh \
 	extras/package/win32/NSIS/vlc.win32.nsi.in \
 	extras/package/win32/NSIS/spad.nsi.in \


=====================================
extras/package/win32/vlc.exe.manifest → extras/package/win32/vlc.exe.manifest.in
=====================================
@@ -2,7 +2,7 @@
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
     <assemblyIdentity
         version="1.0.0.0"
-        processorArchitecture="*"
+        processorArchitecture="@MANIFEST_ARCH@"
         name="VideoLAN.VLC"
         type="win32"
     />
@@ -25,7 +25,7 @@
                 type="win32"
                 name="Microsoft.Windows.Common-Controls"
                 version="6.0.0.0"
-                processorArchitecture="*"
+                processorArchitecture="@MANIFEST_ARCH@"
                 publicKeyToken="6595b64144ccf1df"
                 language="*"
             />


=====================================
lib/Makefile.am
=====================================
@@ -104,8 +104,8 @@ libvlc.pc: libvlc.pc.in $(top_builddir)/config.status
 	$(AM_V_GEN)cd "$(top_builddir)" && \
 	$(SHELL) ./config.status --file="lib/$@"
 
-libvlc_win32_rc.$(OBJEXT): libvlc_win32_rc.rc $(top_srcdir)/extras/package/win32/libvlc.dll.manifest
-	$(WINDRES) --include-dir $(top_srcdir)/share --include-dir $(top_srcdir)/extras/package/win32 -i $< -o $@
+libvlc_win32_rc.$(OBJEXT): libvlc_win32_rc.rc $(top_builddir)/extras/package/win32/libvlc.dll.manifest
+	$(WINDRES) --include-dir $(top_srcdir)/share --include-dir $(top_builddir)/extras/package/win32 -i $< -o $@
 
 checkheader_verbose = $(checkheader_verbose_$(V))
 checkheader_verbose_ = $(checkheader_verbose_$(AM_DEFAULT_VERBOSITY))


=====================================
lib/meson.build
=====================================
@@ -31,13 +31,19 @@ if host_system == 'windows'
         configuration: rc_conf,
         install: false,
     )
+
+    libvlc_manifest = configure_file(
+        input: files('../extras/package/win32/libvlc.dll.manifest.in'),
+        output: 'libvlc.dll.manifest',
+        configuration: rc_conf,
+    )
+
     libvlc_sources += windows_rc.compile_resources(
         libvlc_rc,
         include_directories: [
             vlc_src_root / 'share',
-            vlc_src_root / 'extras/package/win32',
         ],
-        depend_files: files('../extras/package/win32/libvlc.dll.manifest'),
+        depend_files: [libvlc_manifest],
     )
 endif
 


=====================================
meson.build
=====================================
@@ -1185,6 +1185,17 @@ subdir('compat')
 subdir('include')
 
 if host_system == 'windows'
+    if host_machine.cpu_family() == 'aarch64' or host_machine.cpu() == 'arm64'
+        manifest_arch = 'arm64'
+    elif host_machine.cpu_family() == 'x86_64'
+        manifest_arch = 'amd64'
+    elif host_machine.cpu_family() == 'arm'
+        manifest_arch = 'arm'
+    else
+        manifest_arch = 'x86'
+    endif
+    cdata.set('MANIFEST_ARCH', manifest_arch)
+
     windows_rc = import('windows')
     # not quoted values
     rc_conf = configuration_data()


=====================================
modules/Makefile.am
=====================================
@@ -118,8 +118,6 @@ module.rc: module.rc.in $(top_builddir)/config.status
 
 module.rc.lo: module.rc
 	$(AM_V_GEN) $(LIBTOOL) --tag=RC --mode=compile $(WINDRES) \
-		--include-dir $(top_srcdir)/share \
-		--include-dir $(top_srcdir)/extras/package/win32 \
 		-i $< -o $@
 endif
 


=====================================
modules/meson.build
=====================================
@@ -409,10 +409,6 @@ if host_system == 'windows'
     )
     win_extra_sources += windows_rc.compile_resources(
         module_rc,
-        include_directories: [
-            vlc_src_root / 'share',
-            vlc_src_root / 'extras/package/win32',
-        ],
     )
 endif
 


=====================================
src/Makefile.am
=====================================
@@ -631,8 +631,8 @@ if HAVE_ANDROID
 libvlccore_la_LDFLAGS += -avoid-version
 endif
 
-libvlccore_win32_rc.$(OBJEXT): libvlccore_win32_rc.rc $(top_srcdir)/extras/package/win32/libvlccore.dll.manifest
-	$(WINDRES) --include-dir $(top_srcdir)/share --include-dir $(top_srcdir)/extras/package/win32 -i $< -o $@
+libvlccore_win32_rc.$(OBJEXT): libvlccore_win32_rc.rc $(top_builddir)/extras/package/win32/libvlccore.dll.manifest
+	$(WINDRES) --include-dir $(top_srcdir)/share --include-dir $(top_builddir)/extras/package/win32 -i $< -o $@
 
 # FourCC tables
 BUILT_SOURCES += fourcc_tables.h


=====================================
src/meson.build
=====================================
@@ -487,13 +487,19 @@ if host_system == 'windows'
         configuration: rc_conf,
         install: false,
     )
+
+    vlc_core_manifest = configure_file(
+        input: files('../extras/package/win32/libvlccore.dll.manifest.in'),
+        output: 'libvlccore.dll.manifest',
+        configuration: rc_conf,
+    )
+
     libvlccore_sources += windows_rc.compile_resources(
         libvlccore_rc,
         include_directories: [
             vlc_src_root / 'share',
-            vlc_src_root / 'extras/package/win32',
         ],
-        depend_files: files('../extras/package/win32/libvlccore.dll.manifest'),
+        depend_files: [vlc_core_manifest],
     )
 endif
 



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/c696db2ce321820af56aa5967309878543145f96...99733c5ddd42ec95a46f7e3fe106297524be825b

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/c696db2ce321820af56aa5967309878543145f96...99733c5ddd42ec95a46f7e3fe106297524be825b
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the vlc-commits mailing list