summaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
Commit message (Collapse)AuthorAgeFilesLines
...
* cmake: removed legacy kwargs from interpreter dictDaniel Mensinger2019-06-061-1/+1
|
* cmake: moved subprojects into the CMake moduleDaniel Mensinger2019-06-061-19/+11
|
* cmake: rebase fixesDaniel Mensinger2019-06-061-3/+3
|
* cmake: Added option for additional CMake argsDaniel Mensinger2019-06-061-6/+7
|
* cmake: Minor fixesDaniel Mensinger2019-06-061-6/+5
|
* cmake: support object librariesDaniel Mensinger2019-06-061-4/+7
|
* cmake: Fixed install prefixDaniel Mensinger2019-06-061-1/+2
|
* cmake: First working versionDaniel Mensinger2019-06-061-4/+17
|
* cmake: basic AST generationDaniel Mensinger2019-06-061-9/+22
|
* cmake: Server handshakeDaniel Mensinger2019-06-061-3/+10
|
* Added method kwarg to subprojectDaniel Mensinger2019-06-061-12/+34
|
* Per machine do 'build.' and '' option prefixesJohn Ericson2019-06-051-12/+13
| | | | See the docs/ changes for details.
* interpreter: add fallback argument to subproject.get_variable()Mathieu Duponchelle2019-05-281-6/+13
|
* Merge pull request #5372 from dcbaker/get_variableJussi Pakkanen2019-05-211-1/+17
|\ | | | | Dependency.get_variable method
| * fixup! interpreter: Add get_variable method to dependency holdersDylan Baker2019-05-201-1/+1
| |
| * interpreter: Add get_variable method to dependency holdersDylan Baker2019-05-101-1/+17
| |
* | Generators can have extra target dependencies. Closes #4131.Jussi Pakkanen2019-05-201-1/+6
| |
* | Merge pull request #5276 from dcbaker/pkg-config-path-invalidate-cacheJussi Pakkanen2019-05-201-7/+10
|\ \ | | | | | | coredata: add pkg_config_path to depedency cache key
| * | Use dependency cacheDylan Baker2019-05-201-7/+10
| | |
* | | Remove compiler data from build objectJon Turney2019-05-201-5/+5
| | | | | | | | | | | | | | | The actual data is in Coredata (which is serialized) and we just held a reference in Build for (in)convenience.
* | | Remove compilers from ModuleState objectJon Turney2019-05-201-2/+1
|/ / | | | | | | | | | | | | | | It doesn't make much sense to have this and not also have cross-compilers (so any use of this is already pretty suspect as probably wrong when cross-compiling). This information is accessible anyhow via environment.coredata.
* | Merge pull request #5395 from dcbaker/mtest-annotationsJussi Pakkanen2019-05-161-7/+7
|\ \ | | | | | | Mtest annotations and bug fixes
| * | build: TestSetup doesn't take keyword argumentsDylan Baker2019-05-141-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | This function is currently setup with keyword arguments defaulting to None. However, it is never called without passing all of it's arguments explicitly, and only one of it's arguments would actually be valid as None. So just drop that, and make them all positional. And annotate them.
| * | interpreter: annotate the Test classDylan Baker2019-05-141-3/+6
| |/ | | | | | | This is needed for mtest, in a round about way through backends
* | Make `PerMachine` and `MachineChoice` have just `build` and `host`John Ericson2019-05-161-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Meson itself *almost* only cares about the build and host platforms. The exception is it takes a `target_machine` in the cross file and exposes it to the user; but it doesn't do anything else with it. It's therefore overkill to put target in `PerMachine` and `MachineChoice`. Instead, we make a `PerThreeMachine` only for the machine infos. Additionally fix a few other things that were bugging me in the process: - Get rid of `MachineInfos` class. Since `envconfig.py` was created, it has no methods that couldn't just got on `PerMachine` - Make `default_missing` and `miss_defaulting` work functionally. That means we can just locally bind rather than bind as class vars the "unfrozen" configuration. This helps prevent bugs where one forgets to freeze a configuration.
* | UserOption no longer has a name field.John Ericson2019-05-151-3/+3
|/ | | | | | | This avoids the duplication where the option is stored in a dict at its name, and also contains its own name. In general, the maxim in programming is things shouldn't know their own name, so removed the name field just leaving the option's position in the dictionary as its name.
* add support for "target_type: 'shared_module'" in build_target()Daniel Eklöf2019-05-091-0/+4
|
* Fix an assertion exception when misusing install_dataJon Turney2019-05-051-1/+3
| | | | | | * Failing test case for trying to install_data a custom_target * Validate install_data() arguments are either string or file
* Merge pull request #4952 from mensinda/cacheCompilesDylan Baker2019-05-021-46/+59
|\ | | | | Cache compilers.compile() in coredata
| * Make flake8 happyDaniel Mensinger2019-04-281-2/+2
| |
| * Added some cahced valuesDaniel Mensinger2019-04-281-4/+5
| |
| * Print '(cached)' when compiler result was cachedDaniel Mensinger2019-04-281-40/+52
| |
* | Merge pull request #5311 from mensinda/flake8PluginsJussi Pakkanen2019-05-021-2/+2
|\ \ | | | | | | Added flake8 plugins and some code fixes
| * | Do not pass None to mlog.exceptionDaniel Mensinger2019-04-291-1/+1
| | |
| * | Fixed unnecessary .items()Daniel Mensinger2019-04-291-1/+1
| | |
| * | Fix unused variables warningsDaniel Mensinger2019-04-291-1/+1
| |/
* | Non-required appleframework deps should not be an error. Closes #5295.Jussi Pakkanen2019-05-021-0/+1
|/
* ast: support elementary object methodsDaniel Mensinger2019-04-231-18/+0
|
* Don't use mutable types as default argumentsDylan Baker2019-04-231-2/+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.
* Merge pull request #5250 from jon-turney/test-compiler-reportJussi Pakkanen2019-04-201-7/+2
|\ | | | | Add a report of compilers used to run_project_tests.py
| * Push formatting of compiler version string down into Compiler classJon Turney2019-04-121-7/+2
| |
* | interpreter: Check the meson version before parsing optionsNirbheek Chauhan2019-04-181-5/+8
| | | | | | | | | | | | Also add a test for it so we don't regress this in the future. Closes https://github.com/mesonbuild/meson/issues/5281
* | interpreter: Warn when environment() ops are overridenNirbheek Chauhan2019-04-131-1/+7
|/ | | | | | | | Warn when someone tries to use append() or prepend() on an env var which already has an operation set on it. People seem to think that multiple append/prepend operations stack, but they don't. Closes https://github.com/mesonbuild/meson/issues/5087
* interpreter: use container explosion where it makes senseDylan Baker2019-04-121-20/+10
| | | | | | | | | | | | | | | | | we can avoid writing code like: a = c[0] b = c[1] by using: a, b = c or a = c[0] b = c[1:] by using: a, *b = c This saves just a bit of code and is a teeny bit faster. But mostly for less code
* interpreter: use zip functionDylan Baker2019-04-121-3/+1
| | | | | | Currently this is implemented as range(min(len(a), len(b)), an then indexing into a and b to get what we actually want. Fortunately python provides a function called zip that just does this.
* Added deduplication for configurration time file dependencies (fixes #5190)TheQwertiest2019-04-021-1/+2
|
* Add 'is_default' to permitted_kwargs for add_test_setup()Rico Tzschichholz2019-04-011-1/+1
| | | | | | This missing in 0821462ce382541e120d8d6cfc1a3224a492b275 See #4430
* Fix run_command() with command on a different driveJakub Adam2019-03-281-2/+6
| | | | | | On Windows, program on a different drive than srcdir won't have an expressible relative path; cmd_path will be absolute instead and shouldn't get added into build_def_files.
* Maintain backwards compatibility for one release. Closes #5051.Jussi Pakkanen2019-03-271-1/+6
| | | | Also, specify what the replacement is.
* Reduce absolute paths to a deprecation. Closes #5050.Jussi Pakkanen2019-03-261-1/+1
|