From 830893fb8eefbc12f5a7f8274bfc2ac79dd85449 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Thu, 16 Jul 2020 05:09:33 +0700 Subject: [PATCH] [liblzma, libvpx] Add mingw support (#12401) * [liblzma] Update to v5.2.5 * [liblzma] Use WIN32 instead of MSVC * [libvpx] Add mingw support * Update portfile.cmake * Update CONTROL * Update CONTROL Co-authored-by: Lily <47812810+LilyWangL@users.noreply.github.com> --- ports/liblzma/CMakeLists.txt | 4 ++-- ports/liblzma/CONTROL | 2 +- ports/liblzma/portfile.cmake | 8 ++++---- ports/libvpx/CONTROL | 5 +++-- ports/libvpx/portfile.cmake | 35 ++++++++++++++++++++--------------- 5 files changed, 30 insertions(+), 24 deletions(-) diff --git a/ports/liblzma/CMakeLists.txt b/ports/liblzma/CMakeLists.txt index 626655150..c87b0b611 100644 --- a/ports/liblzma/CMakeLists.txt +++ b/ports/liblzma/CMakeLists.txt @@ -130,8 +130,8 @@ add_library(LibLZMA src/liblzma/simple/x86.c ) -if(MSVC) - target_include_directories(LibLZMA PRIVATE $) +if(WIN32) + target_include_directories(LibLZMA PRIVATE $) else() target_compile_definitions(LibLZMA PRIVATE -DHAVE_VISIBILITY=1) endif() diff --git a/ports/liblzma/CONTROL b/ports/liblzma/CONTROL index 465efb054..e95b13c3c 100644 --- a/ports/liblzma/CONTROL +++ b/ports/liblzma/CONTROL @@ -1,4 +1,4 @@ Source: liblzma -Version: 5.2.4-5 +Version: 5.2.5 Homepage: https://github.com/xz-mirror/xz Description: Compression library with an API similar to that of zlib. diff --git a/ports/liblzma/portfile.cmake b/ports/liblzma/portfile.cmake index 8429dbbca..acc0dbaaa 100644 --- a/ports/liblzma/portfile.cmake +++ b/ports/liblzma/portfile.cmake @@ -1,8 +1,8 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xz-mirror/xz - REF v5.2.4 - SHA512 fce7dc65e77a9b89dbdd6192cb37efc39e3f2cf343f79b54d2dfcd845025dab0e1d5b0f59c264eab04e5cbaf914eeb4818d14cdaac3ae0c1c5de24418656a4b7 + REF v5.2.5 + SHA512 686f01cfe33e2194766a856c48668c661b25eee194a443524f87ce3f866e0eb54914075b4e00185921516c5211db8cd5d2658f4b91f4a3580508656f776f468e HEAD_REF master PATCHES enable-uwp-builds.patch @@ -86,6 +86,6 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static) ) endif() -file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/liblzma) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) -file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/liblzma RENAME copyright) \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/libvpx/CONTROL b/ports/libvpx/CONTROL index 63ea7bb2f..969ae8a10 100644 --- a/ports/libvpx/CONTROL +++ b/ports/libvpx/CONTROL @@ -1,5 +1,6 @@ Source: libvpx -Version: 1.8.1-7 +Version: 1.8.1 +Port-Version: 8 Homepage: https://github.com/webmproject/libvpx Description: The reference software implementation for the video coding formats VP8 and VP9. -Supports: !(uwp&arm) \ No newline at end of file +Supports: !(uwp&arm) diff --git a/ports/libvpx/portfile.cmake b/ports/libvpx/portfile.cmake index ec487d5c2..1d818ddf1 100644 --- a/ports/libvpx/portfile.cmake +++ b/ports/libvpx/portfile.cmake @@ -17,15 +17,20 @@ vcpkg_extract_source_archive_ex( vcpkg_find_acquire_program(YASM) vcpkg_find_acquire_program(PERL) -if(VCPKG_TARGET_IS_WINDOWS) +get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) +get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) - vcpkg_acquire_msys(MSYS_ROOT PACKAGES make) - vcpkg_acquire_msys(MSYS_ROOT PACKAGES diffutils) - get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) - get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) +if(CMAKE_HOST_WIN32) + vcpkg_acquire_msys(MSYS_ROOT PACKAGES make) + vcpkg_acquire_msys(MSYS_ROOT PACKAGES diffutils) + set(BASH ${MSYS_ROOT}/usr/bin/bash.exe) + set(ENV{PATH} "${YASM_EXE_PATH};${MSYS_ROOT}/usr/bin;$ENV{PATH};${PERL_EXE_PATH}") +else() + set(BASH /bin/bash) + set(ENV{PATH} "${YASM_EXE_PATH}:${MSYS_ROOT}/usr/bin:$ENV{PATH}:${PERL_EXE_PATH}") +endif() - set(ENV{PATH} "${YASM_EXE_PATH};${MSYS_ROOT}/usr/bin;$ENV{PATH};${PERL_EXE_PATH}") - set(BASH ${MSYS_ROOT}/usr/bin/bash.exe) +if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) @@ -115,17 +120,11 @@ if(VCPKG_TARGET_IS_WINDOWS) else() - get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) - get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) - - set(ENV{PATH} "${YASM_EXE_PATH}:${MSYS_ROOT}/usr/bin:$ENV{PATH}:${PERL_EXE_PATH}") - set(BASH /bin/bash) - set(OPTIONS "--disable-examples --disable-tools --disable-docs --disable-unit-tests") set(OPTIONS_DEBUG "--enable-debug-libs --enable-debug --prefix=${CURRENT_PACKAGES_DIR}/debug") set(OPTIONS_RELEASE "--prefix=${CURRENT_PACKAGES_DIR}") - + if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(OPTIONS "${OPTIONS} --disable-static --enable-shared") else() @@ -140,7 +139,13 @@ else() message(FATAL_ERROR "libvpx does not support architecture ${VCPKG_TARGET_ARCHITECTURE}") endif() - if(VCPKG_TARGET_IS_LINUX) + if(VCPKG_TARGET_IS_MINGW) + if(LIBVPX_TARGET_ARCH STREQUAL "x86") + set(LIBVPX_TARGET "x86-win32-gcc") + else() + set(LIBVPX_TARGET "x86_64-win64-gcc") + endif() + elseif(VCPKG_TARGET_IS_LINUX) set(LIBVPX_TARGET "${LIBVPX_TARGET_ARCH}-linux-gcc") elseif(VCPKG_TARGET_IS_OSX) set(LIBVPX_TARGET "${LIBVPX_TARGET_ARCH}-darwin17-gcc") # enable latest CPU instructions for best performance and less CPU usage on MacOS