vcpkg/ports/hunspell/portfile.cmake
NancyLi1013 0c1b57592b
[hunspell] Fix build error on Windows (#18037)
* [hunspell] Fix build error on Windows

* Update ports/hunspell/portfile.cmake

* re-factory win build

* Drop support with UWP since the upstream doesn't add app bitset in vcxproj

* update baseline

* Update port-version

* Update version files

* Update version-string field as version

* Re update versions/h-/hunspell.json

Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com>
2021-06-09 15:28:21 -07:00

86 lines
2.9 KiB
CMake

vcpkg_fail_port_install(ON_TARGET "UWP")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO hunspell/hunspell
REF v1.7.0
SHA512 8149b2e8b703a0610c9ca5160c2dfad3cf3b85b16b3f0f5cfcb7ebb802473b2d499e8e2d0a637a97a37a24d62424e82d3880809210d3f043fa17a4970d47c903
HEAD_REF master
PATCHES
0001_fix_unistd.patch
0002-disable-test.patch
0003-fix-win-build.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
tools BUILD_TOOLS
)
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
file(REMOVE "${SOURCE_PATH}/README") #README is a symlink
#architecture detection
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
set(HUNSPELL_ARCH Win32)
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
set(HUNSPELL_ARCH x64)
else()
message(FATAL_ERROR "unsupported architecture")
endif()
if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
set(HUNSPELL_CONFIGURATION _dll)
else()
set(HUNSPELL_CONFIGURATION )
endif()
if("tools" IN_LIST FEATURES)
set(HSP_TARGET hunspell)
else()
set(HSP_TARGET libhunspell)
endif()
vcpkg_install_msbuild(
SOURCE_PATH "${SOURCE_PATH}"
PROJECT_SUBPATH "msvc/Hunspell.sln"
INCLUDES_SUBPATH src/hunspell
PLATFORM ${HUNSPELL_ARCH}
RELEASE_CONFIGURATION Release${HUNSPELL_CONFIGURATION}
DEBUG_CONFIGURATION Debug${HUNSPELL_CONFIGURATION}
ALLOW_ROOT_INCLUDES
)
else()
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
set(ENV{CFLAGS} "$ENV{CFLAGS} -DHUNSPELL_STATIC")
set(ENV{CXXFLAGS} "$ENV{CXXFLAGS} -DHUNSPELL_STATIC")
endif()
if(NOT "tools" IN_LIST FEATURES) # Building the tools is not possible on windows!
file(READ "${SOURCE_PATH}/src/Makefile.am" _contents)
string(REPLACE " parsers tools" "" _contents "${_contents}")
file(WRITE "${SOURCE_PATH}/src/Makefile.am" "${_contents}")
endif()
vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin")
vcpkg_configure_make(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
AUTOCONFIG
ADDITIONAL_MSYS_PACKAGES gzip
)
#install-pkgconfDATA:
vcpkg_build_make(BUILD_TARGET dist LOGFILE_ROOT build-dist)
vcpkg_install_make()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug")
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin")
vcpkg_fixup_pkgconfig()
endif()
vcpkg_copy_pdbs()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
file(INSTALL "${SOURCE_PATH}/COPYING.LESSER" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright-lgpl)
file(INSTALL "${SOURCE_PATH}/COPYING.MPL" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright-mpl)