aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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
2020-02-20Introduce dataonly for the pkgconfig moduleRohan Garg6-22/+68
This allows users to disable writing out the inbuilt variables to the pkg-config file as they might actualy not be required. One reason to have this is for architecture-independent pkg-config files in projects which also have architecture-dependent outputs. For example : https://gitlab.freedesktop.org/wayland/weston/issues/269 Fixes #4011
2020-02-20boost: Updated testsDaniel Mensinger10-38/+84
2020-02-20boost: Rewrite the boost system dependencyDaniel Mensinger1-600/+807
This PR significantly improves the handling of the boost library tags and also ensures that the found libraries are always compatible (have the same ABI tag). The current setup can also be extended to filter for additional features (static linking with the runtime, etc.). Additionally, BOOST_ROOT is better supported (it is now guaranteed that all found files belong to a single root directory). Finally, boost.py is now fully annotated (and checked with mypy).
2020-02-20boost: Rewrite boost_names.py generatorDaniel Mensinger1-143/+228
2020-02-20cmake: Fix relative paths for add_custom_{command,target}Daniel Mensinger8-40/+136
Do this by tracking CMAKE_CURRENT_{SOURCE,BINARY}_DIR variables. This is achieved by injecting CMake code with CMAKE_PROJECT_INCLUDE and overriding some builtin functions with a wrapper that adds additional trace information.
2020-02-19make use of default project constMichael1-1/+1
2020-02-19make use of enumsMichael1-22/+24
2020-02-19removed hardcoded values for more add less work in the long run.Michael1-24/+27
2020-02-19switch Python list for setMichael1-3/+3
2020-02-19remove uneeded '(' and ')'Michael1-1/+1
2020-02-19docs: Fix Dub section being inside CMake section [skip ci]Niklas HambĂŒchen1-1/+1
It should be a `##` heading, not a `###` heading. Also make heading label consistent with the others.
2020-02-19cmake: Ignore files that violate subproject isolation (fixes #6640)Daniel Mensinger7-1/+79
2020-02-19Update minit.pyMichael Brockus1-52/+58
2020-02-19coredata: Fix crash when cmd_line_options contains booleansXavier Claessens1-2/+5
`meson setup --debug` puts a bool object in cmd_line_options dictionary that we have to convert to string. Fixes: #6646
2020-02-19cmake: traceparser better handle listsDaniel Mensinger2-5/+6
2020-02-19cmake: Fix dependency loops in custom targets (fixes #6632)Daniel Mensinger7-8/+60
2020-02-19modules/cmake: Add a found() method to the cmake subprojectDylan Baker4-1/+13
Just like the native meson subproject has.
2020-02-19modules/cmake: Use the noPosargs helperDylan Baker1-3/+2
2020-02-19docs: Improve visibility for `.enabled()` etc., add example [skip ci]Niklas HambĂŒchen2-5/+32
2020-02-18docs: Mention `cuda` as supported language [skip ci]Niklas HambĂŒchen1-1/+1