aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2020-10-01compilers: move get_compile_check_args() to CompilerDylan Baker3-26/+47
This is groundwork to put _build_wrapper in the base Compiler, which is needed to make the D compilers truly type safe.
2020-10-01compilers/fortran: add type annotationsDylan Baker2-92/+143
2020-10-01compilers/java: Add type annotationsDylan Baker1-24/+22
2020-10-01compilers/rust: add type annotationsDylan Baker1-25/+38
2020-10-01compilers/swift: Add type annotationsDylan Baker2-32/+39
2020-10-01Compilers/vala: Add type annotationsDylan Baker2-24/+35
2020-10-01compilers/cuda: make type safeDylan Baker6-71/+75
2020-10-01mesonlib: make OptionOverrideProxy a true MutableMappingDylan Baker3-23/+31
So that we can actually use it anyplace that an OptionDictType could be used. I've also done a bit optimizing/simplifying of the implementation. This is needed for cuda, as it returns an OptionOverrideProxy where we ask for an OptionDicType
2020-10-01compilres: move depfile_for_object to compilerDylan Baker4-13/+6
2020-10-01compilers/cs: Add type annotationsDylan Baker3-44/+40
2020-10-01compilers: move get_dependency_gen_args to base CompilerDylan Baker13-40/+3
So that every subclass doesn't have to reimplement it. Especially since the Gnu implementation moved out of the CCompiler and into the GnuLikeCompiler mixin
2020-10-01compilers: move split_shlib_to_parts to the base compilerDylan Baker4-9/+3
Only the GnuLikeCompiler overrides this, and it's implemented multiple places
2020-10-01compilers/cpp: Add type annotationsDylan Baker4-121/+195
2020-10-01compilers: fully type annotate the C compilersDylan Baker9-128/+206
2020-10-01deprecated get_configtool_variable and get_pkgconfig_variableDylan Baker1-0/+4
The get_variable method is able to do everything they do and more, making it generally more useful. Let's tell people to stop using the old ones.
2020-09-30compilers: Use /Od for no-optimisation flag for Intel compilers on windowsIan Harvey1-2/+2
Intel compilers on Windows (and the Microsoft C++ compiler) use /Od to disable optimisation, not /O0.
2020-09-29dependencies/curses: don't try ncurses-config or system dependency on windowsDylan Baker1-5/+9
with msys ncurses-config returns a unix style path (currently, though it's been fixed upstream), which the compilers don't understand, so we can't do that. Additionally, while the system search does work, there's missing include directories that need to be added.
2020-09-29dependencies/curses: Add support for pdcursesYonggang Luo1-1/+6
On win32 there is pdcurses, so we detect it first, because python depends on ncursesw, so if we don't want to use ncursesw, we should make sure pdcurses detect before ncursesw
2020-09-29dependencies/curses: Add a system dependencyDylan Baker1-1/+58
That calls find_library and has_header in conjunction to look for curses implementations that are baked into the system without any other find method.
2020-09-29dependencies/zlib: Fix header detectionDylan Baker1-1/+1
has_header returns a tuple of (found: bool, cached: bool), so `if has_header` will always return true because the tuple is non-empty. We need to check if the found value is true or not.
2020-09-29dependencies/curses: Add support for using the ncurses config toolsDylan Baker1-1/+20
These are mostly duplicated with pkg-config, but maybe someone has one but not another, and they're easy to turn on with the ConfigToolDependency.
2020-09-29dependency/misc: change lookup order for curses pkg-configDylan Baker1-1/+1
look for (in order): ncursesw, ncurses, curses.
2020-09-29dependencies/misc: Fix typing of curses_factoryDylan Baker1-3/+3
2020-09-29Merge pull request #7758 from dcbaker/submit/hdf5-factoryDylan Baker4-111/+152
dependencies/hdf5: Convert to a dependency_factory
2020-09-29Merge pull request #7762 from jon-turney/meson-exe-output-improveJussi Pakkanen4-25/+53
Improve the output for meson wrapped commands
2020-09-29compilers/VS: fix build to use optimization and debug flagsVili Väinölä3-27/+41
- Fixed using debug and optimization built-in options in MSVC. - Fixed that VS backend does not create pdb files in release mode. VS implicitly adds the debug fields if left out. - Fix that it is possible to add debug info with ninja backend with optimizations.
2020-09-29Merge pull request #7772 from xclaesse/deprecate-source-rootJussi Pakkanen2-0/+25
Deprecate meson.build_root() and meson.source_root()
2020-09-29Merge pull request #7794 from mensinda/cmTypingDaniel Mensinger8-325/+390
typing: CMake module
2020-09-28Add meson.project_build/source_root() methodsXavier Claessens2-0/+23
2020-09-28windows: reduce chance of going over path limit in backend/vsPeter Harris1-4/+5
When building with vs2019 (not ninja), a path length error will be thrown if the path to a resource file is even remotely deep within the tree. This is largely because the target name includes the string "Windows resource for file 'full path'", which is then expanded twice (once for the .vcxproj itself, and once for IntDir) and added to the full path. When combined with the tiny path limits on Windows, it is easy to exceed path limits. This error is largely avoided by the ninja back-end. Unlike the vs back-end, the ninja back-end does not use target.get_id() as part of the project file path, nor does it use target.get_id() as part of get_target_private_dir(). Example error: error MSB4184: The expression "[MSBuild]::NormalizePath( C:\src\mesonbuild\Misc\FreeRDP-master\client\X11\xfreerdp\xfreerdp, f3f7317@@Windows resource for file 'Misc_FreeRDP-master_client_X11_xfreerdp_xfreerdp_xfreerdp.rc'@cus\, f3f7317@@Windows resource for file 'Misc_FreeRDP-master_client_X11_xfreerdp_xfreerdp_xfreerdp.rc'@cus. vcxproj.CopyComplete)" cannot be evaluated. Path: C:\src\mesonbuild\Misc\FreeRDP-master\client\X11\xfreerdp\xfreerdp\f3f7317 @@Windows resource for file 'Misc_FreeRDP-master_client_X11_xfreerdp_xfreerdp_xfreerdp.rc'@cus\f3f7317 @@Windows resource for file 'Misc_FreeRDP-master_client_X11_xfreerdp_xfreerdp_xfreerdp.rc'@cus. vcxproj.CopyComplete exceeds the OS max path limit. The fully qualified file name must be less than 260 characters.
2020-09-28typing: fully annotate cmake.interpreterDaniel Mensinger1-171/+198
2020-09-28typing: fully annotate cmake.traceparserDaniel Mensinger1-32/+45
2020-09-28typing: fully annotate cmake.generatorDaniel Mensinger1-1/+2
2020-09-28typing: fully annotate cmake.fileapiDaniel Mensinger1-10/+14
2020-09-28typing: fully annotate cmake.executorDaniel Mensinger2-36/+40
2020-09-27Merge pull request #7776 from dcbaker/submit/zsh-additionsJussi Pakkanen1-1/+1
Add most missing zsh completions
2020-09-27typing: fully annotate cmake.commonDaniel Mensinger2-42/+50
2020-09-27typing: fully annotate cmake.clientDaniel Mensinger1-35/+43
2020-09-25dependencies/hdf5: Use the correct compilers for the machineDylan Baker2-6/+20
Instead of the default ones, this is especially important when cross compiling or when using compilers that aren't compatible with the default ones. squash! dependencies/hdf5: Use the actual system compilers
2020-09-25dependencies/hdf5: Convert to a dependency_factoryDylan Baker3-109/+136
Instead of a mega dependency that does everything, use a dependency factory for config-tool and pkg-config
2020-09-24environment: Pass defines to clang based ObjC[++] compilersDylan Baker1-1/+5
mypy noticed that we were passing [] (instead of a dict or None) to the ClangCompiler class in objc, which made me noticed that for C and C++ we set the defines, but not for ObjC and ObjC++
2020-09-24compilers/objcpp: add type annotationsDylan Baker1-14/+30
2020-09-24compilers/objc: Add type annotationsDylan Baker1-14/+27
2020-09-24compilers: Tell mypy that the compiler mixins are just thatDylan Baker16-178/+122
We do this by making the mixins inherit the Compiler class only when mypy is examining the code (using some clever inheritance shenanigans). This caught a bunch of issues, and also lets us delete a ton of code.
2020-09-24compilers: make is_cross part of the base Compiler classDylan Baker14-38/+36
Every class needs to set this, so it should be part of the base. For classes that require is_cross, the positional argument remains in their signature. For those that don't, they just allow the base class to set their value to it's default of False.
2020-09-24compilers: make sanity_check_impl a protected methodDylan Baker3-4/+4
It's an implementation detail after all
2020-09-24compilers: put name_string method in base compilerDylan Baker9-24/+4
Every language had the exact same implementation
2020-09-24compilers/mixins: make xc16 type safeDylan Baker1-2/+7
2020-09-24compilers/mixins: make visual studio type safeDylan Baker1-2/+21
2020-09-24compilers/mixins/pgi: Make type safeDylan Baker1-2/+11