ff1a94e523
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
72 lines
2.2 KiB
Nix
72 lines
2.2 KiB
Nix
# TODO: We already package the CoreFoundation component of Foundation in:
|
|
# pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix
|
|
# This is separate because the CF build is completely different and part of
|
|
# stdenv. Merging the two was kept outside of the scope of Swift work.
|
|
|
|
{ lib
|
|
, stdenv
|
|
, fetchpatch
|
|
, callPackage
|
|
, cmake
|
|
, ninja
|
|
, swift
|
|
, Dispatch
|
|
, icu
|
|
, libxml2
|
|
, curl
|
|
}:
|
|
|
|
let
|
|
sources = callPackage ../sources.nix { };
|
|
in stdenv.mkDerivation {
|
|
pname = "swift-corelibs-foundation";
|
|
|
|
inherit (sources) version;
|
|
src = sources.swift-corelibs-foundation;
|
|
|
|
patches = [
|
|
# from https://github.com/apple/swift-corelibs-foundation/pull/4811
|
|
# fix build with glibc >=2.38
|
|
(fetchpatch {
|
|
url = "https://github.com/apple/swift-corelibs-foundation/commit/47260803a108c6e0d639adcebeed3ac6a76e8bcd.patch";
|
|
hash = "sha256-1JUSQW86IHKkBZqxvpk0P8zcSKntzOTNlMoGBfgeT4c=";
|
|
})
|
|
];
|
|
|
|
outputs = [ "out" "dev" ];
|
|
|
|
nativeBuildInputs = [ cmake ninja swift ];
|
|
buildInputs = [ icu libxml2 curl ];
|
|
propagatedBuildInputs = [ Dispatch ];
|
|
|
|
preConfigure = ''
|
|
# Fails to build with -D_FORTIFY_SOURCE.
|
|
NIX_HARDENING_ENABLE=''${NIX_HARDENING_ENABLE/fortify/}
|
|
'';
|
|
|
|
postInstall = ''
|
|
# Split up the output.
|
|
mkdir $dev
|
|
mv $out/lib/swift/${swift.swiftOs} $out/swiftlibs
|
|
mv $out/lib/swift $dev/include
|
|
mkdir $out/lib/swift
|
|
mv $out/swiftlibs $out/lib/swift/${swift.swiftOs}
|
|
|
|
# Provide a CMake module. This is primarily used to glue together parts of
|
|
# the Swift toolchain. Modifying the CMake config to do this for us is
|
|
# otherwise more trouble.
|
|
mkdir -p $dev/lib/cmake/Foundation
|
|
export dylibExt="${stdenv.hostPlatform.extensions.sharedLibrary}"
|
|
export swiftOs="${swift.swiftOs}"
|
|
substituteAll ${./glue.cmake} $dev/lib/cmake/Foundation/FoundationConfig.cmake
|
|
'';
|
|
|
|
meta = {
|
|
description = "Core utilities, internationalization, and OS independence for Swift";
|
|
mainProgram = "plutil";
|
|
homepage = "https://github.com/apple/swift-corelibs-foundation";
|
|
platforms = lib.platforms.linux;
|
|
license = lib.licenses.asl20;
|
|
maintainers = with lib.maintainers; [ dtzWill trepetti dduan trundle stephank ];
|
|
};
|
|
}
|