summaryrefslogtreecommitdiff
path: root/test cases/linuxlike
AgeCommit message (Collapse)Author
2018-12-09Skip CMake dependency check if CMake is not installed.Jussi Pakkanen
2018-11-22CMake find_package dependency backend (#4444)Daniel Mensinger
2018-02-23Remove invalid kwarg from test cases/linuxlike/9 compiler checks with ↵Ran Benita
dependencies cc.has_function() does not accept a `name` keyword argument.
2018-02-08Add get_pkgconfig_variable(default:)Jon Turney
Also use that to squelch the warning for internal uses which handle the variable missing case (just gnome at the moment) A follow up to PR #2914
2017-12-22subproject handling: add two testsNiklas Claesson
2017-12-03Merge pull request #2663 from inigomartinez/pkg-config-define-variableJussi Pakkanen
dependencies: Allow pkg-config to define variables
2017-12-01dependencies: Use prefix variable with define_variableIñigo Martínez
The test used by the new define_variable parameter was using the includedir directory. However, in order to get a successful test, the includedir variables needs to be relative to the prefix variable, otherwise the replacemente will not have any effect. This changes uses the prefix variable itself because we can assure that it will be present.
2017-11-26spelling: nonexistentJosh Soref
2017-11-20dependencies: Allow pkg-config to define variablesIñigo Martínez
pkg-config enables to define variables by using the define-variable option. This allows some packages to redefine relative paths, so files can be installed in the same relative paths but under prefix.
2017-08-01Add thread flags to checks if needed. Closes #2106.Jussi Pakkanen
2017-07-21Check for manual attempts to set rpath and update docs.Jussi Pakkanen
2017-06-17valgrind: Fix __init__ callNirbheek Chauhan
Adds a test so that this is catched later. Closes https://github.com/mesonbuild/meson/issues/1937
2017-06-09dependencies: Add a new class ExternalDependencyNirbheek Chauhan
This class now consolidates a lot of the logic that each external dependency was duplicating in its class definition. All external dependencies now set: * self.version * self.compile_args and self.link_args * self.is_found (if found) * self.sources * etc And the abstract ExternalDependency class defines the methods that will fetch those properties. Some classes still override that for various reasons, but those should also be migrated to properties as far as possible. Next step is to consolidate and standardize the way in which we call 'configuration binaries' such as sdl2-config, llvm-config, pkg-config, etc. Currently each class has to duplicate code involved with that even though the format is very similar. Currently only pkg-config supports multiple version requirements, and some classes don't even properly check the version requirement. That will also become easier now.
2017-05-09dependencies: Fix two more edge-cases in dependency searchingNirbheek Chauhan
Includes tests for both of them.
2017-05-09Completely overhaul caching of external dependenciesNirbheek Chauhan
The old caching was a mess of spaghetti code layered over pasta code. The new code is well-commented, is clear about what it's trying to do, and uses a blacklist of keyword arguments instead of a whitelist while generating identifiers for dep caching which makes it much more robust for future changes. The only side-effect of forgetting about a new keyword argument would be that the dependency would not be cached unless the values of that keyword arguments were the same in the cached and new dependency. There are also more tests which identify scenarios that were broken earlier.
2017-05-09dependencies: Fix caching of native/cross dependenciesNirbheek Chauhan
All our cached_dep magic was totally useless since we ended up using the same identifier for native and cross deps. Just nuke all this cached_dep code since it is very error-prone and improve the identifier generation instead. For instance, this is broken *right now* with the `type_name` kwarg. Add a bunch of tests to ensure that all this actually works... Closes https://github.com/mesonbuild/meson/issues/1736
2017-05-08Allow link_depends to take strings, Files or generated objects. Closes #1172Dylan Baker
Currently only strings can be passed to the link_depends argument of executable and *library, which solves many cases, but not every one. This patch allows generated sources and Files to be passed as well. On the implementation side, it uses a helper method to keep the more complex logic separated from the __init__ method. This also requires that Targets set their link_depends paths as Files, and the backend is responsible for converting to strings when it wants them. This adds tests for the following cases: - Using a file in a subdir - Using a configure_file as an input - Using a custom_target as an input It does not support using a generator as an input, since currently that would require calling the generator twice, once for the -Wl argument, and once for the link_depends. Also updates the docs.
2017-04-22Disabled rpath test due to bug #1635.Jussi Pakkanen
2017-04-09Merge pull request #1469 from centricular/install-secondary-outputsJussi Pakkanen
Support multiple install dirs for built/custom targets
2017-04-08Test whether runpath/rpath override LD_LIBRARY_PATHNirbheek Chauhan
For details, see: https://github.com/mesonbuild/meson/issues/1383
2017-04-06Skip some linuxlike tests which don't work on CygwinJon Turney
2017-04-04Don't generate import library for shared modulesNirbheek Chauhan
Also add a test for this on all platforms.
2017-03-10Add UNIX large file support via compiler always-argsNirbheek Chauhan
On 32-bit Linux and BSD, all libcs support this. Musl always enables it, and UClibc behaves like Glibc unless it's built without large file support (which is a terrible idea). http://wiki.musl-libc.org/wiki/FAQ#Q:_do_i_need_to_define_LARGEFILE64_SOURCE_to_get_64bit_off_t_.3F https://git.uclibc.org/uClibc/tree/include/features.h#n326 macOS now only ships 64-bit, so this is irrelevant there. 32-bit Windows and older versions of Bionic do not have transparent large file support and you must use lseek64, etc there, so this won't affect those. Newer Bionic versions behave like Glibc in theory. https://msdn.microsoft.com/en-us/library/1yee101t.aspx http://code.google.com/p/android/issues/detail?id=64613 Includes a linuxlike test for this. Closes https://github.com/mesonbuild/meson/issues/1032
2017-03-05tests: Minor fixes to the library-usage testsNirbheek Chauhan
Actually use the myFunc() symbol from the library, and actually run the built executable on macOS.
2017-03-04Add manual-linking tests to Linux and WindowsNirbheek Chauhan
In this test, we try to manually link against the generated library to create an executable and then run it to verify that it works. Also test for all possible library versioning in the versioning tests on Windows. Even though they yield the same dll naming, we should still test it.
2017-02-13Detect Boost libraries primarily with the C++ compiler's find_library.Jussi Pakkanen
2016-12-23Can specify include directories to compiler tests.Jussi Pakkanen
2016-12-23Add get_version() method to all dependenciesNirbheek Chauhan
We unconditionally check the version of all dependencies, so without this regen will fail if you use that dependency.
2016-12-04tests/linuxlike/1: Improve zlib pkg-config testNirbheek Chauhan
Just checking that the version retrieved from the pkg-config file matches is not enough. It's nearly tautological since it just checks that we aren't returning garbage in dep.version(). Instead, check in the test executable that the pkg-config version retrieved matches the ZLIB_VERSION exported by zlib. Also don't require zlib 1.2.8 since RHEL (EPEL) 7 still has 1.2.7 and we don't really need 1.2.8 anyway.
2016-12-03Allow many version conditions for pkg-config depsNirbheek Chauhan
Sometimes we want to restrict the acceptable versions to a list of versions, or a smallest-version + largest-version, or both. For instance, GStreamer's opencv plugin is only compatible with 3.1.0 >= opencv >= 2.3.0
2016-11-14More robust link check.Jussi Pakkanen
2016-10-19Can query pkg-config variables from the system. Closes #726.Jussi Pakkanen
2016-10-14Try using already setup fallback subprojects before using native dependencyThibault Saunier
In the case the main project set a subproject for a dependency another subprojects uses, that other subproject should rather use the first subproject rather that using native dependency. For example in gst-all we set all GStreamer modules as subprojects and, gst-plugins-base is set after gstreamer core, and we want gst-plugins-base to always use GStreamer core from the subproject and not the possibly avalaible native one.
2016-10-14interpreter: Add a type_name method to DependencyHolderThibault Saunier
And remove the InternalDependencyHolder class. In some cases we need to know the type of dependency we are dealing with. For example in GStreamer if the dependency is not an internal one, then we need to get some env var from pkg-config to know where to find some plugins necessary to run some tests.
2016-09-26Add dependency support to the checks using the compilerMatthew Waters
It is extremely common to need to know within a given dependency if a given header, symbol, member, function, etc exists that cannot be determined from the version number alone. Without passing dependency objects to the various compiler/linker checks and with many libraries headers/libraries being located in their own subdirs of the standard prefix, the check for the library would not find the header/function/symbol/etc. This commit allows passing dependency objects to the compiler checks so that the test program can be compiled/linked/run with the necessary compilation and/or linking flags for that library.
2016-07-01Add test for installation of libraries in subprojectsNirbheek Chauhan
The original test's subproject-install check had to be removed because library names are now properly platform-specific
2016-07-01Fix tests for the new library/executable naming schemeNirbheek Chauhan
Also add new tests for the platform-specific and compiler-specific versioning scheme. A rough summary is: 1. A bug in how run_tests.py:validate_install checked for files has been fixed. Earlier it wasn't checking the install directory properly. 2. Shared libraries are no longer installed in common tests, and the library name/path testing is now done in platform-specific tests. 3. Executables are now always called something?exe in the installed_files.txt file, and the suffix automatically corrected depending on the platform. 4. If a test installs a file called 'no-installed-files', the installed files for that test are not validated. This is required to implement compiler-specific tests for library names/paths such as MSVC vs MinGW 5. The platform-specific file renaming in run_tests.py has been mostly removed since it is broken for shared libraries and isn't needed for static libraries. 6. run_tests.py now reports all missing and extra files. The logic for finding these has been reworked.
2016-06-21Add a test for the broken cached version compareNirbheek Chauhan
https://github.com/mesonbuild/meson/pull/610
2016-06-21Add a linuxlike test case for subdir include orderNirbheek Chauhan
Needs glib-2.0 as a pkg-config dependency
2016-06-01Add various tests for versioned dependency checkingNirbheek Chauhan
Both pkg-config and subproject-based dependencies Linux-like because we need zlib for the tests to work
2016-05-29Can query version strings of dependencies.Jussi Pakkanen
2016-03-17Add dir support for find_library and remove deprecated standalone version. ↵Jussi Pakkanen
Closes #450.
2016-03-12Added find_library method and deprecated the standalone version. Closes #396.Jussi Pakkanen
2016-01-10Can use external libs as dependencies of dependencies. Closes #321.Jussi Pakkanen
2015-11-04Can store ext deps to internal deps. Closes #304.Jussi Pakkanen
2015-10-20Created a link test method.Jussi Pakkanen
2015-02-08Can specify version requirements to dependencies.Jussi Pakkanen
2014-09-03Use external libs of static libraries when the static library is linked to a ↵Jussi Pakkanen
final target.
2014-06-22Renamed deps -> dependencies.Jussi Pakkanen
2014-06-22The mass flags -> args renaming for consistency.Jussi Pakkanen