diff options
author | Karsten Heimrich <karsten.heimrich@qt.io> | 2020-06-24 11:07:32 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@qt.io> | 2020-06-26 12:55:39 +0200 |
commit | cd70242b87add27696cffa446cfec684afba68ab (patch) | |
tree | ca5001f52e9561868637a9903536f4e72e9bf4fe /cmake | |
parent | df40db6b2dc2dee6fd2762e3ddadabcd3c0aa5f9 (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.cmake | 65 |
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() |