From 2876acd93edd50c1e12469820ac091079c582ff9 Mon Sep 17 00:00:00 2001 From: Mike Sinkovsky Date: Fri, 10 Aug 2018 16:02:50 +0500 Subject: [PATCH] Add libiconv to mingw platform (#1861) --- backend.native/tests/build.gradle | 2 +- platformLibs/src/platform/mingw/iconv.def | 24 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 platformLibs/src/platform/mingw/iconv.def diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 2a86c747d9a..e5dcf5b89d8 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -2820,7 +2820,7 @@ task jsinterop_math(type: RunStandaloneKonanTest) { } task interop_libiconv(type: RunStandaloneKonanTest) { - disabled = (isWindows() || (project.testTarget != null)) + disabled = (project.testTarget != null) source = "interop/libiconv.kt" goldValue = "72 72\n101 101\n108 108\n108 108\n111 111\n33 33\n" } diff --git a/platformLibs/src/platform/mingw/iconv.def b/platformLibs/src/platform/mingw/iconv.def new file mode 100644 index 00000000000..2bcab5219ee --- /dev/null +++ b/platformLibs/src/platform/mingw/iconv.def @@ -0,0 +1,24 @@ +depends = posix +package = platform.iconv +headers = iconv.h +headerFilter = NOTHING +linkerOpts = -Wl,-Bstatic -liconv -Wl,-Bdynamic + +--- +#undef iconv_t +typedef void *iconv_t; + +#undef iconv_open +static inline iconv_t iconv_open(const char* tocode, const char* fromcode) { + return libiconv_open(tocode, fromcode); +} + +#undef iconv +static inline size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) { + return libiconv(cd, inbuf, inbytesleft, outbuf, outbytesleft); +} + +#undef iconv_close +static inline int iconv_close(iconv_t cd) { + return libiconv_close(cd); +}