dependency('foo')
now automatically fallback if the dependency is not found on the system but a subproject wrap file or directory exists with the same name.
That means that simply adding subprojects/foo.wrap
is enough to add fallback to any dependency('foo')
call. It is however requires that the subproject call meson.override_dependency('foo', foo_dep)
to specify which dependency object should be used for foo
.
provide
sectionWrap files can define the dependencies it provides in the [provide]
section. When foo.wrap
provides the dependency foo-1.0
any call do dependency('foo-1.0')
will automatically fallback to that subproject even if no fallback
keyword argument is given. See Wrap documentation.
find_program()
fallbackWhen a program cannot be found on the system but a wrap file has its name in the [provide]
section, that subproject will be used as fallback.