diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2018-08-11 19:59:34 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-11 19:59:34 +0300 |
commit | f91b463bf4625bfc167b78b52f091f45cddfdff4 (patch) | |
tree | 13747f96c8f68d8b6bb1b4a442de755a6cdb8ae4 /docs | |
parent | f80c11e7ee4f521b1b4e3af56293fdcac15676fe (diff) | |
parent | fb2cdd0fe2797b30e1fd4c118407302402739a3b (diff) | |
download | meson-f91b463bf4625bfc167b78b52f091f45cddfdff4.zip meson-f91b463bf4625bfc167b78b52f091f45cddfdff4.tar.gz meson-f91b463bf4625bfc167b78b52f091f45cddfdff4.tar.bz2 |
Merge pull request #3831 from mesonbuild/symvisibility
Add gnu_symbol_visibility keyword argument
Diffstat (limited to 'docs')
-rw-r--r-- | docs/markdown/Reference-manual.md | 16 | ||||
-rw-r--r-- | docs/markdown/snippets/visibility.md | 13 |
2 files changed, 25 insertions, 4 deletions
diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md index 12018fc..a7b8a2b 100644 --- a/docs/markdown/Reference-manual.md +++ b/docs/markdown/Reference-manual.md @@ -511,6 +511,13 @@ be passed to [shared and static libraries](#library). - `override_options` takes an array of strings in the same format as `project`'s `default_options` overriding the values of these options for this target only, since 0.40.0 +- `gnu_symbol_visibility` specifies how symbols should be exported, see + e.g [the GCC Wiki](https://gcc.gnu.org/wiki/Visibility) for more + information. This value can either be an empty string or one of + `default`, `internal`, `hidden`, `protected` or `inlineshidden`, which + is the same as `hidden` but also includes things like C++ implicit + constructors as specified in the GCC manual. Ignored on compilers that + do not support GNU visibility arguments. Available since 0.48.0. - `d_import_dirs` list of directories to look in for string imports used in the D programming language - `d_unittest`, when set to true, the D modules are compiled in debug mode @@ -976,15 +983,16 @@ dropped. That means that `join_paths('foo', '/bar')` returns `/bar`. buildtarget library(library_name, list_of_sources, ...) ``` -Builds a library that is either static, shared or both depending on the value of -`default_library` user option. You should use this instead of -[`shared_library`](#shared_library), +Builds a library that is either static, shared or both depending on +the value of `default_library` user option. You should use this +instead of [`shared_library`](#shared_library), [`static_library`](#static_library) or [`both_libraries`](#both_libraries) most of the time. This allows you to toggle your entire project (including subprojects) from shared to static with only one option. -The keyword arguments for this are the same as for [`executable`](#executable) with the following additions: +The keyword arguments for this are the same as for +[`executable`](#executable) with the following additions: - `name_prefix` the string that will be used as the prefix for the target output filename by overriding the default (only used for diff --git a/docs/markdown/snippets/visibility.md b/docs/markdown/snippets/visibility.md new file mode 100644 index 0000000..4b67105 --- /dev/null +++ b/docs/markdown/snippets/visibility.md @@ -0,0 +1,13 @@ +## Keyword argument for GNU symbol visibility + +Build targets got a new keyword, `symbol_visibility` that controls how +symbols are exported from shared libraries. This is most commonly used +to hide implementation symbols like this: + +```meson +shared_library('mylib', ... + gnu_symbol_visibility: 'hidden') +``` + +In this case only symbols explicitly marked as visible in the source +files get exported. |