aboutsummaryrefslogtreecommitdiff
path: root/run_unittests.py
AgeCommit message (Collapse)AuthorFilesLines
2020-01-15find_program: Always use USERPROFILE instead of HOMENirbheek Chauhan1-0/+8
On MSYS2 and MSYS, Python reads HOME instead of USERPROFILE, which gets the path wrong. Serves me right for not writing a test!!
2020-01-09pkgconfig module: add FeatureNew for requires: dependency('foo')Eli Schwartz1-2/+4
Introduced in https://github.com/mesonbuild/meson/pull/3131
2020-01-08Rename test dirs to sequential order.Jussi Pakkanen1-4/+4
2019-12-18PkgConfigDependency: Sort -L flags according to PKG_CONFIG_PATHTing-Wei Lan1-0/+20
When there is more than one path in PKG_CONFIG_PATH. It is almost always preferred to find things in the order specified by PKG_CONFIG_PATH instead of assuming pkg-config returns flags in a meaningful order. For example: /usr/local/lib/libgtk-3.so.0 /usr/local/lib/pkgconfig/gtk+-3.0.pc /usr/local/lib/libcanberra-gtk3.so /usr/local/lib/pkgconfig/libcanberra-gtk3.pc /home/mesonuser/.local/lib/libgtk-3.so.0 /home/mesonuser/.local/lib/pkgconfig/gtk+-3.0.pc PKG_CONFIG_PATH="/home/mesonuser/.local/lib/pkgconfig:/usr/local/lib/pkgconfig" libcanberra-gtk3 is a library which depends on gtk+-3.0. The dependency is mentioned in the .pc file with 'Requires', so flags from gtk+-3.0 are used in both dynamic and static linking. Assume the user wants to compile an application which needs both libcanberra-gtk3 and gtk+-3.0. The application depends on features added in the latest version of gtk+-3.0, which can be found in the home directory of the user but not in /usr/local. When meson asks pkg-config for linker flags of libcanberra-gtk3, pkg-config picks /usr/local/lib/pkgconfig/libcanberra-gtk3.pc and /home/mesonuser/.local/lib/pkgconfig/gtk+-3.0.pc. Since these two libraries come from different prefixes, there will be two -L arguments in the output of pkg-config. If -L/usr/local/lib is put before -L/home/mesonuser/.local/lib, meson will find both libraries in /usr/local/lib instead of picking libgtk-3.so.0 from the home directory. This can result in linking failure such as undefined references error when meson decides to put linker arguments of libcanberra-gtk3 before linker arguments of gtk+-3.0. When both /usr/local/lib/libgtk-3.so.0 and /home/mesonuser/.local/lib/libgtk-3.so.0 are present on the command line, the linker chooses the first one and ignores the second one. If the application needs new symbols that are only available in the second one, the linker will throw an error because of missing symbols. To resolve the issue, we should reorder -L flags according to PKG_CONFIG_PATH ourselves before using it to find the full path of library files. This makes sure that we always follow the preferences of users, without depending on the unreliable part of pkg-config output. Fixes https://github.com/mesonbuild/meson/issues/4271.
2019-12-18Merge pull request #4649 from dcbaker/summary-functionJussi Pakkanen1-0/+34
Add a summary() function for configuration summarization
2019-12-13mlog: Add a log_once functionDylan Baker1-0/+29
There are a number of cases where we end up spamming users with the same message over and over again, which is really annoying. This solves that.
2019-12-12summary: Add bool_yn keyword argumentXavier Claessens1-0/+2
2019-12-12summary: Allow section with no title, and passing key/value separatelyXavier Claessens1-7/+4
2019-12-12Add a summary() function for configuration summarizationXavier Claessens1-0/+35
Based on patch from Dylan Baker. Fixes #757
2019-12-13mintro: include test protocol in introspection dataPaolo Bonzini1-1/+1
2019-12-11Merge pull request #6207 from dcbaker/linker-optionJussi Pakkanen1-24/+65
Add a way to select the dynamic linker meson uses
2019-12-10mintro: Add version key to --scan-dependencies (fixes #6287)Daniel Mensinger1-1/+6
2019-12-10run_unittests: Disable pytest with python <= 3.5Xavier Claessens1-0/+2
It's causing issues in some CI runners, it looks like it could be that bug: https://github.com/pytest-dev/pytest-xdist/issues/204.
2019-12-10assert(): Make message argument optionalXavier Claessens1-0/+6
2019-12-08dist: Add --include-subprojects optionXavier Claessens1-2/+37
2019-12-05compilers: Rework the CompilerArgs to be less awfulDylan Baker1-6/+2
There are two awful things about CompilerArgs, one is that it directly inherits from list, and there are a lot of subtle gotcahs with inheriting from builtin types. The second is that the class allows arguments to be passed in whatever order. That's bad. This also fully annotates the CompilerArgs class, so mypy can type check it for us.
2019-12-03run_unittests: Add tests for LD on windowsDylan Baker1-0/+23
2019-12-03run_unittests: Add unittests for ld overridingDylan Baker1-0/+37
2019-12-03Intel: Dump worthless Xild abstractionsDylan Baker1-2/+2
This dumps xild on mac and linux. After a lot of reading and banging my head I've discovered we (meson) don't care about xild, xild is only useful if your invoke ld directly (not through icc/icpc) and you want to do ipo/lto/wpo. Instead just make icc report what it's actually doing, invoking ld or ld64 (for linux and mac respectively) directly. This allows us to get -fuse-ld working on linux.
2019-12-02run_unittests: remove unused PatchModule classDylan Baker1-20/+1
2019-12-02Allow selecting the dynamic linkerDylan Baker1-2/+2
This uses the normal meson mechanisms, an LD environment variable or via cross/native files. Fixes: #6057
2019-11-18Use strict function prototypesMichael Hirsch, Ph.D1-2/+2
2019-11-17Merge pull request #6182 from mensinda/depInfoJussi Pakkanen1-0/+1
Better dependency logs
2019-11-14mintro: dependencies: added version keyDaniel Mensinger1-0/+1
2019-11-13coredata: CmdLineFileParser no longer interpolates strings.Paulo Neves1-0/+5
Previously if a user tried to pass a command line build option that contained a '%' character the command line parser assumed that there was string interpolation to be done. As there is no sense in such a scenario no code provides any input for the interpolation. This then leads to a failure. In this commit we specifically override the defaults in ConfigParser and set interpolation to None, which disables command line build option interpolation. Fixes #6157
2019-11-13Revert "Add `-Wl,-rpath-link` for secondary dependencies"Jussi Pakkanen1-39/+0
This reverts commit 7b9c348102792030859ed0001a51416506a0a092. Closes #6027.
2019-11-07dependencies/pkgconfig: Fix error reportingMarvin Scholz1-4/+4
The stderr of pkg-config was never used, leading to no details about failures at all in exception messages.
2019-11-06Fix typos found by codespellWolfgang Stöggl1-9/+9
- Typos were found by codespell v1.16.0
2019-11-02Minit templates modularizationMichael Hirsch, Ph.D1-5/+32
2019-10-29MSVC: support -LIBPATHAleksey Gurtovoy1-1/+2
Fixes #6101 (with a test), following up #5881
2019-10-23Fix for issue #4499, multiple entries per file in install-log.txtOrlando Wingbrant1-0/+27
2019-10-22Test that running configure on a build dir works.Jussi Pakkanen1-0/+5
2019-10-20Fix all flake8 warningsDaniel Mensinger1-1/+0
2019-10-20Do not try to run dist test with VS backend.Jussi Pakkanen1-0/+4
2019-10-15Add test case to verify identity cross buildsRoss Burton1-0/+10
A build with a cross file should always be identified as a cross build, even if the host and build machine are identical. This was the case in 0.50, regressed in 0.51, and is fixed again in 0.52, so add a test case to ensure it doesn't regress again.
2019-10-09Merge pull request #5833 from dcbaker/remove-compiler-typeJussi Pakkanen1-19/+19
Remove compiler type
2019-10-09Fix *.pdb files missing in meson introspect --installed outputJakub Adam1-0/+14
On Windows, make sure the introspect command lists all Program database (PDB) files containing debugging information that Meson will install.
2019-10-08Skip more tests if pkg-config is missingJan Beich1-0/+2
meson.build:13:2: ERROR: Pkg-config binary for machine MachineChoice.HOST not found. Giving up.
2019-10-07compilers: replace CompilerType with MachineInfoDylan Baker1-19/+19
Now that the linkers are split out of the compilers this enum is only used to know what platform we're compiling for. Which is what the MachineInfo class is for
2019-10-03Use -isystem instead of -idirafterDaniel Mensinger1-0/+16
2019-10-01Merge pull request #5873 from mesonbuild/py2optionalJussi Pakkanen1-0/+9
Make Python 2 tests optional(er) to prepare for py2 purge in Debian.
2019-10-01Add clang-tidy target. Closes #2383.Jussi Pakkanen1-0/+13
2019-10-01Make Python 2 tests optional(er) to prepare for py2 purge in Debian.Jussi Pakkanen1-0/+9
2019-10-01Fix test_static_link() on MacOSXXavier Claessens1-6/+9
test3-static was actually always using the shared library because that warning was not fatal: WARNING: Static library 'func6' not found for dependency 'func6', may not be statically linked The reason why the libfunc6.a wasn't found is because the prefix in the generated pc file was not set to install dir.
2019-10-01pkgconfig: Do not include uninstalled static librariesXavier Claessens1-2/+8
2019-10-01Fix link_whole of static librariesXavier Claessens1-0/+14
2019-09-30Add depfile to configure_file()Marc-André Lureau1-0/+29
In qemu, minikconf generates a depfile that meson could use to automatically reconfigure on dependency change. Note: someone clever can perhaps find a way to express this with a ninja rule & depfile=. I didn't manage, so I wrote a simple depfile parser.
2019-09-27Correctly handle platform-specific LDFLAGS optionsAleksey Gurtovoy1-28/+43
2019-09-23mtest: TAP: ignore empty linesMarc-André Lureau1-0/+6
According to http://testanything.org/tap-specification.html "Any output line that is not a version, a plan, a test line, a diagnostic or a bail out is considered an “unknown” line. A TAP parser is required to not consider an unknown line as an error but may optionally choose to capture said line and hand it to the test harness, which may have custom behavior attached [...] TAP::Harness reports TAP syntax errors at the end of a test run". (glib gtest can generate empty lines)
2019-09-17pkgconfig: Fix ordering of public librariesXavier Claessens1-0/+4
The main library must come before extra libraries, because they are likely to be dependencies of the main library that get promoted from private to public. This was causing static link issues with glib-2.0.pc.