diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2018-12-11 10:17:31 -0800 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2018-12-12 09:19:37 -0800 |
| commit | e6ee17a9511e5797b8f96a177b11ef8001b8bdae (patch) | |
| tree | 5cc1dd29a34b685974915cc731ed02e001f10147 | |
| parent | 828cedb755d1ef1616e4e134bf1c6ef1ee2ae389 (diff) | |
| download | vcpkg-e6ee17a9511e5797b8f96a177b11ef8001b8bdae.tar.gz vcpkg-e6ee17a9511e5797b8f96a177b11ef8001b8bdae.zip | |
[libiconv] Modernize
| -rw-r--r-- | ports/libiconv/CMakeLists.txt | 59 | ||||
| -rw-r--r-- | ports/libiconv/CONTROL | 2 | ||||
| -rw-r--r-- | ports/libiconv/portfile.cmake | 25 |
3 files changed, 56 insertions, 30 deletions
diff --git a/ports/libiconv/CMakeLists.txt b/ports/libiconv/CMakeLists.txt index 95071be9d..3c2a6125c 100644 --- a/ports/libiconv/CMakeLists.txt +++ b/ports/libiconv/CMakeLists.txt @@ -6,24 +6,47 @@ if(BUILD_SHARED_LIBS) else() set(LIBICONV_DYNAMIC "0 /*LIBICONV_DYNAMIC*/") endif() -set(HAVE_WCHAR_T "1 /*HAVE_WCHAR_T*/") -set(USE_MBSTATE_T "0 /*USE_MBSTATE_T*/") -set(BROKEN_WCHAR_H "0 /*BROKEN_WCHAR_H*/") -set(HAVE_VISIBILITY "0 /*HAVE_VISIBILITY*/") - -configure_file(config.h.in config.h) -file(READ "${CMAKE_CURRENT_BINARY_DIR}/config.h" _contents) -string(REPLACE "#undef HAVE_WORKING_O_NOFOLLOW" "#define HAVE_WORKING_O_NOFOLLOW 0" _contents "${_contents}") -string(REPLACE "#undef HAVE_MBRTOWC" "#define HAVE_MBRTOWC 1" _contents "${_contents}") -string(REPLACE "#undef HAVE_MBSINIT" "#define HAVE_MBSINIT 1" _contents "${_contents}") -string(REPLACE "#undef HAVE_WCRTOMB" "#define HAVE_WCRTOMB 1" _contents "${_contents}") -string(REPLACE "#undef ICONV_CONST" "#define ICONV_CONST const" _contents "${_contents}") -string(REPLACE "#undef EILSEQ" "" _contents "${_contents}") -string(REPLACE "#undef WORDS_LITTLEENDIAN" "#define WORDS_LITTLEENDIAN 1" _contents "${_contents}") -file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h" "${_contents}") - -configure_file(libcharset/include/localcharset.h.build.in localcharset.h) -configure_file(include/iconv.h.build.in iconv.h) + +set(CMAKE_STATIC_LIBRARY_PREFIX) +set(CMAKE_SHARED_LIBRARY_PREFIX) + +if(WIN32) + set(HAVE_WCHAR_T "1 /*HAVE_WCHAR_T*/") + set(USE_MBSTATE_T "0 /*USE_MBSTATE_T*/") + set(BROKEN_WCHAR_H "0 /*BROKEN_WCHAR_H*/") + set(HAVE_VISIBILITY "0 /*HAVE_VISIBILITY*/") + + configure_file(config.h.in config.h) + file(READ "${CMAKE_CURRENT_BINARY_DIR}/config.h" _contents) + string(REPLACE "#undef HAVE_WORKING_O_NOFOLLOW" "#define HAVE_WORKING_O_NOFOLLOW 0" _contents "${_contents}") + string(REPLACE "#undef HAVE_MBRTOWC" "#define HAVE_MBRTOWC 1" _contents "${_contents}") + string(REPLACE "#undef HAVE_MBSINIT" "#define HAVE_MBSINIT 1" _contents "${_contents}") + string(REPLACE "#undef HAVE_WCRTOMB" "#define HAVE_WCRTOMB 1" _contents "${_contents}") + string(REPLACE "#undef ICONV_CONST" "#define ICONV_CONST const" _contents "${_contents}") + string(REPLACE "#undef EILSEQ" "" _contents "${_contents}") + string(REPLACE "#undef WORDS_LITTLEENDIAN" "#define WORDS_LITTLEENDIAN 1" _contents "${_contents}") + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h" "${_contents}") + + configure_file(libcharset/include/localcharset.h.build.in localcharset.h) + configure_file(include/iconv.h.build.in iconv.h) +else() + if(BUILD_SHARED_LIBS) + set(STATIC_SHARED --enable-shared --disable-static) + else() + set(STATIC_SHARED --disable-shared --enable-static) + endif() + + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/autoconf) + + execute_process( + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/configure --enable-relocatable ${STATIC_SHARED} --without-libiconv-prefix --without-libintl-prefix + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/autoconf + ) + + configure_file(${CMAKE_CURRENT_BINARY_DIR}/autoconf/config.h config.h @ONLY) + configure_file(${CMAKE_CURRENT_BINARY_DIR}/autoconf/include/iconv.h iconv.h @ONLY) + configure_file(${CMAKE_CURRENT_BINARY_DIR}/autoconf/libcharset/include/localcharset.h localcharset.h @ONLY) +endif() include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/ports/libiconv/CONTROL b/ports/libiconv/CONTROL index 852156dc6..a5e4d0cc4 100644 --- a/ports/libiconv/CONTROL +++ b/ports/libiconv/CONTROL @@ -1,3 +1,3 @@ Source: libiconv -Version: 1.15-4 +Version: 1.15-5 Description: GNU Unicode text conversion diff --git a/ports/libiconv/portfile.cmake b/ports/libiconv/portfile.cmake index 3ccd85c53..7de4cac0e 100644 --- a/ports/libiconv/portfile.cmake +++ b/ports/libiconv/portfile.cmake @@ -6,24 +6,27 @@ if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStor endif() include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libiconv-1.15) + +set(LIBICONV_VERSION 1.15) + vcpkg_download_distfile(ARCHIVE - URLS "https://ftp.gnu.org/gnu/libiconv/libiconv-1.15.tar.gz" - FILENAME "libiconv-1.15.tar.gz" + URLS "https://ftp.gnu.org/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz" + FILENAME "libiconv-${LIBICONV_VERSION}.tar.gz" SHA512 1233fe3ca09341b53354fd4bfe342a7589181145a1232c9919583a8c9979636855839049f3406f253a9d9829908816bb71fd6d34dd544ba290d6f04251376b1a ) -vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${LIBICONV_VERSION} + PATCHES + 0001-Add-export-definitions.patch + 0002-Config-for-MSVC.patch + 0003-Fix-uwp.patch +) #Since libiconv uses automake, make and configure, we use a custom CMake file file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-Add-export-definitions.patch - ${CMAKE_CURRENT_LIST_DIR}/0002-Config-for-MSVC.patch - ${CMAKE_CURRENT_LIST_DIR}/0003-Fix-uwp.patch -) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA |
