[libdvdcss-devel] [Git][videolan/libdvdcss][master] 6 commits: meson: Add Meson build support

Jean-Baptiste Kempf (@jbk) gitlab at videolan.org
Tue Sep 2 21:03:42 UTC 2025



Jean-Baptiste Kempf pushed to branch master at VideoLAN / libdvdcss


Commits:
9f165978 by Rob Hall at 2025-09-02T18:50:34+01:00
meson: Add Meson build support

- - - - -
cf741938 by Rob Hall at 2025-09-02T18:50:35+01:00
Fix include paths in public headers

- - - - -
01c0c6f7 by Rob Hall at 2025-09-02T18:50:35+01:00
meson: Add cross files from libdvdnav

- - - - -
358ec401 by Rob Hall at 2025-09-02T18:50:35+01:00
CI: Update images

- - - - -
21e1c5ff by Rob Hall at 2025-09-02T18:50:35+01:00
Guard against incorrect inclusion of scsi/sg.h

This header is only available on Linux, but some other operating
systems also use the Linux dvd_struct.

- - - - -
13030aee by Rob Hall at 2025-09-02T18:50:35+01:00
Update NEWS and INSTALL for Meson

- - - - -


19 changed files:

- .gitlab-ci.yml
- INSTALL
- NEWS
- doc/doxygen.cfg.in
- + doc/meson.build
- + meson.build
- + meson_options.txt
- + package/crossfiles/aarch64-w64-mingw32.meson
- + package/crossfiles/arm-linux-gnueabihf.meson
- + package/crossfiles/armv7-w64-mingw32.meson
- + package/crossfiles/i686-w64-mingw32.meson
- + package/crossfiles/x86_64-w64-mingw32.meson
- src/device.c
- src/dvdcss/dvdcpxm.h
- src/dvdcss/dvdcss.h
- + src/dvdcss/meson.build
- src/ioctl.c
- + src/meson.build
- + test/meson.build


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -14,90 +14,68 @@ variables:
     tags:
         - docker
         - amd64
+    script:
+        - meson setup build
+        - meson compile -C build
 
-build-debian:
+.build-cross:
     extends: .build-docker
-    image: registry.videolan.org/vlc-debian-unstable:20210315112333
     script:
-        - autoreconf -fisv
-        - mkdir build
-        - cd build
-        - ../configure
-        - make -j $(getconf _NPROCESSORS_ONLN)
+        - meson setup build --cross-file package/crossfiles/${CROSSFILE}.meson
+        - meson compile -C build
 
-build-raspberry:
+build-debian:
     extends: .build-docker
-    image: registry.videolan.org/vlc-ubuntu-raspberry:20240806085528
-    script:
-        - autoreconf -fisv
-        - mkdir build
-        - cd build
-        - ../configure --host=arm-linux-gnueabihf
-        - make -j $(getconf _NPROCESSORS_ONLN)
+    image: registry.videolan.org/dav1d-debian-unstable:20250207200301
 
-build-macos-x86_64:
-    extends: .build-common
-    tags:
-        - old-macmini
-    script:
-        - export PATH="/Users/videolanci/sandbox/bin:${PATH}"
-        - autoreconf -fisv
-        - mkdir build
-        - cd build
-        - ../configure
-        - make -j $(getconf _NPROCESSORS_ONLN)
+build-raspberry:
+    extends: .build-cross
+    image: registry.videolan.org/vlc-ubuntu-raspberry:20250323132008
+    before_script:
+        - python3 -m venv .venv
+        - . .venv/bin/activate
+        - pip install --upgrade pip
+        - pip install meson==1.9.0
+    variables:
+        CROSSFILE: arm-linux-gnueabihf
 
 build-macos-arm64:
-    extends: .build-common
+    extends: .build-docker
     tags:
-        - monterey
-    script:
-        - export PATH="/Users/videolanci/sandbox/bin:${PATH}"
-        - autoreconf -fisv
-        - mkdir build
-        - cd build
-        - ../configure
-        - make -j $(getconf _NPROCESSORS_ONLN)
+        - macos-m1
+    before_script:
+        - python3 -m venv .venv
+        - . .venv/bin/activate
+        - pip install --upgrade pip
+        - pip install meson==1.9.0 ninja==1.13.0
 
-build-win64:
+build-macos:
     extends: .build-docker
-    image: registry.videolan.org/vlc-debian-win64:20201106143728
-    script:
-        - autoreconf -fisv
-        - mkdir build
-        - cd build
-        - ../configure --host=x86_64-w64-mingw32
-        - make -j $(getconf _NPROCESSORS_ONLN)
+    tags:
+        - amd64
+        - macos
 
-build-winarm64:
-    extends: .build-docker
-    image: registry.videolan.org/vlc-debian-llvm-ucrt:20241118101328
-    script:
-        - autoreconf -fisv
-        - mkdir build
-        - cd build
-        - ../configure --host=aarch64-w64-mingw32
-        - make -j $(getconf _NPROCESSORS_ONLN)
+build-win:
+    extends: .build-cross
+    image: registry.videolan.org/dav1d-debian-unstable:20250207200301
+    parallel:
+        matrix:
+            - CROSSFILE: [i686-w64-mingw32, x86_64-w64-mingw32]
 
-build-win32:
-    extends: .build-docker
-    image: registry.videolan.org/vlc-debian-win32:20201106141924
-    script:
-        - autoreconf -fisv
-        - mkdir build
-        - cd build
-        - ../configure --host=i686-w64-mingw32
-        - make -j $(getconf _NPROCESSORS_ONLN)
+build-win-arm:
+    extends: .build-cross
+    image: registry.videolan.org/vlc-debian-llvm-ucrt:20250826105319
+    parallel:
+        matrix:
+            - CROSSFILE: [armv7-w64-mingw32, aarch64-w64-mingw32]
 
 pages:
     extends: .build-docker
-    image:
-        name: registry.videolan.org/vlc-debian-unstable:20210315112333
+    image: registry.videolan.org/dav1d-debian-unstable:20250207200301
     script:
-        - autoreconf -fisv
-        - ./configure
-        - make apidoc
-        - mv doc/html public
+        - meson setup build -Denable_docs=true
+        - meson compile -C build docs
+        - mv build/doc/html public
     artifacts:
         paths:
             - public


=====================================
INSTALL
=====================================
@@ -4,22 +4,19 @@ INSTALL file for libdvdcss, a DVD access library
 Configuring libdvdcss
 =====================
 
-A typical way to configure libdvdcss is:
+libdvdcss uses the Meson build system. A typical way to configure it is:
 
-  ./configure --prefix=/usr
+  meson setup build --prefix=/usr
 
-See `./configure --help' for more information.
-
-
-If you got libdvdcss from its version control system, please bootstrap first:
-
-  autoreconf -i
+The `build' directory can be set to whatever you want, but in-tree builds
+are not allowed. See `meson configure' for all the available options.
 
 
 Building libdvdcss
 ==================
 
-Once configured, run `make' to build libdvdcss.
+Once configured, change to the build directory and run `ninja' 
+to build libdvdcss.
 
 If you have player keys, you need to put them in the file csskeys.h, before
 configuring libdvdcss to enable the "key" method (the one from libcss).
@@ -28,9 +25,8 @@ configuring libdvdcss to enable the "key" method (the one from libcss).
 Installing libdvdcss
 ====================
 
-You can install libdvdcss by typing:
-
-  make install
+You can install libdvdcss by running `meson install' inside the build
+directory.
 
 
 Building libdvdcss for Windows
@@ -40,17 +36,21 @@ There are two alternative ways to build libdvdcss for Windows.
 
 - on a host with the mingw-w64 cross-compilers:
 
- Tell configure about the compiler to use. If you run, for example, Debian,
+ You need a cross file to tell Meson about the compiler to use. Some
+ generic cross files are provided in the `package/crossfiles' directory,
+ which can be customized for your needs. If you run, for example, Debian,
  Ubuntu, or Cygwin under Windows with the necessary mingw64 packages
  installed, it would be:
 
  for a 32-bit target platform:
-  ./configure --host=i686-w64-mingw32
-  make
+  meson setup build-w32 --cross-file package/crossfiles/i686-w64-mingw32.meson
+  cd build-w32
+  ninja
 
  or for a 64-bit target platform:
-  ./configure --host=x86_64-w64-mingw32
-  make 
+  meson setup build-w64 --cross-file package/crossfiles/i686-w64-mingw32.meson
+  cd build-w64
+  ninja
 
 - natively on Windows with MSYS + MinGW (www.mingw.org):
 
@@ -61,7 +61,8 @@ There are two alternative ways to build libdvdcss for Windows.
 
  To build libdvdcss you just have to run the following commands:
 
-  ./configure
-  make
+  meson setup build
+  cd build
+  ninja
 
  More about MSYS on our wiki: http://wiki.videolan.org/Win32CompileMSYS


=====================================
NEWS
=====================================
@@ -5,6 +5,7 @@ Changes between 1.4.3 and 1.5.0:
     Add new dvdcpxm.h header for dvdcpxm function calls
     Add dvdcpxm_read, dvdcpxm_readv, and dvdcpxm_seek functions
     Add initialization and cleanup functions: dvdcpxm_init, dvdcpxm_close
+  * Switch build system to Meson
 
 
 Changes between 1.4.2 and 1.4.3:


=====================================
doc/doxygen.cfg.in
=====================================
@@ -144,7 +144,7 @@ FULL_PATH_NAMES        = NO
 # will be relative from the directory where doxygen is started.
 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
 
-STRIP_FROM_PATH        =
+STRIP_FROM_PATH        = @STRIP_FROM_PATH@
 
 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
 # path mentioned in the documentation of a class, which tells the reader which


=====================================
doc/meson.build
=====================================
@@ -0,0 +1,27 @@
+if not get_option('enable_docs')
+    subdir_done()
+endif
+
+doxygen = find_program('doxygen', required: true)
+
+doxyfile_conf = configuration_data()
+doxyfile_conf.set('abs_builddir', meson.current_build_dir())
+doxyfile_conf.set('abs_top_srcdir', dvdcss_src_root)
+doxyfile_conf.set('STRIP_FROM_PATH', f'@dvdcss_src_root@/src \\\n @dvdcss_build_root@/src')
+doxyfile_conf.set('PACKAGE_NAME', meson.project_name())
+doxyfile_conf.set('PACKAGE_VERSION', meson.project_version())
+
+doxyfile = configure_file(
+    input: 'doxygen.cfg.in',
+    output: 'Doxyfile',
+    configuration: doxyfile_conf,
+)
+
+custom_target('docs',
+    depend_files: dvdcss_api_headers,
+    command: [doxygen, '-q', doxyfile],
+    output: ['html'],
+    install: true,
+    install_dir: get_option('datadir') / 'doc/libdvdcss',
+    install_tag: 'doc',
+)


=====================================
meson.build
=====================================
@@ -0,0 +1,137 @@
+project('libdvdcss', 'c',
+    version: '1.5.0',
+    meson_version: '>= 0.60.0',
+    default_options: ['buildtype=debugoptimized',
+                      'c_std=c17',
+                      'default_library=both',
+                      'warning_level=2'])
+
+dvdcss_src_root = meson.current_source_dir()
+dvdcss_build_root = meson.current_build_dir()
+cc = meson.get_compiler('c')
+
+# Configuration data for config.h
+cdata = configuration_data()
+
+# Include directories
+dvdcss_inc_dirs = include_directories('.', 'src', 'src/dvdcss')
+
+# The version number for the shared library
+dvdcss_soname_version = '2.3.0'
+
+dvdcss_version = meson.project_version()
+dvdcss_version_split = dvdcss_version.split('.')
+cdata.set_quoted('PACKAGE_VERSION', dvdcss_version)
+
+#
+# OS/Compiler checks and defines
+#
+
+# Arguments in test_args will be used even on feature tests
+test_args = ['-D_DEFAULT_SOURCE']
+extra_dependencies = []
+
+if host_machine.system() == 'windows' and cc.get_argument_syntax() == 'msvc'
+    test_args += ['-D_CRT_SECURE_NO_WARNINGS', '-D_CRT_NONSTDC_NO_WARNINGS',
+                  '-D_WIN32_IE=0x0501', '-DWIN32_LEAN_AND_MEAN', '-DPATH_MAX=2048']
+elif host_machine.system() == 'sunos'
+    test_args += '-D_POSIX_C_SOURCE=200809L'
+endif
+
+# Header checks
+
+check_headers = [
+    'errno.h',
+    'fcntl.h',
+    'io.h',
+    'pwd.h',
+    'scsi/sg.h',
+    'sys/ioctl.h',
+    'sys/param.h',
+    'sys/stat.h',
+    'sys/types.h',
+    'sys/uio.h',
+    'unistd.h',
+]
+
+foreach h : check_headers
+    if cc.has_header(h, args: test_args)
+        define_name = 'HAVE_' + h.underscorify().to_upper()
+        cdata.set(define_name, 1)
+    endif
+endforeach
+
+# DVD ioctl support (OS-specific)
+
+if host_machine.system() == 'windows'\
+   and cc.has_header('winioctl.h', args: test_args)
+   # Windows is supported as long as winioctl.h is found
+elif host_machine.system() == 'darwin'
+    add_project_arguments(cc.get_supported_arguments('-no-cpp-precomp'), language: 'c')
+    cdata.set('DARWIN_DVD_IOCTL', 1)
+    extra_dependencies += dependency('appleframeworks', modules: ['CoreFoundation', 'IOKit'])
+elif host_machine.system() == 'sunos' \
+     and cc.has_header('sys/scsi/scsi_types.h', args: test_args) \
+     and cc.has_header('sys/scsi/impl/uscsi.h', args: test_args)
+    cdata.set('SOLARIS_USCSI', 1)
+elif host_machine.system() == 'haiku' \
+     and cc.has_header('scsi.h', args: test_args)
+    # Haiku is supported as long as scsi.h is found
+elif host_machine.system() == 'openbsd' \
+     and cc.has_header('sys/cdio.h', args: test_args)
+    cdata.set('DVD_STRUCT_IN_SYS_CDIO_H', 1)
+    cdata.set('HAVE_LINUX_DVD_STRUCT', 1)
+    cdata.set('HAVE_OPENBSD_DVD_STRUCT', 1)
+elif host_machine.system() in ['linux', 'android'] \
+     or cc.has_header_symbol('linux/cdrom.h', 'dvd_struct', args: test_args)
+    cdata.set('DVD_STRUCT_IN_LINUX_CDROM_H', 1)
+    cdata.set('HAVE_LINUX_DVD_STRUCT', 1)
+elif cc.has_header_symbol('sys/dvdio.h', 'dvd_struct',
+        prefix: '#include <sys/types.h>', args: test_args) # NetBSD
+    cdata.set('DVD_STRUCT_IN_SYS_DVDIO_H', 1)
+    cdata.set('HAVE_LINUX_DVD_STRUCT', 1)
+elif cc.has_header_symbol('sys/dvdio.h', 'struct dvd_struct', 
+        prefix: '#include <sys/types.h>', args: test_args) # FreeBSD
+    cdata.set('DVD_STRUCT_IN_SYS_DVDIO_H', 1)
+    cdata.set('HAVE_BSD_DVD_STRUCT', 1)
+else
+    warning('No DVD ioctls found for this system. libdvdcss will probably fail to build.')
+endif
+
+posix_mkdir = ''
+foreach h: ['io.h', 'sys/stat.h', 'sys/types.h']
+    if cdata.has('HAVE_' + h.underscorify().to_upper())
+        posix_mkdir += f'#include <@h@>\n'
+    endif
+endforeach
+
+posix_mkdir += '''
+int mkdir(const char *path, mode_t mode);
+int main() { }
+'''
+
+if not cc.compiles(posix_mkdir, args: test_args, name: 'POSIX mkdir')
+    cdata.set('HAVE_BROKEN_MKDIR', 1)
+endif
+
+cdata.set('SUPPORT_ATTRIBUTE_VISIBILITY_DEFAULT', cc.has_function_attribute('visibility:default'))
+
+add_project_arguments(test_args, language: 'c')
+
+# Generate config.h
+configure_file(output: 'config.h', configuration: cdata)
+
+install_data(['AUTHORS', 'COPYING', 'NEWS', 'README.md'],
+    install_dir: get_option('datadir') / 'doc/libdvdcss',
+    install_tag: 'doc')
+
+# Include subdir meson.build files
+# The order is important!
+
+subdir('src/dvdcss')
+
+subdir('src')
+
+subdir('test')
+
+subdir('doc')


=====================================
meson_options.txt
=====================================
@@ -0,0 +1,11 @@
+# General options
+
+option('enable_docs',
+  type: 'boolean',
+  value: false,
+  description: 'Build (with Doxygen) and install API documentation')
+
+option('enable_examples',
+    type: 'boolean',
+    value: false,
+    description: 'Build libdvdnav examples')
\ No newline at end of file


=====================================
package/crossfiles/aarch64-w64-mingw32.meson
=====================================
@@ -0,0 +1,16 @@
+[binaries]
+c = 'aarch64-w64-mingw32-clang'
+cpp = 'aarch64-w64-mingw32-clang++'
+ar = 'aarch64-w64-mingw32-ar'
+strip = 'aarch64-w64-mingw32-strip'
+windres = 'aarch64-w64-mingw32-windres'
+pkgconfig = 'pkg-config'
+
+[built-in options]
+c_link_args = ['-static-libgcc']
+
+[host_machine]
+system = 'windows'
+cpu_family = 'aarch64'
+cpu = 'aarch64'
+endian = 'little'


=====================================
package/crossfiles/arm-linux-gnueabihf.meson
=====================================
@@ -0,0 +1,15 @@
+[binaries]
+c = 'arm-linux-gnueabihf-gcc'
+cpp = 'arm-linux-gnueabihf-gcc++'
+ar = 'arm-linux-gnueabihf-ar'
+strip = 'arm-linux-gnueabihf-strip'
+pkg-config = 'pkg-config'
+
+[built-in options]
+c_link_args = ['-static-libgcc']
+
+[host_machine]
+system = 'linux'
+cpu_family = 'arm'
+cpu = 'arm'
+endian = 'little'


=====================================
package/crossfiles/armv7-w64-mingw32.meson
=====================================
@@ -0,0 +1,16 @@
+[binaries]
+c = 'armv7-w64-mingw32-clang'
+cpp = 'armv7-w64-mingw32-clang++'
+ar = 'armv7-w64-mingw32-ar'
+strip = 'armv7-w64-mingw32-strip'
+windres = 'armv7-w64-mingw32-windres'
+pkgconfig = 'pkg-config'
+
+[built-in options]
+c_link_args = ['-static-libgcc']
+
+[host_machine]
+system = 'windows'
+cpu_family = 'arm'
+cpu = 'armv7'
+endian = 'little'


=====================================
package/crossfiles/i686-w64-mingw32.meson
=====================================
@@ -0,0 +1,17 @@
+[binaries]
+c = 'i686-w64-mingw32-gcc'
+cpp = 'i686-w64-mingw32-g++'
+ar = 'i686-w64-mingw32-ar'
+strip = 'i686-w64-mingw32-strip'
+windres = 'i686-w64-mingw32-windres'
+pkgconfig = 'i686-w64-mingw32-pkg-config'
+exe_wrapper = 'wine'
+
+[built-in options]
+c_link_args = ['-static-libgcc']
+
+[host_machine]
+system = 'windows'
+cpu_family = 'x86'
+cpu = 'i686'
+endian = 'little'


=====================================
package/crossfiles/x86_64-w64-mingw32.meson
=====================================
@@ -0,0 +1,17 @@
+[binaries]
+c = 'x86_64-w64-mingw32-gcc'
+cpp = 'x86_64-w64-mingw32-g++'
+ar = 'x86_64-w64-mingw32-ar'
+strip = 'x86_64-w64-mingw32-strip'
+windres = 'x86_64-w64-mingw32-windres'
+pkgconfig = 'x86_64-w64-mingw32-pkg-config'
+exe_wrapper = 'wine'
+
+[built-in options]
+c_link_args = ['-static-libgcc']
+
+[host_machine]
+system = 'windows'
+cpu_family = 'x86_64'
+cpu = 'x86_64'
+endian = 'little'


=====================================
src/device.c
=====================================
@@ -75,6 +75,10 @@
 #include "ioctl.h"
 #include "device.h"
 
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
 /*****************************************************************************
  * Device reading prototypes
  *****************************************************************************/


=====================================
src/dvdcss/dvdcpxm.h
=====================================
@@ -32,7 +32,7 @@
 #ifndef _DVDCPXM_H
 #define _DVDCPXM_H
 
-#include "dvdcss.h"
+#include <dvdcss/dvdcss.h>
 
 #ifdef __cplusplus
 extern "C" {


=====================================
src/dvdcss/dvdcss.h
=====================================
@@ -33,7 +33,7 @@
 
 #include <stdint.h>
 
-#include "version.h"
+#include <dvdcss/version.h>
 
 #ifdef __cplusplus
 extern "C" {


=====================================
src/dvdcss/meson.build
=====================================
@@ -0,0 +1,14 @@
+dvdcss_api_headers = files(
+    'dvdcpxm.h',
+    'dvdcss.h',
+)
+
+dvdcss_api_headers += configure_file(input: 'version.h.in',
+    output: 'version.h',
+    configuration: {'DVDCSS_VERSION_MAJOR': dvdcss_version_split[0],
+                    'DVDCSS_VERSION_MINOR': dvdcss_version_split[1],
+                    'DVDCSS_VERSION_MICRO': dvdcss_version_split[2]})
+
+# Install headers
+install_headers(dvdcss_api_headers,
+                subdir: 'dvdcss')


=====================================
src/ioctl.c
=====================================
@@ -60,6 +60,8 @@
 #endif
 #ifdef DVD_STRUCT_IN_LINUX_CDROM_H
 #   include <linux/cdrom.h>
+#endif
+#ifdef HAVE_SCSI_SG_H
 #   include <scsi/sg.h>
 #   include <stdlib.h>
 #endif
@@ -1000,7 +1002,7 @@ int ioctl_ReadCPRMMediaId(int i_fd,int *p_agid, uint8_t *p_buffer)
 {  
     int i_ret;
 
-#if defined( HAVE_LINUX_DVD_STRUCT )
+#if defined( HAVE_LINUX_DVD_STRUCT ) && defined( HAVE_SCSI_SG_H )
     struct sg_io_hdr io_hdr;
     uint8_t sense[32] = {0};  
     uint8_t cdb[12] = {0};
@@ -1089,7 +1091,7 @@ int ioctl_ReadCPRMMKBPack(int i_fd, int *p_agid, int mkb_pack, uint8_t *p_mkb_pa
 {
     int i_ret;
 
-#if defined( HAVE_LINUX_DVD_STRUCT )
+#if defined( HAVE_LINUX_DVD_STRUCT ) && defined( HAVE_SCSI_SG_H )
     uint8_t *sptd_buf = malloc( CPRM_MKB_PACK_SIZE + 4 );
     uint8_t cdb[12] = { 0 };
     uint8_t sense[32] = { 0 };


=====================================
src/meson.build
=====================================
@@ -0,0 +1,44 @@
+# libdvdcss source files
+dvdcss_src = files(
+    'cpxm.c',
+    'css.c',
+    'device.c',
+    'error.c',
+    'ioctl.c',
+    'libdvdcpxm.c',
+    'libdvdcss.c',
+)
+
+#
+# Library definitions
+#
+
+if host_machine.system() == 'windows' and get_option('default_library') != 'static'
+    api_export_flags = '-DLIBDVDCSS_EXPORTS'
+else
+    api_export_flags = []
+endif
+
+# The final libdvdcss library
+libdvdcss = library('dvdcss', dvdcss_src,
+    include_directories: dvdcss_inc_dirs,
+    dependencies: extra_dependencies,
+    c_args: [api_export_flags],
+    gnu_symbol_visibility: 'hidden',
+    version: dvdcss_soname_version,
+    install: true,
+)
+
+# Make the library usable as a dependency in this and other projects
+libdvdcss_dep = declare_dependency(link_with: libdvdcss,
+    include_directories: include_directories('.'))
+
+meson.override_dependency('libdvdcss', libdvdcss_dep)
+
+# Generate pkg-config .pc file
+pkg_mod = import('pkgconfig')
+pkg_mod.generate(libraries: libdvdcss,
+    version: meson.project_version(),
+    name: 'libdvdcss',
+    description: 'DVD access and decryption library',
+)


=====================================
test/meson.build
=====================================
@@ -0,0 +1,10 @@
+if not get_option('enable_examples')
+    subdir_done()
+endif
+
+executable('csstest', 'csstest.c',
+    dependencies: libdvdcss_dep)
+
+executable('dvd_region', 'dvd_region.c',
+    dependencies: libdvdcss_dep,
+    include_directories: dvdcss_inc_dirs)



View it on GitLab: https://code.videolan.org/videolan/libdvdcss/-/compare/236350672911500999b1577f98c4740224999777...13030aee57cfad0b06a4be9203a2f91315109f07

-- 
View it on GitLab: https://code.videolan.org/videolan/libdvdcss/-/compare/236350672911500999b1577f98c4740224999777...13030aee57cfad0b06a4be9203a2f91315109f07
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the libdvdcss-devel mailing list