[vlc-commits] [Git][videolan/vlc][master] 7 commits: package/win32: do not rebuild when installing with meson

Steve Lhomme (@robUx4) gitlab at videolan.org
Fri Oct 2 14:25:07 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
08b43eb5 by Steve Lhomme at 2026-10-02T13:32:59+00:00
package/win32: do not rebuild when installing with meson

- - - - -
91b8ebaa by Steve Lhomme at 2026-10-02T13:32:59+00:00
package/win32: always pass a path to wix binaries

They are always available from the command line or from the contribs.

- - - - -
fdde4a77 by Steve Lhomme at 2026-10-02T13:32:59+00:00
package/win32: do not keep .dll.a files in MSI generator

meson installs those.

- - - - -
d0314947 by Steve Lhomme at 2026-10-02T13:32:59+00:00
package/win32: generate a .msi installer with meson

- - - - -
bfdeb29c by Steve Lhomme at 2026-10-02T13:32:59+00:00
package/win32: allow setting the path to installed files for MSI build

meson does not allow changing to a parent the directory when generating
files so we need to set the installed paths in the wxs files.

- - - - -
6950fecf by Steve Lhomme at 2026-10-02T13:32:59+00:00
package/win32 : add the MSI builder as custom meson/ninja targets

So we can easily can it via meson/ninja once it's installed.

This needs to be executed after "meson install".

- - - - -
53a1f8b7 by Steve Lhomme at 2026-10-02T13:32:59+00:00
meson: do not reference plugins.dat if cross-compiling with an exe wrapper

meson will issue an error otherwise.

Generating the plugins.dat is not mandatory, especially when cross-compiling.

Also it should probably be handled (additionally) with add_install_script() [^1].

[^1]: https://mesonbuild.com/Reference-manual_builtin_meson.html#mesonadd_install_script

- - - - -


10 changed files:

- bin/meson.build
- configure.ac
- extras/package/win32/build.sh
- extras/package/win32/meson.build
- extras/package/win32/msi.mak
- extras/package/win32/msi/config.wxi.in
- + extras/package/win32/msi/meson.build
- extras/package/win32/msi/msi-heat.py
- extras/package/win32/msi/product.wxs
- meson_options.txt


Changes:

=====================================
bin/meson.build
=====================================
@@ -71,6 +71,7 @@ if build_vlc and (host_system != 'darwin' or have_osx) and not have_win_store an
         install_dir: pkglibexecdir_path,
     )
 
+    if not meson.is_cross_build() or find_program('exe_wrapper', required: false).found()
     plugins_dat  = custom_target('plugins.dat',
         # `vlc_cache_gen_dep.full_path()` doesn't work since the executable is not built yet.
         # `vlc_cache_gen_dep` creates a build order dependency.
@@ -80,6 +81,7 @@ if build_vlc and (host_system != 'darwin' or have_osx) and not have_win_store an
         depends: vlc_plugins_targets_array,
         build_by_default: not meson.is_cross_build(),
     )
