summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@qt.io>2020-06-24 11:07:32 +0200
committerKarsten Heimrich <karsten.heimrich@qt.io>2020-06-26 12:55:39 +0200
commitcd70242b87add27696cffa446cfec684afba68ab (patch)
treeca5001f52e9561868637a9903536f4e72e9bf4fe /cmake
parentdf40db6b2dc2dee6fd2762e3ddadabcd3c0aa5f9 (diff)
Move QTextCodec support into Qt5Compat
Fixes: QTBUG-75665 Change-Id: Ibe2c1ea7606e04996c5098977304bf1a633e25d9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Qt5CompatSetup.cmake65
1 files changed, 65 insertions, 0 deletions
diff --git a/cmake/Qt5CompatSetup.cmake b/cmake/Qt5CompatSetup.cmake
new file mode 100644
index 0000000..6442055
--- /dev/null
+++ b/cmake/Qt5CompatSetup.cmake
@@ -0,0 +1,65 @@
+function(qt_run_config_test_posix_iconv)
+ set(source "#include <iconv.h>
+
+int main(int, char **)
+{
+ iconv_t x = iconv_open(\"\", \"\");
+ char *inp;
+ char *outp;
+ size_t inbytes, outbytes;
+ iconv(x, &inp, &inbytes, &outp, &outbytes);
+ iconv_close(x);
+ return 0;
+}")
+ check_cxx_source_compiles("${source}" HAVE_POSIX_ICONV)
+
+ if(NOT HAVE_POSIX_ICONV)
+ set(_req_libraries "${CMAKE_REQUIRE_LIBRARIES}")
+ set(CMAKE_REQUIRE_LIBRARIES "iconv")
+ check_cxx_source_compiles("${source}" HAVE_POSIX_ICONV)
+ set(CMAKE_REQUIRE_LIBRARIES "${_req_libraries}")
+ if(HAVE_POSIX_ICONV)
+ set(TEST_iconv_needlib 1 CACHE INTERNAL "Need to link against libiconv")
+ endif()
+ endif()
+
+ set(TEST_posix_iconv "${HAVE_POSIX_ICONV}" CACHE INTERNAL "POSIX iconv")
+endfunction()
+
+
+function(qt_run_config_test_sun_iconv)
+ set(source "#include <iconv.h>
+
+int main(int, char **)
+{
+ iconv_t x = iconv_open(\"\", \"\");
+ const char *inp;
+ char *outp;
+ size_t inbytes, outbytes;
+ iconv(x, &inp, &inbytes, &outp, &outbytes);
+ iconv_close(x);
+ return 0;
+}")
+ if(DARWIN)
+ # as per !config.darwin in configure.json
+ set(HAVE_SUN_ICONV OFF)
+ else()
+ check_cxx_source_compiles("${source}" HAVE_SUN_ICONV)
+ endif()
+
+ set(TEST_sun_iconv "${HAVE_SUN_ICONV}" CACHE INTERNAL "SUN libiconv")
+endfunction()
+
+function(qt_run_qt5compat_config_tests)
+ qt_run_config_test_posix_iconv()
+
+ add_library(Iconv INTERFACE)
+ if(TEST_iconv_needlib)
+ target_link_libraries(Iconv PUBLIC iconv)
+ endif()
+
+ if(NOT TEST_posix_iconv)
+ qt_run_config_test_sun_iconv()
+ endif()
+endfunction()
+qt_run_qt5compat_config_tests()