diff options
Diffstat (limited to 'ports/libiconv')
| -rw-r--r-- | ports/libiconv/CMakeLists.txt | 107 | ||||
| -rw-r--r-- | ports/libiconv/CONTROL | 2 | ||||
| -rw-r--r-- | ports/libiconv/portfile.cmake | 35 | ||||
| -rw-r--r-- | ports/libiconv/unofficial-iconv-config.cmake | 8 | ||||
| -rw-r--r-- | ports/libiconv/vcpkg-cmake-wrapper.cmake | 9 |
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()
|
