Merge nucleic/fuzzy-spruce-dingo-vpaa into dev
This commit is contained in:
@@ -170,11 +170,6 @@ function Invoke-Swift([string[]]$SwiftArgs, [hashtable]$Sql) {
|
|||||||
# carries the prefix — it is global, so it also downgrades any FUTURE duplicate to a
|
# carries the prefix — it is global, so it also downgrades any FUTURE duplicate to a
|
||||||
# warning. Read the warnings.
|
# warning. Read the warnings.
|
||||||
$full = @($SwiftArgs) + @(
|
$full = @($SwiftArgs) + @(
|
||||||
# Index-while-building costs real per-file work (`-index-store-path` +
|
|
||||||
# `-index-system-modules` on every frontend job) and nothing consumes the store from a
|
|
||||||
# command-line build — it exists for editors. Off here; CI leaves it at the default,
|
|
||||||
# where a cold index nothing reads costs nothing either way.
|
|
||||||
'--disable-index-store',
|
|
||||||
'-Xcc', "-I$($Sql.Include)",
|
'-Xcc', "-I$($Sql.Include)",
|
||||||
# `/LIBPATH:`, NOT `-LIBPATH:`. A leading `-L` is claimed by the driver's GNU-style
|
# `/LIBPATH:`, NOT `-LIBPATH:`. A leading `-L` is claimed by the driver's GNU-style
|
||||||
# library-path flag, so `-LIBPATH:C:\…\lib` is read as `-L` + `IBPATH:C:\…\lib` and
|
# library-path flag, so `-LIBPATH:C:\…\lib` is read as `-L` + `IBPATH:C:\…\lib` and
|
||||||
@@ -196,7 +191,13 @@ function Build-Protocol([hashtable]$sql) {
|
|||||||
try {
|
try {
|
||||||
Write-Step 'protocol: building NucleicProtocol'
|
Write-Step 'protocol: building NucleicProtocol'
|
||||||
$code = if ($Test) {
|
$code = if ($Test) {
|
||||||
Invoke-Swift @('test', '--filter', 'NucleicProtocolTests') $sql
|
# SwiftPM 6.3.3 on Windows still schedules index units for test discovery even with
|
||||||
|
# `--disable-index-store`, then a clean build dies opening units it never emitted.
|
||||||
|
# With indexing enabled, parallel frontends contend for shared SDK/module unit files
|
||||||
|
# and Windows reports sharing violations as "permission denied". Serialize test
|
||||||
|
# builds until SwiftPM fixes that pair of index-store bugs; ordinary builds stay
|
||||||
|
# parallel.
|
||||||
|
Invoke-Swift @('test', '-j', '1', '--filter', 'NucleicProtocolTests') $sql
|
||||||
} else {
|
} else {
|
||||||
Invoke-Swift @('build', '--target', 'NucleicProtocol') $sql
|
Invoke-Swift @('build', '--target', 'NucleicProtocol') $sql
|
||||||
}
|
}
|
||||||
@@ -222,7 +223,10 @@ function Build-Core([hashtable]$sql) {
|
|||||||
Remove-Item Env:\NUCLEIC_WINDOWS_PROTOCOL_ONLY
|
Remove-Item Env:\NUCLEIC_WINDOWS_PROTOCOL_ONLY
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
if ($Test) { return Invoke-Swift @('test', '--filter', 'NucleicCarbonTests') $sql }
|
if ($Test) {
|
||||||
|
# See Build-Protocol: clean Windows test builds require indexing + one frontend job.
|
||||||
|
return Invoke-Swift @('test', '-j', '1', '--filter', 'NucleicCarbonTests') $sql
|
||||||
|
}
|
||||||
return Invoke-Swift @('build', '--target', 'NucleicCore') $sql
|
return Invoke-Swift @('build', '--target', 'NucleicCore') $sql
|
||||||
} finally {
|
} finally {
|
||||||
if ($inherited) { $env:NUCLEIC_WINDOWS_PROTOCOL_ONLY = $inherited }
|
if ($inherited) { $env:NUCLEIC_WINDOWS_PROTOCOL_ONLY = $inherited }
|
||||||
|
|||||||
Reference in New Issue
Block a user