aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/mesonmain.py
AgeCommit message (Collapse)AuthorFilesLines
2022-02-15fine-tune the logic for reporting context on tracebacksEli Schwartz1-11/+13
Do not report a MesonBugException if the command is `runpython`, because that is 100% other people's code, not ours. It's only used as an alternative to sys.executable for reporting a path to python, in the event of a Windows MSI install. While we are at it, refactor the logic for PermissionError to be a bit more unified (and sadly use isinstance instead of except, but it is what it is).
2022-01-27do not report context on python traceback, for PermissionErrorEli Schwartz1-0/+5
It's not a MesonBug which needs to be reported, and the existing error already adequately points out the problematic file. It is impossible to get a PermissionError for files created by meson itself, once the build directory has been created, anyway.
2022-01-10bump minimum required version of python to 3.7Eli Schwartz1-2/+5
Comment out the pending deprecation notice. It cannot be reached anymore, but is still useful for the next time we do a version bump.
2022-01-10add pending deprecation notice for python 3.6Eli Schwartz1-0/+11
2021-11-29report the context, if possible, on python tracebacksEli Schwartz1-2/+8
The interpreter tries to catch any exception and add the latest node information to it, but currently we only used that to print better formatted error messages on MesonException. Since we should theoretically have that property for most/all exceptions, let's percolate that upward, and message the user that an unexpected traceback was encountered, that it should be reported as a bug, and the helpful information of "how far into parsing this meson.build did we get before erroring out, anyway?"
2021-10-10Add --vsenv command line option and active VS only when neededXavier Claessens1-91/+0
2021-08-31pylint: turn on superflous-parensDylan Baker1-1/+1
We have a lot of these. Some of them are harmless, if unidiomatic, such as `if (condition)`, others are potentially dangerous `assert(...)`, as `assert(condtion)` works as expected, but `assert(condition, message)` will result in an assertion that never triggers, as what you're actually asserting is `bool(tuple[2])`, which will always be true.
2021-08-03fix bat_info UTF-8 string errorxth1-0/+1
" bat_info = json.loads(bat_json) " may produce error UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 ... Because the vswhere.exe's output is not utf-8 by default Use UTF-8 encoding for vswhere.exe can fixing it .
2021-06-29fix: Always explicitly set encoding for text files (fixes #8263)Daniel Mensinger1-1/+1
2021-06-29pathlib: Patch pathlib to work around some bugs (fixes #7295)Daniel Mensinger1-0/+4
2021-06-09typing: Fully annotate run_project_tests.pyDaniel Mensinger1-1/+1
2021-05-28vsenv: Recommend using "meson compile" wrapperXavier Claessens1-1/+4
When meson has setup the VS environment, running ninja to build won't work, user should use meson wrapper to compile.
2021-05-28Remove `Microsoft.VisualStudio.Workload.WDExpress`Naveen M K1-1/+0
2021-05-28Find Visual Studio Build Tools 2019Naveen M K1-9/+19
Got the Idea from setuptools https://github.com/pypa/setuptools/blob/a5131f0b82e098da6c07a03a47f36f3a52f73fb6/setuptools/msvc.py#L176
2021-05-23Also skip VS activation if gcc is found.Jussi Pakkanen1-0/+2
2021-05-22Better detection of Visual Studio compilerJacob Nielsen1-0/+8
2021-05-13Set up VS environment automatically when run.Jussi Pakkanen1-1/+69
2021-03-16Add `meson devenv` command and meson.add_devenv()Xavier Claessens1-1/+3
2021-03-04mass rewrite of string formatting to use f-strings everywhereEli Schwartz1-2/+2
performed by running "pyupgrade --py36-plus" and committing the results
2020-10-30Bump minimum supported Python version to 3.6. Closes #6297.Jussi Pakkanen1-13/+2
2020-09-02Add a notice about Python 3.5 supportNirbheek Chauhan1-2/+14
This will be printed in bold at the end of interactive meson sub-commands that won't be parsed by a program. Specifically: setup, compile, test, and install. NOTICE: You are using [...]
2020-04-21switch python2 %s for python3 .formatMichael1-1/+1
2020-03-04mesonbuild: Add mcompile commandDylan Baker1-1/+3
This is tested working with both msbuild and ninja/samu. Since our xcode support is pretty much broken I didn't bother. Fixes #6670
2019-11-06Fix typos found by codespellWolfgang Stöggl1-5/+5
- Typos were found by codespell v1.16.0
2019-07-23Create multiple different archive types with dist.Jussi Pakkanen1-1/+1
2019-07-23Made dist a top level command.Jussi Pakkanen1-1/+3
2019-04-29Fix builtin variable namesDaniel Mensinger1-15/+15
2019-04-25Don't use len() to test for container emptinessDylan Baker1-1/+1
I ran the numbers once before (it's in the meson history) but it's *much* faster to *not* use len for testing if a container is empty or not.
2019-04-23Don't use mutable types as default argumentsDylan Baker1-1/+2
This isn't safe given the way python implements default arguments. Basically python store a reference to the instance it was passed, and then if that argument is not provided it uses the default. That means that two calls to the same function get the same instance, if one of them mutates that instance every subsequent call that gets the default will receive the mutated instance. The idiom to this in python is to use None and replace the None, def in(value: str, container: Optional[List[str]]) -> boolean: return src in (container or []) if there is no chance of mutation it's less code to use or and take advantage of None being falsy. If you may want to mutate the value passed in you need a ternary (this example is stupid): def add(value: str, container: Optional[List[str]]) -> None: container = container if container is not None else [] container.append(value) I've used or everywhere I'm sure that the value will not be mutated by the function and erred toward caution by using ternaries for the rest.
2019-04-21Can run argument strings with internal Python. Closes #5217.Jussi Pakkanen1-3/+7
2019-03-04Merge pull request #2601 from 1ace/feature/completionJussi Pakkanen1-0/+2
Add completion scripts for Bash and Zsh
2019-03-04rewriter: Remove command aliasDaniel Mensinger1-1/+1
2019-03-04rewriter: make flake8 happyDaniel Mensinger1-1/+1
2019-03-04better formating of the help outputDaniel Mensinger1-7/+12
2019-02-20add note to keep completion scripts updatedEric Engestrom1-0/+2
2019-02-18runpython: insert script's dir into import pathAndrei Alexeyev1-0/+1
Fixes #4947
2019-01-29pep8 py37Michael Hirsch, Ph.D1-1/+1
2019-01-17Merge pull request #4719 from ocrete/fix-posix-langJussi Pakkanen1-0/+17
Replace surrogates with valid codepoints to print env
2019-01-15mesonmain: Force to output UTF-8 even when the locale isn'tOlivier CrĂȘte1-0/+17
Otherwise Python gets all confused and it makes testing difficult. Also minimally emulate the behaviour of the normal object to make the rest of the code happy.
2019-01-07Add new meson.py unstable-coredata subcommand.Martin Hostettler1-1/+3
This adds a hidden option to dump the current otherwise hidden peristant state in coredata.dat. This interface is unstable as meson has no compatibility promises about coredata.dat.
2018-12-02Add 'meson subprojects update' commandXavier Claessens1-1/+3
This is inspired by gst-build's git-update script.
2018-10-04Hide 'rewrite' and 'runpython' commands from helpXavier Claessens1-6/+22
2018-10-04Use a single ArgumentParser for all subcommandsXavier Claessens1-51/+88
This has the adventage that "meson --help" shows a list of all commands, making them discoverable. This also reduce the manual parsing of arguments to the strict minimum needed for backward compatibility.
2018-10-04Simplify run_script_command()Xavier Claessens1-64/+24
2018-10-04Move setup command handling to its own msetup.py fileXavier Claessens1-228/+28
2018-10-04Move set_meson_command() to mesonlibXavier Claessens1-16/+1
2018-09-24Return code 0 when builddir is already configuredXavier Claessens1-1/+1
This is a regression in Meson 0.48.0, commit 674ae46, Meson used to exit(0) when running setup command in a builddir already configured. Changing to exit(1) breaks some build tools that does "meson builddir && ninja -C builddir". Closes #4247.
2018-09-05mesonmain: Add --reconfigure argumentXavier Claessens1-17/+23
Allows to manually reconfigure a project the same way backends would do (e.g. ninja reconfigure). This has the advantage that new options can be set using "meson --reconfigure -Dfoo=bar" and solve situations where a project cannot be reconfigured because new options has been added with the wrong default value. Fixes #3543.
2018-09-05mesonmain: Move builddir/sourcedir handling code inside MesonAppXavier Claessens1-14/+14
2018-09-04Add --fatal-meson-warnings command line optionXavier Claessens1-1/+3
This makes any warning message printed by meson raise an exception, intended to be used by CI and developpers to easily catch deprecation warnings and other potential issues.