aboutsummaryrefslogtreecommitdiff
path: root/ports/libiconv
diff options
context:
space:
mode:
Diffstat (limited to 'ports/libiconv')
-rw-r--r--ports/libiconv/CMakeLists.txt107
-rw-r--r--ports/libiconv/CONTROL2
-rw-r--r--ports/libiconv/portfile.cmake35
-rw-r--r--ports/libiconv/unofficial-iconv-config.cmake8
-rw-r--r--ports/libiconv/vcpkg-cmake-wrapper.cmake9
5 files changed, 26 insertions, 135 deletions
diff --git a/ports/libiconv/CMakeLists.txt b/ports/libiconv/CMakeLists.txt
deleted file mode 100644
index 43d55c0c3..000000000
--- a/ports/libiconv/CMakeLists.txt
+++ /dev/null
@@ -1,107 +0,0 @@
-cmake_minimum_required(VERSION 3.0.0)
-project(libiconv C)
-
-if(BUILD_SHARED_LIBS)
- set(LIBICONV_DYNAMIC "1 /*LIBICONV_DYNAMIC*/")
-else()
- set(LIBICONV_DYNAMIC "0 /*LIBICONV_DYNAMIC*/")
-endif()
-
-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*/")
- set(ICONV_CONST "")
-
- 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 ${ICONV_CONST}" _contents "${_contents}")
- string(REPLACE "#undef EILSEQ" "" _contents "${_contents}")
- string(REPLACE "#undef WORDS_LITTLEENDIAN" "#define WORDS_LITTLEENDIAN 1" _contents "${_contents}")
- string(REPLACE "#undef ENABLE_RELOCATABLE" "#define ENABLE_RELOCATABLE 1" _contents "${_contents}")
- file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h" "${_contents}")
-
- configure_file(libcharset/include/localcharset.h.build.in localcharset.h)
- configure_file(libcharset/include/libcharset.h.in libcharset.h)
- configure_file(include/iconv.h.build.in iconv.h)
-
- if(MSVC)
- add_compile_options(/wd4018)
- endif()
-
- add_definitions(
- -D_CRT_SECURE_NO_WARNINGS
- -DLIBDIR=${LIBDIR}
- -DINSTALLDIR=${INSTALLDIR}
- -DNO_XMALLOC=1
- -DENABLE_RELOCATABLE=1
- -DIN_LIBRARY=1
- )
- if(BUILD_SHARED_LIBS)
- add_definitions(
- -DBUILDING_LIBCHARSET=1
- -DBUILDING_LIBICONV=1
- -DBUILDING_DLL=1)
- endif()
-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/lib/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})
-
-add_library(libcharset libcharset/lib/localcharset.c libcharset/lib/relocatable-stub.c)
-target_include_directories(libcharset PUBLIC $<INSTALL_INTERFACE:include>)
-
-add_library(libiconv lib/iconv.c lib/relocatable.c)
-if(WIN32)
- target_compile_definitions(libiconv PRIVATE
- -Dset_relocation_prefix=libiconv_set_relocation_prefix
- -Drelocate=libiconv_relocate -Drelocate2=libiconv_relocate2
- )
-endif()
-target_link_libraries(libiconv PRIVATE libcharset)
-target_include_directories(libiconv PUBLIC $<INSTALL_INTERFACE:include>)
-
-install(TARGETS libcharset libiconv EXPORT unofficial-iconv-targets
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib
-)
-
-if(NOT DISABLE_INSTALL_HEADERS)
- install(FILES
- ${CMAKE_CURRENT_BINARY_DIR}/iconv.h
- ${CMAKE_CURRENT_BINARY_DIR}/localcharset.h
- DESTINATION include
- )
-endif()
-
-install(
- EXPORT unofficial-iconv-targets
- FILE unofficial-iconv-config.cmake
- NAMESPACE unofficial::iconv::
- DESTINATION share/unofficial-iconv
-)
diff --git a/ports/libiconv/CONTROL b/ports/libiconv/CONTROL
index e95414202..329b3ebc1 100644
--- a/ports/libiconv/CONTROL
+++ b/ports/libiconv/CONTROL
@@ -1,5 +1,5 @@
Source: libiconv
Version: 1.16
-Port-Version: 5
+Port-Version: 6
Homepage: https://www.gnu.org/software/libiconv/
Description: GNU Unicode text conversion
diff --git a/ports/libiconv/portfile.cmake b/ports/libiconv/portfile.cmake
index 934e2f7b0..62fb8e42d 100644
--- a/ports/libiconv/portfile.cmake
+++ b/ports/libiconv/portfile.cmake
@@ -1,7 +1,7 @@
if(NOT VCPKG_TARGET_IS_WINDOWS)
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/unofficial-iconv)
- file(COPY ${CMAKE_CURRENT_LIST_DIR}/unofficial-iconv-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/unofficial-iconv)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/Iconv)
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/iconv)
return()
endif()
@@ -21,24 +21,25 @@ vcpkg_extract_source_archive_ex(
0003-Add-export.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_configure_cmake(
- SOURCE_PATH ${SOURCE_PATH}
- PREFER_NINJA
- OPTIONS -DINSTALLDIR=\"\" -DLIBDIR=\"\"
- OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
-)
-
-vcpkg_install_cmake()
-
-vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-iconv TARGET_PATH share/unofficial-iconv)
+vcpkg_configure_make(SOURCE_PATH ${SOURCE_PATH}
+ DETERMINE_BUILD_TRIPLET
+ USE_WRAPPERS
+ OPTIONS
+ --enable-relocatable
+ --enable-extra-encodings
+ --without-libiconv-prefix
+ --without-libintl-prefix
+ ${OPTIONS}
+ )
+vcpkg_install_make()
vcpkg_copy_pdbs()
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin)
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/Iconv)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/iconv)
file(INSTALL ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
-set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled)
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled) \ No newline at end of file
diff --git a/ports/libiconv/unofficial-iconv-config.cmake b/ports/libiconv/unofficial-iconv-config.cmake
deleted file mode 100644
index 94d65d2ff..000000000
--- a/ports/libiconv/unofficial-iconv-config.cmake
+++ /dev/null
@@ -1,8 +0,0 @@
-if (NOT TARGET unofficial::iconv::libiconv)
- add_library(unofficial::iconv::libcharset INTERFACE IMPORTED)
- add_library(unofficial::iconv::libiconv INTERFACE IMPORTED)
- if(APPLE)
- set_property(TARGET unofficial::iconv::libcharset PROPERTY INTERFACE_LINK_LIBRARIES "charset;unofficial::iconv::libiconv")
- set_property(TARGET unofficial::iconv::libiconv PROPERTY INTERFACE_LINK_LIBRARIES "iconv")
- endif()
-endif()
diff --git a/ports/libiconv/vcpkg-cmake-wrapper.cmake b/ports/libiconv/vcpkg-cmake-wrapper.cmake
index 472dd8082..db39413da 100644
--- a/ports/libiconv/vcpkg-cmake-wrapper.cmake
+++ b/ports/libiconv/vcpkg-cmake-wrapper.cmake
@@ -1,10 +1,15 @@
include(SelectLibraryConfigurations)
_find_package(${ARGS})
-if(Iconv_FOUND)
+if(Iconv_FOUND AND NOT Iconv_IS_BUILT_IN)
find_library(CHARSET_LIBRARY_DEBUG NAMES charsetd libcharsetd charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH)
find_library(CHARSET_LIBRARY_RELEASE NAMES charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH)
find_library(CHARSET_LIBRARY_RELEASE NAMES charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib)
select_library_configurations(CHARSET)
- list(APPEND Iconv_LIBRARIES ${CHARSET_LIBRARIES})
+ if(CHARSET_LIBRARIES)
+ list(APPEND Iconv_LIBRARIES ${CHARSET_LIBRARIES})
+ if(TARGET Iconv::Iconv)
+ target_link_libraries(Iconv::Iconv INTERFACE ${CHARSET_LIBRARIES})
+ endif()
+ endif()
endif()