mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-20 19:57:56 +08:00
c8a56fdc15
* [libvpx,lmdb,aubio,freetype-gl,intelrdfpmathlib,libbson,libtcod,metis,pqp,smpeg2] Build fixes 2022-04-28 These results are from the most recent CI run: https://dev.azure.com/vcpkg/public/_build/results?buildId=71465 PASSING, REMOVE FROM FAIL LIST: aubio:x64-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). I also did some investigation as to why aubio:arm-uwp didn't pass. Turns out, it's because aubio depends on ffmpeg, which failed to build because it depends on libvpx, which we never fixed for UWP following the VS2022 update. See also https://developercommunity.visualstudio.com/t/MicrosoftVisualStudioComponentVCTool/10002207?space=62&scope=follow&sort=newest PASSING, REMOVE FROM FAIL LIST: freetype-gl:x64-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). I also checked freetype-gl:arm-uwp, but it's blocked by glew which is blocked by opengl which appears to not be a thing on arm. PASSING, REMOVE FROM FAIL LIST: intelrdfpmathlib:x64-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). The arm-uwp version of this emits errors that look like source issues; I blocked arm&windows with a supports expression: D:\buildtrees\intelrdfpmathlib\src\athLib20U2-d2a8954428.clean\LIBRARY\src\bid_functions.h(3113): error C2719: 'x': formal parameter with requested alignment of 16 won't be aligned PASSING, REMOVE FROM FAIL LIST: libbson:arm-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). PASSING, REMOVE FROM FAIL LIST: libbson:x64-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). PASSING, REMOVE FROM FAIL LIST: libtcod:arm-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). PASSING, REMOVE FROM FAIL LIST: libtcod:x64-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). PASSING, REMOVE FROM FAIL LIST: lmdb:x64-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). arm-uwp failed with again what looks like a source issue: mdb.c.obj : error LNK2001: unresolved external symbol __tls_used mdb.c.obj : error LNK2001: unresolved external symbol _mdb_tls_cbp PASSING, REMOVE FROM FAIL LIST: metis:arm-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). PASSING, REMOVE FROM FAIL LIST: metis:x64-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). PASSING, REMOVE FROM FAIL LIST: pqp:arm-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). PASSING, REMOVE FROM FAIL LIST: pqp:x64-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). PASSING, REMOVE FROM FAIL LIST: smpeg2:arm-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). PASSING, REMOVE FROM FAIL LIST: smpeg2:x64-uwp (C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt). I also checked Linux and it says Could NOT find ibverbs (missing: IBVERBS_INCLUDE_DIRS IBVERBS_LIBRARIES) which may be vcpkg's fault so I left that ci.baseline.txt skip alone. REGRESSION: jansson:arm-uwp failed with POST_BUILD_CHECKS_FAILED. If expected, add jansson:arm-uwp=fail to C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt. REGRESSION: jansson:x64-uwp failed with POST_BUILD_CHECKS_FAILED. If expected, add jansson:x64-uwp=fail to C:\a\1\s\scripts\azure-pipelines/../ci.baseline.txt. Already fixed by https://github.com/microsoft/vcpkg/pull/24466 * dos2unix the patch * :dos2unix the other patches too
202 lines
8.5 KiB
Diff
202 lines
8.5 KiB
Diff
diff --git a/build/make/configure.sh b/build/make/configure.sh
|
|
index 325017e..5ab54e4 100644
|
|
--- a/build/make/configure.sh
|
|
+++ b/build/make/configure.sh
|
|
@@ -1016,7 +1016,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
|
|
@@ -1250,6 +1250,9 @@ EOF
|
|
android)
|
|
soft_enable realtime_only
|
|
;;
|
|
+ uwp)
|
|
+ enabled gcc && add_cflags -fno-common
|
|
+ ;;
|
|
win*)
|
|
enabled gcc && add_cflags -fno-common
|
|
;;
|
|
@@ -1368,6 +1371,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
|
|
@@ -1488,6 +1501,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_sln.sh b/build/make/gen_msvs_sln.sh
|
|
index d1adfd7..a03ea59 100644
|
|
--- a/build/make/gen_msvs_sln.sh
|
|
+++ b/build/make/gen_msvs_sln.sh
|
|
@@ -219,6 +219,7 @@ for opt in "$@"; do
|
|
14) vs_year=2015 ;;
|
|
15) vs_year=2017 ;;
|
|
16) vs_year=2019 ;;
|
|
+ 17) vs_year=2022 ;;
|
|
*) die Unrecognized Visual Studio Version in $opt ;;
|
|
esac
|
|
;;
|
|
diff --git a/build/make/gen_msvs_vcxproj.sh b/build/make/gen_msvs_vcxproj.sh
|
|
index 6f91ad4..b4cad6c 100644
|
|
--- a/build/make/gen_msvs_vcxproj.sh
|
|
+++ b/build/make/gen_msvs_vcxproj.sh
|
|
@@ -170,7 +170,7 @@ for opt in "$@"; do
|
|
--ver=*)
|
|
vs_ver="$optval"
|
|
case "$optval" in
|
|
- 1[4-6])
|
|
+ 1[4-7])
|
|
;;
|
|
*) die Unrecognized Visual Studio Version in $opt
|
|
;;
|
|
@@ -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
|
|
@@ -344,6 +359,9 @@ generate_vcxproj() {
|
|
if [ "$vs_ver" = "16" ]; then
|
|
tag_content PlatformToolset v142
|
|
fi
|
|
+ if [ "$vs_ver" = "17" ]; then
|
|
+ tag_content PlatformToolset v143
|
|
+ fi
|
|
tag_content CharacterSet Unicode
|
|
if [ "$config" = "Release" ]; then
|
|
tag_content WholeProgramOptimization true
|
|
@@ -391,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 da631a4..2804678 100644
|
|
--- a/configure
|
|
+++ b/configure
|
|
@@ -101,16 +101,24 @@ all_platforms="${all_platforms} arm64-android-gcc"
|
|
all_platforms="${all_platforms} arm64-darwin-gcc"
|
|
all_platforms="${all_platforms} arm64-darwin20-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"
|
|
+all_platforms="${all_platforms} arm64-win64-vs17"
|
|
all_platforms="${all_platforms} armv7-android-gcc" #neon Cortex-A8
|
|
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"
|
|
+all_platforms="${all_platforms} armv7-win32-vs16"
|
|
+all_platforms="${all_platforms} armv7-win32-vs17"
|
|
all_platforms="${all_platforms} armv7s-darwin-gcc"
|
|
all_platforms="${all_platforms} armv8-linux-gcc"
|
|
all_platforms="${all_platforms} mips32-linux-gcc"
|
|
@@ -135,10 +143,13 @@ 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"
|
|
all_platforms="${all_platforms} x86-win32-vs16"
|
|
+all_platforms="${all_platforms} x86-win32-vs17"
|
|
all_platforms="${all_platforms} x86_64-android-gcc"
|
|
all_platforms="${all_platforms} x86_64-darwin9-gcc"
|
|
all_platforms="${all_platforms} x86_64-darwin10-gcc"
|
|
@@ -156,10 +167,13 @@ 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"
|
|
all_platforms="${all_platforms} x86_64-win64-vs16"
|
|
+all_platforms="${all_platforms} x86_64-win64-vs17"
|
|
all_platforms="${all_platforms} generic-gnu"
|
|
|
|
# all_targets is a list of all targets that can be configured
|
|
@@ -476,11 +490,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}"
|
|
@@ -569,6 +582,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
|