Carnix: 0.7.2 -> 0.8.10 (#40587)
Carnix: splits input into two parts: creates from creates.io and local ones
This commit is contained in:
committed by
Joachim Schiele
parent
a3e367ff4b
commit
ae3b4655a4
@@ -4,7 +4,7 @@
|
||||
# This can be useful for deploying packages with NixOps, and to share
|
||||
# binary dependencies between projects.
|
||||
|
||||
{ lib, stdenv, defaultCrateOverrides, fetchCrate, ncurses, rustc }:
|
||||
{ lib, stdenv, defaultCrateOverrides, fetchCrate, rustc }:
|
||||
|
||||
let
|
||||
# This doesn't appear to be officially documented anywhere yet.
|
||||
@@ -16,7 +16,7 @@ let
|
||||
makeDeps = dependencies:
|
||||
(lib.concatMapStringsSep " " (dep:
|
||||
let extern = lib.strings.replaceStrings ["-"] ["_"] dep.libName; in
|
||||
(if dep.crateType == "lib" then
|
||||
(if lib.lists.any (x: x == "lib") dep.crateType then
|
||||
" --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}.rlib"
|
||||
else
|
||||
" --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}")
|
||||
@@ -86,7 +86,8 @@ stdenv.mkDerivation (rec {
|
||||
else
|
||||
fetchCrate { inherit (crate) crateName version sha256; };
|
||||
name = "rust_${crate.crateName}-${crate.version}";
|
||||
buildInputs = [ rust ncurses ] ++ (crate.buildInputs or []) ++ buildInputs_;
|
||||
depsBuildBuild = [ rust stdenv.cc ];
|
||||
buildInputs = (crate.buildInputs or []) ++ buildInputs_;
|
||||
dependencies =
|
||||
builtins.map
|
||||
(dep: dep.override { rust = rust; release = release; verbose = verbose; crateOverrides = crateOverrides; })
|
||||
@@ -122,15 +123,16 @@ stdenv.mkDerivation (rec {
|
||||
|
||||
) "" crate.crateBin
|
||||
else "";
|
||||
hasCrateBin = crate ? crateBin;
|
||||
|
||||
build = crate.build or "";
|
||||
workspace_member = crate.workspace_member or ".";
|
||||
crateVersion = crate.version;
|
||||
crateAuthors = if crate ? authors && lib.isList crate.authors then crate.authors else [];
|
||||
crateType =
|
||||
if lib.attrByPath ["procMacro"] false crate then "proc-macro" else
|
||||
if lib.attrByPath ["plugin"] false crate then "dylib" else
|
||||
(crate.type or "lib");
|
||||
if lib.attrByPath ["procMacro"] false crate then ["proc-macro"] else
|
||||
if lib.attrByPath ["plugin"] false crate then ["dylib"] else
|
||||
(crate.type or ["lib"]);
|
||||
colors = lib.attrByPath [ "colors" ] "always" crate;
|
||||
extraLinkFlags = builtins.concatStringsSep " " (crate.extraLinkFlags or []);
|
||||
configurePhase = configureCrate {
|
||||
@@ -143,7 +145,7 @@ stdenv.mkDerivation (rec {
|
||||
buildPhase = buildCrate {
|
||||
inherit crateName dependencies
|
||||
crateFeatures libName release libPath crateType
|
||||
metadata crateBin verbose colors
|
||||
metadata crateBin hasCrateBin verbose colors
|
||||
extraRustcOpts;
|
||||
};
|
||||
installPhase = installCrate crateName metadata;
|
||||
|
||||
Reference in New Issue
Block a user