aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitaly Petrov <v31337@gmail.com>2020-05-06 20:45:40 +0300
committerGitHub <noreply@github.com>2020-05-06 10:45:40 -0700
commit07f7b67186aa037b932eb4aadee5c318f68a5c08 (patch)
tree803c5c0062f031453e9db156c78579573b11215c
parent66d4f9d411954b4d30042d423651915ae74f67c1 (diff)
downloadvcpkg-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/CONTROL2
-rw-r--r--ports/libvpx/portfile.cmake239
-rw-r--r--scripts/ci.baseline.txt2
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