Commit Graph

343 Commits

Author SHA1 Message Date
Daniel Mensinger 438ee6b01d
cmake: updated docs 2019-06-06 18:27:05 +02:00
Daniel Mensinger 35936316eb
cmake: rebase fixes 2019-06-06 18:27:04 +02:00
Daniel Mensinger 6cb904de7b
cmake: Added docs 2019-06-06 18:27:03 +02:00
Mathieu Duponchelle 12a82e763d interpreter: add fallback argument to subproject.get_variable() 2019-05-28 20:26:54 +03:00
Michael Hirsch, Ph.D 44b6ccbe56 join_paths => / [skip ci] 2019-05-22 23:56:50 +03:00
Jussi Pakkanen e9bd7d49bd
Merge pull request #5372 from dcbaker/get_variable
Dependency.get_variable method
2019-05-21 21:57:05 +03:00
Jussi Pakkanen 79d530e325 Generators can have extra target dependencies. Closes #4131. 2019-05-20 23:38:13 +03:00
Dylan Baker ffe2a678d5 docs: Add docs for Dependency.get_variable 2019-05-20 10:41:11 -07:00
Daniel Eklöf c2ee82cc41 add support for "target_type: 'shared_module'" in build_target() 2019-05-09 22:43:10 +03:00
Michael Hirsch, Ph.D 06bfc2dab6 per-target manual specification of link_language 2019-05-02 23:26:51 +03:00
Anton Kochkov ad0ba6a911 Add VS2019 backend CI and docs. 2019-04-16 00:11:02 +03:00
Keefer Rourke 53a7403f10 (#5260) link to builtin options in `library()` fn
As a newcomer to the Meson build system, I found the documentation of the `library()` function to be a bit misleading. Eventually I found what 'user option' referred to after digging through the docs.

This just adds a link back to the page that describes the options that are referred to in this paragraph.
2019-04-15 20:39:16 +03:00
Dylan Baker 02ff9829c4 docs: Change 0.51 to 0.50.1 [skip ci]
Since this is targeting the 0.50.1 bugfix release.
2019-04-10 19:30:18 +03:00
Jussi Pakkanen 5905533fcd
Merge pull request #5103 from mesonbuild/linkcustom
Can link against custom targets
2019-04-01 01:29:51 +03:00
Jonatan Pålsson 2a030e33f3 docs: Document when environment() was added (#5178) [skip ci]
The environment() function was added in 0.35.0 (which contains a2e7ebc5,
containing the actual addition)
2019-03-30 09:28:04 +00:00
Dylan Baker f2d4a32370 dependencies/base: Pass correct arguments to subdependencies
Currently InternalDependency.get_partial_dependency shadows the the
input variables names, and then passes those new copies to the final
object returned. It also passes them to the arguments of of
get_partial_dependency for each subdependency, which is wrong. The
code is supposed to proxy the original argumetn values to that instead
of the shadowing values.

To avoid that this patch renames the new values.
2019-03-29 21:27:54 +00:00
Jussi Pakkanen 2259db2683 Add documentation. 2019-03-28 23:11:30 +02:00
Jussi Pakkanen 4b95dd3a6d Add test script to generate a static library with a custom target. 2019-03-18 22:01:06 +02:00
Niklas Claesson dd2c44cdf6 Add static as keyword to find_library 2019-03-11 20:56:52 +02:00
Paolo Bonzini 91f847d308 mtest: implement TAP parsing
This provides an initial support for parsing TAP output.  It detects failures
and skipped tests without relying on exit code, as well as early termination
of the test due to an error or a crash.

For now, subtests are not recorded in the TestRun object.  However, because the
TAP output goes on stdout, it is printed by --print-errorlogs when a test does
not behave as expected.  Handling subtests as TestRuns, and serializing them
to JSON, can be added later.

The parser was written specifically for Meson, and comes with its own
test suite.

Fixes #2923.
2019-03-02 09:07:54 +01:00
Paolo Bonzini 4b5cf3f7c5 interpreter: add "protocol" kwarg to test
This is the first step towards adding support for TAP.
2019-03-02 09:07:54 +01:00
emersion 06e939bcbb docs: compiled() only works with compiler.run() results [skip ci] 2019-02-25 00:21:26 +02:00
Maarten ter Huurne b4ef257593 Clarify in docs the argument types extract_objects() accepts [skip ci] 2019-02-19 22:42:12 -05:00
Jonathan Poelen f424bdaf33 use compile_args instead of compiler_args [skip ci] 2019-02-18 21:59:10 +02:00
Jan Tojnar 33d82201bd run_command: add env kwarg 2019-01-27 19:24:15 +02:00
Luca Boccassi 267792174c custom_target: do not let install override build_by_default
A custom_target, if install is set to true, will always be built by
default even if build_by_default is explicitly set to false.
Ensure that this does not happen if it's set explicitly. To keep
backward compatibility, if build_by_default is not set explicitly and
install is true, set build_by_default to true.

Fixes #4107
2019-01-17 20:40:19 +02:00
Marco Trevisan (Treviño) 95c1cdf776 interpreter: obey to the install argument in configure_file
If a configure_file has an install_dir set, the supported install
argument is ignored, while this should have actually higher priority
than the install_dir itself.
Also check that correct types are used for `install` and `install_dir`.

Add test to verify this.

Fixes #3983
2019-01-13 19:51:31 +02:00
Ethan R 530aec0bbe Added Rust to supported languages for project() (#4750) [skip ci] 2019-01-09 23:46:38 +05:30
Dylan Baker 6c76b92dff docs: document the native keyword argument for reference-manule [skip ci] 2019-01-07 22:56:17 +02:00
Jussi Pakkanen 3a6e2aeed9 Can use plain strings for include_directories. 2019-01-02 22:29:08 +02:00
Xavier Claessens b6cede2928 find_library: Add 'has_headers' kwarg
A library without its headers is often useless, so it is common to check
them together.
2018-12-27 23:06:28 -05:00
Xavier Claessens ff2aa5a9ef Add 'required' kwarg in header check functions
Closes: #3940
2018-12-24 11:12:11 -05:00
Jussi Pakkanen 4df9006ca4 Can specify a string to print when dep not found. Closes #2407. 2018-12-22 19:00:40 +02:00
Dylan Baker 05fc81ac35 docs: Add warning about not using join_paths() with build targets [skip ci]
This comes up now and again when people try do do something like:

meson.build:
```meson
my_sources = ['foo.c']
subdir('subdir')
executable('foo', my_sources)
```
subdir/meson.build:
```meson
my_sources += ['bar.c']
```
2018-12-19 01:25:17 +02:00
Nirbheek Chauhan d42a3ae05f Document dependency().name() added in 0.48 [skip ci]
Closes https://github.com/mesonbuild/meson/issues/3351
2018-12-17 21:03:57 +05:30
Lzu Tao 0c33c7ca8a Add note for install_man in Reference-manual [skip ci] 2018-12-16 16:42:50 +02:00
Simon Arlott f77ead26eb docs: build_always_stale was added in 0.47 [skip ci] 2018-12-10 20:21:55 +02:00
Nirbheek Chauhan 55d79a6ba2 docs: Misc syntax fixes and missing links [skip ci] 2018-12-05 02:40:34 +00:00
Nirbheek Chauhan c502ddfebf docs: Document subproject(... required: false) [skip ci]
Somehow this was missed in the original PR #3885
2018-12-05 02:40:34 +00:00
Nirbheek Chauhan febd3e8524
Document how to declare fallback-only dependencies [skip ci] 2018-12-05 07:44:27 +05:30
Daniel Mensinger a0175ecb14 CMake find_package dependency backend (#4444) 2018-11-22 22:30:12 +02:00
Stian Selnes 0821462ce3 Add kwarg is_default to add_test_setup()
is_default may be used to set the name of the test setup that will be
used by default whenever the option --setup is not given.

Fixes #4430
2018-11-12 16:23:59 +05:30
Dylan Baker 63f4f9481e Add new compiler.get_argument_syntax method
Some compilers try very had to pretend they're another compiler (ICC
pretends to be GCC and Linux and MacOS, and MSVC on windows), Clang
behaves much like GCC, but now also has clang-cl, which behaves like MSVC.

This method provides an easy way to determine whether testing for MSVC
like arguments `/w1234` or gcc like arguments `-Wfoo` are likely to
succeed, without having to check for dozens of compilers and the host
operating system, (as you would otherwise have to do with ICC).
2018-11-03 18:10:36 +02:00
Jussi Pakkanen 23ed0e1857 Make string division do path joining. 2018-11-02 21:02:25 +02:00
Nirbheek Chauhan 1c2cfe4529 docs: Fix gcc attribute list link [skip ci] 2018-10-27 23:11:44 +01:00
Dylan Baker 1e054ad2b9 docs: Fix hotdoc warnings [skip ci]
Hotdoc really wants internal links to point to the .md files instead of
the generated names. Which makes sense, as we're currently relying on
the fact that meson only generated .html pages.
2018-10-27 16:07:14 +03:00
Xavier Claessens 61348da069 Add 'disabler' argument to functions returning not-found objects
When dependency(), find_library(), find_program(), or
python.find_installation() return a not-found object and disabler is
true, they return a Disabler object instead.
2018-10-23 22:09:55 +03:00
Michał Górny e8232c7825 Remove implicit compression of man pages
Remove the code responsible for implicitly compressing manpages as .gz
files.  It has been established that manpage compression is a distro
packager's task, with existing distros already having their own
implementations of compression.

Fixes #4330
2018-10-20 13:16:28 +03:00
Jon Turney 648b2c5799 Document the no_builtin_args argument of Compiler object methods [skip ci] 2018-10-20 00:48:00 +03:00
Xavier Claessens c453400d59 Add 'b_pie' compiler option
On Android executables must be position independent, many
distributions enable it by default too for security reasons.
2018-10-20 00:47:27 +03:00
Xavier Claessens b9e405c634 doc: Add missing assert() function [skip ci] 2018-10-12 22:25:40 +03:00
Xavier Claessens 38a6582145 configure_file: Support taking values from a dict
Closes #4218
2018-10-08 21:03:32 +03:00
Jan Tojnar c0c075c129 Make custom dist scripts accept arguments.
meson.add_dist_script, introduced in #3906, did not accept any arguments
other than script name. Since all other meson.add_*_script methods
do accept args, this makes the dist script accept them as well.
2018-10-04 21:20:57 +03:00
Mike Gilbert 019a627f04 Document the compiler.cmd_array() method 2018-10-04 21:19:03 +03:00
Nirbheek Chauhan 31e1e524ca
Document when console: kwarg was added [skip ci] 2018-10-03 18:35:35 +05:30
Ari Vuollet c4b885bfd1 docs: Document conditional debug compilation flags [skip ci] 2018-09-27 17:49:48 +03:00
ePirat 80721b7605 Docs: Add DEPFILE to substitutions list [ci skip] 2018-09-25 20:37:33 -07:00
Bruce Richardson 9a29496a9b clarify old behaviour of set_variable in documentation [skip ci]
Thanks to PR #3483, set_variable can be used to assign array values.
However, the fact that it cannot be used for arrays before 0.46.1 needs
a mention in the documentation, since otherwise users can get unexpected
dependencies on later meson versions.
2018-09-20 19:00:42 +03:00
Jussi Pakkanen f2041405fb
Merge pull request #4017 from jon-turney/version-comparison-rewrite
Use rpmvercmp version comparison
2018-09-13 22:19:35 +03:00
Jon Turney 8b3ad3e9a0 Add a release note snippet
Also tweak releated documentation
2018-09-12 15:38:00 +01:00
Nirbheek Chauhan 1819dc851a
Document version when both_libraries() was added [skip ci] 2018-09-11 19:38:06 +05:30
Dylan Baker 51e9db370a Add method to check for C/C++ function attributes
It's fairly common on Linux and *BSD platforms to check for these
attributes existence, so it makes sense to me to have this checking
build into meson itself. Autotools also has a builtin for handling
these, and by building them in we can short circuit cases that we know
that these don't exist (MSVC).

Additionally this adds support for two common MSVC __declspec
attributes, dllimport and dllexport. This implements the declspec
version (even though GCC has an __attribute__ version that both it and
clang support), since GCC and Clang support the MSVC version as well.
Thus it seems reasonable to assume that most projects will use the
__declspec version over teh __attribute__ version.
2018-09-07 11:52:15 -07:00
Nirbheek Chauhan 226eaba369 Reference-manual: Clarify fallback dependency types [skip ci] 2018-09-04 22:50:17 -07:00
Rafael Ávila de Espíndola 07d2d88fa9 Allow override_find_program to use an executable.
With this it is now possible to do

foobar = executable('foobar', ...)
meson.override_find_program('foobar', foobar)

Which is convenient for a project like protobuf which produces both a
dependency and a tool. If protobuf is updated to use
override_find_program, it can be used as

protobuf_dep = dependency('protobuf', version : '>=3.3.1',
                          fallback : ['protobuf', 'protobuf_dep'])
protoc_prog = find_program('protoc')
2018-09-03 21:24:01 +03:00
Nirbheek Chauhan bead8287a5 Improve support for macOS dylib versioning
We now use the soversion to set compatibility_version and
current_version by default. This is the only sane thing we can do by
default because of the restrictions on the values that can be used for
compatibility and current version.

Users can override this value with the `darwin_versions:` kwarg, which
can be a single value or a two-element list of values. The first one
is the compatibility version and the second is the current version.

Fixes https://github.com/mesonbuild/meson/issues/3555
Fixes https://github.com/mesonbuild/meson/issues/1451
2018-08-29 15:51:23 -07:00
Jussi Pakkanen fb770e1e3d Add support for custom dist scripts. 2018-08-27 23:35:29 +03:00
Jon Turney 7fff8318f5
Add a release note snippet
Also adjust relevant documentation
2018-08-26 17:23:39 +01:00
Jussi Pakkanen 54aed1a92c Added "native" kwarg to add_XXX_args. Closes #3669. 2018-08-22 23:22:48 +03:00
Xavier Claessens 4f088365e4 interpreter: Add support for dict addition 2018-08-14 23:46:42 +03:00
Jussi Pakkanen fb2cdd0fe2 Call it gnu_symbol_visibility instead. 2018-08-09 19:46:49 +03:00
Jussi Pakkanen d7d948db0d Update documentation for symbol visibility. 2018-08-09 19:46:49 +03:00
Onkar c9aea4e11c Clarify version for check_header, fixes #3974
check_header method was added in compiler object in version 0.47. Documentation needs to be updated for this.
2018-08-04 18:18:25 +03:00
Nirbheek Chauhan a2dab5439c custom targets: Add a 'console' kwarg for long-running commands
Ninja buffers all commands and prints them only after they are
complete. Because of this, long-running commands such as `cargo
build` show no output at all and it's impossible to know if the
command is merely taking too long or is stuck somewhere.

To cater to such use-cases, Ninja has a 'pool' with depth 1 called
'console', and all processes in this pool have the following
properties:

1. stdout is connected to the program, so output can be seen in
   real-time
2. The output of all other commands is buffered and displayed after
   a command in this pool finishes running
3. Commands in this pool are executed serially (normal commands
   continue to run in the background)

This feature is available since Ninja v1.5

https://ninja-build.org/manual.html#_the_literal_console_literal_pool
2018-07-31 19:38:54 +03:00
Jussi Pakkanen f67630d26c Removed extra parentheses. [skip ci] 2018-07-20 18:40:58 +03:00
Nirbheek Chauhan 78f1ef85fd
Add missing method on external library object: type_name() (#3845)
For some reason this was missing, but it should've always existed
since cc.find_library() returns an object that is internally an
ExternalDependency instance.
2018-07-08 10:58:07 -07:00
Nirbheek Chauhan a37c31e8a3 Reference-manual.md: Document find_library().partial_dependency() [skip ci]
+ typos.
2018-07-06 19:14:21 +05:30
Nirbheek Chauhan 8e84b13850 meson.add_install_script: Move notes section up [skip ci]
The notes section of add_install_script somehow got separated, which
meant that no one reads it anymore.

Also rephrase it a bit to clarify that scripts *MUST* handle DESTDIR
correctly to mirror what Meson does, and how.
2018-07-05 19:01:46 +00:00
Jussi Pakkanen 1ec3c79056 Documentation cleanup. [skip ci] 2018-07-02 20:35:00 +03:00
Jon Turney 8b12a71f22 Refine documentation for build_always [skip ci]
We mention this is equivalent to setting both build_by_default and
build_always_stale in the release note, and in the warning emitted when it's
used, but not in the reference manual.
2018-06-26 23:05:01 +03:00
Nirbheek Chauhan 86684ad798 Document environment() append/prepend/set with multiple values [skip ci]
Fixes https://github.com/mesonbuild/meson/issues/3761
2018-06-20 13:27:23 +00:00
Alex Hirsch cbe18e01e4 Deprecate `build_always`, add `build_always_stale`
Since `build_always` also adds a target to the set of default targets,
this option is marked deprecated in favour of the new option
`build_always_stale`.

`build_always_stale` *only* marks the target to be always considered out
of date, but does *not* add it to the set of default targets.

The old behaviour can still be achieved by combining
`build_always_stale` with `build_by_default`.

fixes #1942
2018-06-18 10:49:40 +00:00
Xavier Claessens e565945253 Add UserFeatureOption type
This is a special type of option to be passed to most 'required' keyword
arguments. It adds a 3rd state to the traditional boolean value to cause
those methods to always return not-found even if the dependency could be
found.

Since integrators doesn't want enabled features to be a surprise there
is a global option "auto_features" to enable or disable all
automatic features.
2018-06-18 04:57:32 +00:00
Jon Turney 8d5361bb1d Wrap a line in a way that doesn't break link [skip ci] 2018-06-17 15:26:11 +03:00
Christoph Behle b08902a60f Improved documentation.
Added entry to release notes.
Added note to documentation, regarding from which version on the
behavior is changed.
2018-06-12 00:14:54 +00:00
Christoph Behle 219fcfad14 Document change in reference manual. 2018-06-12 00:14:54 +00:00
Jon Turney 2e29f37b0e Document values for dependency(method:) [skip ci]
We say 'different dependencies support different values for this', but
nowhere document what values are supported, so the only way to find these
out is to read the source, or guess. Make a start at doing that.
2018-06-10 01:47:51 +00:00
Sander Sweers 38fa281448 Add new encoding keyword for configure_file to manual
Also add a section how to deal with file encodings.
2018-06-09 18:17:48 +00:00
Jon Turney 1f5c6d62bf More clearly explain portability issues with linking to a module
Refine #3277

According to what I read on the internet, on OSX, both MH_BUNDLE (module)
and MH_DYLIB (shared library) can be dynamically loaded using dlopen(), but
it is not possible to link against MH_BUNDLE as if they were shared
libraries.

Metion this as an issue in the documentation.

Emitting a warning, and then going on to fail during the build with
mysterious errors in symbolextractor isn't very helpful, so make attempting
this an error on OSX.

Add a test for that.

See also:
https://docstore.mik.ua/orelly/unix3/mac/ch05_03.htm
https://stackoverflow.com/questions/2339679/what-are-the-differences-between-so-and-dylib-on-osx
2018-06-07 12:57:39 +00:00
Jon Turney 7e08e958c0 Allow substitutions in custom_target() depfile:
Allow substitutions in custom_target() depfile: as well as in command:
2018-06-03 21:06:23 +00:00
Jon Turney 50aabc0129 Document @PLAINNAME@ and @BASENAME@ substitutions in custom_target(command:)
Since f3ff8fe6 (0.39.0), this has a common implementation with the same
substitution in generators, but I think they existed earlier.

@BASENAME@ is used internally by the custom target generated by
windows.compile_resources()
2018-06-03 21:06:23 +00:00
Filipe Brandenburger 73decf31f1 Update reference manual to include 'install_mode' where supported 2018-06-02 04:50:32 +00:00
Mathieu Duponchelle 14750b50ea configure_file: Add output_format kwarg (#3636)
* configure_file: Add output_format kwarg

* docs: Reference-manual.md output_format was added in 0.47 [skip ci]
2018-06-01 17:53:07 +00:00
Dylan Baker 17cb364046 [skip ci] docs: cross reference tables from manual (#3656)
* docs/reference-manual: link to references tables

Currently the reference manual entries for *machine.cpu_family() and
*machine.system() have incomplete (and wrong) information. Rather than
continue to duplicate this information just link to the reference
tables.

* docs/Reference-manual: fix link target

The IDs in hotdoc are always lowered, so this pointed to the right page,
but didn't go to the heading.

* docs/Reference-manual: link compiler.get_id directly to tables

Currently it goes round about to an entry that doesn't add much
information and points to the reference table. Instead just point to the
reference table.
2018-06-01 15:19:36 +00:00
Jon Turney 809336833c Improve dependency() documentation [skip ci]
Mention that the dependency name will also be searched for as a framework on
OSX.

Note that additional dependency-specific keywords may be used by custom
dependency lookup.
2018-05-31 13:15:47 +00:00
Nirbheek Chauhan 27b290d6df Add check_header to Reference manual and release notes [skip ci] 2018-05-30 15:25:39 +05:30
Nirbheek Chauhan c87c42b736
Document how to set the default name_prefix and name_suffix [skip ci]
Else people (like me) try to use the old behaviour where
setting it to `''` would use the default.

https://gitlab.gnome.org/GNOME/glib-networking/issues/33
2018-05-30 13:27:24 +05:30
Jussi Pakkanen cc3e0bc469
Merge pull request #3491 from jeandet/qt_private_headers
Qt private headers
2018-05-27 23:50:30 +03:00
Jussi Pakkanen 55a0831bc3
Merge pull request #3383 from mesonbuild/nirbheek/configure-file-nodata
configure_file: Add a new action 'copy'
2018-05-22 21:09:19 +03:00
Jussi Pakkanen 9ecd92c6fe
Merge pull request #3490 from MathieuDuponchelle/dict_builtin
Add new built-in type, dict
2018-05-22 20:46:26 +03:00
Andrei Alexeyev 2e2d14c9d7
Update documentation for run_command [skip ci] 2018-05-22 04:45:40 +03:00
Mathieu Duponchelle fe6fc59ee7 dict: add since annotations 2018-05-22 00:17:42 +02:00
Nirbheek Chauhan 4b9393e165 docs: Add manual entry for configure_file copy kwarg 2018-05-22 02:37:07 +05:30
Mathieu Duponchelle 1de7dce414 dict: Document, add release snippet 2018-05-20 22:39:33 +02:00
Nirbheek Chauhan e9a181a545
docs: Add a warning about find_program().path()
See: https://github.com/mesonbuild/meson/issues/3552
2018-05-09 18:30:00 +05:30
Nirbheek Chauhan 43f9318afa
Reference-manual: compiler checks
Document that compiler checks are self-contained and
do not add arguments from anywhere else.
2018-05-09 14:43:08 +05:30
Alexis Jeandet 51868d00e7 [Qt module] Privates headers: added documentation
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
2018-04-28 17:45:23 +02:00
Xavier Claessens 9a82b0136a extract_all_objects: Add 'recursive' keyword argument
To maintain backward compatibility we cannot add recursive objects by
default. Print a warning when there are recursive objects to be pulled
and the argument is not set. After a while we'll do pull recursive
objects by default.
2018-04-18 14:54:52 -04:00
Jussi Pakkanen 628f910760
Merge pull request #3314 from sarum9in/test_depends
Add test(depends) keyword parameter
2018-04-18 00:40:52 +03:00
Dylan Baker 92487ea33d Add partial_dependency method to dependencies
This adds a new method, partial_dependency to all dependencies. These
sub dependencies are copies of the original dependency, but with one or
more of the attributes replaced with an empty list. This allows creating
a sub dependency that has only cflags or drops link_arguments, for
example.
2018-04-17 23:33:31 +03:00
Xavier Claessens bd37afeeea Add has_link_argument() and friends
Closes: #3335.
2018-04-16 19:14:02 -04:00
Nirbheek Chauhan 0e6a332d0c Document that override_find_program works on configure_file [skip ci]
Also link to the release notes snippet from the Reference manual
2018-04-15 13:32:38 +05:30
Jussi Pakkanen f489aa77e5 Added documentation [skip ci] 2018-04-15 13:32:38 +05:30
Alberto Sartori 717f7db67e improve suite of meson test (#3369) 2018-04-14 22:17:02 +03:00
David Fort 6dea177774 add support for cmakedefine in configure_file()
The added format argument for configure_file allows to specify the kind of
file that is treated. It defaults to 'meson', but can also have the 'cmake'
or 'cmake@' value to treat config.h.in files in the cmake format with #cmakedefine
statements.
2018-04-08 22:00:45 +03:00
Xavier Claessens 68f9846b7c Add both_libraries() to build both shared and static libraries
Also support default_library='both' to make library() build both shared
and static libraries.

Closes #484
2018-04-03 15:38:01 -04:00
behlec 37d379ebe5 Allow meson build file to exit early. (#2808) 2018-03-29 21:29:45 +03:00
Aleksey Filippov 780d301c1c Add test(depends) documentation 2018-03-25 01:33:33 +00:00
Alistair Thomas 3b9f4098ef docs: In executable() remove statement that all other files are ignored [skip ci]
Currently Meson returns an error that no compiler can be found
for an unknown file extension
2018-03-23 21:09:32 +02:00
Alistair Thomas 47f71d1a41 docs: Update test() to include that a program found with find_program() can be used [skip ci] 2018-03-23 21:09:32 +02:00
Jussi Pakkanen 30827b5644 Do not install configure_file output if install_dir is empty. Closes #3270. 2018-03-21 21:25:47 +02:00
Aleksey Filippov d63fff06d9 Add install_data() rename documentation 2018-03-19 22:13:34 +00:00
Aleksey Filippov 98fc7a82dc Link "External commands" page from run_command() reference [skip ci] 2018-03-12 13:44:31 +00:00
Jon Turney ffe6ed2a47 doc: Tweak text about get_option('foodir') in reference manual [skip ci]
* The example for executable()'s install_dir: should use join_paths()

* Clarify how to use directory options which are potentially not prefix
relative

This is mentioned in https://github.com/mesonbuild/meson/issues/1637 and see
also https://patchwork.freedesktop.org/patch/200373/ for an example of this
usage, and the possible confusion that can arise.
2018-03-07 19:57:20 +02:00
Jussi Pakkanen e98ae58d0e
Merge pull request #3086 from sarum9in/declare-link-whole
Add declare_dependency() link_whole parameter
2018-03-06 21:08:54 +02:00
Evgenii Shatokhin 19718a8d9c Allow passing a compiler object to run_command()
Sometimes it is needed to run the current compiler with specific options
not to compile a file but rather to obtain additional info. For example,
GCC has several -print-* options to query it about the paths to
different libraries and development files. One use case is to get the
location of development files for GCC plugins, which is not easily
obtainable by other means:

  gcc -print-file-name=plugin

For this purpose, it would be convenient if the compiler object returned
by meson.get_compiler(lang) could be used in run_command() directly.
This commit implements it.

Signed-off-by: Evgenii Shatokhin <eshatokhin@virtuozzo.com>
2018-03-06 21:07:16 +02:00
Nirbheek Chauhan 9e18e4c703
Improve vcs_tag documentation [skip ci]
Document that dependencies must be explicitly signalled, just like with a custom target.
2018-03-06 15:33:00 +05:30
Aleksey Filippov 4de02cb5b0 Document declare_dependency() link_whole parameter 2018-03-06 01:44:26 +00:00
Jussi Pakkanen 38145e0251 The "outputs" kwarg should be "output" and rewrapping. Closes #3166. [skip ci] 2018-03-04 00:57:42 +02:00
Aleksey Filippov 15537f5e8e Add links to Subprojects.md page from subproject() and subproject object documentation [skip ci] 2018-03-01 21:52:08 +02:00
Aleksey Filippov 5e6c47a4b2 Add reference to implicit_include_directories from include_directories() [skip ci]
Closes #3153
2018-03-01 15:30:15 +00:00
Peter Hutterer 6b550ae91f Allow for missing install_dir in install_data()
The documentation doesn't require it and the interpreter code works around the
possibility of it being None. The ninja backend code however fails with

File "/home/whot/code/meson/mesonbuild/backend/ninjabackend.py", line 796, in generate_data_install
    dstabs = os.path.join(subdir or None, plain_f)
File "/usr/lib64/python3.6/posixpath.py", line 78, in join
    a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not NoneType

If install_dir is missing, default to datadir/projectname
2018-02-22 20:26:16 +02:00
Nirbheek Chauhan 86e8d587cb docs: Add subproject warning for source_root and build_root [skip ci] 2018-02-20 16:45:27 +05:30
Eric Engestrom 8a2d9e0ad4 docs: fix missing backtick 2018-02-19 23:46:34 +05:30
Sami Kerola 70a7cf30a1 Re-link remaining github wiki urls to mesonbuild.com site 2018-02-11 13:39:46 +02:00
Jon Turney 0774f319e8 Don't use --export-dynamic on Cygwin
After PR #2662, running test case common/125 shared module/ on Cygwin gets
me:

$ ninja -C _build
ninja: Entering directory `_build'
[7/7] Linking target prog.exe.
/usr/lib/gcc/x86_64-pc-cygwin/6.4.0/../../../../x86_64-pc-cygwin/bin/ld: warning: --export-dynamic is not supported for PE+ targets, did you mean --export-all-symbols?

Also, fix doc for correct version of first apperance.

Future work: Notwithstanding the hint that ld gives, these options are not
equivalent, and it's not clear we should be using it here:
--export-all-symbols is the default behaviour, and if the exports are
restricted by explicit annotations or a .def file, this option might be
overriding that...
2018-02-08 23:51:06 +02:00
Jon Turney 7bfcf68777 Add get_pkgconfig_variable(default:)
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
2018-02-08 00:35:38 +02:00
Aleksey Filippov f5917d261c Use text keyword for directory example code blocks 2018-02-05 01:28:07 +00:00
Aleksey Filippov 65afa967d0 Add strip_directory=true example for multi-component path 2018-02-05 01:28:07 +00:00
Aleksey Filippov 79d8f2adbf Fix misprint in strip_directory example 2018-02-05 01:28:07 +00:00
Aleksey Filippov 13f91840e3 Clarify multi-component source directory behavior of install_subdir() 2018-02-05 01:28:07 +00:00
Aleksey Filippov 549f9a41e5 Rename install_subdir() option elide_directory to strip_directory 2018-02-05 01:28:07 +00:00
Aleksey Filippov 8ca3cc0c3d Add elide_directory keyword for install_subdir() function
If elide_directory=true install_subdir() installs directory contents
instead of directory itself, eliding name of the source directory.

Closes #2869.
2018-02-05 01:28:07 +00:00
Jussi Pakkanen 4637cf4e95 Fix run target documentation. Closes #1793. 2018-02-04 19:06:02 +02:00
Martin Kelly 36aca4cd3c add meson.project_license() builtin
This Fixes #2941.
2018-01-31 23:54:28 +02:00
Jussi Pakkanen d6bed2a77d
Merge pull request #2764 from mesonbuild/generatorpath
Generator outputs can have path segments
2018-01-13 19:00:38 +02:00
Nikita Churaev de8018a17d Add `export_dynamic` argument to `executable`. (#2662) 2018-01-09 21:36:13 +02:00
Nirbheek Chauhan 2d08c190d0 docs: get_option returns relative paths for xxxdir options
[skip ci]
2018-01-02 19:01:34 +05:30
Nirbheek Chauhan de3feb9625
docs: find_program native: is available since 0.43 2017-12-28 04:27:38 +05:30
Jussi Pakkanen 34c03719a3 Added documentation. 2017-12-18 21:10:14 +02:00
Iñigo Martínez 514d21e6a4 docs: Add documentation to dependency variables
Meson is able to redefine variables when retrieving them from
 `pkg-config` dependencies. However, the documentation is missing.

This patch adds documentation for this feature.
2017-12-12 18:33:04 +00:00