aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-02-28Add release note snippetJon Turney1-0/+9
2020-02-28Extend unit test to cover cwd-relative warning location formattingJon Turney1-0/+14
2020-02-28Rename 'subdir' -> 'filename' in location objectsJon Turney3-55/+54
2020-02-28Add unit test of cwd-relative error location formattingJon Turney1-3/+34
2020-02-28Add failing test of parser error in options fileJon Turney2-0/+2
2020-02-28Add failing test of parser error in subdirJon Turney2-0/+3
2020-02-28Update rewriter for filename in node locationJon Turney1-14/+15
2020-02-28Display filename cwd relative in warning locationJon Turney1-2/+2
Format the filename relative to cwd in a warning location.
2020-02-28Store filename in node locationJon Turney5-5/+5
Warnings have a location node object (with subdir and lineno attributes), which is passed as a location: kwarg to mlog.warning() and formatted in _log_error(). Re-purpose the subdir attribute (path relative to the source root dir, with an implied filename of 'meson.build'), which is stored into the node by parser(), to contain a pathname. (Properly I should rename 'subdir' -> 'file' everywhere, but that's a lot of churn just to see if this works) Notes: The warning location node may also have a colno attribute, which is currently ignored by _log_error(). We can't currently issue warnings with locations in meson_options.txt because the filename isn't part of the location (as it's assumed to be 'meson.build).
2020-02-28Adjust all the other places MesonException file attribute is setJon Turney4-5/+6
A MesonException has file, lineno and colno attributes, which get formatted as a location in mlog.exception(). The file attribute got changed from a path relative to the root source directory to a pathname (absolute or relative to cwd) in one place in commit b8fbbf59. Adjust all the other places the file attribute is set to match. Also: Setting MesonException.file seems to be missing in the case where Parser returned a non-CodeBlockNode object. Fortunately, that looks like it's unreachable, but add it just in case.
2020-02-28Fix typos in comments about type annotationsJon Turney1-2/+2
2020-02-28Remove unused MesonException.get_msg_with_context()Jon Turney2-18/+10
After that, the only remaining user of get_error_location_string() is mlog, so move that there.
2020-02-27Fix 'linuxlike/14 static dynamic linkage' test on CygwinJon Turney1-1/+1
Update the expected output from nm to match changes in binutils 2.34.
2020-02-27Clang-cl cross fix from Dale Curtis. Closes #5639.Jussi Pakkanen1-1/+3
2020-02-27doc: fix link warningsMathieu Duponchelle3-4/+4
2020-02-27Fix python2 rename (#6703)Dylan Baker1-11/+16
* unittests: fix finding python2 if the binary is named python2 Because of the way the python module works the simplicity of the test function is no longer valid, we need to have and additional name parameter to make the python module work, as it doesn't look for an entry called "python2" or "python3", only "python" * unittests: Don't make our python 2.x check debian specific * unittests: On macOS the python2 binary is still called python
2020-02-26mesonbuild/modules/gnome.py: Fix giscanner and gicompiler logicAdam Duskett1-0/+4
Currently, giscanner and the gicompiler paths are only scanned via pkg-config if they are first found in the host path. Add a else statement to fix this oversite.
2020-02-25gobject-introspection: determine g-ir-scanner and g-ir-compiler paths from ↵Adam Duskett1-3/+18
pkgconfig Currently, meson hard codes the paths of these binaries which results in cross-compiled environments to run the host versions of these tools. However, GObject-introspection provides the appropriate paths to these utilities via pkg-config find_program is needed in the case g-i is built as a subproject. If g-ir-scanner or g-ir-compiler are in the build or source directory use those. If they aren't found in the source directory, use the results from pkg-config.
2020-02-25azure ci: Test x86 Visual Studio builds again, closes #6604Nirbheek Chauhan1-2/+2
This was dropped when the VS2015 images were removed from Azure.
2020-02-25Typo fix. [skip ci]Jussi Pakkanen2-2/+2
2020-02-25Document the project policy on mixing build systems. [skip ci]Jussi Pakkanen4-0/+62
2020-02-24Merge pull request #6658 from michaelbadcrumble/clean_meson_initDylan Baker1-53/+64
Update minit.py
2020-02-24Update minit.pyMichael Brockus1-3/+2
2020-02-24fixed issue with auto-detection failingMichael Brockus1-1/+2
2020-02-24use python set to tuple for checking membersMichael Brockus1-2/+2
2020-02-23Merge pull request #6637 from ↵Jussi Pakkanen19-106/+375
mesonbuild/nirbheek/implement-symbolextractor-windows Implement symbolextractor on windows + some cleanups/fixes
2020-02-23cmake2meson fix if nesting (#6676)Yann Dirson1-8/+17
2020-02-23Merge pull request #6602 from mensinda/depBoostJussi Pakkanen12-781/+1119
boost: System dependency rewrite
2020-02-23Merge pull request #6635 from mensinda/cmOTMFixJussi Pakkanen12-50/+199
cmake: Fix dependency loops in custom targets (fixes #6632)
2020-02-23Update Custom-build-targets.mdadamjalkemo1-2/+2
Use the declared variables infile and outfile
2020-02-22symbolextractor: Add support for CygwinNirbheek Chauhan2-3/+27
2020-02-22symbolextractor: Add support for clang-clNirbheek Chauhan2-29/+39
Requires the latest LLVm 9.0 release which implements the `-list` argument to `llvm-lib` and ships with an implementation of `nm` called `llvm-nm`.
2020-02-22symbolextractor: Add a Windows implementationNirbheek Chauhan2-7/+82
Supports both MSVC and MinGW toolchains. Checks for MSVC first, then falls back to MinGW.
2020-02-22unit tests: Add a test for the symbolchecker scriptNirbheek Chauhan2-25/+55
When a source file for a library is changed without adding new extern symbols, only that library should be rebuilt. Nothing that uses it should be relinked. Along the way, also remove trailing `.` in all Ninja rule descriptions. It's very confusing to see messages like: ``` Linking target mylib.dll. ``` It's confusing that the period at the end of that is not part of the filename. Instead of removing that period manually in the tests (which feels wrong!) just don't print it at all.
2020-02-22unit tests: Add a test for reconfigure causing no-op buildNirbheek Chauhan1-0/+37
meson setup && ninja && touch meson.build && ninja should only reconfigure but not cause anything to be rebuilt.
2020-02-22unit tests: Make assertBuildNoOp check stricterNirbheek Chauhan1-5/+5
We also need to verify that no CustomBuild targets were rebuilt.
2020-02-22unit tests: Skip if pkg-config is not foundNirbheek Chauhan1-0/+1
Of course, this does not skip on the CI, but helps on Windows.
2020-02-22ninjabackend: Pass the import library to SHSYMNirbheek Chauhan2-9/+16
We actually use this while linking on Windows, and hence we need to extract symbols from this file, and not the DLL. However, we cannot pass it instead of the DLL because it's an optional output of the compiler. It will not be written out at all if there are no symbols in the DLL, and we cannot know that at configure time. This means we cannot describe it as an output of any ninja target, or the input of any ninja target. We must pass it as an argument without semantic meaning.
2020-02-22ninjabackend: Minor refactoringNirbheek Chauhan1-2/+5
2020-02-22tests: Ensure that executable and library are named differentlyNirbheek Chauhan10-10/+17
On Windows, the basename is used to determine the name of the PDB file. So for a project called myproject, we will create myproject.dll and myproject.exe, both of which will have myproject.pdb. This is a file collision. Instead, append `_test`, similar to the C# template. Fixes AllPlatformTest.test_templates on MSVC. This became a hard error when we started listing PDBs in the implicit outputs list of ninja targets. Do the same for a test that was making the same mistake.
2020-02-22ninjabackend: List PDBs in output list for targetsNirbheek Chauhan6-20/+51
This is more correct, and forces the target(s) to be rebuilt if the PDB files are missing. Increases the minimum required Ninja to 1.7, which is available in Ubuntu 16.04 under backports. We can't do the same for import libraries, because it is impossible for us to know at configure time whether or not an import library will be generated for a given DLL.
2020-02-21coredata: Fix search and replace mistakeDylan Baker1-2/+2
A descriptive string had List replaced with T.List on accident.
2020-02-21coredata: Warn on reconfigure if PKG_CONFIG_PATH has changedDylan Baker1-11/+15
Fixes #6520 Fixes #5223
2020-02-21Merge pull request #6668 from ↵Jussi Pakkanen2-2/+24
mesonbuild/nirbheek/strip-more-unused-linkerlike-args macOS: Remove more unused linkerlike args
2020-02-21macOS: Remove more unused linkerlike argsNirbheek Chauhan2-1/+24
`-L` and `-headerpad_max_install_names` are both linker arguments that are commonly passed in CFLAGS too. Closes https://github.com/mesonbuild/meson/issues/6294
2020-02-21linkers: Update the linker names to be more consistentDylan Baker4-48/+73
This makes two basic changes, 1 it moves the name of the linker into the linker class, this should reduce the number of errors and typos, and ensure that a linker always has one name. This then renames the linkers to have more consistent names. Posix/gnu linkers are called ld.<name>: ld.gold, ld.lld, ld.solaris. Apple linkers are renamed ld64.
2020-02-21docs: Fix reference table for linker namesDylan Baker1-10/+20
These are pretty much all over the place because I never intended them to be exposed to the meson source language, they were meant just for documentation.
2020-02-21compilers/compilers: Fix get_linker_idDylan Baker1-1/+7
Which could raise an AttributeError when used on languages like Java and C# that don't have separate compilers and linkers.
2020-02-21unit tests: Remove an unused variableNirbheek Chauhan1-1/+0
2020-02-20msubprojects: We return a string from git() nowNirbheek Chauhan1-4/+4
Fixes https://github.com/mesonbuild/meson/issues/6651