summaryrefslogtreecommitdiff
path: root/mesonbuild/mesonlib.py
Commit message (Collapse)AuthorAgeFilesLines
* Updated to resolve issue identifying SGI CPUs on IRIX systemsEric Dodd2020-06-101-1/+3
|
* mesonlib.py: refactored detect_vcs() to use pathlib.Path (#7230)Joshua Gawley2020-06-041-7/+11
|
* interpreter: Add always set default value for version and set it ASAPDylan Baker2020-05-141-1/+3
| | | | | | | | | | | | | | Ideally we wouldn't need to have the default dict here and could just rely on it being set as soon as project is called. There is a corner case exercised by test case common/35 run program, which is that if a FeatureNew or FeatureDeprecated is called to generate the meson version it will be unset, to work around this I've changed the type from a dict to a default dict with '' as the default value. A better fix would probably be to store all of the FeatureNew/FeatureDeprecated checks until the end, then evaluate them, but for now this results in no loss of functionality, only more functionality, even if it isn't prefect.
* boost: Try finding libraries with the matching arch (fixes #7110)Daniel Mensinger2020-05-141-0/+10
|
* Recognize Hurd as platform/OSPino Toscano2020-04-101-0/+4
|
* cmake: support cmake config file syntax (#6917)dabrain342020-04-101-13/+47
| | | | | | | | | | * cmake: enhance support of cmake config file syntax Enhance the cmakedefine support by accepting 2 or 3 tokens in the conf line as mesondefine supports strictly 2 tokens * fixup! cmake: enhance support of cmake config file syntax * fixup! fixup! cmake: enhance support of cmake config file syntax
* Remove my notes from sourcesClausKlein2020-03-191-2/+0
| | | | changes acording review comments
* Use os.path.normpath() for include pathsClausKlein2020-03-191-0/+2
| | | | | | | This make relative pathes shorter an too give a chance to de-duplicate -isystem flags just like -I flags. Fix common test case 203 for OSX build host too
* remove ability to pass multiple keys to extract_as_listDylan Baker2020-03-051-9/+2
| | | | | | | | This makes the typing annotations basically impossible to get right, but if we only have one key then it's easy. Fortunately python provides comprehensions, so we don't even need the ability to pass multiple keys, we can just [extract_as_list(kwargs, c) for c in ('a', 'b', 'c')] and get the same result.
* mesonlib: use mlog instead of printDylan Baker2020-03-051-2/+2
|
* mesonlib: Replace unholder argument to listifyDylan Baker2020-03-051-14/+5
| | | | | | listify shouldn't be unholdering, it's a function to turn scalar values into lists, or flatten lists. Having a separate function is clearer, easier to understand, and can be run recursively if necessary.
* mesonbuild/mesonlib: Add type annotationsDylan Baker2020-03-051-120/+225
|
* mesonlib: Fix File.__eq__ to return NotImplementedDylan Baker2020-03-041-0/+2
| | | | | The implementation assumes another File, but doesn't properly guard that. Let's do that guarding.
* mesonlib: Use textwrap.dedentDylan Baker2020-03-041-4/+7
| | | | | This is mostly just to help folding editors like vim, which get confused by the non-indented code. It also helps readability, IMHO.
* types: Remove redundant __init__() -> None annotationDaniel Mensinger2020-03-021-2/+2
|
* Remove unused MesonException.get_msg_with_context()Jon Turney2020-02-281-17/+0
| | | | | After that, the only remaining user of get_error_location_string() is mlog, so move that there.
* Popen_safe: Always re-setup the console colorsNirbheek Chauhan2020-02-161-4/+9
|
* Split console colourization into a separate functionNirbheek Chauhan2020-02-161-2/+1
| | | | Use it instead of making a direct call to mlog._windows_ansi().
* mesonlib: Set stdin to DEVNULL for all programs run by usNirbheek Chauhan2020-02-161-0/+4
| | | | | | | Otherwise there's a high likelihood that some program run by us will mess up the console settings and break ANSI colors. F.ex., running `uname` in the Visual Studio 2019 x86 developer prompt using `run_command()` does this.
* add meson.get_native_property for native filesMichael Hirsch, Ph.D2020-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This allows Meson native-file [properties] to be used. This avoids the need to call meson from a script file or have a long command line invocation of `meson setup` The method meson.get_native_property('prop', 'fallback') is added. The native file can contain properties like ``` [properties] myprop1 = 'foo' mydir2 = 'lib/custom' ``` Then from within `meson.build` ```meson x1 = meson.get_native_property('myprop1') thedir = meson.get_native_property('mydir2', 'libs') ``` fallback values are optional
* Move git helper out into mesonlib for reuseNirbheek Chauhan2020-01-221-0/+14
| | | | | | Reuse the git helper for `meson wrap` and `meson subprojects` so we don't need to maintain the same git-colors-on-windows workarounds in multiple places.
* types: Fix/ignore flake8 B014/F811Daniel Mensinger2020-01-081-2/+2
|
* types: import typing as T (fixes #6333)Daniel Mensinger2020-01-081-33/+33
|
* cmake: add project language to cmakelists.txtMichael Hirsch, Ph.D2019-12-091-1/+3
| | | | | | | | | | | cmake: get language from Meson project if not specified as depedency(..., langugage: ...) deps: add threads method:cmake dependency('threads', method: 'cmake') is useful for cmake unit tests or those who just want to find threads using cmake. cmake: project(... Fortran) generally also requires C language
* lgtm: ignore Iterator does not return self from __iter__ methodDaniel Mensinger2019-12-051-2/+8
|
* Revert "Have set() and set_quoted() of configuration object work with newlines."Xavier Claessens2019-11-281-2/+0
| | | | This reverts commit 6ed36e97aeb01dd779115a9710d3a97cdbcb4ccf.
* dep: MPI make work for intel-cl and improve robustnessMichael Hirsch, Ph.D2019-11-251-1/+1
| | | | | | optimize intelMPI variables mpi: extract version from non-OpenMPI wrapper
* Have set() and set_quoted() of configuration object work with newlines.Jehan2019-11-191-0/+2
| | | | | | | | | | | | | | | | | | | | * Have set() and set_quoted() of configuration object work with newlines. set_quoted() makes the value into a double-quoted string, so let's assume C-style string, in particular with newlines as "\n". Also take care of remaining newlines in dump_conf_header(). C or nasm macros expect single-line values so if the value was multi-line, we would end up with broken syntax. Appending a backslash at each end of line make them concat into a single line in both C and nasm format (note: multi-line macros in nasm are actually possible apparently but use another format not outputted by current meson code). Also note that the replacement is done at the end only when dumping the conf as a header because we cannot assume anything about the format when replacing variables from an input file (in this case, it should be the dev responsibility). * Add unit tests for multiline set() and set_quoted().
* Fix typos found by codespellWolfgang Stöggl2019-11-061-4/+4
| | | | - Typos were found by codespell v1.16.0
* dependency('cuda')Aleksey Gurtovoy2019-11-051-0/+7
|
* ducking 'None' for missing moduleMichael Hirsch, Ph.D2019-10-221-2/+2
| | | | This handles the Windows-specific case, the next commit handles the general issue
* Add helper to print warnings onceZbigniew Jędrzejewski-Szmek2019-09-251-1/+14
| | | | | The helper is general, although in this patch it is only used for warnings. No functional change intended.
* CUDA support on WindowsAleksey Gurtovoy2019-09-241-0/+30
|
* get_library_dirs: Add Solaris 64-bit library subdirsAlan Coopersmith2019-09-131-0/+8
| | | | | | | Solaris puts 32-bit libraries in the main /lib & /usr/lib directories and 64-bit libraries in platform specific subdirectories. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* mesonlib.split_args/quote_arg/join_argsAleksey Gurtovoy2019-09-051-1/+79
|
* wine: Try to get the short paths when generating WINEPATHThibault Saunier2019-08-241-0/+34
| | | | | | | | | | | | | The size of WINEPATH is limited (1024 [until recently]), we can very easily reach that limit, and even the new one (2048) so try to keep path as small as possible by using the shortPath version of paths. Also assert that we do not reach the new hard limit. And avoid having duplicates in the list of path. [until recently]: https://bugs.winehq.org/show_bug.cgi?id=45810
* Support NetBSD aarch64 and earm.nia2019-08-231-0/+3
|
* Only iterate over existing libdirs.Jussi Pakkanen2019-08-171-2/+6
|
* mesonlib: Annotate Popen_safe functionsDylan Baker2019-07-231-4/+11
| | | | | These are used in linkers.py and need to be annotated to make linkers.py 100% clean
* Add optional progress bar when generating build.ninjaNirbheek Chauhan2019-07-201-0/+55
|
* type hints @dcbakerMichael Hirsch, Ph.D2019-07-081-6/+5
|
* add clang c_std=c18 aliasMichael Hirsch, Ph.D2019-07-081-3/+3
| | | | | | | | | | fix unit test skips for clang c18 correct unittests clang minimum version cleanup unittest clang skip c_std finesse unittest vs. clang version
* remove `for_XXX` functions from mesonlibJohn Ericson2019-06-091-70/+0
| | | | All uses now use `env.machines.YYY.is_XXX` instead.
* Use `env.machines.*` to avoid some `is_cross`John Ericson2019-06-091-39/+21
| | | | | This is a small example of the `is_cross` removal the that abstraction enables.
* Per machine do 'build.' and '' option prefixesJohn Ericson2019-06-051-5/+7
| | | | See the docs/ changes for details.
* BUGFIX variable name #5285Michael Hirsch, Ph.D2019-05-281-2/+4
| | | | handle x86 correctly
* Merge pull request #5395 from dcbaker/mtest-annotationsJussi Pakkanen2019-05-161-1/+1
|\ | | | | Mtest annotations and bug fixes
| * mesonlib: Annotate substring_in_listDylan Baker2019-05-141-1/+1
| | | | | | | | for mtest
* | Make `PerMachine` and `MachineChoice` have just `build` and `host`John Ericson2019-05-161-7/+90
|/ | | | | | | | | | | | | | | | | | 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.
* This is the fork "sneyx1234/meson" of the current git "mesonbuild/meson" ↵Simon Ney2019-05-131-0/+3
| | | | | | head to converge it to the solaris 11.4 platform based on the sparcv9 and i386 processor architecture. The purpose is to complete the porting related to the fork "sneyx1234/ast" of "att/ast" the "AT&T kornshell".