summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* unit tests: Skip coverage properly with clangmsvc-library-search-fixesNirbheek Chauhan2017-12-031-2/+3
|
* dependencies: Always convert MinGW paths to MSVC on WindowsNirbheek Chauhan2017-12-031-4/+5
| | | | | | | The MinGW toolchain can read MinGW paths, but Python cannot and we sometimes need to parse the libs and cflags manually (for static-only library searching, for instance). The MinGW toolchain can always read Windows paths with `/` as path separater, so just use that.
* unit tests: Fix test_compiler_detection on MinGWNirbheek Chauhan2017-12-031-4/+5
| | | | The compiler is x86_64-foo-bar-gcc/g++, so also check for that.
* linkers: Return a Copy of VisualStudioLinker always_argsNirbheek Chauhan2017-12-031-2/+2
| | | | Otherwise people will accidentally append to it.
* tests: Fix static library linking on MSYS2-MinGWNirbheek Chauhan2017-12-031-8/+14
| | | | | | | | | The .a library was being built with `ar` which is not the right static archiver, it's supposed to be something like x86_64-w64-mingw32-ar or whatever the target-triple is. Try using the built-in static linker detection instead of doing it manually.
* dependencies: Also convert MinGW compile argsNirbheek Chauhan2017-12-031-16/+29
| | | | For the same reason as the library paths.
* dependencies: Pass language to PkgConfigDependencyNirbheek Chauhan2017-12-033-10/+22
| | | | | | | Also try harder to find a compiler that dependencies can use. This means that in C++-only projects we will use the C++ compiler for compiler checks, which can be important.
* unit tests: Remove all instances of FakeEnvironmentNirbheek Chauhan2017-12-032-12/+5
| | | | | We don't need to use that, and it causes build failures when code actually uses the environment.
* find_library: Prefer .dll.a and .lib over .dll for sharedNirbheek Chauhan2017-12-031-1/+3
| | | | | | | | | | | | | We can't know if the .lib is a static or import library, but that's a problem in general too. The only way to figure out if a specific file is an import or a static library is to dump its symbols and check if it starts with __imp or not. Even then, some libs are hybrid import and static, i.e., they contain references to DLLs for some symbols and also provide implementations for other symbols so this is a difficult problem. Closes https://github.com/mesonbuild/meson/issues/2659
* dependencies: Convert /c/foo/bar paths to C:/foo/barNirbheek Chauhan2017-12-032-1/+30
| | | | | | | | | | | MSVC cannot handle MinGW-esque /c/foo paths, convert them to C:/foo. We cannot resolve other paths starting with / like /home/foo so leave them as-is so the user gets an error/warning from the compiler/linker. These paths are commonly found in pkg-config files generated using Autotools inside MinGW/MSYS and MinGW/MSYS2 environments. Currently this is only done for PkgConfigDependency.
* Merge pull request #2618 from mesonbuild/osxlinkerfixesJussi Pakkanen2017-12-036-14/+49
|\ | | | | Fix many things have have been slightly broken in OSX
| * Specify build_rpath manually to targets linked by hand.osxlinkerfixesJussi Pakkanen2017-11-261-4/+8
| |
| * Fix rpath tests on Linux.Jussi Pakkanen2017-11-261-4/+6
| |
| * Update CMake reference file.Jussi Pakkanen2017-11-261-6/+9
| |
| * Use absolute paths for rpaths on OSX.Jussi Pakkanen2017-11-263-1/+19
| |
| * Add headerpad linker argument on OSX.Jussi Pakkanen2017-11-261-0/+7
| |
* | vala: add stubs for thread flag methodsErnestas Kulik2017-12-031-0/+6
| | | | | | | | | | | | | | | | As the Vala compiler does not define thread_flags() and thread_link_flags(), depending on threads in any capacity will cause Meson to fail. Fixes #2720.
* | Fix OSX CI. This is a bit of a hack but needs to be done. :(Jussi Pakkanen2017-12-031-1/+1
| |
* | Merge pull request #2390 from dcbaker/submit/options-listJussi Pakkanen2017-12-0211-20/+208
|\ \ | | | | | | Add an array type to user options
| * | Add new array type optionDylan Baker2017-11-2911-19/+208
| | | | | | | | | | | | | | | | | | | | | This exposes the already existing UserStringArrayOption class through the meson_options.txt. The intention is to provide a way for projects to take list/array type arguments and validate that all of the elements in that array are valid without using complex looping constructrs.
| * | run_unittests.py: remove newline at top of fileDylan Baker2017-11-291-1/+0
| | | | | | | | | | | | So that the shbang is ther rist line and ./run_unittests.py works.
* | | gnome.compile_resources: Prefer generated files over source filesNirbheek Chauhan2017-11-301-23/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We should always prefer generated files over onces in the source tree else if the same file also exists in the source tree we get strange behaviour where we ignore dependencies and the project has to be built twice to be fully up-to-date. See: https://bugzilla.gnome.org/show_bug.cgi?id=787677 Closes https://github.com/mesonbuild/meson/issues/2686
* | | VS: Add /DEBUG to linker to generate debug informationNiklas Claesson2017-11-302-3/+12
| | |
* | | cross: Implement support for loading cross files from system pathsDylan Baker2017-11-304-4/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One thing that makes cross compiling with meson a pain is the need for cross files. The problem is not with cross files themselves (they're actually rather brilliant in that they allow for a much greater deal of flexibility than autotools hardcoded paths approach) but that each user needs to reimplement them themselves, when for most people what they really want is a cross file that could be provided by their distro, all they really want is the correct toolchain. This patch is the first stop to making it easier for distros to ship their own cross files (and for users to put their's somewhere safe so they don't get `git clean`ed. It allows the cross files (on Linux and *BSD) to be stored in home and system paths (~/.config/meson/cross, /usr/share/meson/cross, and /usr/local/share/meson/cross), and to be loaded by simply by specificying --cross-file. With this patch meson will check the locations its always checked first, (is cross file absolute, or is it relative to $PWD), then will check ~/.config/meson/cross, /usr/local/share/meson/cross, /usr/share/meson/cross, (or $XDG_CONFIG_PATH and $XDG_DATA_DIRS) for the files, raising an exception if it cannot find the specified cross file. Fixes #2283
* | | Merge pull request #2708 from mesonbuild/nirbheek/windows-shebang-parsingJussi Pakkanen2017-11-305-1/+101
|\ \ \ | | | | | | | | dependencies: Fix parsing of shebangs with spaces
| * | | tests/common/167: Port test interpreter to Windowsnirbheek/windows-shebang-parsingNirbheek Chauhan2017-11-301-19/+12
| | | | | | | | | | | | | | | | Which means using fgets, unfortunately.
| * | | dependencies: Fix parsing of shebangs with spacesNirbheek Chauhan2017-11-295-1/+108
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | While finding an external program, we should only split the shebang once since that is what Linux and BSD also do. This is also why everyone uses #!/usr/bin/env in their shebangs since that allows you to run an interpreter in a path with spaces in it. See `man execve` for more details, specifically the sections for interpreter scripts.
* | | [Tests] Minor update for CI on FedoraAlexis Jeandet2017-11-301-1/+1
| | | | | | | | | | | | | | | | | | | | | 'test cases/frameworks/9 wxwidgets' fails to build with clang on Fedora because it needs C++11 enabled. Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
* | | mtest: Chdir into the build directory before running tests with -CDylan Baker2017-11-301-24/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When `ninja -C builddir/ test` is run, ninja will change into the build dir before starting, but `meson test -C builddir/` does not. This is important because meson does not use (for good reasons) absolute paths, which means if a test case needs to be passed as an argument a file name that is part of the build process, it will be relative builddir. Without changing into the builddir the path will not exist (or worse, point at the wrong thing), and test will not behave as intended. To fix this mtest will change directory before starting tests, and will change back after all tests have been finished. Fixes #2710
* | | Merge pull request #2668 from dcbaker/wip/macos-10.13-fixesJussi Pakkanen2017-11-302-4/+10
|\ \ \ | | | | | | | | macos 10.13 fixes
| * | | dependencies: Don't like for python 3 in /System on macOSDylan Baker2017-11-211-3/+5
| | | | | | | | | | | | | | | | That python will always be python2
| * | | tests: Don't run xcode 8 tests on xcode 9Dylan Baker2017-11-211-2/+6
| | | | | | | | | | | | | | | | It lacks the necessary SDKs to run the tests.
* | | | Enable ANSI colors on Windows when ANSICON is setJoergen Ibsen2017-11-291-2/+4
| | | | | | | | | | | | | | | | This enables colors with ConEmu.
* | | | Merge pull request #2701 from dcbaker/submit/better-llvm-docsJussi Pakkanen2017-11-292-1/+30
|\ \ \ \ | | | | | | | | | | Minor LLVM dependency cleanups for the next release
| * | | | docs: Add better documentation of the LLVM dependencyDylan Baker2017-11-281-0/+29
| | | | |
| * | | | Don't warn for optional_modulesDylan Baker2017-11-281-1/+1
| | |/ / | |/| | | | | | | | | | | | | | LLVM can have optional modules, modules that will make the code faster but are not required.
* | | | adding C++98 to versions that meson can supportSolomon Choina2017-11-291-2/+2
| | | |
* | | | docs: note when warning() was addedZbigniew Jędrzejewski-Szmek2017-11-291-0/+2
| | | | | | | | | | | | | | | | Followup for 1540e615f13503722f1067c693f3d394218cbd9e.
* | | | gnome.gtkdoc: Fix missing permitted kwargsPatrick Griffis2017-11-291-1/+2
|/ / / | | | | | | | | | Found by https://bugzilla.gnome.org/show_bug.cgi?id=790998
* | | [Qt module] Added workaround for qt tools version detectionAlexis Jeandet2017-11-281-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | Depending on the tool (moc, uic, rcc, lrelease), the Qt version (4.8, 5.7, 5.9) and the distribution (Fedora, debian,...) it seems you cannot predict which of -v or -version will be supported. Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
* | | Merge pull request #2512 from dcbaker/wip/config-tool-variablesJussi Pakkanen2017-11-2814-283/+376
|\ \ \ | | | | | | | | Add method to get values from config tool based dependency
| * | | docs: add documentation for config_tool variable methodDylan Baker2017-11-232-0/+15
| | | |
| * | | docs: consolidate config-tool based dependenciesDylan Baker2017-11-231-19/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There are currently entries for cups and pcap; but not LLVM, GnuStep, or WxWidgets. Instead of having an entry for each of these just have a single entry for all of them, since the majority of the information is duplicated between them anyway.
| * | | Add a configtool_variable method to dependencyDylan Baker2017-11-233-0/+55
| | | | | | | | | | | | | | | | | | | | This mirrors the get_pkgconfig_variable but for config tool based dependencies.
| * | | Use ConfigToolDependency for libwmfDylan Baker2017-11-233-20/+24
| | | |
| * | | Use ConfigToolDependency for pcapDylan Baker2017-11-233-21/+29
| | | |
| * | | Use ConfigToolDependency for cupsDylan Baker2017-11-233-21/+26
| | | |
| * | | Use ConfigToolDependency for SDL2Dylan Baker2017-11-233-20/+33
| | | |
| * | | Add factory to ConfigToolDependencyDylan Baker2017-11-231-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some dependencies can be detected multiple ways, such as a config tool and pkg-config. For pkg-config a new PkgConfigDependency is created and used to check for the dependency, config tool dependencies are handled ad-hoc. This allows the ConfigToolDependency to be used in the same way that PkgConfigDependency is.
| * | | Make GnuStepDependency a ConfigToolDependencyDylan Baker2017-11-231-38/+31
| | | |