summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2018-07-16 14:10:42 +0200
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2018-12-19 19:22:16 +0000
commit52934d74be7d882f3f584a348ce29bedff7fa7a7 (patch)
tree4bc86679b6c6913de19be7328a62381c35003c21 /src
parent98689cd2f9d3e9e4dac33ccf6679b90d4b39284f (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.pri3
-rw-r--r--src/corelib/configure.json54
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",