필자는 아마도 늦어도 Linux에서 라이브러리가 빌드되지 않는 이유를 설명 할 수 있습니다. 당신이 언급 라이브러리를 포함
주요 하위 디렉토리는 다음과 같습니다
https://github.com/apple/swift/tree/master/lib
이 하위 디렉토리에 구성되어 그 디렉토리에있는 libs와 빌드하려면, 다음 CMakeLists.txt
가 사용됩니다
https://github.com/apple/swift/blob/master/lib/CMakeLists.txt
.
이 파일에서 분명히 알 수 있듯이 시스템이 OSX/Darwin이고 Linux가 아닌 경우에만 언급 된 라이브러리가 빌드됩니다. 상기 CMakeLists.txt
에서 관련 코드는 다음과 같습니다
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
add_subdirectory(SwiftDemangle)
endif()
리눅스에 건설 될
SwiftDemangle
방지
add_subdirectory(RemoteAST)
add_subdirectory(Sema)
add_subdirectory(Serialization)
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
add_subdirectory(SwiftDemangle)
endif()
add_subdirectory(SIL)
add_subdirectory(SILGen)
당신이 그것을 볼 수 있듯이. 설치하거나 단지 *.dylib
파일을 simlynk합니다
https://github.com/apple/swift/blob/master/lib/SwiftDemangle/CMakeLists.txt
:
피상적 이중 검사가보고 될 수 있습니다.
그것은 (당신이 묻는 것과 다른)을 swift-demangle
도구
https://github.com/apple/swift/tree/master/tools/swift-demangle
가 리눅스를 기반으로 언급 할 가치가.
'add_swift_library'의 정의를 살펴보십시오. 아마도 여러분에게 몇 가지 실마리를 줄 것입니다. – arrowd
그러나 라이브러리는 생성되지 않습니다. "- 이것은 무엇을 의미합니까? 빌드 프로세스의 출력에 라이브러리가 빌드 된 것으로 표시되지 않습니까? 아니면 그냥 .dylib 파일을 찾을 수 없습니까? – Tsyvarev
@ goodd 좋은 아이디어, 그러나 나는 기능에서 길을 잃었다 - 그것은 거대하다! './cmake/modules/AddSwift.cmake' – agoldis