summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-10flake8: remove no longer used importsEli Schwartz
2022-06-10build: CustomTargetIndex.is_linkable_target misses '.dylib'Sutou Kouhei
CustomTarget.is_linkable_target has '.dylib'. See also 93b1d31af9d90f306aa104eee1e9be8e1ebbacad that added '.dylib' to CustomTarget.is_linkable_target but didn't add '.dylib' to CustomTargetIndex.is_linkable_target.
2022-06-10wayland: Lookup for wayland-scanner using pkgconfigXavier Claessens
Just like some of glib tools, wayland-scanner can be defined in the pkgconfig dependency variables. Share code between gnome and wayland modules into ModuleState.
2022-06-09intro-install_plan: fix destinations for build_targets with custom install_dirEli Schwartz
There are a couple issues that combine to make the current handling a bit confusing. - we call it "install_dir_name" but it is only ever the class default - CustomTarget always has it set to None, and then we check if it is None then create a different variable with a safe fallback. The if is useless -- it cannot fail, but if it did we'd get an undefined variable error when we tried to use `dir_name` Remove the special handling for CustomTarget. Instead, just always accept None as a possible value of outdir_name when constructing install data, and, if it is None, fall back to {prefix}/outdir regardless of what type it used to be.
2022-06-09mtest: do not process zero byte reads in read_decode()Hemmo Nieminen
AsyncIO.StreamReader.readuntil() occasionally raises IncompleteRead exception before a byte of data has been read. Do not process the "read" data in those cases.
2022-06-09mtest: enable access to the console logger instanceHemmo Nieminen
Store a reference to the console logger instance in a test harness' member variable to allow accessing it (and its logging utilities) from any other functions in test harness. This added functionality will be used in future commits.
2022-06-09mtest: store all test results directly to TestRunHemmo Nieminen
Store return code, test result and additional error directly to the relevant TestRun instance. This reduces the number of individual arguments to other relevant functions that need to be passed around and thus simplifies the code. The test output (and error) were earlier similarly moved to be stored directly to the TestRun instance for the same reason.
2022-06-09mtest: store test output directly to a TestRun objectHemmo Nieminen
By storing test output directly to the TestRun instance we avoid the need to pass the outputs around in individual function arguments thus simplifying the code. The amount of individual arguments will be further reduced in a future commit.
2022-06-09mtest: print only one empty line before test summaryHemmo Nieminen
2022-06-09mlog: add support for italic/emphasized text in AnsiTextHemmo Nieminen
2022-06-09mtest: improve text test log formattingHemmo Nieminen
Write additional metadata such as exit details and try to visually differentiate the tests better from each other in the (textual) test logs.
2022-06-09mtest: differentiate stdout and stderr in test log text filesHemmo Nieminen
Make --no-stdsplit option affect test log text files as well. This means that if the option --no-stdsplit is used only "output" is seen not only on the console but in the test log text file as well.
2022-06-09mtest: print "live" test output when verbose with only 1 testHemmo Nieminen
Since running only one test sort of implies --num-processes=1 the "live" output of the test should be printed out when --verbose option has been given and running only a single test.
2022-06-09mtest: remove unused arguments from read_decode_lines()Hemmo Nieminen
The only time the argument would matter (console_mode == ConsoleUser.STDOUT) never happens as the only time the function is ever called is when parsing of the output is needed which in turns implies that console_mode != ConsoleUser.STDOUT.
2022-06-09mtest: introduce get_test_num_prefix() helper functionHemmo Nieminen
2022-06-09mtest: split TestRun's get_details() to multiple functionsHemmo Nieminen
These new functions will be used individually in later commits.
2022-06-09mtest: make ConsoleLogger's detail property a functionHemmo Nieminen
As fetching the returned data is non-trivial (we e.g. iterate over all subtest results) it is best not to hide that fact from the caller of the property / function.
2022-06-09mtest: show "timed out" messages with --print-errorlogs optionHemmo Nieminen
2022-06-09mtest: fix a couple of minor whitespace / typing issuesHemmo Nieminen
2022-06-08interpreter/kwargs: fix typoDylan Baker
2022-06-08build: correctly annotate _process_install_tag helperDylan Baker
Which could receive `None | Sequence[Optional[str]]`, but isn't annotated for the `None`
2022-06-08Revert "build: check for -fno-pic and -fno-pie while we're checking for pic ↵Dylan Baker
and pie" This reverts commit 5f02d0d9e164a5bcda072d223eaa5bc92b57747e. Which isn't correct, we have very strange behavior of "force on pie/pic or let the toolchain do whatever it wants, but you can't turn it off."
2022-06-08build: fix types added in CustomTarget.get_target_dependenciesDylan Baker
Because everything except ExternalProgram in CustomTarget.sources is a valid dependency
2022-06-08build: Fix type annotations for get_target_dependenciesDylan Baker
2022-06-08build: use inheritance properly for is_internalDylan Baker
Calling `isinstance(self, X)` is an anti-pattern, we should just be using inheritance for this, letting the `StaticLibrary` override the method, and having the base class always return `False`.
2022-06-08build: Fix annotations for CustomTargetDylan Baker
and fix a bug in the backend that the correct annotations uncover
2022-06-08build: Store depends in GeneratedList instead of GeneratorDylan Baker
Since they are actually dependencies out the output not the Generator itself. This fixes dependency issues in the ninja backend, allowing Meson to rebuild more accurately. It also does sometimes in the vs backend, but there are problems in the vs backend I'm not sure how to solve. The vsbackend is, itself, so fragile looking I don't want to get too involved with it.
2022-06-08backend/vs: "fix" handling of CustomTarget dependenciesDylan Baker
This doesn't actually fix the problem, but it provides parity with what is currently happening. I don't have access to a Windows machine to further debug, however, so not breaking anything is the best I can do ATM.
2022-06-08mesonlib: fix annotation of OrderedSet.differenceDylan Baker
Any iterable is acceptable, not just Set | OrderedSet
2022-06-08typing: replace ImmutableSetProtocol with typing.AbstractSetDylan Baker
Which does the same thing, but is a builtin and is more accurate
2022-06-08backends/ninja: Add missing type annotationDylan Baker
2022-06-08build: move typename to class level in Target subclassesDylan Baker
There's no reason for this to be defined at the instance level (and thus duplicated into each instance, when it's really a class constant.
2022-06-08build: check for -fno-pic and -fno-pie while we're checking for pic and pieDylan Baker
2022-06-08build: use a helper to process set install tagsDylan Baker
Which can be shared by BuildTarget
2022-06-07wrap: Add support for applying a list of patch filesPaweł Marczewski
Co-authored-by: Xavier Claessens <xavier.claessens@collabora.com>
2022-06-06compilers: Add support for stand-alone leak sanitizerMarco Trevisan (Treviño)
Leak sanitizer can be enabled without the whole AddressSanitizer, this can be done by passing -fsanitize=leak as documented at [1]. Meson doesn't support this, so add support for it. [1] https://clang.llvm.org/docs/LeakSanitizer.html
2022-06-03devenv: do not fatally error if pkg-config or bash-completion is not availableEli Schwartz
We might be using all fallbacks, or be super weird and not use bash-completion, or simply have a different PKG_CONFIG_LIBDIR set. And devenv already checks whether the dependency is found, but defaults to required anyway, which is wrong.
2022-06-01backends: work around some mypy limitations and fix spotted bugsDylan Baker
2022-06-01build: stop overwriting outputs, and replace the intended outputDylan Baker
Currently, the code puts a placeholder in for the first output, then replaces all of the outputs when it generates final value. Instead, let's only replace the placeholder value.
2022-06-01interpreter: add missing type annotationDylan Baker
2022-06-01interpreter: add location to a FeatureNew callDylan Baker
2022-06-01interpreter: use a shared KwargInfo for install_dirDylan Baker
CustomTarget allows multiple install dirs, while basically everything else allows only one. So this provides a shared instance for that.
2022-06-01dependencies: Fix d_module_version typesDylan Baker
It's a `List[str | int]`, just like in the build module. In fact, we should probably share the same type information between the two.
2022-06-01modules/gnome: fix gen_marshall annotationDylan Baker
2022-06-01targets: Fix annotations of get_install_dir to be accurateDylan Baker
2022-06-01ast: rename module constant to match PEP8 styleDylan Baker
2022-06-01ast/introspection: tidy up imports a bit more with __future__.annotationsDylan Baker
This lets us not import quite as much at runtime
2022-06-01ast/introspection: sort importsDylan Baker
2022-06-01modules: move gnome targets into gnome moduleDylan Baker
They're not used outside of the gnome module anyway, and they create some annoying potentials for dependency loops
2022-06-01compiler: Add missing needs_static_linker to base Compiler classDylan Baker