aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies/pkgconfig.py
AgeCommit message (Collapse)AuthorFilesLines
2022-02-01Fix dep.get_variable() with empty string default_valueXavier Claessens1-1/+1
2022-01-27flake8: fix indentation styleEli Schwartz1-1/+1
2022-01-18dependencies: don't pass kwargs from get_pkgconfig_variableDylan Baker1-19/+9
This is a layering violation, we're relying on the way the interpreter handles keyword arguments. Instead, pass them as free variables, destructuring in the interpreter
2021-11-01various manual conversion of percent-formatted strings to f-stringsEli Schwartz1-15/+11
2021-10-10pkg-config: do not ever successfully detect Strawberry Perl.Eli Schwartz1-0/+4
This is broken and terrible and thus completely unusable. Don't torture users by finding pkg-config on Windows, thus permitting the pkg-config lookup of several dependencies that do not actually work -- which then fails at build time. This also breaks CI for the wrapdb, because Strawberry Perl is provided as part of the base image for the OS (yes, even though it is terribly broken!!!) and anything that depends on e.g. zlib will "find" zlib because of this broken disaster, even though it should use the wrapdb subproject of zlib. It is assumed no one actually wants to mix Strawberry Perl and meson. In fact, some projects, such as gst-build, already unconditionally error out if Strawberry Perl is detected in PATH: error('You have Strawberry Perl in PATH which is known to cause build issues with gst-build. Please remove it from PATH or uninstall it.') Other projects (postgresql) actually do want to build perl extensions, and link to the perl dlls, but absolutely under no circumstances ever want to use its pkg-config implementation. ;) Let's solve this problem by just considering this to not be a valid pkg-config, let the user find another or not have one at all. This change "solves" https://github.com/StrawberryPerl/Perl-Dist-Strawberry/issues/11
2021-10-10simplify some log formatting by splitting out a commonly used format stringEli Schwartz1-5/+4
There are a bunch of cases in a single function where we would want to log the detected path of pkg-config. Formatting this is awkward. Define it once, then use f-strings everywhere. :D
2021-08-15editorconfig: add setting to trim trailing whitespaceEli Schwartz1-2/+2
and clean up all outstanding issues Skip 'test cases/common/141 special characters/meson.build' since it intentionally uses trailing newlines.
2021-08-09pkg-config: support for `-l:libfoo.a`lilinzhe1-0/+24
fixs: #9000 Meson not correctly process with -l:xxx.a link arguments in pkgconfig .pc file. see also:https://stackoverflow.com/questions/48532868/gcc-library-option-with-a-colon-llibevent-a with unit test, unit test will be partially skiped if pkg-config version < 0.28 . see: https://gitlab.freedesktop.org/pkg-config/pkg-config/-/blob/master/NEWS
2021-07-28dependencies: make the preferred LibType available to any ExternalDependencyEli Schwartz1-3/+2
Just like we automatically provide some reusable glue for self.static, provide it here too. It seems plausibly like something people would commonly want.
2021-07-13dependencies: drop Dependency.methods and Dependency.get_methods()Dylan Baker1-5/+1
Both of these are artifacts of the time before Dependency Factories, when a dependency that could be discovered multiple ways did ugly stuff like finding a specific dependency, then replacing it's own attributes with that dependency's attributes. We don't have cases of that left in the tree, so let's get rid of this code too
2021-06-29fix: Always explicitly set encoding for text files (fixes #8263)Daniel Mensinger1-1/+1
2021-06-14dependencies: Use a typing.NewType for Dependency.type_nameDylan Baker1-2/+2
This allow mypy to catch cases where we accidently assign the dependency name to the type_name, as it sees them as having different types (though at runtime they're all strings).
2021-06-06typing: Fully annotate dependencies.pkgconfigDaniel Mensinger1-26/+33
2021-06-03deps: Split dependencies.baseDaniel Mensinger1-0/+472
Split the Factory and dependency classes out of the base.py script to improve maintainability.