summaryrefslogtreecommitdiff
path: root/mesonbuild
Commit message (Collapse)AuthorAgeFilesLines
* Allow selecting the dynamic linkerDylan Baker2019-12-027-93/+163
| | | | | | | This uses the normal meson mechanisms, an LD environment variable or via cross/native files. Fixes: #6057
* backends/ninja: apply linker arguments when using rustDylan Baker2019-12-021-0/+2
| | | | This will be required to make switching the linker work with rust.
* Fix detection of D linker in MSVC environmentsDylan Baker2019-12-021-4/+5
| | | | | | | Rather than trying to figure out if we're using MSVC based on environment variables, then trying to get the C compiler and test some attributes, get the C compiler and see if it's MSVC. This is much more reliable and we were already doing it anyway.
* linkers: Fix Apple and VS-like linkers always_argsDylan Baker2019-12-021-2/+2
| | | | | Which would not call the super() method, thus overriding the default behavior when it should have instead extended it.
* Prevent the presence of duplicated items in .vcxproj filesLuca Bacci2019-11-301-22/+43
| | | | | | | | | | | | | | | | Visual Studio refuses to open projects that present duplicated items, for example: <ItemGroup> <CLInclude Include="glib-enumtypes.h"/> <CLInclude Include="glib-enumtypes.h"/> </ItemGroup> Note that MSBuild handles duplicated items without any issue, this is useful only for compatibility with the VS IDE. See pull request mesonbuild#6151 Fixes issue mesonbuild#6147
* cmake: Make output_target_map more robust (fixes #6208)Daniel Mensinger2019-11-302-64/+95
| | | | | | | | | | | | This PR refactors the old output_target_map, which was a raw dict, into it's own class. This makes the access to the map more uniform and robust (at the cost of more lines of code). Additionally relative paths to the build directory are now also tracked for outputs. This is neccessary to corretcly distingluish files with the same name, that are in different directories.
* improve error message when old version detectedtaz-0072019-11-301-1/+2
| | | Be more explicit about the --wipe command requiring to be executed from the source dir.
* Fix regular expression for MSVC target arch detectionLuca Bacci2019-11-301-1/+1
| | | | | | | Make it work regardless of MSVC output language Fixes #6128 See PR #6265
* linkers: AppleDynamicLinker supports -pie.Mihai Moldovan2019-11-291-0/+3
| | | | | | | | The linker implementation split up introduced a regression: since the AppleDynamicLinker subclass doesn't expose PIE support, builds using that feature just plainly fail. Add back support for it using the default and supported -pie flag.
* Revert "Have set() and set_quoted() of configuration object work with newlines."Xavier Claessens2019-11-282-3/+0
| | | | This reverts commit 6ed36e97aeb01dd779115a9710d3a97cdbcb4ccf.
* wrap: Redirect stdin to DEVNULL (again)Nirbheek Chauhan2019-11-281-0/+4
| | | | | Same fix as e7b25018c4715e538234d4ba51e32194b4757388, was accidentally missed when this code was rewritten.
* Merge pull request #5989 from xclaesse/cmake-part2Jussi Pakkanen2019-11-283-26/+152
|\ | | | | cmake: Add support for add_custom_target() and add_dependencies()
| * cmake: Reassign dependencies from header-only targetsDaniel Mensinger2019-11-281-0/+45
| |
| * cmake: Detect dependenciy cycles and avoid infinite recursionDaniel Mensinger2019-11-281-0/+9
| |
| * cmake: Some minor fixupDaniel Mensinger2019-11-282-13/+27
| |
| * cmake: Propagate error when running commandXavier Claessens2019-11-271-1/+4
| |
| * cmake: Add support for add_custom_target() with a commandXavier Claessens2019-11-273-13/+32
| | | | | | | | The command could have no output, in which case we create a dummy one.
| * cmake: Add support for add_dependencies()Xavier Claessens2019-11-272-7/+43
| | | | | | | | Closes: #5983
* | wrap: Resolver.get_git: Factor out --depth argument generation and make sure ↵Martin Hostettler2019-11-281-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | not to pass None as parameter 507cf47507cf47 broke the combination of clone-recursive without depth. Because it passed depth (as None) to git. To fix this the depth option is now generated once as a list when depth is set and else set to an empty list and unpacked into the argument this when needed. This reduces duplication and allows code to work the same for both cases.
* | HDF5: make much more robust across platformsMichael Hirsch, Ph.D2019-11-283-48/+122
|/ | | | | | | | | | | | | | | | | | | | | | | This addresses various real-world problems with HDF5 pkg-config, including * hdf*.pc with package versions as part of the filename * malformed hdf*.pc missing the commonly-used HDF5 HL module --- Additionally, this refactors more complicated dependencies such as HDF5 and OpenMPI. This may help us deduplicate internal dependency code in the future. HDF5 selftest: improve platform-agnostic test ci: init demo github action for HDF5 framework ci Actions: hold off on MSYS2 for now [skip ci] hdf5: ensure C libraries always included ci: mac hdf5--use clang+gfortran
* modules/qt.py: friendlier "lrelease-qtN not found" error messageMarc Herbert2019-11-271-0/+3
| | | | | | | | | | | | | When lrelease-qtN is missing, upgrade the error message from the cryptic: meson.build:75:4: ERROR: Tried to use not-found external program in "command" to the meaningful: meson.build:75:4: ERROR: qt.compile_translations: lrelease-qt5 not found Issue found and tested with "test cases/frameworks/4 qt/"
* Fix crash when checking multi version on subproject depXavier Claessens2019-11-262-8/+9
| | | | Also harminize a bit the logged message.
* Fix link_whole with a custom targetXavier Claessens2019-11-251-1/+4
| | | | | | | | t.pic won't be defined. We can only hope it has been built with -fPIC. Linker will complain otherwise any way. t.extract_all_objects_recurse() won't be defined. We could support this case by extracting the archive somewhere and pick object files.
* Simplify list of build def filesXavier Claessens2019-11-251-23/+27
| | | | | | | | | Refactor the code inside a common function for consistency. It's not needed to add dependencies in func_configure_file() because it's already done in run_command_impl(). Do it only for files from `input:` in the case some of them does not end up in the command arguments.
* fs: Add parent() and name() methodsXavier Claessens2019-11-251-0/+17
|
* Merge pull request #6213 from mensinda/cmNameFixJussi Pakkanen2019-11-252-48/+98
|\ | | | | cmake: Uniform target name handling and custom target fixes
| * cmake: add_custom_command fix empty and quoted parametersDaniel Mensinger2019-11-202-0/+3
| |
| * cmake: Fix confilcting custom targetsDaniel Mensinger2019-11-201-8/+28
| |
| * cmake: Uniform target name handlingDaniel Mensinger2019-11-201-40/+67
| |
* | dependencies/ui.py: Fix Vulkan detection on WindowsChun-wei Fan2019-11-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | We might be using the 32-bit bits of the VulkanSDK on Windows on x64 Windows, so we still need to pass in the compiler items to detect what architecture we are building for, so that we link to the correct Vulkan libraries. We might want to look into this again if Microsoft will allow ARM/ARM64 versions of the Vulkan drivers and SDK, since post-basic OpenGL and any Vulkan are not supported on Windows-on-ARM.
* | complete gfortran/intel/intel-cl fortran_std testMichael Hirsch, Ph.D2019-11-251-1/+53
| |
* | dep: MPI make work for intel-cl and improve robustnessMichael Hirsch, Ph.D2019-11-255-206/+278
| | | | | | | | | | | | optimize intelMPI variables mpi: extract version from non-OpenMPI wrapper
* | openbsd: execinfo is not a compiler libAntoine Jacoutot2019-11-251-2/+4
| |
* | Add table entry for CUDA Toolkit 10.2.89.Olexa Bilaniuk2019-11-211-0/+1
| |
* | Fix compute_int() when the value is -1Xavier Claessens2019-11-211-1/+1
|/
* Merge pull request #6199 from mensinda/cmSysIncJussi Pakkanen2019-11-206-8/+30
|\ | | | | cmake: Handle CMake system include dirs (closes #6079)
| * ci: Add CI command to include text files in the CI logDaniel Mensinger2019-11-194-0/+14
| |
| * cmake: Handle CMake system include dirs (closes #6079)Daniel Mensinger2019-11-193-8/+16
| |
* | Have set() and set_quoted() of configuration object work with newlines.Jehan2019-11-192-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Have set() and set_quoted() of configuration object work with newlines. set_quoted() makes the value into a double-quoted string, so let's assume C-style string, in particular with newlines as "\n". Also take care of remaining newlines in dump_conf_header(). C or nasm macros expect single-line values so if the value was multi-line, we would end up with broken syntax. Appending a backslash at each end of line make them concat into a single line in both C and nasm format (note: multi-line macros in nasm are actually possible apparently but use another format not outputted by current meson code). Also note that the replacement is done at the end only when dumping the conf as a header because we cannot assume anything about the format when replacing variables from an input file (in this case, it should be the dev responsibility). * Add unit tests for multiline set() and set_quoted().
* | Interpreter: display linker executable path, if availableEric Le Bihan2019-11-191-1/+1
| | | | | | | | | | Instead of only displaying the identifier of the linker, display also the path to the executable in order to report useful information when cross-compiling.
* | Fix cross-compilation of D programsEric Le Bihan2019-11-192-77/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since version 9.1, GCC provides support for the D programming language. Thus it is easy to build a cross-compiler for D, such as aarch64-unknown-linux-gnu-gdc. However to cross-compile a Meson project using D, using a cross build definition such as the following is not enough: ``` [binaries] d = '/path/to/aarch64-unknown-linux-gnu-gdc' exe_wrapper = '/path/to/qemu-aarch64-static' [properties] needs_exe_wrapper = true [host_machine] system = 'linux' cpu_family = 'aarch64' cpu = 'cortex-a53' endian = 'little' ``` Indeed, "exe_wrapper" is not be taken into account. Build will fail with: ``` Executables created by D compiler /path/to/aarch64-uknown-linux-gnu-gdc are not runnable. ``` This patch fixes this by reworking: - detect_d_compiler() to properly get exe_wrapper and D compilers and detect the one available. - Dcompiler to properly handle exe_wrapper.
* | Enable code coverage using LLVM on macOS CatalinaKurtis Rader2019-11-191-0/+4
|/ | | | Fixes #6188
* fortran: sync implicit-none args for intel,pgi,gfortranMichael Hirsch, Ph.D2019-11-181-2/+8
| | | | | also, find intel-cl submodule .smod name pattern. this would fix intermittent failures of ninja to resolve submodule file dependencies.
* Merge pull request #6194 from scivision/coarraysJussi Pakkanen2019-11-183-45/+73
|\ | | | | dep: Fortran Coarrays-enhance finding by use Pkg-config & CMake
| * deps: add pkg-config to coarray with CMake fallbackMichael Hirsch, Ph.D2019-11-173-45/+73
| | | | | | | | make coarray in its own file for clarity
* | fortran: note there is no has_function for FortranMichael Hirsch, Ph.D2019-11-181-1/+7
| | | | | | | | | | | | | | | | It would be very challenging if not futile to make has_function work for Fortran. The meson.get_compiler('fortran').links() works very well instead. As a reference, CMake's check_fortran_function_exists is completely broken in general. This change raises a useful MesonException instead of giving bizarre errors.
* | Use strict function prototypesMichael Hirsch, Ph.D2019-11-186-26/+26
|/
* Merge pull request #6182 from mensinda/depInfoJussi Pakkanen2019-11-174-24/+42
|\ | | | | Better dependency logs
| * mintro: dependencies: added version keyDaniel Mensinger2019-11-141-0/+1
| |
| * Highlight '(cached)' and add color to the dependency versionDaniel Mensinger2019-11-142-20/+19
| |