Skip to content

Commit ae1f4ca

Browse files
committed
utils: split Build-Foundation into Build- and Test- function
Split up the test routines from the build routines. This is motivated by the desire to simplify (remove logic flow) and to help get more accurate timing data.
1 parent 789bd1f commit ae1f4ca

File tree

1 file changed

+58
-66
lines changed

1 file changed

+58
-66
lines changed

utils/build.ps1

+58-66
Original file line numberDiff line numberDiff line change
@@ -2317,72 +2317,68 @@ function Build-Foundation {
23172317
[Platform] $Platform,
23182318
[Parameter(Position = 1, Mandatory = $true)]
23192319
[hashtable] $Arch,
2320-
[switch] $Static = $false,
2321-
[switch] $Test = $false
2320+
[switch] $Static = $false
23222321
)
23232322

2324-
if ($Test) {
2325-
# Foundation tests build via swiftpm rather than CMake
2326-
Build-SPMProject `
2327-
-Action Test `
2328-
-Src $SourceCache\swift-foundation `
2329-
-Bin "$BinaryCache\$($Arch.LLVMTarget)\CoreFoundationTests" `
2330-
-Arch $HostArch `
2331-
-Configuration $FoundationTestConfiguration
2332-
2333-
$ShortArch = $Arch.LLVMName
2334-
Invoke-IsolatingEnvVars {
2335-
$env:DISPATCH_INCLUDE_PATH="$(Get-SwiftSDK $Platform)/usr/include"
2336-
$env:LIBXML_LIBRARY_PATH="$LibraryRoot/libxml2-2.11.5/usr/lib/$Platform/$ShortArch"
2337-
$env:LIBXML_INCLUDE_PATH="$LibraryRoot/libxml2-2.11.5/usr/include/libxml2"
2338-
$env:ZLIB_LIBRARY_PATH="$LibraryRoot/zlib-1.3.1/usr/lib/$Platform/$ShortArch"
2339-
$env:CURL_LIBRARY_PATH="$LibraryRoot/curl-8.9.1/usr/lib/$Platform/$ShortArch"
2340-
$env:CURL_INCLUDE_PATH="$LibraryRoot/curl-8.9.1/usr/include"
2341-
Build-SPMProject `
2342-
-Action Test `
2343-
-Src $SourceCache\swift-corelibs-foundation `
2344-
-Bin "$BinaryCache\$($Arch.LLVMTarget)\FoundationTests" `
2345-
-Arch $HostArch `
2346-
-Configuration $FoundationTestConfiguration
2347-
}
2323+
$FoundationBinaryCache = if ($Static) {
2324+
Get-ProjectBinaryCache $Arch StaticFoundation
23482325
} else {
2349-
$FoundationBinaryCache = if ($Static) {
2350-
Get-ProjectBinaryCache $Arch StaticFoundation
2351-
} else {
2352-
Get-ProjectBinaryCache $Arch DynamicFoundation
2326+
Get-ProjectBinaryCache $Arch DynamicFoundation
2327+
}
2328+
2329+
Build-CMakeProject `
2330+
-Src $SourceCache\swift-corelibs-foundation `
2331+
-Bin $FoundationBinaryCache `
2332+
-InstallTo $(if ($Static) { "$(Get-SwiftSDK $Platform -Identifier "${Platform}Experimental")\usr" } else { "$(Get-SwiftSDK $Platform)\usr" }) `
2333+
-Arch $Arch `
2334+
-Platform $Platform `
2335+
-UseBuiltCompilers ASM,C,CXX,Swift `
2336+
-SwiftSDK (Get-SwiftSDK $Platform) `
2337+
-Defines @{
2338+
BUILD_SHARED_LIBS = if ($Static) { "NO" } else { "YES" };
2339+
CMAKE_FIND_PACKAGE_PREFER_CONFIG = "YES";
2340+
CMAKE_NINJA_FORCE_RESPONSE_FILE = "YES";
2341+
CMAKE_STATIC_LIBRARY_PREFIX_Swift = "lib";
2342+
ENABLE_TESTING = "NO";
2343+
FOUNDATION_BUILD_TOOLS = if ($Platform -eq "Windows") { "YES" } else { "NO" };
2344+
CURL_DIR = "$LibraryRoot\curl-8.9.1\usr\lib\$Platform\$($Arch.LLVMName)\cmake\CURL";
2345+
LibXml2_DIR = "$LibraryRoot\libxml2-2.11.5\usr\lib\$Platform\$($Arch.LLVMName)\cmake\libxml2-2.11.5";
2346+
ZLIB_LIBRARY = if ($Platform -eq "Windows") {
2347+
"$LibraryRoot\zlib-1.3.1\usr\lib\$Platform\$($Arch.LLVMName)\zlibstatic.lib"
2348+
} else {
2349+
"$LibraryRoot\zlib-1.3.1\usr\lib\$Platform\$($Arch.LLVMName)\libz.a"
2350+
};
2351+
ZLIB_INCLUDE_DIR = "$LibraryRoot\zlib-1.3.1\usr\include";
2352+
dispatch_DIR = (Get-ProjectCMakeModules $Arch Dispatch);
2353+
SwiftSyntax_DIR = (Get-ProjectBinaryCache $HostArch Compilers);
2354+
_SwiftFoundation_SourceDIR = "$SourceCache\swift-foundation";
2355+
_SwiftFoundationICU_SourceDIR = "$SourceCache\swift-foundation-icu";
2356+
_SwiftCollections_SourceDIR = "$SourceCache\swift-collections";
2357+
SwiftFoundation_MACRO = "$(Get-ProjectBinaryCache $BuildArch FoundationMacros)\bin"
23532358
}
2354-
$ShortArch = $Arch.LLVMName
2359+
}
23552360

