aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-12-11 10:17:31 -0800
committerRobert Schumacher <roschuma@microsoft.com>2018-12-12 09:19:37 -0800
commite6ee17a9511e5797b8f96a177b11ef8001b8bdae (patch)
tree5cc1dd29a34b685974915cc731ed02e001f10147
parent828cedb755d1ef1616e4e134bf1c6ef1ee2ae389 (diff)
downloadvcpkg-e6ee17a9511e5797b8f96a177b11ef8001b8bdae.tar.gz
vcpkg-e6ee17a9511e5797b8f96a177b11ef8001b8bdae.zip
[libiconv] Modernize
-rw-r--r--ports/libiconv/CMakeLists.txt59
-rw-r--r--ports/libiconv/CONTROL2
-rw-r--r--ports/libiconv/portfile.cmake25
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