diff options
author | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2018-07-16 14:10:42 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2018-12-19 19:22:16 +0000 |
commit | 52934d74be7d882f3f584a348ce29bedff7fa7a7 (patch) | |
tree | 4bc86679b6c6913de19be7328a62381c35003c21 /src | |
parent | 98689cd2f9d3e9e4dac33ccf6679b90d4b39284f (diff) |
configure: modernize iconv use
use library objects for all variants, and inline the tests.
Change-Id: I029f9a6655a783dab4a22abf601aadbb484c03af
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/codecs/codecs.pri | 3 | ||||
-rw-r--r-- | src/corelib/configure.json | 54 |
2 files changed, 42 insertions, 15 deletions
diff --git a/src/corelib/codecs/codecs.pri b/src/corelib/codecs/codecs.pri index f1bbde1d69..5d500ce521 100644 --- a/src/corelib/codecs/codecs.pri +++ b/src/corelib/codecs/codecs.pri @@ -56,8 +56,7 @@ qtConfig(textcodec) { qtConfig(iconv) { HEADERS += codecs/qiconvcodec_p.h SOURCES += codecs/qiconvcodec.cpp - qtConfig(gnu-libiconv): \ - QMAKE_USE_PRIVATE += iconv + QMAKE_USE_PRIVATE += iconv } win32 { diff --git a/src/corelib/configure.json b/src/corelib/configure.json index 3b33e6158b..a22a7459bd 100644 --- a/src/corelib/configure.json +++ b/src/corelib/configure.json @@ -47,14 +47,52 @@ { "type": "pkgConfig", "args": "glib-2.0 gthread-2.0" } ] }, + "posix_iconv": { + "label": "POSIX iconv", + "export": "iconv", + "test": { + "main": [ + "iconv_t x = iconv_open(\"\", \"\");", + "char *inp, *outp;", + "size_t inbytes, outbytes;", + "iconv(x, &inp, &inbytes, &outp, &outbytes);", + "iconv_close(x);" + ] + }, + "headers": "iconv.h", + "sources": [ + { "libs": "-liconv", "condition": "config.openbsd || config.haiku" }, + { "libs": "", "condition": "!(config.openbsd || config.haiku)" } + ] + }, "gnu_iconv": { "label": "GNU libiconv", "export": "iconv", - "test": "gnu-libiconv", + "test": { + "main": [ + "iconv_t x = iconv_open(\"\", \"\");", + "const char *inp;", + "char *outp;", + "size_t inbytes, outbytes;", + "iconv(x, &inp, &inbytes, &outp, &outbytes);", + "iconv_close(x);" + ] + }, + "headers": "iconv.h", "sources": [ "-liconv" ] }, + "sun_iconv": { + "label": "SUN libiconv", + "export": "iconv", + "test": { + "inherit": "gnu_iconv" + }, + "sources": [ + "" + ] + }, "icu": { "label": "ICU", "test": { @@ -336,16 +374,6 @@ ] } }, - "posix-iconv": { - "label": "POSIX iconv", - "type": "compile", - "test": "iconv" - }, - "sun-iconv": { - "label": "SUN libiconv", - "type": "compile", - "test": "sun-libiconv" - }, "inotify": { "label": "inotify", "type": "compile", @@ -576,14 +604,14 @@ "label": "POSIX iconv", "enable": "input.iconv == 'posix'", "disable": "input.iconv == 'sun' || input.iconv == 'gnu' || input.iconv == 'no'", - "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && tests.posix-iconv", + "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && libs.posix_iconv", "output": [ "privateFeature" ] }, "sun-libiconv": { "label": "SUN iconv", "enable": "input.iconv == 'sun'", "disable": "input.iconv == 'posix' || input.iconv == 'gnu' || input.iconv == 'no'", - "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && tests.sun-iconv" + "condition": "!config.win32 && !config.qnx && !config.android && !config.darwin && !features.posix-libiconv && libs.sun_iconv" }, "gnu-libiconv": { "label": "GNU iconv", |