diff options
| author | Vitaly Petrov <v31337@gmail.com> | 2020-05-06 20:45:40 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-06 10:45:40 -0700 |
| commit | 07f7b67186aa037b932eb4aadee5c318f68a5c08 (patch) | |
| tree | 803c5c0062f031453e9db156c78579573b11215c | |
| parent | 66d4f9d411954b4d30042d423651915ae74f67c1 (diff) | |
| download | vcpkg-07f7b67186aa037b932eb4aadee5c318f68a5c08.tar.gz vcpkg-07f7b67186aa037b932eb4aadee5c318f68a5c08.zip | |
[libvpx] Added support for build on MacOS and Linux (#11022)
* [libvpx] Added support for build on MacOS and Linux
* [libvpx] Fix ci-baseline
| -rw-r--r-- | ports/libvpx/CONTROL | 2 | ||||
| -rw-r--r-- | ports/libvpx/portfile.cmake | 239 | ||||
| -rw-r--r-- | scripts/ci.baseline.txt | 2 |
3 files changed, 164 insertions, 79 deletions
diff --git a/ports/libvpx/CONTROL b/ports/libvpx/CONTROL index b18dfe6c0..a7c918b06 100644 --- a/ports/libvpx/CONTROL +++ b/ports/libvpx/CONTROL @@ -2,4 +2,4 @@ Source: libvpx Version: 1.8.1-3
Homepage: https://github.com/webmproject/libvpx
Description: The reference software implementation for the video coding formats VP8 and VP9.
-Supports: !(uwp|arm|arm64|linux|osx)
+Supports: !(uwp|arm|arm64)
diff --git a/ports/libvpx/portfile.cmake b/ports/libvpx/portfile.cmake index 3eded00d9..a4be9fd1b 100644 --- a/ports/libvpx/portfile.cmake +++ b/ports/libvpx/portfile.cmake @@ -1,4 +1,4 @@ -vcpkg_fail_port_install(ON_ARCH "arm" "arm64" ON_TARGET "UWP" "Linux" "OSX") +vcpkg_fail_port_install(ON_ARCH "arm" "arm64" ON_TARGET "UWP") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) @@ -18,94 +18,181 @@ vcpkg_extract_source_archive_ex( vcpkg_find_acquire_program(YASM) vcpkg_find_acquire_program(PERL) -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) -set(ENV{PATH} "${YASM_EXE_PATH};${MSYS_ROOT}/usr/bin;$ENV{PATH};${PERL_EXE_PATH}") -set(BASH ${MSYS_ROOT}/usr/bin/bash.exe) +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") -file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) + 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(VCPKG_CRT_LINKAGE STREQUAL static) - set(LIBVPX_CRT_LINKAGE --enable-static-msvcrt) - set(LIBVPX_CRT_SUFFIX mt) -else() - set(LIBVPX_CRT_SUFFIX md) -endif() - -if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86) - set(LIBVPX_TARGET_ARCH "x86-win32") - set(LIBVPX_ARCH_DIR "Win32") -elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) - set(LIBVPX_TARGET_ARCH "x86_64-win64") - set(LIBVPX_ARCH_DIR "x64") -elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL arm) - set(LIBVPX_TARGET_ARCH "armv7-win32") - set(LIBVPX_ARCH_DIR "ARM") -endif() + set(ENV{PATH} "${YASM_EXE_PATH};${MSYS_ROOT}/usr/bin;$ENV{PATH};${PERL_EXE_PATH}") + set(BASH ${MSYS_ROOT}/usr/bin/bash.exe) -set(LIBVPX_TARGET_VS "vs15") - -message(STATUS "Generating makefile") -file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) -vcpkg_execute_required_process( - COMMAND - ${BASH} --noprofile --norc - "${SOURCE_PATH}/configure" - --target=${LIBVPX_TARGET_ARCH}-${LIBVPX_TARGET_VS} - ${LIBVPX_CRT_LINKAGE} - --disable-examples - --disable-tools - --disable-docs - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}" - LOGNAME configure-${TARGET_TRIPLET}) - -message(STATUS "Generating MSBuild projects") -vcpkg_execute_required_process( - COMMAND - ${BASH} --noprofile --norc -c "make dist" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}" - LOGNAME generate-${TARGET_TRIPLET}) - -vcpkg_build_msbuild( - PROJECT_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/vpx.vcxproj" - OPTIONS /p:UseEnv=True -) + file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") - file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Release/vpxmd.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") - file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Release/vpx/vpx.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" RENAME "vpxmd.pdb") + if(VCPKG_CRT_LINKAGE STREQUAL static) + set(LIBVPX_CRT_LINKAGE --enable-static-msvcrt) + set(LIBVPX_CRT_SUFFIX mt) else() - file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Release/vpxmt.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") - file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Release/vpx/vpx.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" RENAME "vpxmt.pdb") + set(LIBVPX_CRT_SUFFIX md) + endif() + + if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86) + set(LIBVPX_TARGET_ARCH "x86-win32") + set(LIBVPX_ARCH_DIR "Win32") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) + set(LIBVPX_TARGET_ARCH "x86_64-win64") + set(LIBVPX_ARCH_DIR "x64") + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL arm) + set(LIBVPX_TARGET_ARCH "armv7-win32") + set(LIBVPX_ARCH_DIR "ARM") + endif() + + set(LIBVPX_TARGET_VS "vs15") + + message(STATUS "Generating makefile") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) + vcpkg_execute_required_process( + COMMAND + ${BASH} --noprofile --norc + "${SOURCE_PATH}/configure" + --target=${LIBVPX_TARGET_ARCH}-${LIBVPX_TARGET_VS} + ${LIBVPX_CRT_LINKAGE} + --disable-examples + --disable-tools + --disable-docs + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}" + LOGNAME configure-${TARGET_TRIPLET}) + + message(STATUS "Generating MSBuild projects") + vcpkg_execute_required_process( + COMMAND + ${BASH} --noprofile --norc -c "make dist" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}" + LOGNAME generate-${TARGET_TRIPLET}) + + vcpkg_build_msbuild( + PROJECT_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/vpx.vcxproj" + OPTIONS /p:UseEnv=True + ) + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Release/vpxmd.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Release/vpx/vpx.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" RENAME "vpxmd.pdb") + else() + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Release/vpxmt.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Release/vpx/vpx.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" RENAME "vpxmt.pdb") + endif() + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Debug/vpxmdd.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Debug/vpx/vpx.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" RENAME "vpxmdd.pdb") + else() + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Debug/vpxmtd.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") + file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Debug/vpx/vpx.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" RENAME "vpxmtd.pdb") + endif() endif() -endif() -if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") - file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Debug/vpxmdd.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") - file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Debug/vpx/vpx.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" RENAME "vpxmdd.pdb") + if(VCPKG_TARGET_ARCHITECTURE STREQUAL arm) + set(LIBVPX_INCLUDE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/vpx-vp8-vp9-nopost-nomt-nodocs-${LIBVPX_TARGET_ARCH}${LIBVPX_CRT_SUFFIX}-${LIBVPX_TARGET_VS}-v${LIBVPX_VERSION}/include/vpx") else() - file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Debug/vpxmtd.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") - file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/${LIBVPX_ARCH_DIR}/Debug/vpx/vpx.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" RENAME "vpxmtd.pdb") + set(LIBVPX_INCLUDE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/vpx-vp8-vp9-nodocs-${LIBVPX_TARGET_ARCH}${LIBVPX_CRT_SUFFIX}-${LIBVPX_TARGET_VS}-v${LIBVPX_VERSION}/include/vpx") endif() -endif() + file( + INSTALL + ${LIBVPX_INCLUDE_DIR} + DESTINATION + "${CURRENT_PACKAGES_DIR}/include" + RENAME + "vpx") -if(VCPKG_TARGET_ARCHITECTURE STREQUAL arm) - set(LIBVPX_INCLUDE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/vpx-vp8-vp9-nopost-nomt-nodocs-${LIBVPX_TARGET_ARCH}${LIBVPX_CRT_SUFFIX}-${LIBVPX_TARGET_VS}-v${LIBVPX_VERSION}/include/vpx") else() - set(LIBVPX_INCLUDE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/vpx-vp8-vp9-nodocs-${LIBVPX_TARGET_ARCH}${LIBVPX_CRT_SUFFIX}-${LIBVPX_TARGET_VS}-v${LIBVPX_VERSION}/include/vpx") + + 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() + set(OPTIONS "${OPTIONS} --enable-static --disable-shared") + endif() + + message(STATUS "Building Options: ${OPTIONS}") + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + message(STATUS "Configuring libvpx for Release") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + vcpkg_execute_required_process( + COMMAND + ${BASH} --noprofile --norc + "${SOURCE_PATH}/configure" + ${OPTIONS} + ${OPTIONS_RELEASE} + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" + LOGNAME configure-${TARGET_TRIPLET}-rel) + + message(STATUS "Building libvpx for Release") + vcpkg_execute_required_process( + COMMAND + ${BASH} --noprofile --norc -c "make -j8" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" + LOGNAME build-${TARGET_TRIPLET}-rel + ) + + message(STATUS "Installing libvpx for Release") + vcpkg_execute_required_process( + COMMAND + ${BASH} --noprofile --norc -c "make install" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" + LOGNAME install-${TARGET_TRIPLET}-rel + ) + endif() + + # --- --- --- + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + message(STATUS "Configuring libvpx for Debug") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + vcpkg_execute_required_process( + COMMAND + ${BASH} --noprofile --norc + "${SOURCE_PATH}/configure" + ${OPTIONS} + ${OPTIONS_DEBUG} + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" + LOGNAME configure-${TARGET_TRIPLET}-dbg) + + message(STATUS "Building libvpx for Debug") + vcpkg_execute_required_process( + COMMAND + ${BASH} --noprofile --norc -c "make -j8" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" + LOGNAME build-${TARGET_TRIPLET}-dbg + ) + + message(STATUS "Installing libvpx for Debug") + vcpkg_execute_required_process( + COMMAND + ${BASH} --noprofile --norc -c "make install" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" + LOGNAME install-${TARGET_TRIPLET}-dbg + ) + + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + endif() endif() -file( - INSTALL - ${LIBVPX_INCLUDE_DIR} - DESTINATION - "${CURRENT_PACKAGES_DIR}/include" - RENAME - "vpx") file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libvpx) file(RENAME ${CURRENT_PACKAGES_DIR}/share/libvpx/LICENSE ${CURRENT_PACKAGES_DIR}/share/libvpx/copyright) diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 8e631f138..1cda26b25 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -957,8 +957,6 @@ libuv:arm-uwp=fail libuv:x64-uwp=fail
libvpx:arm-uwp=fail
libvpx:arm64-windows=fail
-libvpx:x64-linux=fail
-libvpx:x64-osx=fail
libwandio:x86-windows=fail
libwandio:x64-windows=fail
libwandio:x64-windows-static=fail
|
