Commit Graph

380 Commits

Author SHA1 Message Date
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
Jussi Pakkanen 04d5d017c5 Fix documentation on disabler behaviour with short circuiting. 2017-12-11 22:21:39 +02:00
Jussi Pakkanen e674434389 Updated version number for new release. 2017-12-10 17:56:27 +02:00
Ernestas Kulik 7ae5716f67 Touch up install_dir() documentation
It no longer removes the target tree before copying files.
2017-12-09 01:52:33 +02:00
Jussi Pakkanen bc83c58d37
Merge pull request #2731 from mesonbuild/disabler
Created disabler object type
2017-12-05 01:10:50 +02:00
Jussi Pakkanen d3dcef7efc Added documentation for disabler objects. 2017-12-05 01:09:15 +02:00
Jon Turney 87e6201214 Document and improve not-found dependency objects
Document dependency('', required:false) usage.
Avoid emitting 'Dependency  found: NO'.
2017-12-05 01:04:57 +02:00
Zbigniew Jędrzejewski-Szmek 01ab4acf7f docs: note when warning() was added
Followup for 1540e615f1.
2017-11-29 21:13:49 +02:00
Jussi Pakkanen 746e70c0da
Merge pull request #2512 from dcbaker/wip/config-tool-variables
Add method to get values from config tool based dependency
2017-11-28 22:01:00 +02:00
Jussi Pakkanen 5bc1009109 Add if_found kwarg to subdir(). 2017-11-27 23:22:47 +02:00
Josh Soref 7d1a1fd5b0 spelling: programming 2017-11-26 05:57:58 +00:00
Dylan Baker a52c22dc06 docs: add documentation for config_tool variable method 2017-11-23 20:06:23 -08:00
Joergen Ibsen 6d85e10df9 docs: fix description of default_options
For dependency() and subproject(), the default_options argument can
override the defaults in the subproject's meson_options.txt, not in
its project() invocation.

Resolves #2612
2017-11-13 22:55:45 +02:00
Jussi Pakkanen 49eb33ff55
Merge pull request #2000 from t-chaik/tchaik/wip/get-unquoted
config data: add .get_unquoted() convenience method to get quoted string unquoted
2017-11-13 22:54:39 +02:00
Jussi Pakkanen cde0f4fca1
Merge pull request #2562 from 1ace/fix/mesontest
Remove references to `mesontest`
2017-10-31 22:17:47 +02:00
Paulo Antonio Alvarez 1540e615f1 interpreter: Add warning function 2017-10-31 22:17:01 +02:00
Eric Engestrom b690c26aa2 docs: remove references to `mesontest`
`mesontest` is deprecated, and shouldn't be suggested to users anymore.
2017-10-31 10:10:57 +00:00
Kevin Anderson 562c50f229 Update references from mesonconf to meson configure
Fixes #2372
2017-10-23 18:43:39 +02:00
Luis Menina 92866d8d5f docs: Remove unnecessary trailing whitespaces 2017-10-23 18:43:04 +02:00
Nirbheek Chauhan 0c3d58baba Update Reference-manual.md 2017-10-03 06:57:46 +00:00
Nirbheek Chauhan f10b15930b Update Reference-manual.md
Fix documentation breakage from https://github.com/mesonbuild/meson/pull/2415
2017-10-03 05:49:24 +00:00
xarkes a28db4577a Fix typo and clarify library documentation 2017-10-03 01:15:30 +03:00
Mohammed Sadiq 35313c2a85 docs: Fix typo
Remove the quote before parens
2017-10-02 12:26:20 +01:00
Niklas Claesson 68275b32e8 Implement capture for generators 2017-09-29 23:29:44 +03:00
Dylan Baker dda5e8cadb Allow CustomTarget's to be indexed
This allows a CustomTarget to be indexed, and the resulting indexed
value (a CustomTargetIndex type), to be used as a source in other
targets. This will confer a dependency on the original target, but only
inserts the source file returning by index the original target's
outputs. This can allow a CustomTarget that creates both a header and a
code file to have it's outputs split, for example.

Fixes #1470
2017-09-27 22:01:24 +03:00
Nirbheek Chauhan 92318c7660 docs: get_supported_arguments was added in 0.43.0
Closes https://github.com/mesonbuild/meson/issues/2371

