aboutsummaryrefslogtreecommitdiff
path: root/ports/libiconv
diff options
context:
space:
mode:
authorAlexander Neumann <30894796+Neumann-A@users.noreply.github.com>2020-11-17 18:18:59 +0100
committerGitHub <noreply@github.com>2020-11-17 09:18:59 -0800
commit3a26eb3dc4d684ca6c1748dccc7a15684b9e8d0a (patch)
tree8f48a1d104ab8329fa56ad5c49d1be1fb49b8ccd /ports/libiconv
parent12ab060a3d43b56c6689ac7fe5861c6f9138c568 (diff)
downloadvcpkg-3a26eb3dc4d684ca6c1748dccc7a15684b9e8d0a.tar.gz
vcpkg-3a26eb3dc4d684ca6c1748dccc7a15684b9e8d0a.zip
[intl/gettext/fontconfig] update to native build system (#11776)
* [fontconfig] update fontconfig * [libiconv] update to make * [gettext] update to make * [vcpkg_configure_make] Changes considering pure configure ports without the requirement to run autoconfig * [fontconfig] make it work on windows * Remove install of unofficial cmake config * add function get_cmake_vars * fine tuning. * apply to make based ports. * add log suffix on not windows platforms * fix c&p error * add previous LINK env * setup env on windows and extract cpp flags correctly. * update glib and libxml2 * fix windows regressions * Apply suggestions from code review * add windres wrapper to invoke RC. * remove wrong fi * fix libintl. * try fixing uwp * other things to update * exiv2 fix * libtool does not like -RTC1 * pass the /RTC<x> flag directly to the compiler * trust cmake instead of adding extra flags * fix expat * fix iconv wrapper install * change fontconfig intl linkage. * add appcontainer back in which is required for UWP. Why is this not in the cmake flags? * fix pkg-config in vcpkg_configure_make * fix json-c pkg-config installation * remove remnoved config * comment out debug messages + bit of tuning * finally fontconfig * comment debug messages * expat apply extra patches. * Switch back to -E instead of -EP in cpp * commit changes from fontconfig PR * [expat] fix expat details * Apply suggestions from code review Co-authored-by: nicole mazzuca <mazzucan@outlook.com> * cleanup docs * update osx pipeline so that fontconfig actually builds * fix expat the lazy way by using a higher commit than release * fix a barage of regressions due to the use of unofficial targets * [expat] use a higher commit hash with a better stabilized cmake build * forgot freexl regression * more unofficial fixes * fix downstream expat usage * fix wxwidgets * fix gcdm regression * [vtk] fix the regression due to expat * add uwp cl flags back in. Somehow those are not set by cmake * add a few other configure options for full gettext build * fix cmake regression * fix a few regressions * fix static gettext build * fix gettext static * fix libxml2 wrapper for cmake * some more regressions fixes * add conversion from somelib.lib to -lsomelib * add a few option to libiconv. * get logs from CI * add missing ar-lib wrapper * add missing ar-lib wrapper * add fatal error to gettext * remove uuid from the list of LIBS since it seems to not exist in CI? * small but important regex correction * fix regex and add debug message for libs * remove error and only build libintl. * add uuid dependency to fontconfig in qt5-base * osx install gettext for autopoint * fix io2d regression by saying the port is broken ..... (which it is; upstream needs to learn proper cmake) * restore the old libxml2 wrapper with minor modifications * fix xmlsec regression * install wrapper correctly * try actual fixing io2d * improve iconv wrapper * add latest changes from update_fontconfig PR * Apply suggestions from code review first set which don't need special attention Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com> * Apply suggestions from code review one more simple change Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com> * [x264] set env AS * fix bugs due to refactor * use subpath everywhere * apply changes from CR * fix fontconfig build. * only change libs in static builds * remove unnecessary lines 41 & 44 * remove flag transformation * reintroduce the flag / to - transformation for MSVC * trying to figure out autopoint issue. using wrong (windows) find.exe instead of msys * add correct working_dir to subpath * escape stupid env paths. * fix typo * add findutils remove debug messages * add error if libtool chokes * add file to msys * pass lt_cv_deplibs_check_method=pass_all on windows (couldn't get file.exe to work so that libtool correctly ids the passed libs) * add bzip2 to msys * reenable libtool check. Lets see if CI agrees * unbreak linux try to figure out where uuid should be on windows. * add -L flag and help libtool ? * try to get ci to find uuid. * try to use cygpath * update controls * cleanup merge mistakes * correct merge issues * determine cmake vars if not done before. * move adding of -l earlier * more merge cleanup * fix uwp builds by not transforming libs * fix patches in io2d * fix xz download error * apply code review changes manually * fix the typos left behind in CR Co-authored-by: nicole mazzuca <mazzucan@outlook.com> Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com> Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
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()