1{ 2 lib, 3 stdenv, 4 swift, 5 swiftpm, 6 swiftPackages, 7}: 8 9swiftPackages.stdenv.mkDerivation (finalAttrs: { 10 name = "swift-cxx-interop-test"; 11 12 src = ./src; 13 14 nativeBuildInputs = [ 15 swift 16 swiftpm 17 ]; 18 19 installPhase = '' 20 runHook preInstall 21 22 binPath="$(swiftpmBinPath)" 23 mkdir -p -- "$out/bin" 24 cp -- "$binPath/${finalAttrs.meta.mainProgram}" "$out/bin" 25 26 runHook postInstall 27 ''; 28 29 installCheckPhase = '' 30 runHook preInstallCheck 31 32 "$out/bin/${finalAttrs.meta.mainProgram}" | grep 'Hello, world!' 33 34 runHook postInstallCheck 35 ''; 36 37 doInstallCheck = true; 38 39 env = { 40 # Gross hack copied from `protoc-gen-swift` :( 41 LD_LIBRARY_PATH = lib.optionalString stdenv.hostPlatform.isLinux ( 42 lib.makeLibraryPath [ 43 swiftPackages.Dispatch 44 ] 45 ); 46 }; 47 48 meta = { 49 inherit (swift.meta) 50 team 51 platforms 52 badPlatforms 53 ; 54 license = lib.licenses.mit; 55 mainProgram = "CxxInteropTest"; 56 }; 57})