[noci]
2017-09-26 10:00:28 +00:00
Jussi Pakkanen bea6b1a6f6 Merge pull request #2187 from centricular/fix-pcap-dependency
Fix pcap dependency, str.strip() now takes an argument, add cc.get_return_value()
2017-09-22 22:04:18 +03:00
Nirbheek Chauhan 751d59d952 Update Reference-manual.md
Add notes about not using full_path() unless absolutely necessary.
2017-09-20 21:05:50 +00:00
Nirbheek Chauhan 6c38b1f281 docs: Document the new str.strip() feature 2017-09-20 13:39:24 +05:30
Nirbheek Chauhan 140c463b01 Add detail to the command: kwarg of custom targets 2017-09-20 06:55:54 +00:00
Jussi Pakkanen 076f3c53bd Merge pull request #2263 from ximion/dlang
d: Add an easy way to use D-specific features
2017-09-18 20:23:56 +03:00
Matthias Klumpp c3c37fac38 docs: Document the D support 2017-09-17 21:36:23 +02:00
Martin Blanchard 777cd24063 get-unquoted: Mention get_unquoted() in reference manual 2017-09-15 22:43:01 +02:00
Jussi Pakkanen 7de61aac12 Clarify that MESONINTROSPECT may have multiple parts. 2017-09-12 21:20:29 +03:00
Jussi Pakkanen 72a6683c6f Permit overriding find_program from the cross file. 2017-09-04 22:47:12 +03:00
Daniel Stone 552c15b978 Alphabetize compiler.compiles() 2017-08-31 20:24:21 +01:00
Daniel Stone e1ffae0580 Add Compiler.get_supported_arguments()
Add a helper for the common pattern of:
  args_to_use = []
  foreach arg : candidate_args
    if cc.has_argument(arg)
      args_to_use += arg
    endif
  endforeach

Replaced with:
  args_to_use = cc.get_supported_arguments(candidate_args)
2017-08-31 20:24:20 +01:00
Jussi Pakkanen 01effa7178 Rewrap the rest of reference manual. 2017-08-21 00:02:47 +03:00
Jussi Pakkanen bb67d64c8d The last of the alphabetization. 2017-08-20 23:58:54 +03:00
Jussi Pakkanen 04d87c7b5d And a few more alphas. 2017-08-20 23:39:40 +03:00
Jussi Pakkanen b7b66fe516 More alphabetization. 2017-08-20 23:32:06 +03:00
Jussi Pakkanen 2d575757d6 Put some keyword arguments into alphabetical order to improve readability. 2017-08-20 23:16:27 +03:00
TingPing 8a636052bd docs: Clarify project() no longer requires a language 2017-08-19 14:31:47 -04:00
Jussi Pakkanen 62aabb5a8b Missing version info added. 2017-08-17 15:28:59 +03:00
Jussi Pakkanen e76ed84677 Documented the merge_from method. 2017-08-17 15:25:05 +03:00
Florian Zwoch 3fda1ba3ed docs: fix generator code sample 2017-08-17 00:21:42 +03:00
Nirbheek Chauhan b663937f8c Clarify what an "external dependency" is
And add a link to the Dependencies.md page.
2017-08-09 10:32:25 +00:00
Jussi Pakkanen 06f195e9ec Merged exclude_dir branch. 2017-08-06 13:09:46 +03:00
Elliott Sales de Andrade 5cb1d00537 Allow excluding files from `install_subdir`
The install_subdir command now accepts a new `exclude` keyword argument
that allows specified files to be excluded from the installed
subdirectory.
2017-08-06 03:58:35 -04:00
Elliott Sales de Andrade d9f01ffcea Disallow language keyword for unsupported deps.
Also, document it in the manual.
2017-08-05 16:44:39 -04:00
Jussi Pakkanen 61a05f26e3 Add option to disable implicit include directories. Closes #2139. 2017-08-05 00:26:13 +03:00
Jussi Pakkanen bff37a90fc Merged buildrpath branch. 2017-07-21 22:19:07 +03:00
Jussi Pakkanen 979efce04a Merge pull request #1955 from jon-turney/exe-implib
Support implibs for executables on Windows
2017-07-21 20:06:46 +03:00
Jussi Pakkanen e82edc179f Check for manual attempts to set rpath and update docs. 2017-07-21 19:40:54 +03:00
Nirbheek Chauhan 26834a6198 Link to compiler properties for compiler ids list
[skip ci]
2017-07-21 11:29:30 +00:00
Nirbheek Chauhan 93d1b2989e Updates to the reference manual
Typos, add details about how subprojects work, document compiler ids.
2017-07-21 10:33:58 +00:00
Jon Turney 8f859a5105 Make the name of the executable implib configurable 2017-07-20 21:11:56 +01:00
Jon Turney 3fa3922cea Support implibs for executables on Windows
Add a boolean 'implib' kwarg to executable().  If true, it is permitted to
use the returned build target object in link_with:

