Commit Graph

8546 Commits

Author SHA1 Message Date
Michael Hirsch, Ph.D d1980beb6b ci/test: unused args for objc, objc++ 2019-12-04 10:59:40 +02:00
Michael Hirsch, Ph.D acee448fb9 ci/test: unused args for Windows 2019-12-04 10:59:40 +02:00
Michael Brockus 7d162487e3 Add raise at the start of MesonException 2019-12-04 10:54:24 +02:00
Marc Herbert 80bfe593fc mparser.py: actually check the type of key variable, not its value
Fixes PR #6166 and more specifically commit 4e460f04f3 that tried to
make sure the type of a key variable is a string but checked the type of
the value instead. Extends test common/228's limited coverage,
its only test case had (surprise) a string value. Also avoid reserved
python keyword 'dict' and potentially confusing string 'key'.

Implements #5231 for real.
2019-12-03 22:10:07 -05:00
Dylan Baker f8aa17d8e6 run_unittests: Add tests for LD on windows 2019-12-03 13:08:42 -08:00
Dylan Baker afe00f4217 linkers: make constructor signature of VisualStudioLike linkers the same 2019-12-03 13:08:42 -08:00
Dylan Baker d856118006 environment: Fix selecting the linker with rustc 2019-12-03 13:08:42 -08:00
Dylan Baker a1bfd22120 linkers: Correct MSVC-like linkers invoke directly flag
This is returning the inverse of the correct value, which happens to
work out because in general the compilers that a link.exe-like linker is
paired with accepts the same arguments.
2019-12-03 13:08:42 -08:00
Dylan Baker 39efd97714 run_project_tests: Fix skip rust
which expects an argument of backend, but isn't getting one.
2019-12-03 13:08:42 -08:00
Dylan Baker 75c1874bb3 run_unittests: Add unittests for ld overriding 2019-12-03 13:08:42 -08:00
Dylan Baker 8091b4c744 Intel: Dump worthless Xild abstractions
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-03 13:08:42 -08:00
Dylan Baker 71e3fac5af run_unittests: remove unused PatchModule class 2019-12-02 16:39:06 -08:00
Dylan Baker 2450cd6a9f azure: print where link.exe is coming from too 2019-12-02 16:39:06 -08:00
Dylan Baker 0ae911d893 environment: Add a special error case for getting GNU link.exe
Since I spent three days banging my head against this it seems
reasonable that other people might also run into this problem. It can
happen if you're trying to use microsoft's link.exe, but also have the
dmd bin directory at the tail of your %PATH%, among other reasons.
2019-12-02 16:39:06 -08:00
Dylan Baker ab5ea9e8b6 environment: unify platform detection logic
I noticed this while I was here, it's not much, just a small cleanup to
the platform detection logic.
2019-12-02 16:39:06 -08:00
Dylan Baker 32e0bcc516 docs: Update docs for LD and ld entries 2019-12-02 16:39:06 -08:00
Dylan Baker 8761ca7b7d environment: Remove duplicate argument from _guess_nix_linker
Since we pass the whole compiler class (as a type()) we don't need to
also pass it's LINKER_PREFIX attribute, we can just get it from the
type we're passing.
2019-12-02 16:39:06 -08:00
Dylan Baker ef9aeb188e Allow selecting the dynamic linker
This uses the normal meson mechanisms, an LD environment variable or via
cross/native files.

Fixes: #6057
2019-12-02 16:39:06 -08:00
Dylan Baker 7658e67f92 backends/ninja: apply linker arguments when using rust
This will be required to make switching the linker work with rust.
2019-12-02 13:39:37 -08:00
Dylan Baker 5a83cb0d33 Fix detection of D linker in MSVC environments
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.
2019-12-02 13:39:37 -08:00
Dylan Baker 52aa24e997 linkers: Fix Apple and VS-like linkers always_args
Which would not call the super() method, thus overriding the default
behavior when it should have instead extended it.
2019-12-02 13:39:37 -08:00
Michael Hirsch, Ph.D 11639dd922 doc: update travis-CI info and add GitHub Actions example [skip ci] 2019-12-02 01:36:32 +02:00
Michael Hirsch, Ph.D 44ab23dff8
scalapack: test that find methods work 2019-11-30 22:24:42 -05:00
Michael Hirsch, Ph.D e209dd2607
scalapack: allow specifying find method 2019-11-30 22:16:40 -05:00
Michael Hirsch, Ph.D 3120481d77
CI: scalapack not skippable since it's now in Docker image 2019-11-30 21:37:45 -05:00
Michael Hirsch, Ph.D 9e6e6f5b1c
CI-actions: combine extra frameworks tests into one .yml file 2019-11-30 21:35:19 -05:00
Michael Hirsch, Ph.D c3a0064091
scalapack: run without mpiexec
Normally MPI programs would be run with MPI exec, but Travis-CI
has errors wanting --allow-run-as-root. To simplify, we don't use
mpiexec in this test, since it's a library check, not an MPI stack check.
2019-11-30 21:30:53 -05:00
Michael Hirsch, Ph.D e097c22f82
scalapack: add to Dockerfile
scalapack: actions Macos
2019-11-30 21:30:52 -05:00
Michael Hirsch, Ph.D 92b77cb321
deps: add scalapack
Scalapack uses a library stack that can be challenging to manage.
Not least of all since many Scalapacks ship with broken / incomplete
pkg-config files and CMake FindScalapack.cmake

