Mercurial > hg > orthanc
view Resources/CMake/LibIconvConfiguration.cmake @ 3103:81b58b549845
back to using 'var' instead of 'let' since let is not supported by many old browsers. All variables declaration have been moved to the top of the function to better show that their scope is the function
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Thu, 10 Jan 2019 10:51:36 +0100 |
parents | a29ffb73f6fd |
children | 0c2a8d5e0097 |
line wrap: on
line source
if (NOT ENABLE_LOCALE) message("Support for locales is disabled") elseif (NOT USE_BOOST_ICONV) message("Not using libiconv") else() message("Using libiconv") if (STATIC_BUILD OR NOT USE_SYSTEM_LIBICONV) set(LIBICONV_SOURCES_DIR ${CMAKE_BINARY_DIR}/libiconv-1.15) set(LIBICONV_URL "http://www.orthanc-server.com/downloads/third-party/libiconv-1.15.tar.gz") set(LIBICONV_MD5 "ace8b5f2db42f7b3b3057585e80d9808") DownloadPackage(${LIBICONV_MD5} ${LIBICONV_URL} "${LIBICONV_SOURCES_DIR}") # Disable the support of libiconv that is shipped by default with # the C standard library on Linux. Setting this macro redirects # calls from "iconv*()" to "libiconv*()" by defining macros in the # C headers of "libiconv-1.15". add_definitions(-DLIBICONV_PLUG=1) # https://groups.google.com/d/msg/android-ndk/AS1nkxnk6m4/EQm09hD1tigJ add_definitions( -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) if (NOT EXISTS ${LIBICONV_SOURCES_DIR}/include/config.h) # Create an empty "config.h" for libiconv file(WRITE ${LIBICONV_SOURCES_DIR}/include/config.h "") endif() include_directories( ${LIBICONV_SOURCES_DIR}/include ) set(LIBICONV_SOURCES ${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 ) source_group(ThirdParty\\libiconv REGULAR_EXPRESSION ${LIBICONV_SOURCES_DIR}/.*) if (CMAKE_SYSTEM_NAME STREQUAL "Windows") add_definitions(-DHAVE_WORKING_O_NOFOLLOW=0) else() add_definitions(-DHAVE_WORKING_O_NOFOLLOW=1) endif() else() CHECK_INCLUDE_FILE_CXX(iconv.h HAVE_ICONV_H) if (NOT HAVE_ICONV_H) message(FATAL_ERROR "Please install the libiconv-dev package") endif() # Check whether the support for libiconv is bundled within the # standard C library CHECK_FUNCTION_EXISTS(iconv_open HAVE_ICONV_LIB) if (NOT HAVE_ICONV_LIB) # No builtin support for libiconv, try and find an external library. # Open question: Does this make sense on any platform? CHECK_LIBRARY_EXISTS(iconv iconv_open "" HAVE_ICONV_LIB_2) if (NOT HAVE_ICONV_LIB_2) message(FATAL_ERROR "Please install the libiconv-dev package") else() link_libraries(iconv) endif() endif() endif() endif()