On platforms where this makes sense (e.g. Windows), an implib is generated
for the executable and used when linking.  Otherwise, it has no effect.

(Rather than checking if it is a StaticLibrary or SharedLibary, BuildTarget
subclasses gain the is_linkable_target method to test if they can appear in
link_with:)

Also install any executable implib in a similar way to a shared library
implib, i.e. placing the implib in the appropriate place

Add tests of:
- a shared_module containing a reference to a symbol which is known (at link
time) to be provided by the executable
- trying to link with non-implib executables (should fail)
- installing the implib

(This last one needs a little enhancement of the installed file checking as
this is the first install test we have which needs to work with either
MSVC-style or GCC-style implib filenames)
2017-07-20 21:11:56 +01:00
Alexis Jeandet e1b24765af Removed minor typos in documentation.
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
2017-07-17 16:44:51 +02:00
Adam C. Foltzer 69b18cf7e9 rename `crate_type` to `rust_crate_type` per @TingPing 2017-06-14 08:39:41 -07:00
Adam C. Foltzer bdd4c45b17 Enhance Rust support
- Adds a `crate_type` kwarg to library targets, allowing the different
  types of Rust [linkage][1].
- Shared libraries use the `dylib` crate type by default, but can also
  be `cdylib`
- Static libraries use the `rlib` crate type by default, but can also
  be `staticlib`
- If any Rust target has shared library dependencies, add the
  appropriate linker arguments, including rpath for the sysroot of the
  Rust compiler

[1]: https://doc.rust-lang.org/reference/linkage.html
2017-06-09 15:14:02 -07:00
Jan Chren (rindeal) bafc607ab1 Update reference manual and release notes 2017-06-07 23:51:20 +02:00
Bálint Aradi 706b3cafab Add version for configure_file extension in reference manual 2017-06-03 16:51:58 +02:00
Bálint Aradi 28dededf08 Update reference manual and release notes 2017-06-03 16:51:58 +02:00
Chris Mayo 0e9852a457 docs: Fix broken page links 2017-06-03 16:03:04 +03:00
Jussi Pakkanen 189784b474 Merge pull request #1792 from jon-turney/custom_target_vs_module_defs
Allow vs_module_defs to use a custom_target
2017-05-21 21:31:14 +03:00
Jon Turney 75099510f1 docs: The return value of executable() is a builttarget object.
Make executable() consistent with all other functions returning a
buildtarget, it's return type is a buildtarget object.
2017-05-19 18:00:42 +01:00
Jon Turney cad8386733 docs: Document the object returned by custom_target 2017-05-19 18:00:29 +01:00
Jon Turney f12a7f2ad0 docs: Correct list of things that are a build target to include shared_module 2017-05-19 17:01:46 +01:00
Jon Turney 5c7f9797c3 docs: Move "build target object" from "build-in objects" to "returned objects"
Also move "run result" object so objects are sorted alphabetically
2017-05-19 17:01:43 +01:00
Jon Turney 66a6ea984b Allow vs_module_defs to use a custom_target
Allow vs_module_defs to use a custom_target
Add a test and update documentation
2017-05-16 19:56:32 +01:00
Jon Turney e99cfdfbc7 Make vs_module_defs: do something for gcc on Windows as well
Module definition files may be useful when building with gcc on Windows also
(e.g. if the existing build uses them, if exports are aliased, if we were
retro enough to export by ordinal, etc.)

Add the .def file to the link command line when using gcc on Windows

