ref: 8c2a89768692b0b1a7f9a1a0985d99319bd2918d
parent: 856662b429dc016e366332f9648ac590ce5d6c92
author: Henrik Gramner <gramner@twoorioles.com>
date: Sun Sep 6 11:58:21 EDT 2020
cli: Add support for Unicode and long paths on Windows 10
--- a/meson.build
+++ b/meson.build
@@ -118,6 +118,17 @@
thread_compat_dep = declare_dependency(sources : files('src/win32/thread.c'))
rt_dependency = []
+
+ rc_version_array = meson.project_version().split('.')
+ winmod = import('windows')
+ rc_data = configuration_data()
+ rc_data.set('PROJECT_VERSION_MAJOR', rc_version_array[0])
+ rc_data.set('PROJECT_VERSION_MINOR', rc_version_array[1])
+ rc_data.set('PROJECT_VERSION_REVISION', rc_version_array[2])
+ rc_data.set('API_VERSION_MAJOR', dav1d_api_version_major)
+ rc_data.set('API_VERSION_MINOR', dav1d_api_version_minor)
+ rc_data.set('API_VERSION_REVISION', dav1d_api_version_revision)
+ rc_data.set('COPYRIGHT_YEARS', '2020')
else
thread_dependency = dependency('threads')
thread_compat_dep = []
--- a/src/meson.build
+++ b/src/meson.build
@@ -223,17 +223,6 @@
#
if host_machine.system() == 'windows' and get_option('default_library') != 'static'
- rc_version_array = meson.project_version().split('.')
- winmod = import('windows')
- rc_data = configuration_data()
- rc_data.set('PROJECT_VERSION_MAJOR', rc_version_array[0])
- rc_data.set('PROJECT_VERSION_MINOR', rc_version_array[1])
- rc_data.set('PROJECT_VERSION_REVISION', rc_version_array[2])
- rc_data.set('API_VERSION_MAJOR', dav1d_api_version_major)
- rc_data.set('API_VERSION_MINOR', dav1d_api_version_minor)
- rc_data.set('API_VERSION_REVISION', dav1d_api_version_revision)
- rc_data.set('COPYRIGHT_YEARS', '2019')
-
rc_file = configure_file(
input : 'dav1d.rc.in',
output : 'dav1d.rc',
--- /dev/null
+++ b/tools/dav1d.manifest
@@ -1,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <assemblyIdentity type="win32" name="VideoLAN.dav1d" version="1.0.0.0"/>
+ <application xmlns="urn:schemas-microsoft-com:asm.v3">
+ <windowsSettings>
+ <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
+ <activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
+ </windowsSettings>
+ </application>
+</assembly>
--- /dev/null
+++ b/tools/dav1d.rc.in
@@ -1,0 +1,33 @@
+#define API_VERSION_NUMBER @API_VERSION_MAJOR@,@API_VERSION_MINOR@,@API_VERSION_REVISION@,0
+#define API_VERSION_NUMBER_STR "@API_VERSION_MAJOR@.@API_VERSION_MINOR@.@API_VERSION_REVISION@"
+#define PROJECT_VERSION_NUMBER @PROJECT_VERSION_MAJOR@,@PROJECT_VERSION_MINOR@,@PROJECT_VERSION_REVISION@,0
+#define PROJECT_VERSION_NUMBER_STR "@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_REVISION@"
+
+#include <windows.h>
+
+1 RT_MANIFEST "dav1d.manifest"
+1 VERSIONINFO
+FILETYPE VFT_APP
+FILEOS VOS_NT_WINDOWS32
+PRODUCTVERSION PROJECT_VERSION_NUMBER
+FILEVERSION API_VERSION_NUMBER
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ BEGIN
+ VALUE "CompanyName", "VideoLAN"
+ VALUE "ProductName", "dav1d"
+ VALUE "ProductVersion", PROJECT_VERSION_NUMBER_STR
+ VALUE "FileVersion", API_VERSION_NUMBER_STR
+ VALUE "FileDescription", "dav1d " PROJECT_VERSION_NUMBER_STR " - AV1 decoder"
+ VALUE "InternalName", "dav1d"
+ VALUE "OriginalFilename", "dav1d.exe"
+ VALUE "LegalCopyright", "Copyright \251 @COPYRIGHT_YEARS@ VideoLAN and dav1d Authors"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1252
+ END
+END
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -77,8 +77,24 @@
'dav1d_cli_parse.c',
)
+if host_machine.system() == 'windows'
+ rc_file = configure_file(
+ input : 'dav1d.rc.in',
+ output : 'dav1d.rc',
+ configuration : rc_data
+ )
+
+ dav1d_rc_obj = winmod.compile_resources(rc_file,
+ depend_files : files('dav1d.manifest'),
+ include_directories : include_directories('.')
+ )
+else
+ dav1d_rc_obj = []
+endif
+
dav1d = executable('dav1d',
dav1d_sources,
+ dav1d_rc_obj,
rev_target, cli_config_h_target,
link_with : [libdav1d, dav1d_input_objs, dav1d_output_objs],