aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-01-30Merge pull request #8200 from bonzini/mtest-asyncio-logsJussi Pakkanen3-116/+264
mtest: improvements to logging
2021-01-30Fix executable as script on WindowsXavier Claessens13-81/+103
On Windows this would fail because of missing DLL: ``` mylib = library(...) exe = executable(..., link_with: mylib) meson.add_install_script(exe) ``` The reason is on Windows we cannot rely on rpath to find libraries from build directory, they are searched in $PATH. We already have all that mechanism in place for custom_target() using ExecutableSerialisation class, so reuse it for install/dist/postconf scripts too. This has bonus side effect to also use exe_wrapper for those scripts. Fixes: #8187
2021-01-29external_project: Add release snippetXavier Claessens1-0/+11
2021-01-29Change the Eoan CI to ubuntu rolling ciDylan Baker5-10/+7
This makes the Ubuntu CI always use the latest release, without us having to manually change it.
2021-01-29workflows/os_comp: Don't run if there aren't relavent changesDylan Baker1-1/+13
2021-01-29CI: arch: get hotdoc from official reposEli Schwartz1-2/+2
It is now officially packaged.
2021-01-29CI: arch: remove duplicate package from listEli Schwartz1-1/+1
2021-01-29Can read project version from a file.Jussi Pakkanen6-6/+47
2021-01-29Popen_safe: Fix stdout/stderr annotationXavier Claessens1-4/+4
2021-01-29external_project: Add default configure optionsXavier Claessens2-15/+21
2021-01-29external_project: Do not set LD in the envXavier Claessens1-1/+4
This was breaking some autotools projects such as libyaml.
2021-01-29external_project: Improve loggingXavier Claessens2-7/+22
Write output of 'make' and 'make install' into log files as well when not verbose.
2021-01-28xcode-backend: fix include pathsJeff Moguillansky1-0/+3
Add include paths from dependencies
2021-01-27intepreter: Allow using file objects for the script_name of add_*_scriptDylan Baker6-10/+58
It's a bit silly and conveluted to have to call find_program on the output of configure_file, so let's just allow passing files as the script name.
2021-01-27custom_target: Add env kwargXavier Claessens10-9/+37
2021-01-27test: Make timeout <= 0 infinite duractionXavier Claessens4-10/+28
2021-01-26dist: Use windows_proof_rmtree() instead of shutil.rmtree()Xavier Claessens1-4/+4
2021-01-26dist: Allow packaging subproject in same git repo as main projectXavier Claessens4-21/+107
2021-01-26do not require git installed in order to use wrapsEli Schwartz1-1/+3
It doesn't make sense to check for the presence of git every time we use it, but short-circuit any attempt to use a wrap right from the get-go because we are trying to be fancy with submodules. If git is not installed, simply do not try to figure out whether the wrap is a submodule that can potentially be checked out/updated for the user. Just take it on faith that it isn't one. Fixes #2623
2021-01-26docs: Fix sentence in Machine-files.md [skip ci]Florian Schmaus1-1/+1
Fixes: 1ca17dc853ec ("docs/machine-files: Add a section on data types")
2021-01-26Warn about .C and .H files (#8249)Volker-Weissmann1-0/+7
2021-01-25Merge pull request #8236 from ↵Jussi Pakkanen5-4/+31
dcbaker/submit/rust-fix-generated-sources-in-subdir Submit/rust fix generated sources in subdir
2021-01-25Add ARM64EC as a new conceptual cpu type of arm64Ben Niu1-1/+7
ARM64EC is a new ARM64 ABI made by Microsoft. The ARM64EC binaries can be loaded in x64 processes on the latest Windows Insider Preview on ARM64, and they don't need to be emulated for the sake of performance. To support the ARM64EC build target, a new conceptual arm64 cpu type 'arm64ec' is added. The cpu can be specified in cross files like below to generate msbuild solution/vcxproj files with platform set to ARM64EC. [target_machine] system = 'windows' cpu_family = 'aarch64' cpu = 'arm64ec' endian = 'little'
2021-01-23Merge pull request #8226 from jonaslb/fortranstaticJussi Pakkanen9-13/+94
Fixes for fortran: Include dirs for link_whole_targets and capital file suffix
2021-01-23docs: Fix typo in Syntax.md [skip ci]Evgeny Ermakov1-1/+1
2021-01-23split mesonlib into a packageDylan Baker14-63/+281
Currently mesonlib does some import tricks to figure out whether it needs to use windows or posix specific functions. This is a little hacky, but works fine. However, the way the typing stubs are implemented for the msvcrt and fnctl modules will cause mypy to fail on the other platform, since the functions are not implemented. To aleviate this (and for slightly cleaner design), I've split mesonlib into a pacakge with three modules. A universal module contains all of the platform agnositc code, a win32 module contains window specific code, a posix module contains the posix specific code, and a platform module contains no-op implementations. Then the package's __init__ file imports all of the universal functions and all of the functions from the approriate platform module, or the no-op versions as fallbacks. This makes mypy happy, and avoids `if`ing all over the code to switch between the platform specific code.
2021-01-22docs: add documentation snippet for meson test console output changesPaolo Bonzini1-0/+29
2021-01-22mtest: log individual TAP subtestsPaolo Bonzini1-11/+34
2021-01-22mtest: infrastructure to print subtest resultsPaolo Bonzini1-7/+18
2021-01-22mtest: move --print-errorlogs output during the test runPaolo Bonzini1-18/+13
Print the (shortened) output of the failed tests as they happen. If neither --verbose nor --print-errorlogs was specified, omit the summary of failures, because it is pretty much the same as the earlier output of "meson test".
2021-01-22mtest: log test start in verbose modePaolo Bonzini1-13/+37
In non-parallel verbose mode the output of the test/benchmark is not buffered, therefore the command line is only printed by ConsoleLogger for failing tests and only after the test has run. Verbose mode is designed mostly for CI systems, where output must be human readable but is generally consumed from a browser with "Find" commands rather than from a terminal. With this usecase in mind, it is better to provide as much detail as possible, so add more output and just tell the user which tests have started. Do so, using the recently introduced TestResult.RUNNING state.
2021-01-22mtest: call TestLogger.start_test when TestRun is in the RUNNING statePaolo Bonzini1-8/+13
2021-01-22mtest: use buffered stdout/stderr in parallel modePaolo Bonzini1-2/+5
Similar to ninja, buffer stdout/stderr even in verbose mode if more than one test is being run in parallel.
2021-01-22mtest: quote environment variable values and command line argumentsPaolo Bonzini1-2/+9
2021-01-22mtest: include full environment in the TestRun objectPaolo Bonzini1-32/+34
Ensure that all the required modifications are included in the logs. This makes it possible for users to cut-and-paste from the logs when trying to reproduce failures outside Meson.
2021-01-22mtest: make log output more suitable for consolePaolo Bonzini1-37/+74
Right now the same code is used to print the logs for both the console and the text log. Differentiating them lets the important bits of the console output stand out, and makes the console output a bit more readable.
2021-01-22mtest: small refactoring of log printingPaolo Bonzini1-23/+34
Start moving console-specific code to ConsoleLogger, as well as moving code out of get_log().
2021-01-22mtest: log in verbose mode, but not in gdb modePaolo Bonzini1-1/+1
This is now possible because all stdout/stderr goes through asyncio pipes. However, logs make little sense in gdb mode.
2021-01-22unittests: use utf-8 encoding for child processesPaolo Bonzini1-0/+1
Ensure that unit tests will be able to parse UTF-8 output of "meson test".
2021-01-21tests/rust: Add a generated library to generated main testDylan Baker4-1/+19
Which is broken, of course.
2021-01-21ninjabackend: Correctly reference custom_target outputs in subdirs with rustDylan Baker1-1/+1
This was missed in the last iteration of fixing things.
2021-01-21tests/rust: Add subdir to generated sources testDylan Baker2-2/+11
2021-01-21interpreter: accept external programs and dependencies for summaryPaolo Bonzini7-8/+60
2021-01-21mlog: add __len__ to AnsiDecoratorPaolo Bonzini2-9/+4
2021-01-21mlog: add __str__ method to AnsiDecoratorPaolo Bonzini3-19/+7
Automatically colorize the text when printing the AnsiDecorator, based on the result of mlog.colorize_console(). This is how AnsiDecorator is used most of the time anyway.
2021-01-21Add fortran test with an install:yes static libraryJonas Lundholm Bertelsen6-0/+74
This adds a test which makes use of an install:yes static library that depends on another static library. This triggers a promotion to link_whole_target inside meson which takes different code paths in certain places. Also makes use of .F90 source (capital F) to test for case (in)sensitivity.
2021-01-21Unity build reverts to normal for fortran fixJonas Lundholm Bertelsen2-7/+10
The `determine_ext_objs` function did not take into account that fortran (and d) does not support unity builds. This caused failures in some cases.
2021-01-20external_project: Log configure commandXavier Claessens1-0/+4
2021-01-20MSVC and Clang-Cl Compiler Argument CleanupMarios Staikopoulos2-27/+22
This commit performs some cleanup for the msvc and clang-cl arguments. * "Disable Debug" (`/Od`) is no longer manually specified for optimization levels {`0`,`g`} (it is already the default for MSVC). * "Run Time Checking" (`/RTC1`) removed from `debug` buildtype by default * Clang-CL `debug` buildtype arguments now match MSVC arguments * There is now no difference between `buildtype` flags and `debug` + `optimization` flags
2021-01-20Avoid accidental use of STANDALONE_WASM mode on compiler testsBrion Vibber1-1/+1
Compiler tests, such as checking for atomics support, could fail when compiling to WebAssembly multithreaded targets because the compiler tests got compiled to 'output.wasm'. Using the '.wasm' suffix in recent versions of emscripten engages STANDALONE_WASM mode, which disables features that require a JS runtime like shared memory. This created false negatives on support of those features when building a library to be linked into an executable that is not in STANDALONE_WASM mode. Changing these to 'output.o' will continue to produce WebAssembly object files, but they will no longer be configured for standalone runtime mode.