[vlc-commits] [Git][videolan/vlc][master] 12 commits: meson: add placeholder to generate the Windows installers
Steve Lhomme (@robUx4)
gitlab at videolan.org
Mon Aug 24 07:08:40 UTC 2026
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
9dea96cc by Steve Lhomme at 2026-08-24T08:41:46+02:00
meson: add placeholder to generate the Windows installers
- - - - -
58f0792a by Steve Lhomme at 2026-08-24T08:41:46+02:00
meson: use a specific path to install plugins on Windows
The Windows layout of the package is different that regular UNIX layout.
- - - - -
b47cfd4c by Steve Lhomme at 2026-08-24T08:41:46+02:00
meson: install the libbluray java files on Windows
Similar to what is done in packages.mak.
- - - - -
7935bede by Steve Lhomme at 2026-08-24T08:41:46+02:00
meson: install text files in Windows install
- - - - -
f093d7ad by Steve Lhomme at 2026-08-24T08:41:46+02:00
meson: install the HRTFS files on Windows
Similar to what is done in packages.mak.
- - - - -
e238643e by Steve Lhomme at 2026-08-24T08:41:46+02:00
meson: install headers in sdk folder on Windows
Similar to what is done in packages.mak.
- - - - -
2d64e5fb by Steve Lhomme at 2026-08-24T08:41:46+02:00
meson: install vlc_about.h header with the other plugin headers
- - - - -
227553e9 by Steve Lhomme at 2026-08-24T08:42:22+02:00
meson: install extra executables in the root prefix on Windows
- - - - -
3e267c9e by Steve Lhomme at 2026-08-24T08:42:42+02:00
meson: install vlc.exe/libvlccore.dll/libvlc.dll in the root prefix on Windows
Otherwise it's in <prefix>/bin.
- - - - -
a374f6d1 by Steve Lhomme at 2026-08-24T08:42:42+02:00
meson: do not install compat library on Windows
It's not installed with autotools packaging.
- - - - -
209d6f34 by Steve Lhomme at 2026-08-24T08:42:42+02:00
meson: install skins2 data
It's missing the default.vlt file.
- - - - -
f2b7872f by Steve Lhomme at 2026-08-24T08:42:42+02:00
meson: generate the library pkgconfig file
- - - - -
11 changed files:
- bin/meson.build
- compat/meson.build
- + extras/package/win32/meson.build
- include/meson.build
- lib/meson.build
- meson.build
- modules/access/meson.build
- modules/audio_filter/meson.build
- modules/gui/skins2/meson.build
- modules/meson.build
- src/meson.build
Changes:
=====================================
bin/meson.build
=====================================
@@ -28,6 +28,7 @@ if build_vlc and (host_system != 'darwin' or have_osx) and not have_win_store an
include_directories: [vlc_include_dirs],
dependencies: vlc_deps,
install: true,
+ install_dir: bindir_path,
win_subsystem: 'windows'
)
=====================================
compat/meson.build
=====================================
@@ -7,7 +7,7 @@ if libcompat_sources.length() > 0
include_directories: [vlc_include_dirs],
dependencies: [m_lib],
pic: true,
- install: true,
+ install: host_system != 'windows',
install_dir: get_option('libdir') / 'vlc'
)
endif
=====================================
extras/package/win32/meson.build
=====================================
@@ -0,0 +1,8 @@
+# TODO handle nsis packaging
+# TODO handle msi packaging
+
+install_data('../../../AUTHORS', rename : 'AUTHORS.txt', install_dir : '.')
+install_data('../../../COPYING', rename : 'COPYING.txt', install_dir : '.')
+install_data('../../../NEWS', rename : 'NEWS.txt', install_dir : '.')
+install_data('../../../README.md', rename : 'README.txt', install_dir : '.')
+install_data('../../../THANKS', rename : 'THANKS.txt', install_dir : '.')
=====================================
include/meson.build
=====================================
@@ -14,7 +14,7 @@ install_headers(
'vlc/libvlc_renderer_discoverer.h',
'vlc/libvlc_version.h',
'vlc/libvlc_video.h',
- subdir: vlc_pkg_suffix)
+ install_dir: libvlc_header_path)
# Install VLC plugin headers
install_headers(
@@ -126,4 +126,4 @@ install_headers(
'vlc_window.h',
'vlc_xlib.h',
'vlc_xml.h',
- subdir: vlc_pkg_suffix / 'plugins')
+ install_dir: plugins_header_path)
=====================================
lib/meson.build
=====================================
@@ -28,7 +28,8 @@ libvlc = library('vlc',
c_args: libvlc_cargs,
link_with: [vlc_libcompat],
dependencies: [libvlccore_dep, m_lib, threads_dep],
- install: true
+ install: true,
+ install_dir: libdir_path,
)
# Publicly exported dependency object. Used when libvlc is wrapped in a meson
@@ -38,4 +39,11 @@ libvlc_dep = declare_dependency(
include_directories: include_directories('../include'),
)
+pkg = import('pkgconfig')
+pkg.generate(libvlc,
+ name: 'libvlc', # name of the .pc file in addition to Name: variable / 'LibVLC control API',
+ description: 'VLC media player external control library',
+ version: meson.project_version(),
+ install_dir: vlccore_lib_path / 'pkgconfig')
+
meson.override_dependency('libvlc', libvlc_dep)
=====================================
meson.build
=====================================
@@ -43,16 +43,6 @@ vlc_build_root = meson.current_build_dir()
cdata = configuration_data()
-gen_vlc_about = find_program('buildsystem/gen-vlc-about.py')
-vlc_about = custom_target('vlc_about.h',
- input: ['COPYING', 'THANKS', 'AUTHORS'],
- output: ['vlc_about.h'],
- command: [gen_vlc_about,
- '@INPUT0@',
- '@INPUT1@',
- '@INPUT2@',
- '@OUTPUT@'])
-
cargo_rustc_static_libs = find_program('buildsystem/cargo-rustc-static-libs.py')
cargo_output = find_program('buildsystem/cargo-output.py')
@@ -1036,13 +1026,30 @@ cdata.set_quoted('VLC_COMPILE_HOST', '[not implemented with meson]') # TODO
prefix_path = get_option('prefix')
vlc_pkg_suffix = meson.project_name().to_lower()
-libdir_path = prefix_path / get_option('libdir')
-pkglibdir_path = libdir_path / vlc_pkg_suffix
-libexecdir_path = prefix_path / get_option('libexecdir')
-pkglibexecdir_path = libexecdir_path / vlc_pkg_suffix
sysdatadir_path = prefix_path / get_option('datadir')
pkgdatadir_path = sysdatadir_path / vlc_pkg_suffix
localedir_path = prefix_path / get_option('localedir')
+if host_system == 'windows'
+ libdir_path = prefix_path
+ pkglibdir_path = libdir_path / vlc_pkg_suffix
+ plugins_path = prefix_path / 'plugins'
+ libvlc_header_path = prefix_path / 'sdk/include/vlc'
+ plugins_header_path = prefix_path / 'sdk/include/vlc/plugins'
+ bindir_path = prefix_path
+ libexecdir_path = prefix_path
+ pkglibexecdir_path = prefix_path
+ vlccore_lib_path = prefix_path / 'sdk/lib'
+else
+ libdir_path = prefix_path / get_option('libdir')
+ pkglibdir_path = libdir_path / vlc_pkg_suffix
+ plugins_path = pkglibdir_path / 'plugins'
+ libvlc_header_path = prefix_path / 'include' / vlc_pkg_suffix
+ plugins_header_path = prefix_path / 'include' / vlc_pkg_suffix / 'plugins'
+ bindir_path = prefix_path / 'bin'
+ libexecdir_path = prefix_path / get_option('libexecdir')
+ pkglibexecdir_path = libexecdir_path / vlc_pkg_suffix
+ vlccore_lib_path = prefix_path / 'lib' / vlc_pkg_suffix
+endif
cdata.set_quoted('LIBDIR', libdir_path)
cdata.set_quoted('PKGLIBDIR', pkglibdir_path)
@@ -1052,6 +1059,18 @@ cdata.set_quoted('SYSDATADIR', sysdatadir_path)
cdata.set_quoted('PKGDATADIR', pkgdatadir_path)
cdata.set_quoted('LOCALEDIR', localedir_path)
+gen_vlc_about = find_program('buildsystem/gen-vlc-about.py')
+vlc_about = custom_target('vlc_about.h',
+ input: ['COPYING', 'THANKS', 'AUTHORS'],
+ output: ['vlc_about.h'],
+ install: true,
+ install_dir: plugins_header_path,
+ command: [gen_vlc_about,
+ '@INPUT0@',
+ '@INPUT1@',
+ '@INPUT2@',
+ '@OUTPUT@'])
+
# Enable stream outputs
if get_option('stream_outputs')
cdata.set('ENABLE_SOUT', 1)
@@ -1153,6 +1172,11 @@ subdir('modules')
# VLC binaries
subdir('bin')
+# OS specific packaging
+if host_system == 'windows'
+ subdir('extras/package/win32')
+endif
+
# Generate config.h
configure_file(input: 'config.h.meson',
output: 'config.h',
=====================================
modules/access/meson.build
=====================================
@@ -348,6 +348,15 @@ if libbluray_dep.found()
'sources' : files('bluray.c'),
'dependencies' : [libbluray_dep]
}
+
+ if host_system == 'windows'
+ # BD-J JAR
+ # install_subdir(libbluray_dep.get_variable(pkgconfig: 'prefix') / 'share/java', install_dir : plugins_path)
+ install_data(libbluray_dep.get_variable(pkgconfig: 'prefix') / 'share/java/libbluray-j2se-' + libbluray_dep.version() + '.jar',
+ install_dir : plugins_path )
+ install_data(libbluray_dep.get_variable(pkgconfig: 'prefix') / 'share/java/libbluray-awt-j2se-' + libbluray_dep.version() + '.jar',
+ install_dir : plugins_path )
+ endif
endif
=====================================
modules/audio_filter/meson.build
=====================================
@@ -193,6 +193,11 @@ if spatial_dep.found()
if (spatial_dep.version().version_compare('>= 0.4.0'))
spatial_extra_cppflags += ['-DHAVE_SPATIALAUDIOVERSION_H=1']
endif
+
+ if host_system == 'windows'
+ # HRTFS
+ install_subdir('../../share/hrtfs', install_dir : prefix_path )
+ endif
endif
vlc_modules += {
=====================================
modules/gui/skins2/meson.build
=====================================
@@ -185,3 +185,19 @@ if host_system == 'darwin' and skins2_enabled
],
}
endif
+
+if skins2_enabled
+ if host_system == 'windows'
+ skinsdatadir_path = prefix_path / 'skins'
+ else
+ skinsdatadir_path = prefix_path / get_option('datadir')
+ endif
+
+ install_data('../../../share/skins2/fonts/FreeSans.ttf', install_dir: skinsdatadir_path / 'fonts')
+ install_data('../../../share/skins2/fonts/FreeSansBold.ttf', install_dir: skinsdatadir_path / 'fonts')
+ install_data('../../../share/skins2/skin.catalog', install_dir: skinsdatadir_path)
+ install_data('../../../share/skins2/skin.dtd', install_dir: skinsdatadir_path)
+ install_data('../../../share/skins2/winamp2.xml', install_dir: skinsdatadir_path)
+
+ # TODO default.vlt which is a gzip/tarball of the skins2/default folder
+endif
=====================================
modules/meson.build
=====================================
@@ -481,7 +481,7 @@ foreach module : vlc_modules
extra_files: module.get('extra_files', []),
build_by_default: true,
install: true,
- install_dir: pkglibdir_path / 'plugins',
+ install_dir: plugins_path,
kwargs: kwargs,
shortname: shortname,
)
=====================================
src/meson.build
=====================================
@@ -489,7 +489,8 @@ libvlccore = library(
link_args: libvlccore_link_args,
link_with: [vlc_libcompat],
dependencies: libvlccore_deps,
- install: true
+ install: true,
+ install_dir: libdir_path,
)
libvlccore_dep = declare_dependency(link_with: libvlccore, sources: vlc_about)
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/de0fea001b0dd2579e94986188f06f3b107ff644...f2b7872f5526430d296f67d434525aeebe15a37a
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/de0fea001b0dd2579e94986188f06f3b107ff644...f2b7872f5526430d296f67d434525aeebe15a37a
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