# HG changeset patch # User Sebastien Jodogne # Date 1407246139 -7200 # Node ID 1b905ad6c913c85b2f782845022b0a30aa47a678 # Parent 552a038f7c967480573de67fc57b216087e1d2df Replace wconv by iconv under Windows diff -r 552a038f7c96 -r 1b905ad6c913 Resources/CMake/BoostConfiguration.cmake --- a/Resources/CMake/BoostConfiguration.cmake Tue Aug 05 13:08:41 2014 +0200 +++ b/Resources/CMake/BoostConfiguration.cmake Tue Aug 05 15:42:19 2014 +0200 @@ -76,9 +76,14 @@ ${BOOST_SOURCES_DIR}/libs/thread/src/win32/tss_pe.cpp ${BOOST_FILESYSTEM_SOURCES_DIR}/windows_file_codecvt.cpp ) - add_definitions( - -DBOOST_LOCALE_WITH_WCONV=1 - ) + + # Starting with release 0.8.2, Orthanc statically links against + # libiconv, even on Windows. Indeed, the "WCONV" library of + # Windows XP seems not to support properly several codepages + # (notably "Latin3", "Hebrew", and "Arabic"). + + # add_definitions(-DBOOST_LOCALE_WITH_WCONV=1) + include(${ORTHANC_ROOT}/Resources/CMake/LibIconvConfiguration.cmake) else() message(FATAL_ERROR "Support your platform here") diff -r 552a038f7c96 -r 1b905ad6c913 Resources/CMake/LibIconvConfiguration.cmake --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/CMake/LibIconvConfiguration.cmake Tue Aug 05 15:42:19 2014 +0200 @@ -0,0 +1,50 @@ +set(LIBICONV_SOURCES_DIR ${CMAKE_BINARY_DIR}/libiconv-1.14) +DownloadPackage( + "e34509b1623cec449dfeb73d7ce9c6c6" + "http://www.montefiore.ulg.ac.be/~jodogne/Orthanc/ThirdPartyDownloads/libiconv-1.14.tar.gz" + "${LIBICONV_SOURCES_DIR}") + +# https://groups.google.com/forum/#!topic/android-ndk/AS1nkxnk6m4 +add_definitions( + -DBOOST_LOCALE_WITH_ICONV=1 + -DBUILDING_LIBICONV=1 + -DIN_LIBRARY=1 + -DLIBDIR="" + -DICONV_CONST= + ) + +configure_file( + ${LIBICONV_SOURCES_DIR}/srclib/localcharset.h + ${LIBICONV_SOURCES_DIR}/include + COPYONLY) + +set(HAVE_VISIBILITY 0) +set(ICONV_CONST ${ICONV_CONST}) +set(USE_MBSTATE_T 1) +set(BROKEN_WCHAR_H 0) +set(EILSEQ) +set(HAVE_WCHAR_T 1) +configure_file( + ${LIBICONV_SOURCES_DIR}/include/iconv.h.build.in + ${LIBICONV_SOURCES_DIR}/include/iconv.h + ) +unset(HAVE_VISIBILITY) +unset(ICONV_CONST) +unset(USE_MBSTATE_T) +unset(BROKEN_WCHAR_H) +unset(EILSEQ) +unset(HAVE_WCHAR_T) + +include_directories( + ${LIBICONV_SOURCES_DIR}/include + ) + +list(APPEND BOOST_SOURCES + ${LIBICONV_SOURCES_DIR}/lib/genaliases2.c + ${LIBICONV_SOURCES_DIR}/lib/genflags.c + ${LIBICONV_SOURCES_DIR}/lib/gentranslit.c + ${LIBICONV_SOURCES_DIR}/lib/iconv.c + ${LIBICONV_SOURCES_DIR}/lib/relocatable.c + ${LIBICONV_SOURCES_DIR}/libcharset/lib/localcharset.c + ${LIBICONV_SOURCES_DIR}/libcharset/lib/relocatable.c + )