forked from mpv-player/mpv
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
libplacebo.wrap: backport change required to build with meson v1.2.1+
- Loading branch information
Showing
2 changed files
with
133 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
132 changes: 132 additions & 0 deletions
132
subprojects/packagefiles/0a203be35563bb2904a9d2e4ee88c0787acdbf36.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
From 0a203be35563bb2904a9d2e4ee88c0787acdbf36 Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= <[email protected]> | ||
Date: Mon, 14 Aug 2023 19:10:56 +0200 | ||
Subject: [PATCH] meson: don't use declare_dependency for UCRT import lib | ||
|
||
Starting from meson v1.2.1 it is unallowed to link to uninstalled static | ||
libraries. This is how declare_dependency(link_with: ...) is treated. In | ||
fact we want to use UCRT import lib only internaly and only when linking | ||
shared library and/or executable. We don't want for it to be treated as | ||
dependency of anykind, just as a directive for linker. Similar to linker | ||
script. | ||
|
||
Unfortunately there is not way to specify link_depends for all targets, | ||
so we have to specify it for all of them. | ||
|
||
Thanks to @xclaesse for his patience and idea with link_depends. | ||
|
||
Fixes: https://github.com/haasn/libplacebo/issues/191 | ||
--- | ||
demos/meson.build | 8 ++++++++ | ||
src/meson.build | 16 ++++++++++++++-- | ||
src/tests/meson.build | 2 ++ | ||
3 files changed, 24 insertions(+), 2 deletions(-) | ||
|
||
diff --git a/demos/meson.build b/demos/meson.build | ||
index c707d6bed..1a52975f3 100644 | ||
--- a/demos/meson.build | ||
+++ b/demos/meson.build | ||
@@ -113,11 +113,15 @@ else | ||
# Graphical demo programs | ||
executable('colors', 'colors.c', | ||
dependencies: [ dep, pl_clock, libm ], | ||
+ link_args: link_args, | ||
+ link_depends: link_depends, | ||
) | ||
|
||
if sdl_image.found() | ||
executable('sdlimage', 'sdlimage.c', | ||
dependencies: [ dep, libm, sdl_image ], | ||
+ link_args: link_args, | ||
+ link_depends: link_depends, | ||
) | ||
endif | ||
|
||
@@ -131,6 +135,8 @@ else | ||
endif | ||
executable('plplay', 'plplay.c', | ||
dependencies: plplay_deps, | ||
+ link_args: link_args, | ||
+ link_depends: link_depends, | ||
install: true, | ||
) | ||
endif | ||
@@ -142,5 +148,7 @@ if components.get('vk-proc-addr') | ||
executable('video-filtering', 'video-filtering.c', | ||
dependencies: [ libplacebo, vulkan_loader ], | ||
c_args: '-O2', | ||
+ link_args: link_args, | ||
+ link_depends: link_depends, | ||
) | ||
endif | ||
diff --git a/src/meson.build b/src/meson.build | ||
index 4a7dd6bc1..63c05d8cc 100644 | ||
--- a/src/meson.build | ||
+++ b/src/meson.build | ||
@@ -15,6 +15,9 @@ elif has_execinfo | ||
build_deps += libexecinfo | ||
endif | ||
|
||
+link_args = [] | ||
+link_depends = [] | ||
+ | ||
# Looks like meson in certain configuration returns ' ' instead of empty string | ||
mingw32 = cc.get_define('__MINGW32__').strip() | ||
if host_machine.system() == 'windows' and mingw32 != '' and host_machine.cpu() in ['aarch64', 'arm', 'x86_64'] | ||
@@ -28,7 +31,8 @@ if host_machine.system() == 'windows' and mingw32 != '' and host_machine.cpu() i | ||
output : ['ucrt_math.lib'], | ||
input : 'ucrt_math.def', | ||
command : [dlltool, '-d', '@INPUT@', '-l', '@OUTPUT@']) | ||
- build_deps += declare_dependency(link_with: ucrt_math) | ||
+ link_args += ucrt_math.full_path() | ||
+ link_depends += ucrt_math | ||
# MinGW-w64 inlines functions like powf, rewriting them to pow. We want to use | ||
# the powf specialization from UCRT, so disable inlining. | ||
add_project_arguments(['-D__CRT__NO_INLINE'], language: ['c', 'cpp']) | ||
@@ -221,6 +225,7 @@ lib = library('placebo', sources, | ||
soversion: apiver, | ||
include_directories: inc, | ||
link_args: link_args, | ||
+ link_depends: link_depends, | ||
gnu_symbol_visibility: 'hidden', | ||
name_prefix: 'lib' | ||
) | ||
@@ -290,7 +295,12 @@ if get_option('bench') | ||
error('Compiling the benchmark suite requires vulkan support!') | ||
endif | ||
|
||
- bench = executable('bench', 'tests/bench.c', dependencies: [tdep_shared, vulkan_headers]) | ||
+ bench = executable('bench', | ||
+ 'tests/bench.c', | ||
+ dependencies: [tdep_shared, vulkan_headers], | ||
+ link_args: link_args, | ||
+ link_depends: link_depends, | ||
+ ) | ||
test('benchmark', bench, is_parallel: false, timeout: 600) | ||
endif | ||
|
||
@@ -299,6 +309,8 @@ if get_option('fuzz') | ||
executable('fuzz.' + f, 'tests/fuzz/' + f, | ||
objects: lib.extract_all_objects(recursive: false), | ||
dependencies: tdep_static, | ||
+ link_args: link_args, | ||
+ link_depends: link_depends, | ||
) | ||
endforeach | ||
endif | ||
diff --git a/src/tests/meson.build b/src/tests/meson.build | ||
index dd054b339..4affbf650 100644 | ||
--- a/src/tests/meson.build | ||
+++ b/src/tests/meson.build | ||
@@ -29,6 +29,8 @@ foreach t : ts | ||
objects: t.get('objects', []), | ||
c_args: [ '-Wno-unused-function' ], | ||
dependencies: t.get('deps', []), | ||
+ link_args: link_args, | ||
+ link_depends: link_depends, | ||
) | ||
|
||
test(t['source'], e) | ||
-- | ||
GitLab | ||
|