логику, которая сначала попробует достать зависимость из системы, и если не выходит, пойдёт грузить её через wrap?
Специфика следующая:
Зависимость собираеться умеет только через cmake, поэтому просто деп указать не выходит. Обязательно нужно вертеть магию с import('cmake'). Из-за чего получаю сухой dep объект, который нельзя перезаписать в глобальное состояние, потому что он собой заменит найденную в системе либку.
project('whatever', [ 'c', 'cpp' ], default_options : [ 'c_std=c11', 'cpp_std=c++20' ], version : [ '0.1.0' ]) glfw3_dep = dependency('glfw3', version : '==3.3.3', required : false) if not glfw3_dep.found() cmake = import('cmake') glfw3_subproj = cmake.subproject('glfw3') glfw3_dep = glfw3_subproj.dependency('glfw') meson.override_dependency('glfw3', glfw3_dep) endif whatever_src = [ 'src/main.cpp' ] whatever_dep = [ dependency('glfw3') ] executable('whatever', whatever_src, dependencies : whatever_dep)
Пока как-то таки и выглядит стрёмно как для meson-a.
Обсуждают сегодня