From 23d4072643dbd3a92d65ad26c8923ce8a829936f Mon Sep 17 00:00:00 2001 From: ras0219 <533828+ras0219@users.noreply.github.com> Date: Fri, 7 Aug 2020 11:41:21 -0700 Subject: [boost] Add Supports fields and more accurately handle arm64-windows/x64-uwp (#12762) * [boost] Add Supports fields. Regenerate to better describe arm64-windows and UWP. * [ci.baseline.txt] Remove unneeded boost entries * [libtorrent] Modify Supports to cover arm64-windows * [ci.baseline.txt] Add exposed failures now that boost:arm64-windows builds * Update ports/boost-fiber/CONTROL * Update ports/boost/CONTROL Co-authored-by: Robert Schumacher Co-authored-by: Phoebe <20694052+PhoebeHui@users.noreply.github.com> --- scripts/boost/generate-ports.ps1 | 137 +++++++++++++++++++++++---------------- scripts/ci.baseline.txt | 24 ++----- 2 files changed, 84 insertions(+), 77 deletions(-) (limited to 'scripts') diff --git a/scripts/boost/generate-ports.ps1 b/scripts/boost/generate-ports.ps1 index 992cf37a2..8136a9799 100644 --- a/scripts/boost/generate-ports.ps1 +++ b/scripts/boost/generate-ports.ps1 @@ -11,25 +11,68 @@ if ($null -eq $portsDir) $portsDir = "$scriptsDir/../../ports" } +# Optionally clear this array when moving to a new boost version +$port_versions = @{ + "asio" = 1; + "context" = 1; + "coroutine" = 1; + "fiber" = 1; + "filesystem" = 1; + "graph-parallel" = 1; + "iostreams" = 1; + "locale" = 1; + "log" = 1; + "mpi" = 1; + "parameter-python" = 1; + "poly-collection" = 1; + "python" = 1; + "safe-numerics" = 1; + "stacktrace" = 1; + "test" = 1; + "wave" = 1; + "boost" = 1 +} + +$per_port_data = @{ + "fiber" = @{ "supports" = "windows&!uwp&!arm" }; + "filesystem" = @{ "supports" = "!uwp" }; + "iostreams" = @{ "supports" = "!uwp" }; + "context" = @{ "supports" = "!uwp" }; + "stacktrace" = @{ "supports" = "!uwp" }; + "coroutine" = @{ "supports" = "!arm&!uwp" }; + "test" = @{ "supports" = "!uwp" }; + "wave" = @{ "supports" = "!uwp" }; + "log" = @{ "supports" = "!uwp" }; + "locale" = @{ + "supports" = "!uwp"; + "features" = @( + "Feature: icu" + "Build-Depends: icu" + "Description: ICU backend for Boost.Locale" + )}; + "python" = @{ + "supports" = "!uwp&!(arm&windows)"; + "features" = @( + "Feature: python2" + "Build-Depends: python2 (windows)" + "Description: Build with Python2 support" + )}; + "regex" = @{ "features" = @( + "Feature: icu" + "Build-Depends: icu" + "Description: ICU backend for Boost.Regex" + )} +} + function TransformReference() { param ( [string]$library ) - if ($library -match "fiber") - { - # these only work on windows desktop - "$library (windows)" - } - elseif ($library -match "type[_-]erasure|contract") + if ($per_port_data[$library].supports) { - # These only work on x86-derived processors - "$library (!arm)" - } - elseif ($library -match "iostreams|filesystem|context|stacktrace|coroutine`$|locale|test|wave|log`$") - { - "$library (!uwp)" + "$library ($($per_port_data[$library].supports))" } else { @@ -49,48 +92,28 @@ function Generate() $controlDeps = ($Depends | sort) -join ", " - $versionSuffix = "" - - # if ($PortName -eq "") - # { - # $versionSuffix = "-1" - # } - mkdir "$portsDir/boost-$PortName" -erroraction SilentlyContinue | out-null $controlLines = @( "# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1" "Source: boost-$PortName" - "Version: $version$versionSuffix" + "Version: $version" + ) + if ($port_versions[$PortName]) + { + $controlLines += @("Port-Version: $($port_versions[$PortName])") + } + $controlLines += @( "Build-Depends: $controlDeps" "Homepage: https://github.com/boostorg/$Name" "Description: Boost $Name module" ) - if ($PortName -eq "locale") + if ($per_port_data[$PortName].supports) { - $controlLines += @( - "" - "Feature: icu" - "Build-Depends: icu" - "Description: ICU backend for Boost.Locale" - ) - } - if ($PortName -eq "python") - { - $controlLines += @( - "" - "Feature: python2" - "Build-Depends: python2 (windows)" - "Description: Build with Python2 support" - ) + $controlLines += @("Supports: $($per_port_data[$PortName].supports)") } - if ($PortName -eq "regex") + if ($per_port_data[$PortName].features) { - $controlLines += @( - "" - "Feature: icu" - "Build-Depends: icu" - "Description: ICU backend for Boost.Regex" - ) + $controlLines += @("") + $per_port_data[$PortName].features } $controlLines | out-file -enc ascii "$portsDir/boost-$PortName/CONTROL" @@ -115,23 +138,21 @@ function Generate() " SHA512 $Hash" " HEAD_REF master" ) - if ($PortName -eq "asio") + $patches = ls $portsDir/boost-$PortName/*.patch + if ($patches.Count -eq 0) { - $portfileLines += @(" PATCHES windows_alloca_header.patch") } - if ($PortName -eq "iostreams") + elseif ($patches.Count -eq 1) { - $portfileLines += @(" PATCHES Removeseekpos.patch") + $portfileLines += @(" PATCHES $($patches.name)") } - if ($PortName -eq "outcome") - { - # 1.73 Known Issue - $portfileLines += @(" PATCHES 0001-outcome-assert.patch") - } - if ($PortName -eq "beast") + else { - # 1.73 Known Issue - $portfileLines += @(" PATCHES 0002-beast-coroutines.patch") + $portfileLines += @(" PATCHES") + foreach ($patch in $patches) + { + $portfileLines += @(" $($patches.name)") + } } $portfileLines += @( ")" @@ -277,6 +298,7 @@ foreach ($library in $libraries) if ($_ -match "aligned_storage") { "type_traits" } elseif ($_ -match "noncopyable|ref|swap|get_pointer|checked_delete|visit_each") { "core" } elseif ($_ -eq "type") { "core" } + elseif ($_ -eq "concept") { "concept_check" } elseif ($_ -match "unordered_") { "unordered" } elseif ($_ -match "cstdint|integer_fwd|integer_traits") { "integer" } elseif ($_ -match "call_traits|operators|current_function|cstdlib|next_prior|compressed_pair") { "utility" } @@ -340,8 +362,8 @@ foreach ($library in $libraries) (($library -notmatch "iostreams") -or ($_ -notmatch "random"))` -and ` (($library -notmatch "utility|concept_check") -or ($_ -notmatch "iterator")) - } | % { "boost-$_" -replace "_","-" } | % { - TransformReference $_ + } | % { $_ -replace "_","-" } | % { + "boost-" + (TransformReference $_) }) $deps += @("boost-vcpkg-helpers") @@ -401,6 +423,7 @@ if ($libraries_in_boost_port.length -gt 1) { "# Automatically generated by boost-vcpkg-helpers/generate-ports.ps1" "Source: boost" "Version: $version" + "Port-Version: $($port_versions.boost)" "Homepage: https://boost.org" "Description: Peer-reviewed portable C++ source libraries" "Build-Depends: $boostDependsList" diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 086c72824..cbbbcf4a5 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -106,6 +106,8 @@ azure-c-shared-utility:arm-uwp=fail azure-c-shared-utility:x64-uwp=fail azure-kinect-sensor-sdk:x64-linux=fail azure-kinect-sensor-sdk:x64-osx=fail +# Requires ATL for ARM64 to be installed in CI +azure-storage-cpp:arm64-windows=fail bde:arm64-windows=fail bde:arm-uwp=fail bde:x64-uwp=fail @@ -140,26 +142,6 @@ blosc:x64-uwp=fail bond:arm-uwp=fail bond:x64-osx=fail bond:x64-uwp=fail -boost-coroutine:arm-uwp=fail -boost-coroutine:arm64-windows=fail -boost-fiber:arm-uwp=fail -boost-fiber:arm64-windows=fail -boost-fiber:x64-osx=fail -boost-fiber:x64-uwp=fail -boost-filesystem:arm-uwp=fail -boost-filesystem:x64-uwp=fail -boost-iostreams:arm-uwp=fail -boost-iostreams:x64-uwp=fail -boost-locale:arm-uwp=fail -boost-locale:x64-uwp=fail -boost-log:arm-uwp=fail -boost-log:x64-uwp=fail -boost-stacktrace:arm-uwp=fail -boost-stacktrace:x64-uwp=fail -boost-test:arm-uwp=fail -boost-test:x64-uwp=fail -boost-wave:arm-uwp=fail -boost-wave:x64-uwp=fail botan:arm64-windows=fail botan:arm-uwp=fail botan:x64-uwp=fail @@ -450,6 +432,8 @@ freeglut:arm64-windows=fail freeglut:arm-uwp=fail freeglut:x64-uwp=fail freeglut:x64-osx=fail +# Needs /bigobj +freeopcua:arm64-windows=fail freetds:arm-uwp=fail freetds:x64-linux=fail freetds:x64-osx=fail -- cgit v1.2.3