This resolves those issues for typical Scalapack setups including:

* Linux: Intel MKL or OpenMPI + Netlib
* MacOS: Intel MKL or OpenMPI + Netlib
* Windows: Intel MKL (OpenMPI not available on Windows)
2019-11-30 21:29:49 -05:00
Michael Hirsch, Ph.D 818c92003c
fix extraneous '\\ ' in some windows pkg-config files
This fixes general issues with pkg-config on Windows, including specifically
with Intel MKL that has "wrongly" escaped spaces on Windows.
2019-11-30 21:27:40 -05:00
Michael Brockus da9f56afde Update CI Continuous Integration page and add CircleCi example [skip ci] 2019-11-30 23:33:06 +02:00
Luca Bacci 279f72f8cd Prevent the presence of duplicated items in .vcxproj files
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
2019-11-30 22:02:18 +02:00
Daniel Mensinger 36749a1625 cmake: Make output_target_map more robust (fixes #6208)
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.
2019-11-30 22:00:18 +02:00
taz-007 eed05c9045 improve error message when old version detected
Be more explicit about the --wipe command requiring to be executed from the source dir.
2019-11-30 21:55:51 +02:00
Luca Bacci 2362bdbbf9 Fix regular expression for MSVC target arch detection
Make it work regardless of MSVC output language

Fixes #6128
See PR #6265
2019-11-30 21:52:58 +02:00
chris 6cc0ef8c07
docs: fix typo 2019-11-29 18:08:15 +01:00
Mihai Moldovan cc803072e0 tests: add osx test case for PIE builds. 2019-11-29 08:11:06 -08:00
Mihai Moldovan 2c4a08ee56 linkers: AppleDynamicLinker supports -pie.
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.
2019-11-29 08:11:06 -08:00
Xavier Claessens b33830f99e Revert "Have set() and set_quoted() of configuration object work with newlines."
This reverts commit 6ed36e97ae.
2019-11-28 14:32:56 -05:00
Nirbheek Chauhan 1cb680388d wrap: Redirect stdin to DEVNULL (again)
Same fix as e7b25018c4, was accidentally
missed when this code was rewritten.
2019-11-28 19:00:53 +05:30
Jussi Pakkanen 575a2c34f8
Merge pull request #5989 from xclaesse/cmake-part2
cmake: Add support for add_custom_target() and add_dependencies()
2019-11-28 13:15:51 +02:00
Martin Hostettler bb03cf0dbc wrap: Resolver.get_git: Factor out --depth argument generation and make sure 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.
2019-11-28 13:01:33 +02:00
Michael Hirsch, Ph.D 9db4461239 ci: hdf5: Actions MacOS CI added
* MacOS Homebrew catches latest HDF5 release
* Linux catches older HDF5 release
* MSYS2 isn't yet ready on Actions for this test
2019-11-28 12:51:58 +02:00
Michael Hirsch, Ph.D c02593fddc HDF5: make much more robust across platforms
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
2019-11-28 12:51:58 +02:00
Daniel Mensinger 82df046bc1
cmake: Reassign dependencies from header-only targets 2019-11-28 11:11:15 +01:00
Daniel Mensinger 3cdc386cde
cmake: Detect dependenciy cycles and avoid infinite recursion 2019-11-28 11:10:27 +01:00
Daniel Mensinger b2b9c102b5
cmake: Some minor fixup 2019-11-28 11:07:20 +01:00
Robert Ancell dd15c47ea8
docs: Fix typo [skip ci] 2019-11-27 20:23:20 -05:00
Xavier Claessens 8efbcb1e80
cmake: Add unit test for add_custom_target() and add_dependency()
Also test commands with args separated by ';'
2019-11-27 21:12:55 +01:00
Xavier Claessens f73a1dff0e
cmake: Propagate error when running command 2019-11-27 21:12:55 +01:00