aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-10-11docs: fix a typoed arg name and another missing argEli Schwartz1-1/+5
More stuff that got overlooked during the big refman migration.
2021-10-11Bump version number for rc1.0.60.0.rc1Jussi Pakkanen3-2/+3
2021-10-10pkg-config: do not ever successfully detect Strawberry Perl.Eli Schwartz1-0/+4
This is broken and terrible and thus completely unusable. Don't torture users by finding pkg-config on Windows, thus permitting the pkg-config lookup of several dependencies that do not actually work -- which then fails at build time. This also breaks CI for the wrapdb, because Strawberry Perl is provided as part of the base image for the OS (yes, even though it is terribly broken!!!) and anything that depends on e.g. zlib will "find" zlib because of this broken disaster, even though it should use the wrapdb subproject of zlib. It is assumed no one actually wants to mix Strawberry Perl and meson. In fact, some projects, such as gst-build, already unconditionally error out if Strawberry Perl is detected in PATH: error('You have Strawberry Perl in PATH which is known to cause build issues with gst-build. Please remove it from PATH or uninstall it.') Other projects (postgresql) actually do want to build perl extensions, and link to the perl dlls, but absolutely under no circumstances ever want to use its pkg-config implementation. ;) Let's solve this problem by just considering this to not be a valid pkg-config, let the user find another or not have one at all. This change "solves" https://github.com/StrawberryPerl/Perl-Dist-Strawberry/issues/11
2021-10-10simplify some log formatting by splitting out a commonly used format stringEli Schwartz1-5/+4
There are a bunch of cases in a single function where we would want to log the detected path of pkg-config. Formatting this is awkward. Define it once, then use f-strings everywhere. :D
2021-10-10Add missing release snippet for option() deprecated kwargXavier Claessens1-0/+23
2021-10-10Add --vsenv command line option and active VS only when neededXavier Claessens14-115/+150
2021-10-10improve wraptool searchDaniel Jacobs2-2/+12
2021-10-10Fix typos discovered by codespellChristian Clauss72-113/+113
2021-10-10clangformat: Only format files tracked by git by defaultXavier Claessens3-4/+31
2021-10-10ar linker: generate thin archives for uninstalled static librariesEli Schwartz4-10/+32
Since they will never be used outside of the build directory, they do not need to literally contain the .o files, and references will be sufficient. This covers a major use of object libraries, which is that the static library would potentially take up a lot of space by including another copy of every .o file. Fixes #9292 Fixes #8057 Fixes #2129
2021-10-10linkers: reorganize Ar linker into a base classEli Schwartz1-29/+24
The `init__()` method basically existed solely to be overridden by every derivative class. Better to use it only in the class that needs it. This fixes several warnings, including missing calls to init because we skipped ArLinker due to not wanting it... also get rid of a pointless popen return code saved as pc, which we never checked.
2021-10-10Revert "interpreter: Add FeatureNew check"Eli Schwartz3-20/+1
This reverts commit c0efa7ab22f8900f6fa1dadf0d306ec375569c8d. This was a nice idea, or a beautiful hack depending on your perspective. Unfortunately, it turns out to be a lot harder than we originally thought. By operating on bare nodes, we end up triggering a FeatureNew on anything that isn't a string literal, rather than anything that isn't a string. Since no one else has come up with a better idea for implementing a FeatureNew, let's just revert it. Better to not have a warning, than have it trigger way too often.
2021-10-10Add release notes for `subprojects packagefiles`.Eli Schwartz1-0/+11
2021-10-10msubprojects: implement "packagefiles --save"Eli Schwartz1-2/+36
Copies packagefiles from the subproject back to the patch_directory for safe storage and to check into git etc.
2021-10-10msubprojects: add new subcommand "packagefiles"Eli Schwartz1-1/+28
This will re-apply the meson.build patch overlay, ensuring it is up to date. Also take the opportunity offered by this infrastructure to repatch when performing `update --reset` since internally this will run `git stash` and thus cause the (possibly locally modified) meson.build files to disappear.
2021-10-10Revert "msubprojects: if fetching the remote fails, gracefully fallback to ↵Eli Schwartz1-8/+3
local copy" This reverts commit 4568482316f63c48559b97c9a4771740ed61eca6. As it turns out, the rationale for this was completely bogus. This command doesn't re-apply the patch_directory etc. and in fact there is no command whatsoever that does this. So, this command does not have two purposes, and we are not making one of them more robust -- instead it has one purpose, and we are making it lie about whether it failed. Instead of trying to freeload off of this command, we will just add another command to properly apply patch overlays.
2021-10-10Be more strict about target names with slashes.Jussi Pakkanen2-1/+9
2021-10-10minstall: Ignore ldconfig errors when we did not install librariesXavier Claessens1-9/+22
Fixes: #9241
2021-10-10pkgconfig module: correctly generate Libs search path with absolute install_dirEli Schwartz1-4/+6
For example the OpenRC build files install libraries to install_dir: '/lib' and this works, but causes the generated pkg-config to say: prefix=/usr Libs: -L${prefix}//lib which is both ugly (double //) and resolves to /usr/lib which is exactly what does not work.
2021-10-10Merge pull request #9373 from anarazel/vs-build-speedJussi Pakkanen1-170/+69
backend/vs: Parallelize compilation inside one project
2021-10-10Zipapp docs (#9356)Eli Schwartz2-0/+20
* Revert "README: Don't recommend using as a standalone script" This reverts commit 9763bf65c6285176b578de71b0c3b8c14c72fdf2. zipapps work fine now that we have a single entry point. Time to recommend them again. * update zipapp documentation to recommend the current packaging script Also update the website documentation to mention this at all.
2021-10-09optinterpreter: Add deprecated kwargXavier Claessens6-2/+117
It can be either: - boolean: the option is completely deprecated. - list: some choices are deprecated. - dict: some choices are deprecated and replaced by another. Fixes: #7444
2021-10-09optinterpreter: Refactor to use typed_pos_args() and typed_kwargs()Xavier Claessens2-122/+100
2021-10-09optinterpreter: Add support for dictionariesXavier Claessens1-0/+7
2021-10-09typed_kwargs: Fix when ContainerTypeInfo is used in a tupleXavier Claessens2-39/+89
info.types could be a tuple like (str, ContainerTypeInfo()). That means we have to check types one by one and only print error if none of them matched. Also fix the case when default value is None for a container type, it should leave the value to None to be able to distinguish between unset and empty list.
2021-10-08python: Add platlibdir and purelibdir optionsXavier Claessens10-10/+78
2021-10-08ModuleState: Add wrapper to get optionXavier Claessens1-1/+8
2021-10-08Add support for module optionsXavier Claessens4-20/+42
2021-10-08doc: fix yaml indentation typo that broke building the websiteEli Schwartz1-6/+6
2021-10-08add install_emptydir functionEli Schwartz12-5/+125
This replaces the absolute hack of using ``` install_subdir('nonexisting', install_dir: 'share') ``` which requires you to make sure you don't accidentally or deliberately have a completely different directory with the same name in your source tree that is full of files you don't want installed. It also avoids splitting the name in two and listing them in the wrong order. You can also set the install mode of each directory component by listing them one at a time in order, and in fact create nested structures at all. Fixes #1604 Properly fixes #2904
2021-10-08Add Mac installation instructions for HomebrewIsmayil Mirzali1-0/+4
2021-10-08cmake: handle arguments in the [binaries] section of the machine filePaolo Bonzini2-6/+49
Sometimes, the machine file can include compiler command line options, in order to pick the correct multilib. For example, Meson uses "$cc --print-search-dirs" to find the library search path, where $cc is the cc from the machine file. Because the outputs of "gcc -m32 --print-search-dirs" and "gcc --print-search-dirs" are different, this only works if you have [binaries] cc = ['gcc', '-m32'] in the machine file. Right now, however, the cmake module assumes that the compiler listed in the machine file is either a compiler, or a "launcher" followed by the compiler. Check if the second argument starts with a slash (for Microsoft-like compilers) or a dash (for everyone else), and if so presume that the CMAKE_*_COMPILER_LAUNCHER need not be defined.
2021-10-08backend/vs: Parallelize compilation inside one project.Andres Freund1-0/+1
UseMultiToolTask allows parallelism inside a project, without requiring cl.exe internal multi-threading (which meson generated projects currently can't use, mainly due to specifying output filenames for each object). TODO: - think about making behaviour conditional on msbuild version / add comment why not
2021-10-08backend/vs: Deduplicate basic project template.Andres Freund1-171/+61
Note that a few minor details of the output changed for some target types. I think I called them out with XXXs in the code for now.
2021-10-08backend/vs: Name pch pdb files to avoid naming & lock conflicts.Andres Freund1-0/+7
2021-10-08backend/vs: Move Microsoft.Cpp.props to before ItemDefinitionGroup.Andres Freund1-2/+3
The main reason for this move is to make it easier to merge the copies of project generation. But as far as I can tell, the Microsoft.Cpp.props import also belongs before the ItemDefinitionGroup. Originally the order seems to have been that way, but 431a9ea664 changed it in the course of other changes.
2021-10-08modules/gnome: Fix unset install_dirDylan Baker1-3/+2
install_dir needs to be set to something, because CustomTarget expects that. genmarshal still relies on CustomTarget setting it internally itself. Fixes #9350
2021-10-08modules/gnome: Fix case that could never be hit due to bad typesDylan Baker1-3/+3
It's impossible to get a Holder here, we'd get the unholdered build types. Mypy points this out for us.
2021-10-08modules/gnome: fix use of undefined variableDylan Baker1-1/+1
Theere is no 'output' key in the kwargs, so if this was it it would result in an exception. Mypy spotted this in a branch I'm working on full typing for gnome, but since that seems unlikely to be done before the 0.60 branchpoint I'd like to get this in sooner
2021-10-07Windows module: Make path flattening for windres work in more casesLuca Bacci1-2/+2
If either 'name' or 'name_formatted' are absolute paths, then they are of the form: C:\path/to/file.ext (example) By only substituting slashes with the underscore, we get: C:_path_to_file.ext This is still not quite right, infact os.path.basename() returns: _path_to_file.ext Also replace colons with underscores to overcome issues when absolute paths are involved.
2021-10-07docs: restore build_target method documentation which went missingEli Schwartz1-0/+40
In the refman rewrite, these functions vanished. I noticed this when I went looking at the docs for extract_all_objects(), or should I say I tried to go looking.
2021-10-07clike compilers: drop semicolon at function endVladimír Čunát1-4/+4
warning: ISO C does not allow extra ';' outside of a function [-Wpedantic]
2021-10-07modules/gnome: deprecate yelp variadic sourcesDylan Baker3-1/+27
Yelp currently can take sources two different ways, the first is via variadic arguments, the second is by a keyword argument. If the keyword is passed then the variadic arguments are silently ignored, which is obviously not ideal. Fortunately the variadic form was never documented, and is likely not in wide use. This patch fixes it by deprecating the variadic form, and warning if both are passed. It does not change behavior as someone may be relying on it.
2021-10-06interpreter: Move RangeHolder out of interpreterbase to interpreterDaniel Mensinger5-28/+39
2021-10-06interpreter: Holderify arrays and dictsDaniel Mensinger14-428/+349
This is the final refactoring for extracting the bultin object logic out of Interpreterbase. I decided to do both arrays and dicts in one go since splitting it would have been a lot more confusing.
2021-10-06Fix compiler detection for cl/clang-clJesse Natalie1-1/+1
If the compiler specified is a path to a compiler, the current detection is broken. It needs to use just the compiler name instead.
2021-10-06cmake: Implement support for interpreting link "keywords"Daniel Mensinger3-11/+37
CMakes `target_link_libraries()` supports certain keywords to only enable specific libraries for specific CMake configurations. We now try our best to replicate this for Meson dependencies. Fixes #9197
2021-10-06cmake: Warn if we could use IMPORTED CMake targetsDaniel Mensinger3-2/+43
2021-10-06ci: Add TTY mode to the image builder mounting mesonDaniel Mensinger1-1/+30
2021-10-06ci: Add comment to not forget updating wrapdb rulesXavier Claessens1-0/+2