+    endif
 
     vlc_preparser_sources = [
       'preparser/main.c',


=====================================
configure.ac
=====================================
@@ -5307,6 +5307,9 @@ AM_COND_IF([KDE_SOLID], [
 ])
 
 AM_COND_IF([HAVE_WIN32], [
+  PREFIX_PATH="vlc-${VERSION}/"
+  AC_SUBST([PREFIX_PATH])
+
   AC_CONFIG_FILES([
     extras/package/win32/NSIS/spad.nsi
     extras/package/win32/NSIS/vlc.win32.nsi


=====================================
extras/package/win32/build.sh
=====================================
@@ -70,7 +70,7 @@ do
              INSTALLER=$OPTARG
          ;;
          W)
-             WIXPATH=--with-wix="$OPTARG"
+             WIXPATH="$OPTARG"
          ;;
          s)
              INTERACTIVE="yes"
@@ -203,14 +203,21 @@ make -j$JOBS
 
 # avoid installing wine on WSL
 # wine is needed to build Qt with shaders or running vlc-cache-gen
-if test -z "$(command -v wine)"
-then
-    if test -n "$(command -v wsl.exe)"
-    then
+if test -z "$(command -v wine)"; then
+    if test -n "$(command -v wsl.exe)"; then
         echo "Using wsl.exe to replace wine"
         echo "#!/bin/sh" > build/bin/wine
         echo "\"\$@\"" >> build/bin/wine
         chmod +x build/bin/wine
+        WIN32_PATH_CMD=wslpath
+    else
+        WIN32_PATH_CMD=cygpath
+    fi
+else
+    if test -n "$(command -v wsl.exe)"; then
+        WIN32_PATH_CMD=wslpath
+    else
+        WIN32_PATH_CMD=winepath
     fi
 fi
 HOST="$(cc -dumpmachine)"
@@ -562,6 +569,9 @@ if [ "$INSTALLER" = "n" ]; then
     MCOMPILEFLAGS="$MCOMPILEFLAGS --verbose"
 fi
 
+if [ -z "$WIXPATH" ]; then
+    WIXPATH="$( pwd -P )/contrib/$CONTRIB_PREFIX/bin"
+fi
 
 if [ -n "$BUILD_MESON" ]; then
     # disable alarm() calls in tests. The timeout is handled by meson
@@ -582,9 +592,6 @@ if [ -n "$BUILD_MESON" ]; then
 
     BUILD_PATH="$( pwd -P )"
 
-    # we don't want to install in <destdir>/usr/local, just <destdir>
-    MCONFIGFLAGS="$MCONFIGFLAGS --prefix=/"
-
     # generate the crossfile.meson
     test -e $SHORTARCH-meson/crossfile.meson && unlink $SHORTARCH-meson/crossfile.meson
     exec 3>$SHORTARCH-meson/crossfile.meson || return $?
@@ -614,6 +621,15 @@ if [ -n "$BUILD_MESON" ]; then
     if [ -x "$(command -v ${CONTRIB_PREFIX}-luac)" ]; then
         printf 'luac = '"'"'%s'"'"'\n' "$(command -v ${CONTRIB_PREFIX}-luac)" >&3
     fi
+    if [ -n "$WIN32_PATH_CMD" ]; then
+        printf 'cygpath = '"'"'%s'"'"'\n' "$(command -v ${WIN32_PATH_CMD})" >&3
+    fi
+    if [ -e "${WIXPATH}/candle.exe" ]; then
+        printf 'candle.exe = '"'"'%s'"'"'\n' "${WIXPATH}/candle.exe" >&3
+    fi
+    if [ -e "${WIXPATH}/light.exe" ]; then
+        printf 'light.exe = '"'"'%s'"'"'\n' "${WIXPATH}/light.exe" >&3
+    fi
 
     printf '\n[host_machine]\n' >&3
     printf 'system = '"'"'windows'"'"'\n' >&3
@@ -621,6 +637,14 @@ if [ -n "$BUILD_MESON" ]; then
     printf 'endian = '"'"'little'"'"'\n' >&3
     printf 'cpu = '"'"'%s'"'"'\n' "${ARCH}" >&3
 
+    if [ -n "$INSTALL_PATH" ]; then
+        MDESTDIR="$INSTALL_PATH"
+    else
+        MDESTDIR="${BUILD_PATH}/$SHORTARCH-meson/vlc-$SHORTARCH"
+    fi
+    # we don't want to install in <destdir>/usr/local, just <destdir>
+    MCONFIGFLAGS="$MCONFIGFLAGS --prefix=$MDESTDIR"
+
 
     info "Configuring VLC"
     cd ${VLC_ROOT_PATH}
@@ -634,12 +658,7 @@ if [ -n "$BUILD_MESON" ]; then
     info "Compiling"
     meson compile -j $JOBS -C ${BUILD_PATH}/$SHORTARCH-meson ${MCOMPILEFLAGS}
 
-    if [ -n "$INSTALL_PATH" ]; then
-        MDESTDIR="$INSTALL_PATH"
-    else
-        MDESTDIR="${BUILD_PATH}/$SHORTARCH-meson/vlc-$SHORTARCH"
-    fi
-    MINSTALLFLAGS="--destdir=$MDESTDIR --strip $MINSTALLFLAGS"
+    MINSTALLFLAGS="--strip --no-rebuild $MINSTALLFLAGS"
 
     if [ "$INSTALLER" = "n" ]; then
         VLC_GIT_TAG="$(git describe --tags --long --match '?.*.*' --always)"
@@ -648,6 +667,8 @@ if [ -n "$BUILD_MESON" ]; then
         if [ -z "$WINSTORE" ]; then
             # generate .exe installer
             ninja -C ${BUILD_PATH}/$SHORTARCH-meson package-win32-exe
+            # generate .msi installer
+            ninja -C ${BUILD_PATH}/$SHORTARCH-meson package-msi
         fi
 
         rm -rf ${BUILD_PATH}/$SHORTARCH-meson/vlc-$SHORTARCH-$VLC_GIT_TAG-debug.7z
@@ -659,12 +680,16 @@ if [ -n "$BUILD_MESON" ]; then
         if [ -z "$WINSTORE" ]; then
             # generate .exe installer
             ninja -C ${BUILD_PATH}/$SHORTARCH-meson package-win32-exe
+            # generate .msi installer
+            ninja -C ${BUILD_PATH}/$SHORTARCH-meson package-msi
         fi
     elif [ "$INSTALLER" = "u" ]; then
         meson install -C ${BUILD_PATH}/$SHORTARCH-meson ${MINSTALLFLAGS}
         if [ -z "$WINSTORE" ]; then
             # generate .exe installer
             ninja -C ${BUILD_PATH}/$SHORTARCH-meson package-win32-exe
+            # generate .msi installer
+            ninja -C ${BUILD_PATH}/$SHORTARCH-meson package-msi
         fi
     fi
 else
@@ -702,7 +727,7 @@ else
     fi
 
     info "Configuring VLC"
-    ${SCRIPT_PATH}/configure.sh --host=$TRIPLET --with-contrib=../contrib/$CONTRIB_PREFIX "$WIXPATH" $CONFIGFLAGS LTCFLAGS=-O0
+    ${SCRIPT_PATH}/configure.sh --host=$TRIPLET --with-contrib=../contrib/$CONTRIB_PREFIX --with-wix="$WIXPATH" $CONFIGFLAGS LTCFLAGS=-O0
 
     info "Compiling"
     make -j$JOBS ${COMPILEFLAGS}


=====================================
extras/package/win32/meson.build
=====================================
@@ -27,3 +27,8 @@ if get_option('nsis').disable_auto_if(
     host_system != 'windows' or have_win_store).allowed()
     subdir('NSIS')
 endif
+
+if get_option('wix').disable_auto_if(
+    host_system != 'windows' or have_win_store).allowed()
+    subdir('msi')
+endif


=====================================
extras/package/win32/msi.mak
=====================================
@@ -11,6 +11,7 @@ MSIDIR=$(abs_srcdir)/extras/package/win32/msi
 W_MSIDIR=`$(WIN32_PATH_CMD) -w '$(MSIDIR)'`
 MSIBUILDDIR=$(abs_top_builddir)/extras/package/win32/msi
 W_MSIBUILDDIR=`$(WIN32_PATH_CMD) -w '$(MSIBUILDDIR)'`
+W_TOPBUILDDIR=`$(WIN32_PATH_CMD) -w '$(abs_top_builddir)'`
 if HAVE_ARM64
 MSIOUTFILE=vlc-$(VERSION)-winarm64.msi
 else
@@ -34,10 +35,10 @@ if BUILD_SKINS
 endif
 
 candle: heat
-	$(am__cd) $(MSIBUILDDIR) && $(CANDLE) -arch $(WINDOWS_ARCH) -ext WiXUtilExtension $(W_MSIDIR)/product.wxs $(W_MSIDIR)/extensions.wxs $(W_MSIBUILDDIR)/*.fragment.wxs
+	$(am__cd) $(MSIBUILDDIR) && $(CANDLE) -arch $(WINDOWS_ARCH) -I$(W_TOPBUILDDIR) -ext WiXUtilExtension $(W_MSIDIR)/product.wxs $(W_MSIDIR)/extensions.wxs $(W_MSIBUILDDIR)/*.fragment.wxs
 
 $(MSIOUTFILE): candle
-	$(AM_V_GEN)cd vlc- at VERSION@ && $(LIGHT) -sval -spdb -ext WixUIExtension -ext WixUtilExtension -cultures:en-us -b $(W_MSIDIR) $(W_MSIBUILDDIR)/product.wixobj $(W_MSIBUILDDIR)/extensions.wixobj $(W_MSIBUILDDIR)/*.fragment.wixobj -o ../$@
+	$(AM_V_GEN)$(LIGHT) -sval -spdb -ext WixUIExtension -ext WixUtilExtension -cultures:en-us $(W_MSIBUILDDIR)/product.wixobj $(W_MSIBUILDDIR)/extensions.wixobj $(W_MSIBUILDDIR)/*.fragment.wixobj -o $@
 	chmod 644 $@
 
 package-msi: $(MSIOUTFILE)


=====================================
extras/package/win32/msi/config.wxi.in
=====================================
@@ -14,6 +14,8 @@
     <?define Version = "$(var.VerMajor).$(var.VerMinor).$(var.VerPatch)" ?>
     <?define VersionLong = "$(var.Version).$(var.VerExtra)" ?>
 
+    <?define VlcInstallPrefix = "@PREFIX_PATH@" ?>
+
     <?if "@HAVE_NLS_TRUE@" = "" ?>
         <?define HaveLocale = "yes" ?>
     <?else ?>


=====================================
extras/package/win32/msi/meson.build
=====================================
@@ -0,0 +1,117 @@
+# MSI packaging
+
+fs = import('fs')
+
+if have_win64
+    if host_machine.cpu_family() == 'aarch64'
+        WIX_WINDOWS_ARCH = 'arm64'
+    else
+        WIX_WINDOWS_ARCH = 'x64'
+    endif
+else
+    if host_machine.cpu_family() == 'arm'
+        WIX_WINDOWS_ARCH = 'arm'
+    else
+        WIX_WINDOWS_ARCH = 'x86'
+    endif
+endif
+
+msi_required = get_option('wix').allowed() and not get_option('wix').auto()
+
+python3 = find_program('python3', required: msi_required)
+cygpath = find_program('cygpath', required: msi_required)
+x86_runner = find_program('wine', required: msi_required)
+candlex86 = find_program('candle.exe', required: msi_required)
+lightx86 = find_program('light.exe', required: msi_required)
+
+W_MSIDIR = run_command(cygpath, '-w', meson.current_source_dir(), check: true).stdout().strip()
+W_MSIBUILDDIR = run_command(cygpath, '-w', meson.current_build_dir(), check: true).stdout().strip()
+W_TOPBUILDDIR = run_command(cygpath, '-w', vlc_build_root, check: true).stdout().strip()
+W_PREFIX = run_command(cygpath, '-w', prefix_path / '', check: true).stdout().strip()
+
+wix_conf = cdata
+wix_conf.set('BUILD_LUA_TRUE', lua_dep.found() and get_option('lua').allowed() ? '' : '#')
+wix_conf.set('BUILD_SKINS_TRUE', skins2_feasible ? '' : '#')
+wix_conf.set('HAVE_NLS_TRUE', wix_conf.get('ENABLE_NLS', 0) == 1 ? '' : '#')
+wix_conf.set('WINDOWS_ARCH', WIX_WINDOWS_ARCH)
+wix_conf.set('PREFIX_PATH', W_PREFIX)
+
+vlc_wix = configure_file(
+    input: 'config.wxi.in',
+    output: 'config.wxi',
+    configuration: wix_conf,
+    install: true,
+    install_dir: '.',
+)
+
+heat_dirs = ['Plugins']
+if wix_conf.get('ENABLE_NLS', 0) == 1
+    heat_dirs += 'Locale'
+endif
+if lua_dep.found() and get_option('lua').allowed()
+    heat_dirs += 'Lua'
+endif
+if skins2_feasible
+    heat_dirs += 'Skins'
+endif
+
+wxs_files = [
+    [ files('product.wxs'),    W_MSIDIR ],
+    [ files('extensions.wxs'), W_MSIDIR ],
+]
+foreach heat : heat_dirs
+    dirname = heat.to_lower()
+    groupname = 'Comp' + heat + 'Group'
+    wxsname = heat + '.fragment.wxs'
+
+    wxs = custom_target(
+        command: [python3, files('msi-heat.py'), '--dir', prefix_path / dirname, '-cg', groupname,
+            '-gg', '-scom', '-sreg', '-sfrag', '-dr', 'APPLICATIONFOLDER',
+            '-out', '@OUTPUT@'
+        ],
+        output: wxsname,
+        depend_files: [files('msi-heat.py')],
+        build_always_stale: true, # always rescan since we can't depend on a folder
+        build_by_default: false,
+        console: true,
+    )
+    wxs_files += [ [ wxs, W_MSIBUILDDIR ] ]
+endforeach
+
+compiled_wxs = []
+compiled_winpath = []
+foreach wxsobj : wxs_files
+    outfile = fs.replace_suffix(wxsobj[0], '.wixobj')
+    outname = fs.name(outfile)
+    out_winpath = run_command(cygpath, '-w', outfile, check: true).stdout().strip()
+
+    wixobj = custom_target(
+        command: [x86_runner, candlex86.full_path(), '-nologo',
+            '-out', out_winpath, '-arch', WIX_WINDOWS_ARCH, '-I' + W_TOPBUILDDIR, '-ext', 'WiXUtilExtension',
+            wxsobj[1] + '\\' + '@PLAINNAME@'
+        ],
+        output: outname,
+        input: wxsobj[0],
+        depend_files: [vlc_wix],
+        build_always_stale: true,
+        build_by_default: false,
+        console: true,
+    )
+    compiled_wxs += wixobj
+    compiled_winpath += out_winpath
+endforeach
+
+msi_name = 'vlc-' + vlc_version + '-' + winstaller_suffix + '.msi'
+msi_output = custom_target(
+    command: [x86_runner, lightx86, '-nologo',
+        '-sval', '-spdb', '-ext', 'WixUIExtension', '-ext', 'WixUtilExtension', '-cultures:en-us',
+        '-out', msi_name, compiled_winpath
+    ],
+    input: compiled_wxs,
+    output: msi_name, # real name but root build folder
+    build_always_stale: true,
+    build_by_default: false,
+    console: true,
+)
+
+alias_target('package-msi', msi_output)


=====================================
extras/package/win32/msi/msi-heat.py
=====================================
@@ -41,6 +41,7 @@ def generate_id(prefix='', file=''):
     return prefix + pbHash.upper()
 
 args.out.write('<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n')
+args.out.write('<?include extras/package/win32/msi/config.wxi?>\r\n')
 args.out.write('<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">\r\n')
 args.out.write('    <Fragment>\r\n')
 args.out.write('        <DirectoryRef Id="{}">\r\n'.format(args.directory_reference))
@@ -63,12 +64,12 @@ def outputDir(top, parent: str, dir: str):
         for file in cwd.iterdir():
             if not file.is_dir():
                 # args.out.write('          file   <{}>\r\n'.format(file))
-                if not file.name.endswith('.pdb'):
+                if not file.name.endswith('.pdb') and not file.name.endswith('.dll.a'):
                     outname = os.path.join(top.name, str(file.relative_to(top)))
                     fileId = generate_id('cmp', outname)
                     args.out.write('                    <Component Id="{}" Guid="*">\r\n'.format(fileId))
                     fileIdList.append(fileId)
-                    args.out.write('                        <File Id="{}" Name="{}" KeyPath="yes" Source="{}"/>\r\n'.format(generate_id('fil', outname), file.name, outname))
+                    args.out.write('                        <File Id="{}" Name="{}" KeyPath="yes" Source="$(var.VlcInstallPrefix){}"/>\r\n'.format(generate_id('fil', outname), file.name, outname))
                     args.out.write('                    </Component>\r\n')
         # then sub directories
         for file in cwd.iterdir():


=====================================
extras/package/win32/msi/product.wxs
=====================================
@@ -20,7 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
 
 -->
-<?include $(sys.CURRENTDIR)/config.wxi?>
+<?include extras/package/win32/msi/config.wxi?>
 <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'
      xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
     <Product
@@ -48,7 +48,7 @@
             <RegistrySearch Id="NSISLOCATION" Type="raw" Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player" Name="UninstallString" />
         </Property>
 
-        <Icon Id="vlc.ico" SourceFile="$(var.SourceDir)/vlc.ico"/>
+        <Icon Id="vlc.ico" SourceFile="$(var.VlcInstallPrefix)vlc.ico"/>
 
         <!-- The about link that appears in Add & Remove Programs. -->
         <Property Id="ARPURLINFOABOUT" Value="$(var.AboutURL)" />
@@ -67,8 +67,8 @@
         </Property>
 
         <WixVariable Id="WixUISupportPerUser" Value="1" />
-        <WixVariable Id="WixUILicenseRtf" Value="LICENSE.rtf" />
-        <WixVariable Id="WixUIBannerBmp" Value="bannrbmp.bmp" />
+        <WixVariable Id="WixUILicenseRtf" Value="$(sys.SOURCEFILEDIR)/LICENSE.rtf" />
+        <WixVariable Id="WixUIBannerBmp" Value="$(sys.SOURCEFILEDIR)/bannrbmp.bmp" />
 
         <Media Id='1' Cabinet='product.cab' EmbedCab='yes' CompressionLevel="high" />
 
@@ -95,7 +95,7 @@
                         </Component>
 
                         <Component Id='CompVLC' Guid='$(var.CompVLCexe)' Win64="$(var.Win64)">
-                            <File Id='vlc.exe' Name='vlc.exe' KeyPath='yes' Vital='yes' DiskId='1' />
+                            <File Id='vlc.exe' Name='vlc.exe' KeyPath='yes' Vital='yes' DiskId='1' Source="$(var.VlcInstallPrefix)vlc.exe"/>
 
                             <Shortcut Id="DesktopShortcut"
                                 Directory="DesktopFolder"
@@ -122,31 +122,31 @@
                         </Component>
 
                         <Component Id='CompTXT' Guid='7fbd228c-87d8-4e91-85b3-aa65e03c9f1e' Win64="$(var.Win64)">
-                            <File Id='AUTHORS.txt' Name='AUTHORS.txt'  DiskId='1' />
-                            <File Id='COPYING.txt' Name='COPYING.txt' DiskId='1' />
-                            <File Id='NEWS.txt' Name='NEWS.txt' DiskId='1' />
-                            <File Id='README.txt' Name='README.txt' DiskId='1' />
-                            <File Id='THANKS.txt' Name='THANKS.txt' DiskId='1' />
+                            <File Id='AUTHORS.txt' Name='AUTHORS.txt'  DiskId='1'  Source="$(var.VlcInstallPrefix)AUTHORS.txt"/>
+                            <File Id='COPYING.txt' Name='COPYING.txt' DiskId='1'  Source="$(var.VlcInstallPrefix)COPYING.txt"/>
+                            <File Id='NEWS.txt' Name='NEWS.txt' DiskId='1'  Source="$(var.VlcInstallPrefix)NEWS.txt"/>
+                            <File Id='README.txt' Name='README.txt' DiskId='1'  Source="$(var.VlcInstallPrefix)README.txt"/>
+                            <File Id='THANKS.txt' Name='THANKS.txt' DiskId='1'  Source="$(var.VlcInstallPrefix)THANKS.txt"/>
                         </Component>
 
                         <Component Id='CompLibvlccore' Guid='efa826fd-0037-4ccd-9573-604fde3b9efa' Win64="$(var.Win64)">
-                            <File Id='libvlccore.dll' Name='libvlccore.dll' KeyPath='yes' Vital='yes' DiskId='1' />
+                            <File Id='libvlccore.dll' Name='libvlccore.dll' KeyPath='yes' Vital='yes' DiskId='1' Source="$(var.VlcInstallPrefix)libvlccore.dll"/>
                         </Component>
 
                         <Component Id='CompLibvlc' Guid='50d7e1e1-4512-4020-9f7b-5dc8484574f3' Win64="$(var.Win64)">
-                            <File Id='libvlc.dll' Name='libvlc.dll' KeyPath='yes' Vital='yes' DiskId='1' />
+                            <File Id='libvlc.dll' Name='libvlc.dll' KeyPath='yes' Vital='yes' DiskId='1' Source="$(var.VlcInstallPrefix)libvlc.dll"/>
                         </Component>
 
                         <Component Id='CompCacheGen' Guid='e1b4a499-e223-4c18-9de0-258f12b8dcfa' Win64="$(var.Win64)">
-                            <File Id='vlc_cache_gen.exe' Name='vlc-cache-gen.exe' KeyPath='yes' DiskId='1' />
+                            <File Id='vlc_cache_gen.exe' Name='vlc-cache-gen.exe' KeyPath='yes' DiskId='1' Source="$(var.VlcInstallPrefix)vlc-cache-gen.exe"/>
                         </Component>
 
                         <Component Id='CompPreparserExe' Guid='83ff6660-bf97-4c6e-a6eb-123df8ec9cb1' Win64="$(var.Win64)">
-                            <File Id='vlc_preparser.exe' Name='vlc-preparser.exe' KeyPath='yes' DiskId='1' />
+                            <File Id='vlc_preparser.exe' Name='vlc-preparser.exe' KeyPath='yes' DiskId='1' Source="$(var.VlcInstallPrefix)vlc-preparser.exe"/>
                         </Component>
 
                         <Component Id='CompIcon' Guid='8707410c-55fe-4c38-924e-438762b8b82e' Win64="$(var.Win64)">
-                            <File Id='vlc.ico' Name='vlc.ico' KeyPath='yes' DiskId='1' />
+                            <File Id='vlc.ico' Name='vlc.ico' KeyPath='yes' DiskId='1'  Source="$(var.VlcInstallPrefix)vlc.ico"/>
                         </Component>
 
                         <Directory Id='PLUGINSDIR' Name='plugins'>


=====================================
meson_options.txt
=====================================
@@ -828,7 +828,12 @@ option('v4l2',
 option('nsis',
        type: 'feature',
        value: 'auto',
-       description: 'Generate NSIS files to create Windows installer')
+       description: 'Generate NSIS files to create Windows EXE installer')
+
+option('wix',
+       type: 'feature',
+       value: 'auto',
+       description: 'Generate WIX files to create Windows MSI installer')
 
 # TODO: Missing rpi-omxil
 # TODO: Missing gst-decode



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/ab236c42c360ea2a89ea20d25464bfe45423ce32...53a1f8b7e7cb8adc75c85445e74c095c01c6b590

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/ab236c42c360ea2a89ea20d25464bfe45423ce32...53a1f8b7e7cb8adc75c85445e74c095c01c6b590
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