aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2021-09-28 17:32:44 +0300
committerGitHub <noreply@github.com>2021-09-28 17:32:44 +0300
commitfa47d8dab048f8880091f24b77eb192b82a35e9e (patch)
tree764b54a18eb49003e334fe2fbb7fc0b4025d6bac /docs
parent5fa0fd3b473f792bd7333cf6ae6e2f4c851b6108 (diff)
parent32dbdff3b2d37d1ec7ef976c0b4f30d1d0472e70 (diff)
downloadmeson-fa47d8dab048f8880091f24b77eb192b82a35e9e.zip
meson-fa47d8dab048f8880091f24b77eb192b82a35e9e.tar.gz
meson-fa47d8dab048f8880091f24b77eb192b82a35e9e.tar.bz2
Merge pull request #9014 from bonzini/mixed-language-link
Use appropriate compiler for the source file for "links" tests with file argument
Diffstat (limited to 'docs')
-rw-r--r--docs/markdown/Reference-manual.md5
-rw-r--r--docs/markdown/snippets/mixed_language_linker_tests.md21
2 files changed, 25 insertions, 1 deletions
diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md
index 31ed77e..b3dbf65 100644
--- a/docs/markdown/Reference-manual.md
+++ b/docs/markdown/Reference-manual.md
@@ -2514,7 +2514,10 @@ the following methods:
positional argument compiles and links, you can specify external
dependencies to use with `dependencies` keyword argument, `code` can
be either a string containing source code or a `file` object
- pointing to the source code.
+ pointing to the source code. *Since 0.60.0*, if the `file` object's
+ suffix does not match the compiler object's language, the compiler
+ corresponding to the suffix is used to compile the source, while the
+ target of the `links` method is used to link the resulting object file.
- `run(code)`: attempts to compile and execute the given code fragment,
returns a run result object, you can specify external dependencies
diff --git a/docs/markdown/snippets/mixed_language_linker_tests.md b/docs/markdown/snippets/mixed_language_linker_tests.md
new file mode 100644
index 0000000..8b94edb
--- /dev/null
+++ b/docs/markdown/snippets/mixed_language_linker_tests.md
@@ -0,0 +1,21 @@
+== Link tests can use sources for a different compiler ==
+
+Usually, the `links` method of the compiler object uses a single program
+invocation to do both compilation and linking. Starting with this version,
+whenever the argument to `links` is a file, Meson will check if the file
+suffix matches the compiler object's language. If they do not match,
+as in the following case:
+
+```
+cxx = meson.get_compiler('cpp')
+cxx.links(files('test.c'))
+```
+
+then Meson will separate compilation and linking. In the above example
+`test.c` will be compiled with a C compiler and the resulting object file
+will be linked with a C++ compiler. This makes it possible to detect
+misconfigurations of the compilation environment, for example when the
+C++ runtime is not compatible with the one expected by the C compiler.
+
+For this reason, passing file arguments with an unrecognized suffix to
+`links` will cause a warning.