Run the appropriate windows tests irrespective of compiler.
2017-05-12 18:56:43 +03:00
Jussi Pakkanen 1e14438a38 Merge pull request #1735 from dcbaker/list-of-files
Allow passing a list of Files to CustomTarget. Closes #1720
2017-05-12 18:54:46 +03:00
Peter Hutterer 73494c9927 docs: make the required argument for find_program stick out more 2017-05-11 22:39:47 +03:00
Dylan Baker c03744cccb Allow passing a list of Files to CustomTarget. Closes #1720 2017-05-11 09:57:38 -07:00
Dylan Baker e2567386f1 Use flatten for link targets. Fixes #1764 2017-05-11 09:57:38 -07:00
Jussi Pakkanen 1a87c967f1 Merge pull request #1761 from keszybz/docs
Some simple doc fixes
2017-05-11 00:15:58 +03:00
Zbigniew Jędrzejewski-Szmek 65450459de docs: add puncuation to description of compiler object functions 2017-05-09 14:51:01 -04:00
Zbigniew Jędrzejewski-Szmek ed9f79b8a4 docs: mention $DESTDIR in add_install_script description, add punctuation
Although not stricly necessary, it is good to mention $DESTDIR in the
explanation for add_install_script, since it might not be obvious for the
user that it is available.

Also add punctuation to be consistent.

v2:
- fix "witht" typo
- reword $DESTDIR description to say that it is inherited from the environment
- also describe $MESONINTROSPECT
2017-05-09 12:10:35 -04:00
Tim-Philipp Müller df48be051c docs: how to make find_program() search additional directories
Fixes #1702
2017-05-09 09:20:21 +01:00
Zbigniew Jędrzejewski-Szmek 0a8621a9bd docs: add hyperlinks and a short description of unity builds
At first I thought this is something about Ubuntu ;)
2017-05-08 20:12:29 -04:00
Dylan Baker 7053d9abfd Allow link_depends to take strings, Files or generated objects. Closes #1172
Currently only strings can be passed to the link_depends argument of
executable and *library, which solves many cases, but not every one.
This patch allows generated sources and Files to be passed as well.

On the implementation side, it uses a helper method to keep the more
complex logic separated from the __init__ method. This also requires
that Targets set their link_depends paths as Files, and the backend is
responsible for converting to strings when it wants them.

This adds tests for the following cases:
- Using a file in a subdir
- Using a configure_file as an input
- Using a custom_target as an input

It does not support using a generator as an input, since currently that
would require calling the generator twice, once for the -Wl argument,
and once for the link_depends.

Also updates the docs.
2017-05-08 20:59:46 +02:00
Alberto Aguirre ccab7d64f4 Add support for @CURRENT_SOURCE_DIR@ in generator arguments
Allow users to specify @CURRENT_SOURCE_DIR@ in generator arguments
to specify the current target source directory.
This is useful when creating protobuf generator objects in sub-directories
because protoc will then generate files in the expected location.

Fixes #1622.

Remove stray semicolon

Update documentation
2017-05-08 20:53:57 +02:00
Jon Turney 855715b29e docs: make project(license:) a separate bullet point 2017-05-08 20:08:56 +02:00
Peter Hutterer 7a3be163cb Default to project_version() in vcs_tag fallback 2017-05-05 08:11:28 +10:00
Peter Hutterer 4378655a39 docs: document additional args for vcs_tag
Supported as of 223596d7bf
2017-05-05 08:11:04 +10:00
Peter Hutterer e982d5118e docs: clarify that vcs_tag output can be used as source
"you should put in your main program" is confusing, "that can be used as
source" is slightly better.
2017-05-05 08:11:04 +10:00
Peter Hutterer ca924451ac Use American English: behaviour -> behavior 2017-05-04 22:09:27 +03:00
Dylan Baker 5f1b96a076 docs: Update SharedLibrary vs_module_defs accepts a File object 2017-05-04 00:18:22 +03:00
Elliott Sales de Andrade f9de195d7c doc: Replace kwarg with keyword argument.
This abbreviation is a Python-ism that is not really clear to those out
of the loop.
2017-05-03 16:20:53 -04:00
Elliott Sales de Andrade f3ad633f55 doc: Fix several minor typos. 2017-05-03 16:20:53 -04:00
Elliott Sales de Andrade b80d40c287 doc: Capitalize things more consistently.
Upper or lower case depending on the official spelling, or the more
consistent usage.
2017-05-03 16:20:51 -04:00
Peter Hutterer 71f0a63fb2 docs: fix link to file a new issue 2017-05-03 21:00:36 +10:00
Thibault Saunier b371875e02 docs: Import the website and wiki and build with hotdoc
This allows us to more easily have the documentation in sync with
the source code as people will have to document new features etc
right at the time where they implement it.
2017-04-26 17:56:33 +03:00