summaryrefslogtreecommitdiff
path: root/mesonbuild/optinterpreter.py
Commit message (Collapse)AuthorAgeFilesLines
* No need to reserve build_ because we use build. instead.Jussi Pakkanen2019-07-151-1/+1
|
* Reserve build_ prefix in option names.Jussi Pakkanen2019-05-201-1/+1
|
* UserOption no longer has a name field.John Ericson2019-05-151-19/+15
| | | | | | | 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.
* optinterpreter: Add a log argument to is_invalid_nameDylan Baker2019-04-051-3/+4
| | | | | | Since we're adding arguments that use the cross_ prefix but are valid we don't want to print "warning invalid argument name!", as that will confuse people by virtue of being wrong.
* optinterpreter: Add type annotations to is_invalid_nameDylan Baker2019-04-051-1/+1
|
* coredata: remove get_builtin_optionsDylan Baker2019-04-041-1/+1
| | | | | | | This returns a list out of th keys of a dict. In both cases of use remaining though it's used for checking membership, checking for list membership, lists are O(n) lookup, while dicts are O(1), so removing the abstraction reduces typing and improves performance.
* Reserve cross_ option prefix for Meson.Jussi Pakkanen2019-03-191-0/+4
|
* UserFeatureOption: Default to 'auto' when no value specifiedXavier Claessens2018-07-251-1/+1
| | | | Closes #3938.
* FeatureNew: Make all checks subproject-specificNirbheek Chauhan2018-07-021-4/+8
| | | | | | | | | | | | We now pass the current subproject to every FeatureNew and FeatureDeprecated call. This requires a bunch of rework to: 1. Ensure that we have access to the subproject in the list of arguments when used as a decorator (see _get_callee_args). 2. Pass the subproject to .use() when it's called manually. 3. We also can't do feature checks for new features in meson_options.txt because that's parsed before we know the meson_version from project()
* Add UserFeatureOption typeXavier Claessens2018-06-181-0/+8
| | | | | | | | | | | This is a special type of option to be passed to most 'required' keyword arguments. It adds a 3rd state to the traditional boolean value to cause those methods to always return not-found even if the dependency could be found. Since integrators doesn't want enabled features to be a surprise there is a global option "auto_features" to enable or disable all automatic features.
* Convert args.projectoptions into a dictXavier Claessens2018-06-061-44/+1
| | | | | | | | | | | | | | | | | This simplifies a lot of code, and centralize "key=value" parsing in a single place. Unknown command line options becomes an hard error instead of merely printing warning message. It has been warning it would become an hard error for a while now. This has exceptions though, any unknown option starting with "<lang>_" or "b_" are ignored because they depend on which languages gets added and which compiler gets selected. Also any option for unknown subproject are ignored because they depend on which subproject actually gets built. Also write more command line parsing tests. "19 bad command line options" is removed because bad cmd line option became hard error and it's covered with new tests in "30 command line".
* optinterpreter: Remove duplicated list of languagesXavier Claessens2018-06-061-13/+2
| | | | | | It is important to keep the list of languages up to date in optinterpreter, otherwise we could have conflicting options when adding new languages.
* Add 0.45.0 featuresSalamandar2018-06-011-0/+4
|
* Add 0.44.0 featuresSalamandar2018-06-011-1/+2
|
* options: s/yiel/yield/ typoThibault Saunier2018-03-201-1/+1
| | | | Making the option unusable with Invalid kwargs for option use_orc: "yield"
* Fix subproject prefix handling when checking subproject option validity.Hemmo Nieminen2018-02-161-8/+25
|
* User options can "yield to" a user option of the same name in superproject. ↵Jussi Pakkanen2018-02-081-11/+26
| | | | Closes ##2853.
* Expose integer options to build option files.Jussi Pakkanen2018-02-071-0/+11
|
* Warn on unknown command line argumentsDylan Baker2017-12-191-0/+9
| | | | | | | I have a tendency to typo things. Humans in general are bad at spotting spelling mistakes, computers are not. This patches prints the bad options and provides the generic meson "This will be a hard error someday" message.
* Renamed UserStringArrayOption to UserArrayOption for short.Jussi Pakkanen2017-12-071-1/+1
|
* String arguments can permit arbitrary string valuesJussi Pakkanen2017-12-031-9/+11
| | | | by leaving out the choices keyword.
* Add new array type optionDylan Baker2017-11-291-0/+16
| | | | | | | This exposes the already existing UserStringArrayOption class through the meson_options.txt. The intention is to provide a way for projects to take list/array type arguments and validate that all of the elements in that array are valid without using complex looping constructrs.
* coredata: Remove parse_string() methodXavier Claessens2017-11-061-1/+1
| | | | | | | set_value() already does a better job at parsing strings, such as accepting "True" for a boolean. This fixes issue #2544
* options: Add a permitted_kwargs functionDylan Baker2017-10-041-3/+24
| | | | | | | | | | I've typo'd "value" for the last time, options needs a kwargs validator. This validator is slightly different than the one used by the main parser, since it operates on a much simpler representation than the other one does, and they are not interchangeable. This also changes the optinterpreter to use pop on 'type' and 'description' so that they're not passed to the validator as kwargs.
* Add option to limit maximum number of concurrent link processes.Jussi Pakkanen2017-08-051-11/+12
|
* Allow option values to contain ':'Nirbheek Chauhan2017-04-041-3/+4
| | | | | | | Instead, check that option keys don't contain ':'. Also change the failing option test to look for this. Closes https://github.com/mesonbuild/meson/issues/1454
* cleanup: Remove redundant parenthesesMike Sinkovsky2017-01-181-1/+1
|
* Merge pull request #1260 from mesonbuild/subproj_defaultsJussi Pakkanen2017-01-031-0/+7
|\ | | | | Can set subproject option defaults from command line and master project
| * Can set project options (but not global options) in subproject default options.Jussi Pakkanen2016-12-291-0/+7
| |
* | style: fix E124 violationsIgor Gnatenko2017-01-011-1/+1
| | | | | | | | | | | | E124: closing bracket does not match visual indentation Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
* | Fix space before :.Jussi Pakkanen2016-12-311-3/+3
|/
* Raise clearer error if -Doption is invalid.Elliott Sales de Andrade2016-12-211-1/+4
|
* tree-wide: use proper 'not in' notationIgor Gnatenko2016-12-191-1/+1
| | | | | | Let's be more pythonic and 'not is' seems really weird. Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
* Store subdir information for each node so we can remove files set in other ↵Jussi Pakkanen2016-12-041-1/+1
| | | | subdirectories.
* Use context manager for file I/O.Elliott Sales de Andrade2016-08-271-1/+2
| | | | | There are a few cases where a context manager cannot be used, such as the logger.
* Flatten isinstance calls. (#715)Elliott Sales de Andrade2016-08-271-5/+2
| | | | That is, isinstance(x, y) or isinstance(x, z) can be flattened with a tuple to isinstance(x, (y, z)).
* Implement D supportMatthias Klumpp2016-08-191-0/+1
| | | | | | | | | | | This patch adds support for the D programming language[1] to Meson. The following compilers are supported: * LDC * GDC * DMD [1]: http://dlang.org/
* coredata: Centralize builtin option descriptions and definitions.Hemmo Nieminen2016-04-041-1/+1
|
* Move MesonException from coredata to mesonlib.Hemmo Nieminen2016-04-011-2/+3
|
* Merge branch 'base_options'.Jussi Pakkanen2016-03-201-3/+6
|\
| * Preserve b_ prefix for base option names.Jussi Pakkanen2016-03-201-3/+6
| |
* | Open Meson and option files explicitly as utf-8. Closes #467.Jussi Pakkanen2016-03-201-1/+1
|/
* Renamed meson package to mesonbuild so that we can have a script named meson ↵Jussi Pakkanen2016-01-161-0/+148
in the same toplevel dir.