On Windows, library dependencies can be passed with no prefix or suffix;
rather than -lfoo or foo.dll, they can just be passed as 'foo'.
CMake handles this and suffixes the library with '.lib' or '.dll',
depending on the link mode.
Do the same here, and if we've been passed an unqualified non-option
bare name on Windows, add the appropriate suffix and pass it through to
the linker. This fixes dependencies on system libraries.
When finding dependencies from CMake, use a smarter regex to determine
whether or not a dependency is actually a link argument, and pass
through Windows link arguments properly.
Currently, looking for a nonexisting program using find_program() will
return an NonExistingExternalProgram instace with the default name
'nonexistingprogram'. Let's store the target program's name in it, so it
can be printed if needed.
Signed-off-by: Ariel D'Alessandro <ariel@vanguardiasur.com.ar>
Currently, the error message is printing the object itself. Showing the
program's name is better.
Signed-off-by: Ariel D'Alessandro <ariel@vanguardiasur.com.ar>
It can happen that a server is temporaly down, tarballs often have
many mirrors available so we should be able to add at least one fallback
mirror in wrap files.
Refine documentation of the default name_prefix, so people don't get the
impression they can write logic which uses 'lib' as the default, when
they should be defaulting to '[]', to let us take care of the
complexities.
Adjust the handling of a name_prefix: [] kwarg to be the same as
name_suffix: [] kwarg, i.e. identically to the case where it's omitted,
so BuildTarget.prefix doesn't get set (so the default is used).
Also clarify the error reported when a non-empty list is used.
* cmake: enhance support of cmake config file syntax
Enhance the cmakedefine support by accepting 2 or 3 tokens
in the conf line as mesondefine supports strictly 2 tokens
* fixup! cmake: enhance support of cmake config file syntax
* fixup! fixup! cmake: enhance support of cmake config file syntax
With this running `meson compile` inside the builddir actually works,
and you don't have to do `meson compile -C .`
Clearly this was the intent since the option already has `default='.'`
Executables may have an entry point of wmain or wWinMain. These
executables link successfully with ninja. Rather than add more flags to
executable() in meson.build, remove the EntryPointSymbol override. This
makes the vs backend behave more like the ninja backend.
Fixes#6698