2356-
Build-CMakeProject `
2361+
function Test-Foundation {
2362+
# Foundation tests build via swiftpm rather than CMake
2363+
Build-SPMProject `
2364+
-Action Test `
2365+
-Src $SourceCache\swift-foundation `
2366+
-Bin "$BinaryCache\$($BuildArch.LLVMTarget)\CoreFoundationTests" `
2367+
-Arch $BuildArch
2368+
2369+
Invoke-IsolatingEnvVars {
2370+
$env:DISPATCH_INCLUDE_PATH="$(Get-SwiftSDK Windows)/usr/include"
2371+
$env:LIBXML_LIBRARY_PATH="$LibraryRoot/libxml2-2.11.5/usr/lib/windows/$($BuildArch.LLVMName)"
2372+
$env:LIBXML_INCLUDE_PATH="$LibraryRoot/libxml2-2.11.5/usr/include/libxml2"
2373+
$env:ZLIB_LIBRARY_PATH="$LibraryRoot/zlib-1.3.1/usr/lib/windows/$($BuildArch.LLVMName)"
2374+
$env:CURL_LIBRARY_PATH="$LibraryRoot/curl-8.9.1/usr/lib/windows/$($BuildArch.LLVMName)"
2375+
$env:CURL_INCLUDE_PATH="$LibraryRoot/curl-8.9.1/usr/include"
2376+
Build-SPMProject `
2377+
-Action Test `
23572378
-Src $SourceCache\swift-corelibs-foundation `
2358-
-Bin $FoundationBinaryCache `
2359-
-InstallTo $(if ($Static) { "$(Get-SwiftSDK $Platform -Identifier "${Platform}Experimental")\usr" } else { "$(Get-SwiftSDK $Platform)\usr" }) `
2360-
-Arch $Arch `
2361-
-Platform $Platform `
2362-
-UseBuiltCompilers ASM,C,CXX,Swift `
2363-
-SwiftSDK (Get-SwiftSDK $Platform) `
2364-
-Defines @{
2365-
BUILD_SHARED_LIBS = if ($Static) { "NO" } else { "YES" };
2366-
CMAKE_FIND_PACKAGE_PREFER_CONFIG = "YES";
2367-
CMAKE_NINJA_FORCE_RESPONSE_FILE = "YES";
2368-
CMAKE_STATIC_LIBRARY_PREFIX_Swift = "lib";
2369-
ENABLE_TESTING = "NO";
2370-
FOUNDATION_BUILD_TOOLS = if ($Platform -eq "Windows") { "YES" } else { "NO" };
2371-
CURL_DIR = "$LibraryRoot\curl-8.9.1\usr\lib\$Platform\$ShortArch\cmake\CURL";
2372-
LibXml2_DIR = "$LibraryRoot\libxml2-2.11.5\usr\lib\$Platform\$ShortArch\cmake\libxml2-2.11.5";
2373-
ZLIB_LIBRARY = if ($Platform -eq "Windows") {
2374-
"$LibraryRoot\zlib-1.3.1\usr\lib\$Platform\$ShortArch\zlibstatic.lib"
2375-
} else {
2376-
"$LibraryRoot\zlib-1.3.1\usr\lib\$Platform\$ShortArch\libz.a"
2377-
};
2378-
ZLIB_INCLUDE_DIR = "$LibraryRoot\zlib-1.3.1\usr\include";
2379-
dispatch_DIR = (Get-ProjectCMakeModules $Arch Dispatch);
2380-
SwiftSyntax_DIR = (Get-ProjectBinaryCache $HostArch Compilers);
2381-
_SwiftFoundation_SourceDIR = "$SourceCache\swift-foundation";
2382-
_SwiftFoundationICU_SourceDIR = "$SourceCache\swift-foundation-icu";
2383-
_SwiftCollections_SourceDIR = "$SourceCache\swift-collections";
2384-
SwiftFoundation_MACRO = "$(Get-ProjectBinaryCache $BuildArch FoundationMacros)\bin"
2385-
}
2379+
-Bin "$BinaryCache\$($BuildArch.LLVMTarget)\FoundationTests" `
2380+
-Arch $BuildArch `
2381+
-Configuration $FoundationTestConfiguration
23862382
}
23872383
}
23882384

@@ -3294,12 +3290,8 @@ if (-not $IsCrossCompiling) {
32943290
if ($Test -contains "dispatch") {
32953291
Build-Dispatch Windows $HostArch -Test
32963292
}
3297-
if ($Test -contains "foundation") {
3298-
Build-Foundation Windows $HostArch -Test
3299-
}
3300-
if ($Test -contains "xctest") {
3301-
Test-XCTest
3302-
}
3293+
if ($Test -contains "foundation") { Test-Foundation }
3294+
if ($Test -contains "xctest") { Test-XCTest }
33033295
if ($Test -contains "testing") { Test-Testing }
33043296
if ($Test -contains "llbuild") { Test-LLBuild }
33053297
if ($Test -contains "swiftpm") { Test-PackageManager }

0 commit comments

Comments
 (0)