aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-03-09Allow invoking link.exe and lld-link.exe through ldc2Dylan Baker2-24/+36
Like it wants
2020-03-09travis: install ldc on macOSDylan Baker1-1/+1
So we have some dlang testing on macos.
2020-03-09project_tests: Add "version" to "shared_lib" and "pdb" typesDylan Baker4-24/+61
This allows the harness to apply the version correctly, putting it in the right place, dropping the right amount of numbers, etc. pdb taking a version allows it to be more easily copied from the shared_lib type.
2020-03-06compilers: Don't deduplicate -L= argumentsDylan Baker1-0/+9
This breaks LDC and DMD, so just don't do it.
2020-03-06project_tests: Add a "shared_lib" typeDylan Baker4-12/+23
This allows fixing tests that produce .dylib's on macOS and .so's on elf Unices.
2020-03-06compilers/d: Fix get_allow_undefined_link_args on macOSDylan Baker1-0/+11
DMD and LDC are a real pain to use as linkers. On Unices they invoke the C compiler as the linker, just like meson does. This means we have to figure out what C compiler they're using and try to pass valid arguments to that compiler if the D compiler doesn't understand the linker arguments we want to pass. In this case that means gcc or clang. We can use-the -Xcc to pass arguments directly to the C compiler without dmd/ldc getting involved, so we'll use that.
2020-03-06compilers/d: Remove CompilerIsLInkerMixinDylan Baker1-16/+6
This was never really true of the D compilers, it made them more complicated than necessary and was incorrect in many cases. Removing it causes no regressions on Linux, at least in our rather limited test cases).
2020-03-06Update Users.mdAmit D1-0/+10
2020-03-06ast: Implement dummy evaluate_notstatementDaniel Mensinger2-0/+6
2020-03-06ast: Do not resolve dict keysXavier Claessens1-1/+1
Fixes: #6748
2020-03-05unit tests: Test the buildtype table in the docsNirbheek Chauhan1-0/+23
2020-03-05unit tests: Rewrite documentation table parsing codeNirbheek Chauhan1-32/+44
The old logic was completely broken, and didn't even assert that the specified section was found at all. The CPU families test was broken because of this. Luckily, the table didn't go out of sync with the code. It now also doesn't assume that each section has only one table. This fixes the test now that we document the buildtype/optimization/debug mapping in a second table inside the `Universal options` section.
2020-03-05Document the details of optimization+debug vs buildtype [skip ci]Nirbheek Chauhan1-0/+17
Otherwise you have to hunt through the source code. Specifically, this is defined in `mesonbuild/coredata.py`: `set_buildtype_from_others()` and `set_others_from_buildtype()`
2020-03-04mesonbuild: Add mcompile commandDylan Baker5-2/+163
This is tested working with both msbuild and ninja/samu. Since our xcode support is pretty much broken I didn't bother. Fixes #6670
2020-03-04interpreter: add 'name' method to BuildTargetHolderStéphane Cerveau5-2/+13
As any child of BuildTargetHolder might need the name of the object, provides a method to get object name. This is useful in gst-build to display the plugin name and not the filename.
2020-03-03Set c_winlibs/cpp_winlibs for Clang in the same way as for GCCMartin Storsjö2-0/+12
clang-cl is handled as a separate case (ClangClCCompiler), which already gets c_winlibs from VisualStudioLikeCCompilerMixin.
2020-03-03Cherry-picking - (rm python2 % add python3 .format) (#6725)Michael Brockus6-70/+65
2020-03-03pkgconfig: Fix deprecation message (fixes #6720)Stéphane Cerveau1-2/+1
Deprecation warning was unable to display because of patch c8f8d58273a40d94c820dccab54a7ae2d948cb8a fixes #6720
2020-03-02fix typoMichael1-1/+1
2020-03-02add -C to meson initMichael2-0/+12
2020-03-02Merge pull request #6316 from mensinda/typesAstDylan Baker15-639/+700
types: Annotations for ast, mparser.py, interpreterbase.py
2020-03-02Users.md: add libratbagStephan Lachnit1-0/+1
Signed-off-by: Stephan Lachnit <stephanlachnit@protonmail.com>
2020-03-02coredata: init_builtins should always call libdir_cross_fixupStéphane Cerveau1-1/+1
As the interpreter reinitialize the coredate builtins, need to call again libdir_cross_fixup
2020-03-02types: Remove redundant __init__() -> None annotationDaniel Mensinger8-40/+40
2020-03-02types: Use import typing as TDaniel Mensinger4-97/+96
2020-03-02review: Initial fixupDaniel Mensinger6-45/+51
2020-03-02types: Annotate ast/introspection.pyDaniel Mensinger3-49/+61
2020-03-02types: (partially) annotate interpreterbase.pyDaniel Mensinger3-202/+236
This commit annotates most of interpreterbase.py. However, there are stil the @wraps missing, since I am unsure what the types are supposed to be here.
2020-03-02types: Annotate ast/interpreter.pyDaniel Mensinger6-50/+56
2020-03-02types: Annotate the AST visitorsDaniel Mensinger7-90/+93
2020-03-02types: Annotate mparser.pyDaniel Mensinger9-254/+255
This also fixes that the keys in ArgumentNode.kwargs are all of the type BaseNode now. Before this commit, it was possible that both strings and Nodes where used as keys.
2020-03-01Merge pull request #6692 from xclaesse/summary-warningsJussi Pakkanen6-23/+59
Summary improvements
2020-03-01meson: cache the results of can_compileMarcel Hollerbach1-0/+1
the check for which files can be compiled are called again and again on the same files over and over again. Caching this here shaves off 11s of the build time of efl (which has grown in the last 3 versions to over 40 sec. again)
2020-03-01CompilerArgs: make lookup fasterMarcel Hollerbach1-7/+26
in order to deduplicate arguments as much as possible, we need to check if a argument is already part of the list. Which is quite slow because we are checking 3 lists for that. In smaller projects this might be not of interested. However, in efl things are quite "heavy", alone generating the ninja file took 40 sec.. 16 sec. are spent in __iadd__ of CompilerArgs. What this patch does to speed this all up is: 1. We only check if a element is in post when we know that it must be in post same for pre. 2. the checks for if we already do contain a specific value are now done via a dict, and not via the list. This overall brings the time from 16 sec. spent in __iadd__ to 9 sec. in __iadd__. Another possible solution for all this is to have a internal structure of CompileArgs of trees, so you have the "basic" layer of arguments where the position does not matter. Additionally, you have two stacks of lists, the pre stack and the post stack, duplicates can then be checked when itereting, which would safe another ~4s in terms of efl. However, i do not have time for this undertaking right now.
2020-03-01Merge pull request #6627 from jon-turney/cwd-relative-file-locationsJussi Pakkanen14-85/+137
Consistently report file locations relative to cwd
2020-02-29mlog: fix remaining mypy errors and add to mypy checkDylan Baker2-10/+10
There were two things mypy was warning about: 1) it doesn't understand hasattr() 2) It was possible for mlog.{error,warning,deprecation} to get passed multiple values for the once keyword argument.
2020-02-29Merge pull request #6707 from jon-turney/bogus-failing-testsJussi Pakkanen8-9/+5
Fix various failing-meson tests
2020-02-29Fixed linker detecting on windows. Added comments about linker detecting for ↔ur4t1-2/+4
further debugging and refactoring.
2020-02-29Merge pull request #6666 from mensinda/testRefactorJussi Pakkanen155-1040/+1442
Refactor run_projectests.py
2020-02-29environment: Strip 'el' from the end of mips architecturesDylan Baker1-0/+6
Mips architectures may have `el` on the end, to differentiate the little endian from the big endian variants. We don't encode endianness in the cpu names, so ensure we've stripped that. Fixes #6655
2020-02-28environment: Fix construction of CudaLinkerJan Alexander Steffens (heftig)1-1/+1
The 0.53.2 test suite has a new failure: Traceback (most recent call last): File "run_project_tests.py", line 1024, in <module> detect_system_compiler() File "run_project_tests.py", line 964, in detect_system_compiler comp = env.compiler_from_language(lang, MachineChoice.HOST) File "/build/meson/src/meson-0.53.2/mesonbuild/environment.py", line 1565, in compiler_from_language comp = self.detect_cuda_compiler(for_machine) File "/build/meson/src/meson-0.53.2/mesonbuild/environment.py", line 1131, in detect_cuda_compiler linker = CudaLinker(compiler, for_machine, 'nvlink', CudaCompiler.LINKER_PREFIX, [], version=CudaLinker.parse_version()) File "/build/meson/src/meson-0.53.2/mesonbuild/linkers.py", line 963, in __init__ super().__init__('nvlink', *args, **kwargs) TypeError: __init__() takes 6 positional arguments but 7 positional arguments (and 1 keyword-only argument) were given Fixes: c708c52ca225 ("linkers: Update the linker names to be more consistent")
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).