[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