summaryrefslogtreecommitdiff
path: root/mesonbuild/mcompile.py
Commit message (Collapse)AuthorAgeFilesLines
* mcompile: Fix target name suggestionsXavier Claessens2023-05-051-1/+1
|
* Make --vsenv a readonly builtin optionXavier Claessens2023-03-291-2/+2
| | | | | | | | | We need to remember its value when reconfiguring, but the Build object is not reused, only coredata is. This also makes CLI more consistent by allowing `-Dvsenv=true` syntax. Fixes: #11309
* fix meson compile with alias targetCharles Brunet2023-03-171-3/+4
| | | | this fixes a bug introduced by #11528
* coredata: Do not pickle it twiceXavier Claessens2023-03-161-2/+1
| | | | | Exclude coredata from build.dat because it gets pickled separately already.
* mcompile: Do not exclude targets from subprojectsXavier Claessens2023-02-241-5/+3
| | | | | When giving full path to a target there is no reason to skip targets from subprojects, the path can start with `subprojects/`.
* treewide: add future annotations importEli Schwartz2023-02-011-0/+1
|
* pylint: enable the bad_builtin checkerDylan Baker2022-11-291-5/+3
| | | | | | | | | | | | | | This finds uses of deny-listed functions, which defaults to map and filter. These functions should be replaced by comprehensions in idiomatic python because: 1. comprehensions are more heavily optimized and are often faster 2. They avoid the need for lambdas in some cases, which make them faster 3. you can do the equivalent in one statement rather than two, which is faster 4. They're easier to read 5. if you need a concrete instance (ie, a list) then you don't have to convert the iterator to a list afterwards
* mcompile: Remove useless sleepXavier Claessens2022-09-121-2/+0
| | | | | | There is no reason to wait 2s before starting the compilation command. Fixes: #10698.
* Remove redundant backslash and fix white space issueAlf Henrik Sauge2022-08-261-1/+1
|
* mcompile: provide user visibility into what actually happensEli Schwartz2022-08-121-2/+8
| | | | | | | | | This command is magical and I hate it. Mostly because it seems people have no clue what it does, and what it doesn't do. Provide informational messages to the user indicating how it works, e.g. for debugging. Point out if we ran vsenv before shelling out to the backend.
* mcompile: Print suggestions when target is ambigousXavier Claessens2022-05-011-1/+8
| | | | Fixes: #10221
* mcompile: fix broken codepaths and restore orphaned codeEli Schwartz2022-01-261-7/+5
| | | | | | | | | | | | | | | | In commit 928078982c8643bffd95a8da06a1b4494fe87e2b a good error message about the directory not being a valid build directory, was replaced by a worse message. In commit abaa980436f53100041bd5535589bb1c42019bd6 the error message was replaced by a traceback when trying to load the coredata before checking if it was a build directory. Revert back to using the helper function with the good error message. Reorganize code so that we check basic things first, and do less work before detecting errors. Fixes #9584
* delete PLATFORM env only if setavitex2021-10-301-2/+3
| | | | fixes #8721
* fix various flake8 whitespace errorsEli Schwartz2021-10-271-3/+3
|
* mcompile: Load coredata first because it checks major versionXavier Claessens2021-10-251-9/+3
| | | | Fixes: #9444
* Add --vsenv command line option and active VS only when neededXavier Claessens2021-10-101-11/+11
|
* Fix typos discovered by codespellChristian Clauss2021-10-101-1/+1
|
* mcompile: treat load-average as a floatMike Gilbert2021-08-291-1/+1
| | | | | | `ninja -l` accepts a double. We should do the same. Bug: https://bugs.gentoo.org/810655
* more f-strings too complex to be caught by pyupgradeEli Schwartz2021-07-051-2/+2
|
* fix: Always explicitly set encoding for text files (fixes #8263)Daniel Mensinger2021-06-291-1/+1
|
* mass rewrite of string formatting to use f-strings everywhereEli Schwartz2021-03-041-7/+7
| | | | performed by running "pyupgrade --py36-plus" and committing the results
* raw string literals are next to godlinessEli Schwartz2021-03-041-1/+1
| | | | | | Invalid escape sequences are deprecated and will be removed from a future version of python. Use r"" to define them so they remain readable.
* mcompile: do not pass the builddir to ninja if it is the current directoryEli Schwartz2021-02-231-1/+3
| | | | | | Because when you don't specify -C, this logging feels silly: ninja: Entering directory `.
* mcompile: make sure arguments are passed in the correct orderEli Schwartz2021-02-231-7/+8
| | | | | | | | | | | | | | | | | meson compile itself doesn't permit GNU-style argument permutation, i.e. TARGET to precede options, so why should we expect ninja to? And indeed, ninja doesn't document support for this -- but it does accept it anyway, which is confusing and results in people thinking it's "supposed to" work. However, if NINJA=samu then this is in fact enforced. samu does not permit GNU-style argument permutation. As a result, the arguments passed to mcompile are actively re-ordered before being passed to the subprocess, and samu dies with a fatal error. Fix ordering in mcompile.py and add a comment to warn future readers that the order does, in fact, matter.
* Fix misspellsAntonin DĂ©cimo2021-01-131-1/+1
| | | | Signed-off-by: Antonin DĂ©cimo <antonin.decimo@gmail.com>
* Use a single coredata dictionary for optionsDylan Baker2021-01-041-1/+1
| | | | | | | This patches takes the options work to it's logical conclusion: A single flat dictionary of OptionKey: UserOptions. This allows us to simplify a large number of cases, as we don't need to check if an option is in this dict or that one (or any of 5 or 6, actually).
* Remove "Found runner: " logging message from meson compileDaan De Meyer2020-12-071-1/+0
| | | | | | The ninja path is already logged as part of configure. Logging it again every time when using meson compile is overly verbose and doesn't add much value for the user.
* use real pathlib moduleDylan Baker2020-11-201-1/+1
| | | | | We added the _pathlib module to work around defeciencies in python 3.5's implementation, since we now rely on 3.6 lets drop this
* pathlib: Fix resolve() by overriding it in Python 3.5Daniel Mensinger2020-10-041-1/+1
|
* Fix meson compile for 32-bit MSVC buildVili VÀinölÀ2020-10-021-12/+16
| | | | | - Remove platform from env so that msbuild does not try to compile e.g. configuration debug|x86
* mcompile: Add some basic XCode supportNirbheek Chauhan2020-09-131-1/+47
| | | | | | I wrote this to convert run_tests.get_backend_commands() over to the new meson wrappers, but that turned out to be harder than I expected, so just splitting this out for now.
* typing: fixup of #7688Daniel Mensinger2020-09-081-1/+1
| | | | | This bug not beeing caught in review is another reason for adding strict typing support to meson.
* typing: more fixesDaniel Mensinger2020-09-081-2/+4
|
* typing: fully annotate mcompile, minit, and msetupDaniel Mensinger2020-09-081-6/+6
|
* environment: use ExternalProgram to find ninjaPaolo Bonzini2020-09-041-1/+1
| | | | | | | | | | | This allows the NINJA environment variable to support all the Windows special cases, especially allowing an absolute path without extension. Based on a patch by Yonggang Luo. Fixes: #7659 Suggested-by: Nirbheek Chauhan <nirbheek@centricular.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* mcompile: Also support -v for verboseNirbheek Chauhan2020-08-311-1/+1
| | | | | | This matches `meson test`, and there's really no other meaning that could be attributed to this, since you would call `meson` to get the version, not the `compile` sub-command.
* mcompile: use -v instead of --verbose for ninjaIgor Raits2020-08-301-1/+1
| | | | | The `--verbose` has been added to ninja in 1.9.0 and we pretend that we have compatibility with Ninja 1.7+. References: https://github.com/ninja-build/ninja/commit/bf7517505ad1def03e13bec2b4131399331bc5c4
* Added ability to specify target in `meson compile`TheQwertiest2020-06-291-30/+179
|
* Added ability to pass arguments to backend in `meson compile`TheQwertiest2020-06-281-10/+25
|
* mcompile: Add --verbose modeIgor Raits2020-06-211-1/+10
| | | | | Closes: https://github.com/mesonbuild/meson/issues/7352 Signed-off-by: Igor Raits <i.gnatenko.brain@gmail.com>
* mcompile: removed unneeded importsTheQwertiest2020-05-261-2/+0
|
* mcompile: detect_ninjaTheQwertiest2020-05-261-8/+3
|
* mcompile: replaced intro with cdata + extracted code to funcsTheQwertiest2020-05-261-60/+63
|
* mcompile: replaced backend divination code + cleanupTheQwertiest2020-05-261-11/+24
|
* mcompile: Use the current dir if unspecifiedNirbheek Chauhan2020-04-081-1/+0
| | | | | | | 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='.'`
* mesonbuild: Add mcompile commandDylan Baker2020-03-041-0/+123
This is tested working with both msbuild and ninja/samu. Since our xcode support is pretty much broken I didn't bother. Fixes #6670