at master 3.8 kB view raw
1# SwiftPM dependencies are normally not installed using CMake, and only provide 2# CMake modules to link them together in a build tree. We have separate 3# derivations, so need a real install step. Here we provide our own minimal 4# CMake modules to install along with the build products. 5{ 6 lib, 7 stdenv, 8 swift, 9}: 10let 11 12 inherit (stdenv.hostPlatform) extensions; 13 14 # This file exports shell snippets for use in postInstall. 15 mkInstallScript = module: template: '' 16 mkdir -p $out/lib/cmake/${module} 17 ( 18 export staticLibExt="${extensions.staticLibrary}" 19 export sharedLibExt="${extensions.sharedLibrary}" 20 export swiftOs="${swift.swiftOs}" 21 substituteAll \ 22 ${builtins.toFile "${module}Config.cmake" template} \ 23 $out/lib/cmake/${module}/${module}Config.cmake 24 ) 25 ''; 26 27in 28lib.mapAttrs mkInstallScript { 29 SwiftSystem = '' 30 add_library(SwiftSystem::SystemPackage STATIC IMPORTED) 31 set_property(TARGET SwiftSystem::SystemPackage PROPERTY IMPORTED_LOCATION "@out@/lib/swift_static/@swiftOs@/libSystemPackage@staticLibExt@") 32 ''; 33 34 SwiftCollections = '' 35 add_library(SwiftCollections::Collections STATIC IMPORTED) 36 set_property(TARGET SwiftCollections::Collections PROPERTY IMPORTED_LOCATION "@out@/lib/swift_static/@swiftOs@/libCollections@staticLibExt@") 37 38 add_library(SwiftCollections::DequeModule STATIC IMPORTED) 39 set_property(TARGET SwiftCollections::DequeModule PROPERTY IMPORTED_LOCATION "@out@/lib/swift_static/@swiftOs@/libDequeModule@staticLibExt@") 40 41 add_library(SwiftCollections::OrderedCollections STATIC IMPORTED) 42 set_property(TARGET SwiftCollections::OrderedCollections PROPERTY IMPORTED_LOCATION "@out@/lib/swift_static/@swiftOs@/libOrderedCollections@staticLibExt@") 43 ''; 44 45 TSC = '' 46 add_library(TSCLibc SHARED IMPORTED) 47 set_property(TARGET TSCLibc PROPERTY IMPORTED_LOCATION "@out@/lib/libTSCLibc@sharedLibExt@") 48 49 add_library(TSCBasic SHARED IMPORTED) 50 set_property(TARGET TSCBasic PROPERTY IMPORTED_LOCATION "@out@/lib/libTSCBasic@sharedLibExt@") 51 52 add_library(TSCUtility SHARED IMPORTED) 53 set_property(TARGET TSCUtility PROPERTY IMPORTED_LOCATION "@out@/lib/libTSCUtility@sharedLibExt@") 54 ''; 55 56 ArgumentParser = '' 57 add_library(ArgumentParser SHARED IMPORTED) 58 set_property(TARGET ArgumentParser PROPERTY IMPORTED_LOCATION "@out@/lib/swift/@swiftOs@/libArgumentParser@sharedLibExt@") 59 60 add_library(ArgumentParserToolInfo SHARED IMPORTED) 61 set_property(TARGET ArgumentParserToolInfo PROPERTY IMPORTED_LOCATION "@out@/lib/swift/@swiftOs@/libArgumentParserToolInfo@sharedLibExt@") 62 ''; 63 64 Yams = '' 65 add_library(Yams SHARED IMPORTED) 66 set_property(TARGET Yams PROPERTY IMPORTED_LOCATION "@out@/lib/swift/@swiftOs@/libYams@sharedLibExt@") 67 ''; 68 69 LLBuild = '' 70 add_library(libllbuild SHARED IMPORTED) 71 set_property(TARGET libllbuild PROPERTY IMPORTED_LOCATION "@out@/lib/libllbuild@sharedLibExt@") 72 73 add_library(llbuildSwift SHARED IMPORTED) 74 set_property(TARGET llbuildSwift PROPERTY IMPORTED_LOCATION "@out@/lib/swift/pm/llbuild/libllbuildSwift@sharedLibExt@") 75 ''; 76 77 SwiftDriver = '' 78 add_library(SwiftDriver SHARED IMPORTED) 79 set_property(TARGET SwiftDriver PROPERTY IMPORTED_LOCATION "@out@/lib/libSwiftDriver@sharedLibExt@") 80 81 add_library(SwiftDriverExecution SHARED IMPORTED) 82 set_property(TARGET SwiftDriverExecution PROPERTY IMPORTED_LOCATION "@out@/lib/libSwiftDriverExecution@sharedLibExt@") 83 84 add_library(SwiftOptions SHARED IMPORTED) 85 set_property(TARGET SwiftOptions PROPERTY IMPORTED_LOCATION "@out@/lib/libSwiftOptions@sharedLibExt@") 86 ''; 87 88 SwiftCrypto = '' 89 add_library(Crypto SHARED IMPORTED) 90 set_property(TARGET Crypto PROPERTY IMPORTED_LOCATION "@out@/lib/swift/@swiftOs@/libCrypto@sharedLibExt@") 91 ''; 92}