diff options
| author | Alexander Neumann <30894796+Neumann-A@users.noreply.github.com> | 2020-11-17 18:18:59 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-17 09:18:59 -0800 |
| commit | 3a26eb3dc4d684ca6c1748dccc7a15684b9e8d0a (patch) | |
| tree | 8f48a1d104ab8329fa56ad5c49d1be1fb49b8ccd /ports/libiconv | |
| parent | 12ab060a3d43b56c6689ac7fe5861c6f9138c568 (diff) | |
| download | vcpkg-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.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()
|
