Build Information
Failed to build MicroMaxOnAppleSilicon, reference v2.1.0 (5a1eef
), with Swift 6.1 for Linux on 29 Apr 2025 16:08:57 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.61.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/mesqueeb/MicroMaxOnAppleSilicon.git
Reference: v2.1.0
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/mesqueeb/MicroMaxOnAppleSilicon
* tag v2.1.0 -> FETCH_HEAD
HEAD is now at 5a1eefc 2.1.0
Cloned https://github.com/mesqueeb/MicroMaxOnAppleSilicon.git
Revision (git rev-parse @):
5a1eefc97dc6d17c9d1be6fc2bf7190a912a1e7e
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/mesqueeb/MicroMaxOnAppleSilicon.git at v2.1.0
========================================
Build
========================================
Selected platform: linux
Swift version: 6.1
Building package at path: $PWD
https://github.com/mesqueeb/MicroMaxOnAppleSilicon.git
https://github.com/mesqueeb/MicroMaxOnAppleSilicon.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"c_language_standard" : "gnu17",
"cxx_language_standard" : "c++20",
"dependencies" : [
{
"identity" : "asyncify",
"requirement" : {
"range" : [
{
"lower_bound" : "0.0.9",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/mesqueeb/Asyncify"
}
],
"manifest_display_name" : "MicroMaxOnAppleSilicon",
"name" : "MicroMaxOnAppleSilicon",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "14.0"
},
{
"name" : "macos",
"version" : "11.0"
}
],
"products" : [
{
"name" : "MicroMaxOnAppleSilicon",
"targets" : [
"MicroMaxCBridge",
"MicroMaxCppBridge",
"MicroMaxObjCBridge",
"MicroMaxOnAppleSilicon"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "MicroMaxOnAppleSiliconTests",
"module_type" : "SwiftTarget",
"name" : "MicroMaxOnAppleSiliconTests",
"path" : "MicroMaxOnAppleSilicon/Tests",
"sources" : [
"MicroMaxOnAppleSiliconTests.swift"
],
"target_dependencies" : [
"MicroMaxCBridge",
"MicroMaxCppBridge",
"MicroMaxObjCBridge",
"MicroMaxOnAppleSilicon"
],
"type" : "test"
},
{
"c99name" : "MicroMaxOnAppleSilicon",
"module_type" : "SwiftTarget",
"name" : "MicroMaxOnAppleSilicon",
"path" : "MicroMaxOnAppleSilicon/Sources/SwiftBridge",
"product_dependencies" : [
"Asyncify"
],
"product_memberships" : [
"MicroMaxOnAppleSilicon"
],
"sources" : [
"Helpers.swift",
"MicroMaxBridge.swift",
"Types.swift"
],
"target_dependencies" : [
"MicroMaxObjCBridge"
],
"type" : "library"
},
{
"c99name" : "MicroMaxObjCBridge",
"module_type" : "ClangTarget",
"name" : "MicroMaxObjCBridge",
"path" : "MicroMaxOnAppleSilicon/Sources/ObjCBridge",
"product_memberships" : [
"MicroMaxOnAppleSilicon"
],
"resources" : [
{
"path" : "/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/ObjCBridge/Resources/fmax.ini",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"EngineContext.m",
"MicroMaxObjCBridge.mm"
],
"target_dependencies" : [
"MicroMaxCppBridge"
],
"type" : "library"
},
{
"c99name" : "MicroMaxCppBridge",
"module_type" : "ClangTarget",
"name" : "MicroMaxCppBridge",
"path" : "MicroMaxOnAppleSilicon/Sources/CppBridge",
"product_memberships" : [
"MicroMaxOnAppleSilicon"
],
"sources" : [
"AbstractAdapter.cpp",
"Bitboard/BBBook.cpp",
"Bitboard/BBitboard.cpp",
"Bitboard/BMovegen.cpp",
"Bitboard/BPosition.cpp",
"ChessCore.cpp",
"MicroMaxBridge.cpp",
"PThreadStaticLinker.cpp",
"ProtocolParser.cpp",
"Resources.cpp",
"UnixAdapter.cpp",
"UnixListener.cpp",
"VirtualBoard.cpp",
"WBProtocol.cpp",
"WBProtocolParser.cpp",
"engine.cpp",
"io.cpp"
],
"target_dependencies" : [
"MicroMaxCBridge"
],
"type" : "library"
},
{
"c99name" : "MicroMaxCBridge",
"module_type" : "ClangTarget",
"name" : "MicroMaxCBridge",
"path" : "MicroMaxOnAppleSilicon/Sources/CBridge",
"product_memberships" : [
"MicroMaxOnAppleSilicon"
],
"sources" : [
"EngineContext.c",
"Fairymax/Fairymax.c"
],
"type" : "library"
}
],
"tools_version" : "6.0"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Fetching https://github.com/mesqueeb/Asyncify
[1/143] Fetching asyncify
Fetched https://github.com/mesqueeb/Asyncify from cache (0.88s)
Computing version for https://github.com/mesqueeb/Asyncify
Computed https://github.com/mesqueeb/Asyncify at 0.0.9 (1.91s)
Creating working copy for https://github.com/mesqueeb/Asyncify
Working copy of https://github.com/mesqueeb/Asyncify resolved at 0.0.9
Building for debugging...
[0/26] Compiling MicroMaxCppBridge engine.cpp
[1/26] Copying fmax.ini
[1/26] Write sources
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:1:32: warning: pragma diagnostic expected option name (e.g. "-Wundef") [-Wunknown-pragmas]
1 | #pragma GCC diagnostic warning "-w"
| ^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:164:19: warning: operator '?:' has lower precedence than '|'; '|' will be evaluated first [-Wbitwise-conditional-parentheses]
164 | m=-P<l|R<5?d-2?-I:e:-P; /*** prune if > beta unconsidered:static eval */
| ~~~~~~~~^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:164:19: note: place parentheses around the '|' expression to silence this warning
164 | m=-P<l|R<5?d-2?-I:e:-P; /*** prune if > beta unconsidered:static eval */
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:164:19: note: place parentheses around the '?:' expression to evaluate it first
164 | m=-P<l|R<5?d-2?-I:e:-P; /*** prune if > beta unconsidered:static eval */
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:171:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
171 | W(r=o[++j]) /* loop over directions o[] */
| ~^~~~~~~
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:171:20: note: place parentheses around the assignment to silence this warning
171 | W(r=o[++j]) /* loop over directions o[] */
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:171:20: note: use '==' to turn this assignment into an equality comparison
171 | W(r=o[++j]) /* loop over directions o[] */
| ^
| ==
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:199:47: warning: operator '?:' has lower precedence than '|'; '|' will be evaluated first [-Wbitwise-conditional-parentheses]
199 | v-=w[p]>0|R<EG?0:20; /*** freeze K in mid-game ***/
| ~~~~~~~~~~~^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:199:47: note: place parentheses around the '|' expression to silence this warning
199 | v-=w[p]>0|R<EG?0:20; /*** freeze K in mid-game ***/
| ~~~~~~~~~~~^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:199:47: note: place parentheses around the '?:' expression to evaluate it first
199 | v-=w[p]>0|R<EG?0:20; /*** freeze K in mid-game ***/
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:204:40: warning: operator '>>' has lower precedence than '-'; '-' will be evaluated first [-Wshift-op-parentheses]
204 | +(R-76>>2); /* end-game Pawn-push bonus */
| ~^~~~~
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:204:40: note: place parentheses around the '-' expression to silence this warning
204 | +(R-76>>2); /* end-game Pawn-push bonus */
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:215:39: warning: | has lower precedence than <; < will be evaluated first [-Wparentheses]
215 | C=R<EG|P-I|d<3||t&&p-3?C:d; /* extend 1 ply if in-check */
| ~~~~^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:215:39: note: place parentheses around the '<' expression to silence this warning
215 | C=R<EG|P-I|d<3||t&&p-3?C:d; /* extend 1 ply if in-check */
| ~~~~^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:215:39: note: place parentheses around the | expression to evaluate it first
215 | C=R<EG|P-I|d<3||t&&p-3?C:d; /* extend 1 ply if in-check */
| ~~^~~~
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:217:46: warning: operator '?:' has lower precedence than '|'; '|' will be evaluated first [-Wbitwise-conditional-parentheses]
217 | s=C>2|v>V?-D(16-k,-l,-V,-v,/*** futility, recursive eval. of reply */
| ~~~~~~~^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:217:46: note: place parentheses around the '|' expression to silence this warning
217 | s=C>2|v>V?-D(16-k,-l,-V,-v,/*** futility, recursive eval. of reply */
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:217:46: note: place parentheses around the '?:' expression to evaluate it first
217 | s=C>2|v>V?-D(16-k,-l,-V,-v,/*** futility, recursive eval. of reply */
| ^
| (
218 | F,y&255,C):v;
|
| )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:222:44: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
222 | W(*sp++=*p++);
| ~~~~~^~~~~
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:222:44: note: place parentheses around the assignment to silence this warning
222 | W(*sp++=*p++);
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:222:44: note: use '==' to turn this assignment into an equality comparison
222 | W(*sp++=*p++);
| ^
| ==
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:232:46: warning: | has lower precedence than <; < will be evaluated first [-Wparentheses]
232 | Fifty = t|p<3?0:Fifty+1;
| ^~~~
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:232:46: note: place parentheses around the '<' expression to silence this warning
232 | Fifty = t|p<3?0:Fifty+1;
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:232:46: note: place parentheses around the | expression to evaluate it first
232 | Fifty = t|p<3?0:Fifty+1;
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:232:50: warning: operator '?:' has lower precedence than '|'; '|' will be evaluated first [-Wbitwise-conditional-parentheses]
232 | Fifty = t|p<3?0:Fifty+1;
| ~~~~~^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:232:50: note: place parentheses around the '|' expression to silence this warning
232 | Fifty = t|p<3?0:Fifty+1;
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:232:50: note: place parentheses around the '?:' expression to evaluate it first
232 | Fifty = t|p<3?0:Fifty+1;
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:241:41: warning: & has lower precedence than ==; == will be evaluated first [-Wparentheses]
241 | if(z&S&&Post&K==I&d>2&v>V&v<l){int *p=ps;char X,Y;
| ^~~~~
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:241:41: note: place parentheses around the '==' expression to silence this warning
241 | if(z&S&&Post&K==I&d>2&v>V&v<l){int *p=ps;char X,Y;
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:241:41: note: place parentheses around the & expression to evaluate it first
241 | if(z&S&&Post&K==I&d>2&v>V&v<l){int *p=ps;char X,Y;
| ^
| ( )
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:267:18: warning: | has lower precedence than ==; == will be evaluated first [-Wparentheses]
267 | C:FMAX( m=m+I|P==I?m:(X=Y=0); ) /* if stalemate, draw-score */
| ^~~~~
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:69:21: note: expanded from macro 'FMAX'
69 | # define FMAX(x) x
| ^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:267:18: note: place parentheses around the '==' expression to silence this warning
267 | C:FMAX( m=m+I|P==I?m:(X=Y=0); ) /* if stalemate, draw-score */
| ^~~~~
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:69:21: note: expanded from macro 'FMAX'
69 | # define FMAX(x) x
| ^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:267:18: note: place parentheses around the | expression to evaluate it first
267 | C:FMAX( m=m+I|P==I?m:(X=Y=0); ) /* if stalemate, draw-score */
| ~~~^~
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:69:21: note: expanded from macro 'FMAX'
69 | # define FMAX(x) x
| ^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:267:23: warning: operator '?:' has lower precedence than '|'; '|' will be evaluated first [-Wbitwise-conditional-parentheses]
267 | C:FMAX( m=m+I|P==I?m:(X=Y=0); ) /* if stalemate, draw-score */
| ~~~~~~~~^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:69:21: note: expanded from macro 'FMAX'
69 | # define FMAX(x) x
| ^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:267:23: note: place parentheses around the '|' expression to silence this warning
267 | C:FMAX( m=m+I|P==I?m:(X=Y=0); ) /* if stalemate, draw-score */
| ~~~~~~~~^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:69:21: note: expanded from macro 'FMAX'
69 | # define FMAX(x) x
| ^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:267:23: note: place parentheses around the '?:' expression to evaluate it first
267 | C:FMAX( m=m+I|P==I?m:(X=Y=0); ) /* if stalemate, draw-score */
| ~~~~^~~~~~~~~~
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:69:21: note: expanded from macro 'FMAX'
69 | # define FMAX(x) x
| ^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:145:5: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C23 [-Wdeprecated-non-prototype]
145 | int D(k,q,l,e,E,z,n) /* recursive minimax search, k=moving side, n=depth*/
| ^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:486:96: warning: '/*' within block comment [-Wcomment]
486 | /* printf("# c='%c' i=%d od[i]=%d j=%d (%3d,%8x)\n",c?c:' ',i,od[i],j,o[j-1],of[j-1]); /**/
| ^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:725:34: warning: operator '>>' has lower precedence than '+'; '+' will be evaluated first [-Wshift-op-parentheses]
725 | MovesLeft = -(GamePtr+(Side==WHITE)>>1);
| ~~~~~~~^~~~~~~~~~~~~~~~
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CBridge/Fairymax/Fairymax.c:725:34: note: place parentheses around the '+' expression to silence this warning
725 | MovesLeft = -(GamePtr+(Side==WHITE)>>1);
| ^
| ( )
16 warnings generated.
[3/26] Compiling Fairymax.c
[4/26] Compiling MicroMaxCppBridge UnixListener.cpp
In file included from <built-in>:1:
/host/spi-builder-workspace/.build/x86_64-unknown-linux-gnu/debug/MicroMaxObjCBridge.build/DerivedSources/resource_bundle_accessor.h:2:9: fatal error: 'Foundation/Foundation.h' file not found
2 | #import <Foundation/Foundation.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
[5/26] Compiling MicroMaxObjCBridge resource_bundle_accessor.m
[5/26] Compiling MicroMaxCppBridge io.cpp
[5/26] Compiling MicroMaxCppBridge VirtualBoard.cpp
[5/26] Compiling MicroMaxCppBridge WBProtocol.cpp
[5/26] Compiling MicroMaxCppBridge WBProtocolParser.cpp
[5/26] Compiling BBitboard.cpp
[5/26] Compiling MicroMaxCppBridge AbstractAdapter.cpp
[5/26] Write swift-version-24593BA9C3E375BF.txt
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
[0/1] Planning build
Building for debugging...
[0/21] Compiling MicroMaxCppBridge UnixAdapter.cpp
In file included from /host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CppBridge/VirtualBoard.cpp:2:
In file included from /host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CppBridge/VirtualBoard.hpp:4:
In file included from /host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CppBridge/VirtualResponder.hpp:4:
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CppBridge/Core.hpp:31:40: error: no template named 'vector' in namespace 'std'
31 | virtual void getMoves(std::vector<VirtualMove>&, bool extended = false) const {}
| ~~~~~^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CppBridge/Core.hpp:35:40: error: no template named 'vector' in namespace 'std'
35 | std::vector<VirtualMove> &,
| ~~~~~^
In file included from /host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CppBridge/VirtualBoard.cpp:2:
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CppBridge/VirtualBoard.hpp:21:26: error: no template named 'shared_ptr' in namespace 'std'
21 | virtual std::shared_ptr<Core> copy() const;
| ~~~~~^
/host/spi-builder-workspace/MicroMaxOnAppleSilicon/Sources/CppBridge/VirtualBoard.cpp:18:6: error: no template named 'shared_ptr' in namespace 'std'
18 | std::shared_ptr<Core> VirtualBoard::copy() const
| ~~~~~^
4 errors generated.
[1/21] Compiling MicroMaxCppBridge VirtualBoard.cpp
In file included from <built-in>:1:
/host/spi-builder-workspace/.build/x86_64-unknown-linux-gnu/debug/MicroMaxObjCBridge.build/DerivedSources/resource_bundle_accessor.h:2:9: fatal error: 'Foundation/Foundation.h' file not found
2 | #import <Foundation/Foundation.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
[1/21] Compiling MicroMaxObjCBridge resource_bundle_accessor.m
[1/21] Compiling MicroMaxCppBridge Resources.cpp
[1/21] Compiling MicroMaxCppBridge WBProtocol.cpp
[1/21] Compiling MicroMaxCppBridge WBProtocolParser.cpp
[1/21] Compiling MicroMaxCppBridge io.cpp
[1/21] Write swift-version-24593BA9C3E375BF.txt
[1/21] Compiling MicroMaxCppBridge ProtocolParser.cpp
BUILD FAILURE 6.1 linux