mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
We currently hit the following errors when attempting to link unit tests:
```
Undefined symbols for architecture arm64:
"swift::ConstExprEvaluator::ConstExprEvaluator(swift::SymbolicValueAllocator&, unsigned int, bool)", referenced from:
BridgedConstExprFunctionState::create() in libswiftSIL.a[63](SILBridging.cpp.o)
"swift::ConstExprEvaluator::~ConstExprEvaluator()", referenced from:
BridgedConstExprFunctionState::deinitialize() in libswiftSIL.a[63](SILBridging.cpp.o)
"swift::ConstExprFunctionState::getConstantValue(swift::SILValue)", referenced from:
BridgedConstExprFunctionState::isConstantValue(BridgedValue) in libswiftSIL.a[63](SILBridging.cpp.o)
"swift::ConstExprFunctionState::ConstExprFunctionState(swift::ConstExprEvaluator&, swift::SILFunction*, swift::SubstitutionMap, unsigned int&, bool)", referenced from:
BridgedConstExprFunctionState::create() in libswiftSIL.a[63](SILBridging.cpp.o)
```
There is an implicit cyclic dependency here between `libswiftSIL` and `libswiftSILOptimizer`, which is okay to have at link time as long as these are static archives and as long as respective archives are specified explicitly on the linker invocation. This change achives that.
Resolves rdar://150944677
24 lines
671 B
CMake
24 lines
671 B
CMake
add_swift_host_library(swiftSIL STATIC
|
|
SIL.cpp)
|
|
target_link_libraries(swiftSIL PUBLIC
|
|
swiftDemangling)
|
|
target_link_libraries(swiftSIL PRIVATE
|
|
swiftAST
|
|
swiftClangImporter
|
|
swiftSema
|
|
swiftSerialization
|
|
swiftSILOptimizer)
|
|
|
|
add_subdirectory(IR)
|
|
add_subdirectory(Utils)
|
|
add_subdirectory(Verifier)
|
|
add_subdirectory(Parser)
|
|
|
|
# intrinsics_gen is the LLVM tablegen target that generates the include files
|
|
# where intrinsics and attributes are declared. swiftSIL depends on these
|
|
# headers.
|
|
# For more information see the comment at the top of lib/CMakeLists.txt.
|
|
add_dependencies(swiftSIL intrinsics_gen clang-tablegen-targets)
|
|
|
|
set_swift_llvm_is_available(swiftSIL)
|