aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2020-03-04mesonbuild: Add mcompile commandDylan Baker2-1/+126
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 Cerveau1-0/+7
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 initMichael1-0/+7
2020-03-02Merge pull request #6316 from mensinda/typesAstDylan Baker13-637/+698
types: Annotations for ast, mparser.py, interpreterbase.py
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 Mensinger2-48/+60
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 Mensinger5-49/+55
2020-03-02types: Annotate the AST visitorsDaniel Mensinger7-90/+93
2020-03-02types: Annotate mparser.pyDaniel Mensinger8-253/+254
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 Pakkanen2-20/+45
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 Pakkanen8-82/+75
Consistently report file locations relative to cwd
2020-02-29Redetect machines after every change to languagesJon Turney1-0/+3
Currently, detect_machine_info() is called: - from Environment.__init__(), before we have any compiler available - from Interpreter.__init__() with the list of languages provided to project() (determined via the initial parse_project()) This is not sufficent in the case where no languages are specified to project() and are later added with add_languages(). We cannot correctly detect that the host machine should be treated as x86 (on x86_64 hardware) until we have a compiler we are told to use. Redetect machines after project(), and after every add_languages().
2020-02-29mlog: fix remaining mypy errors and add to mypy checkDylan Baker1-9/+9
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-29Fixed linker detecting on windows. Added comments about linker detecting for ↔ur4t1-2/+4
further debugging and refactoring.
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-28Rename 'subdir' -> 'filename' in location objectsJon Turney3-55/+54
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-27compilers/linkers: Add a representation for wasm-ldDylan Baker5-25/+44
Emscripten does have a stand alone linker, wasm-ld. This patch adds the linker, adds detection for the linker, and removes the IsLinkerMixin for emscripten. This is a little more correct, and makes the code a lot cleaner and more robust.
2020-02-27compilers/mixins/emscripten: Implement thread supportDylan Baker3-2/+28
Emscripten has pthread support (as well as C++ threads), but we don't currently implement them. This fixes that by adding the necessary code. The one thing I'm not sure about is setting the pool size. The docs suggest that you really want to do this to ensure that your code works correctly, but the number should really be configurable, not sure how to set that. Fixes #6684
2020-02-27compilers/mixins/islinker: Add stubs for thread_*_flagsDylan Baker1-0/+6
2020-02-27compilers/emcc: Fix inheritance orderDylan Baker3-2/+3
Sot hat the BasicLinkerIsCompilerMixin comes before ClangCCompiler, which hides its "call the linker" methods, as emcc doesn't have a separate linker.
2020-02-27compilers/mixins/islinker: Add missing methodDylan Baker1-0/+3
In particular emcc needs this
2020-02-27Clang-cl cross fix from Dale Curtis. Closes #5639.Jussi Pakkanen1-1/+3
2020-02-26summary: Add more info in Subprojects sectionXavier Claessens2-12/+32
This adds a warnings counter for subprojects that passed. This is to encourage developpers to check warnings in the logs and hopefully fix them. Otherwise they could be hidden in hundreds lines of logs. This also print the error message for subprojects that did not pass. The error message is often enough to fix the issue (e.g. missing dependency) and it's easier than searching in the logs why a subproject failed.
2020-02-26summary: Add list_sep keyword argumentXavier Claessens1-8/+13
This allows having lists on a single line instead of having each value aligned on a new line.
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-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 Pakkanen14-86/+279
mesonbuild/nirbheek/implement-symbolextractor-windows Implement symbolextractor on windows + some cleanups/fixes
2020-02-23Merge pull request #6602 from mensinda/depBoostJussi Pakkanen1-600/+807
boost: System dependency rewrite
2020-02-23Merge pull request #6635 from mensinda/cmOTMFixJussi Pakkanen3-43/+140
cmake: Fix dependency loops in custom targets (fixes #6632)