|
From c2da1d47eeaf83d3683555b965a16654561f14b3 Mon Sep 17 00:00:00 2001
|
|
From: Rosen Penev <rosenp@gmail.com>
|
|
Date: Thu, 30 Jul 2020 16:27:02 -0700
|
|
Subject: [PATCH] icu: fix compilation with const char iconv
|
|
|
|
libiconv uses const char. Test for it and use it properly to fix
|
|
compilation.
|
|
|
|
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
---
|
|
src/lib/icu/Converter.cxx | 2 +-
|
|
src/lib/icu/meson.build | 10 ++++++++++
|
|
2 files changed, 11 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/lib/icu/Converter.cxx b/src/lib/icu/Converter.cxx
|
|
index b03543a82..4c459e57e 100644
|
|
--- a/src/lib/icu/Converter.cxx
|
|
+++ b/src/lib/icu/Converter.cxx
|
|
@@ -83,7 +83,7 @@ DoConvert(iconv_t conv, const char *src)
|
|
{
|
|
// TODO: dynamic buffer?
|
|
char buffer[4096];
|
|
- char *in = const_cast<char *>(src);
|
|
+ ICONV_CONST char *in = (ICONV_CONST char *)(src);
|
|
char *out = buffer;
|
|
size_t in_left = strlen(src);
|
|
size_t out_left = sizeof(buffer);
|
|
diff --git a/src/lib/icu/meson.build b/src/lib/icu/meson.build
|
|
index 132e15b89..ac7d1b72a 100644
|
|
--- a/src/lib/icu/meson.build
|
|
+++ b/src/lib/icu/meson.build
|
|
@@ -30,6 +30,16 @@ elif not get_option('iconv').disabled()
|
|
have_iconv = true
|
|
conf.set('HAVE_ICONV', have_iconv)
|
|
endif
|
|
+ if have_iconv
|
|
+ iconvconsttest = '''#include <iconv.h>
|
|
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
|
|
+'''
|
|
+ if c_compiler.compiles(iconvconsttest, dependencies : libiconv)
|
|
+ conf.set('ICONV_CONST', '')
|
|
+ else
|
|
+ conf.set('ICONV_CONST', 'const')
|
|
+ endif
|
|
+ endif
|
|
if not have_iconv and get_option('iconv').enabled()
|
|
error('iconv() not available')
|
|
endif
|
|
--
|
|
2.17.1
|
|
|