Checking how to aquire the *gettext family of symbols portably is annoyingly complex, and may come from the libc, or standalone. builtin dependency: This detects if libintl is unneeded, because the *gettext family of symbols is available in the libc. system dependency: This detects if libintl is installed as separate software, linkable via -lintl; unfortunately, GNU gettext does not ship pkg-config files for it. Fixes #3929pull/8888/head
parent
ad206037e3
commit
2c6ccfe4c4
4 changed files with 84 additions and 3 deletions
@ -0,0 +1,35 @@ |
||||
## New custom dependency for libintl |
||||
|
||||
Meson can now find the library needed for translating messages via gettext. |
||||
This works both on systems where libc provides gettext, such as GNU or musl, |
||||
and on systems where the gettext project's standalone intl support library is |
||||
required, such as macOS. |
||||
|
||||
Rather than doing something such as: |
||||
|
||||
``` |
||||
intl_dep = dependency('', required: false) |
||||
|
||||
if cc.has_function('ngettext') |
||||
intl_found = true |
||||
else |
||||
intl_dep = cc.find_library('intl', required: false) |
||||
intl_found = intl_dep.found() |
||||
endif |
||||
|
||||
if intl_found |
||||
# build options that need gettext |
||||
conf.set('ENABLE_NLS', 1) |
||||
endif |
||||
``` |
||||
|
||||
one may simply use: |
||||
|
||||
``` |
||||
intl_dep = dependency('intl') |
||||
|
||||
if intl_dep.found() |
||||
# build options that need gettext |
||||
conf.set('ENABLE_NLS', 1) |
||||
endif |
||||
``` |
Loading…
Reference in new issue