vcpkg/ports/libvpx/0003-add-uwp-v142-and-v143-support.patch
Vasyl Gello ac2a14f35f
[libvpx] Bump to 1.13.1 (#35047)
Based on https://github.com/microsoft/vcpkg/pull/34814 by @LilyWangLL
but tailored for RustDesk to build on arm64-ios, arm*-linux etc.

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-15 19:13:58 -08:00

154 lines
6.6 KiB
Diff

diff --git a/build/make/configure.sh b/build/make/configure.sh
index 110f16e..c161d0e 100644
--- a/build/make/configure.sh
+++ b/build/make/configure.sh
@@ -1038,7 +1038,7 @@ EOF
# A number of ARM-based Windows platforms are constrained by their
# respective SDKs' limitations. Fortunately, these are all 32-bit ABIs
# and so can be selected as 'win32'.
- if [ ${tgt_os} = "win32" ]; then
+ if [ ${tgt_os} = "win32" ] || [ ${tgt_isa} = "armv7" ]; then
asm_conversion_cmd="${source_path_mk}/build/make/ads2armasm_ms.pl"
AS_SFX=.S
msvs_arch_dir=arm-msvs
@@ -1272,6 +1272,9 @@ EOF
android)
soft_enable realtime_only
;;
+ uwp)
+ enabled gcc && add_cflags -fno-common
+ ;;
win*)
enabled gcc && add_cflags -fno-common
;;
@@ -1390,6 +1393,16 @@ EOF
fi
AS_SFX=.asm
case ${tgt_os} in
+ uwp)
+ if [ {$tgt_isa} = "x86" ] || [ {$tgt_isa} = "armv7" ]; then
+ add_asflags -f win32
+ else
+ add_asflags -f win64
+ fi
+ enabled debug && [ "${AS}" = yasm ] && add_asflags -g cv8
+ enabled debug && [ "${AS}" = nasm ] && add_asflags -gcv8
+ EXE_SFX=.exe
+ ;;
win32)
add_asflags -f win32
enabled debug && [ "${AS}" = yasm ] && add_asflags -g cv8
@@ -1519,6 +1532,8 @@ EOF
# Almost every platform uses pthreads.
if enabled multithread; then
case ${toolchain} in
+ *-uwp-vs*)
+ ;;
*-win*-vs*)
;;
*-android-gcc)
diff --git a/build/make/gen_msvs_vcxproj.sh b/build/make/gen_msvs_vcxproj.sh
index 58bb66b..b4cad6c 100644
--- a/build/make/gen_msvs_vcxproj.sh
+++ b/build/make/gen_msvs_vcxproj.sh
@@ -296,7 +296,22 @@ generate_vcxproj() {
tag_content ProjectGuid "{${guid}}"
tag_content RootNamespace ${name}
tag_content Keyword ManagedCProj
- if [ $vs_ver -ge 12 ] && [ "${platforms[0]}" = "ARM" ]; then
+ if [ $vs_ver -ge 16 ]; then
+ if [[ $target =~ [^-]*-uwp-.* ]]; then
+ # Universal Windows Applications
+ tag_content AppContainerApplication true
+ tag_content ApplicationType "Windows Store"
+ tag_content ApplicationTypeRevision 10.0
+ fi
+ if [[ $target =~ [^-]*-uwp-.* ]] || [ "${platforms[0]}" = "ARM" ] || [ "${platforms[0]}" = "ARM64" ]; then
+ # Default to the latest Windows 10 SDK
+ tag_content WindowsTargetPlatformVersion 10.0
+ else
+ # Minimum supported version of Windows for the desktop
+ tag_content WindowsTargetPlatformVersion 8.1
+ fi
+ tag_content MinimumVisualStudioVersion 16.0
+ elif [ $vs_ver -ge 12 ] && [ "${platforms[0]}" = "ARM" ]; then
tag_content AppContainerApplication true
# The application type can be one of "Windows Store",
# "Windows Phone" or "Windows Phone Silverlight". The
@@ -394,7 +409,7 @@ generate_vcxproj() {
Condition="'\$(Configuration)|\$(Platform)'=='$config|$plat'"
if [ "$name" == "vpx" ]; then
hostplat=$plat
- if [ "$hostplat" == "ARM" ]; then
+ if [ "$hostplat" == "ARM" ] && [ $vs_ver -le 15 ]; then
hostplat=Win32
fi
fi
diff --git a/configure b/configure
index ae289f7..78f5fc1 100644
--- a/configure
+++ b/configure
@@ -103,6 +103,8 @@ all_platforms="${all_platforms} arm64-darwin20-gcc"
all_platforms="${all_platforms} arm64-darwin21-gcc"
all_platforms="${all_platforms} arm64-darwin22-gcc"
all_platforms="${all_platforms} arm64-linux-gcc"
+all_platforms="${all_platforms} arm64-uwp-vs16"
+all_platforms="${all_platforms} arm64-uwp-vs17"
all_platforms="${all_platforms} arm64-win64-gcc"
all_platforms="${all_platforms} arm64-win64-vs15"
all_platforms="${all_platforms} arm64-win64-vs16"
@@ -112,6 +114,8 @@ all_platforms="${all_platforms} armv7-darwin-gcc" #neon Cortex-A8
all_platforms="${all_platforms} armv7-linux-rvct" #neon Cortex-A8
all_platforms="${all_platforms} armv7-linux-gcc" #neon Cortex-A8
all_platforms="${all_platforms} armv7-none-rvct" #neon Cortex-A8
+all_platforms="${all_platforms} armv7-uwp-vs16"
+all_platforms="${all_platforms} armv7-uwp-vs17"
all_platforms="${all_platforms} armv7-win32-gcc"
all_platforms="${all_platforms} armv7-win32-vs14"
all_platforms="${all_platforms} armv7-win32-vs15"
@@ -143,6 +147,8 @@ all_platforms="${all_platforms} x86-linux-gcc"
all_platforms="${all_platforms} x86-linux-icc"
all_platforms="${all_platforms} x86-os2-gcc"
all_platforms="${all_platforms} x86-solaris-gcc"
+all_platforms="${all_platforms} x86-uwp-vs16"
+all_platforms="${all_platforms} x86-uwp-vs17"
all_platforms="${all_platforms} x86-win32-gcc"
all_platforms="${all_platforms} x86-win32-vs14"
all_platforms="${all_platforms} x86-win32-vs15"
@@ -167,6 +173,8 @@ all_platforms="${all_platforms} x86_64-iphonesimulator-gcc"
all_platforms="${all_platforms} x86_64-linux-gcc"
all_platforms="${all_platforms} x86_64-linux-icc"
all_platforms="${all_platforms} x86_64-solaris-gcc"
+all_platforms="${all_platforms} x86_64-uwp-vs16"
+all_platforms="${all_platforms} x86_64-uwp-vs17"
all_platforms="${all_platforms} x86_64-win64-gcc"
all_platforms="${all_platforms} x86_64-win64-vs14"
all_platforms="${all_platforms} x86_64-win64-vs15"
@@ -491,11 +499,10 @@ process_targets() {
! enabled multithread && DIST_DIR="${DIST_DIR}-nomt"
! enabled install_docs && DIST_DIR="${DIST_DIR}-nodocs"
DIST_DIR="${DIST_DIR}-${tgt_isa}-${tgt_os}"
- case "${tgt_os}" in
- win*) enabled static_msvcrt && DIST_DIR="${DIST_DIR}mt" || DIST_DIR="${DIST_DIR}md"
- DIST_DIR="${DIST_DIR}-${tgt_cc}"
- ;;
- esac
+ if [[ ${tgt_os} =~ win.* ]] || [ "${tgt_os}" = "uwp" ]; then
+ enabled static_msvcrt && DIST_DIR="${DIST_DIR}mt" || DIST_DIR="${DIST_DIR}md"
+ DIST_DIR="${DIST_DIR}-${tgt_cc}"
+ fi
if [ -f "${source_path}/build/make/version.sh" ]; then
ver=`"$source_path/build/make/version.sh" --bare "$source_path"`
DIST_DIR="${DIST_DIR}-${ver}"
@@ -584,6 +591,10 @@ process_detect() {
# Specialize windows and POSIX environments.
case $toolchain in
+ *-uwp-*)
+ # Don't check for any headers in UWP builds.
+ false
+ ;;
*-win*-*)
# Don't check for any headers in Windows builds.
false