Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.4 kB · 86 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687{ lib, stdenv, callPackage, fetchpatch, pkg-config, swift, swiftpm, swiftpm2nix, Foundation, XCTest, sqlite, ncurses,}:let sources = callPackage ../sources.nix { }; generated = swiftpm2nix.helpers ./generated;
# On Darwin, we only want ncurses in the linker search path, because headers # are part of libsystem. Adding its headers to the search path causes strange # mixing and errors. # TODO: Find a better way to prevent this conflict. ncursesInput = if stdenv.hostPlatform.isDarwin then ncurses.out else ncurses;instdenv.mkDerivation { pname = "sourcekit-lsp";
inherit (sources) version; src = sources.sourcekit-lsp;
nativeBuildInputs = [ pkg-config swift swiftpm ]; buildInputs = [ Foundation XCTest sqlite ncursesInput ];
configurePhase = generated.configure + '' swiftpmMakeMutable indexstore-db patch -p1 -d .build/checkouts/indexstore-db -i ${./patches/indexstore-db-macos-target.patch}
swiftpmMakeMutable swift-tools-support-core patch -p1 -d .build/checkouts/swift-tools-support-core -i ${ fetchpatch { url = "https://github.com/apple/swift-tools-support-core/commit/990afca47e75cce136d2f59e464577e68a164035.patch"; hash = "sha256-PLzWsp+syiUBHhEFS8+WyUcSae5p0Lhk7SSRdNvfouE="; includes = [ "Sources/TSCBasic/FileSystem.swift" ]; } }
# This toggles a section specific to Xcode XCTest, which doesn't work on # Darwin, where we also use swift-corelibs-xctest. substituteInPlace Sources/LSPTestSupport/PerfTestCase.swift \ --replace '#if os(macOS)' '#if false'
# Required to link with swift-corelibs-xctest on Darwin. export SWIFTTSC_MACOS_DEPLOYMENT_TARGET=10.12 '';
# TODO: BuildServerBuildSystemTests fails #doCheck = true;
installPhase = '' binPath="$(swiftpmBinPath)" mkdir -p $out/bin cp $binPath/sourcekit-lsp $out/bin/ '';
# Canary to verify output of our Swift toolchain does not depend on the Swift # compiler itself. (Only its 'lib' output.) disallowedRequisites = [ swift.swift ];
meta = { description = "Language Server Protocol implementation for Swift and C-based languages"; mainProgram = "sourcekit-lsp"; homepage = "https://github.com/apple/sourcekit-lsp"; platforms = with lib.platforms; linux ++ darwin; license = lib.licenses.asl20; teams = [ lib.teams.swift ]; };}