Use the patched carnix output for faster builds
This commit is contained in:
parent
d466b9d3b7
commit
c5fef482ec
|
@ -2,7 +2,7 @@
|
||||||
name = "ircbot"
|
name = "ircbot"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Graham Christensen <graham@grahamc.com>"]
|
authors = ["Graham Christensen <graham@grahamc.com>"]
|
||||||
|
include = [ "Cargo.lock", "Cargot.toml", "lib.rs", "src"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "0.3.8"
|
log = "0.3.8"
|
||||||
env_logger = "0.4.3"
|
env_logger = "0.4.3"
|
||||||
|
|
|
@ -2,12 +2,39 @@
|
||||||
{ lib, buildPlatform, buildRustCrate, fetchgit }:
|
{ lib, buildPlatform, buildRustCrate, fetchgit }:
|
||||||
let kernel = buildPlatform.parsed.kernel.name;
|
let kernel = buildPlatform.parsed.kernel.name;
|
||||||
abi = buildPlatform.parsed.abi.name;
|
abi = buildPlatform.parsed.abi.name;
|
||||||
include = includedFiles: src: builtins.filterSource (path: type:
|
include = includedFiles: src:
|
||||||
lib.lists.any (f:
|
# The comments assume the `include` field of the Cargo.toml like:
|
||||||
let p = toString (src + ("/" + f)); in
|
# include = [ "foo", "bar" ]
|
||||||
(path == p) || (type == "directory" && lib.strings.hasPrefix path p)
|
# and the package is being built from /mypackage
|
||||||
) includedFiles
|
#
|
||||||
) src;
|
# includeFiles == [ "foo" "bar" ]
|
||||||
|
let
|
||||||
|
# and includedFileAbsolutePaths == [ "/mypackage/foo" "/mypackage/bar" ]
|
||||||
|
includedFileAbsolutePaths = builtins.map (relativePath: toString (src + ("/" + relativePath))) includedFiles;
|
||||||
|
|
||||||
|
# Return true only when a possible path exactly matches an
|
||||||
|
# absolute path, ie:
|
||||||
|
#
|
||||||
|
# checkExactMatch "/mypackage/foo" == true
|
||||||
|
# checkExactMatch "/mypackage/foo/bar" == false
|
||||||
|
# checkExactMatch "/mypackage/baz" == false
|
||||||
|
checkExactMatch = possiblePath: builtins.elem possiblePath includedFileAbsolutePaths;
|
||||||
|
|
||||||
|
# Return true only when a possible path is a suffix to a
|
||||||
|
# directory described by the include.
|
||||||
|
#
|
||||||
|
# checkPrefixMatch "/mypackage/buzfoo" == false
|
||||||
|
# checkPrefixMatch "/mypackage/foo" == false
|
||||||
|
# checkPrefixMatch "/mypackage/foo/bar" == true
|
||||||
|
# checkPrefixMatch "/mypackage/baz/foo" == false
|
||||||
|
checkPrefixMatch = possiblePath: lib.lists.any
|
||||||
|
(acceptablePrefix: lib.strings.hasPrefix "${acceptablePrefix}/" possiblePath)
|
||||||
|
includedFileAbsolutePaths;
|
||||||
|
|
||||||
|
in builtins.filterSource (possiblePath: _type:
|
||||||
|
builtins.trace "${possiblePath}" ((checkExactMatch possiblePath) || (checkPrefixMatch possiblePath))
|
||||||
|
)
|
||||||
|
src;
|
||||||
updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
|
updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
|
||||||
mapFeatures = features: map (fun: fun { features = features; });
|
mapFeatures = features: map (fun: fun { features = features; });
|
||||||
mkFeatures = feat: lib.lists.foldl (features: featureName:
|
mkFeatures = feat: lib.lists.foldl (features: featureName:
|
||||||
|
@ -337,7 +364,7 @@ rec {
|
||||||
crateName = "ircbot";
|
crateName = "ircbot";
|
||||||
version = "0.1.0";
|
version = "0.1.0";
|
||||||
authors = [ "Graham Christensen <graham@grahamc.com>" ];
|
authors = [ "Graham Christensen <graham@grahamc.com>" ];
|
||||||
src = ./../ircbot;
|
src = include [ "Cargo.lock" "Cargot.toml" "lib.rs" "src" ] ./../ircbot;
|
||||||
inherit dependencies buildDependencies features;
|
inherit dependencies buildDependencies features;
|
||||||
};
|
};
|
||||||
itoa_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
|
itoa_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
|
||||||
|
|
|
@ -2,12 +2,39 @@
|
||||||
{ lib, buildPlatform, buildRustCrate, fetchgit }:
|
{ lib, buildPlatform, buildRustCrate, fetchgit }:
|
||||||
let kernel = buildPlatform.parsed.kernel.name;
|
let kernel = buildPlatform.parsed.kernel.name;
|
||||||
abi = buildPlatform.parsed.abi.name;
|
abi = buildPlatform.parsed.abi.name;
|
||||||
include = includedFiles: src: builtins.filterSource (path: type:
|
include = includedFiles: src:
|
||||||
lib.lists.any (f:
|
# The comments assume the `include` field of the Cargo.toml like:
|
||||||
let p = toString (src + ("/" + f)); in
|
# include = [ "foo", "bar" ]
|
||||||
(path == p) || (type == "directory" && lib.strings.hasPrefix path p)
|
# and the package is being built from /mypackage
|
||||||
) includedFiles
|
#
|
||||||
) src;
|
# includeFiles == [ "foo" "bar" ]
|
||||||
|
let
|
||||||
|
# and includedFileAbsolutePaths == [ "/mypackage/foo" "/mypackage/bar" ]
|
||||||
|
includedFileAbsolutePaths = builtins.map (relativePath: toString (src + ("/" + relativePath))) includedFiles;
|
||||||
|
|
||||||
|
# Return true only when a possible path exactly matches an
|
||||||
|
# absolute path, ie:
|
||||||
|
#
|
||||||
|
# checkExactMatch "/mypackage/foo" == true
|
||||||
|
# checkExactMatch "/mypackage/foo/bar" == false
|
||||||
|
# checkExactMatch "/mypackage/baz" == false
|
||||||
|
checkExactMatch = possiblePath: builtins.elem possiblePath includedFileAbsolutePaths;
|
||||||
|
|
||||||
|
# Return true only when a possible path is a suffix to a
|
||||||
|
# directory described by the include.
|
||||||
|
#
|
||||||
|
# checkPrefixMatch "/mypackage/buzfoo" == false
|
||||||
|
# checkPrefixMatch "/mypackage/foo" == false
|
||||||
|
# checkPrefixMatch "/mypackage/foo/bar" == true
|
||||||
|
# checkPrefixMatch "/mypackage/baz/foo" == false
|
||||||
|
checkPrefixMatch = possiblePath: lib.lists.any
|
||||||
|
(acceptablePrefix: lib.strings.hasPrefix "${acceptablePrefix}/" possiblePath)
|
||||||
|
includedFileAbsolutePaths;
|
||||||
|
|
||||||
|
in builtins.filterSource (possiblePath: _type:
|
||||||
|
builtins.trace "${possiblePath}" ((checkExactMatch possiblePath) || (checkPrefixMatch possiblePath))
|
||||||
|
)
|
||||||
|
src;
|
||||||
updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
|
updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
|
||||||
mapFeatures = features: map (fun: fun { features = features; });
|
mapFeatures = features: map (fun: fun { features = features; });
|
||||||
mkFeatures = feat: lib.lists.foldl (features: featureName:
|
mkFeatures = feat: lib.lists.foldl (features: featureName:
|
||||||
|
@ -383,7 +410,7 @@ rec {
|
||||||
crateName = "ofborg";
|
crateName = "ofborg";
|
||||||
version = "0.1.1";
|
version = "0.1.1";
|
||||||
authors = [ "Graham Christensen <graham@grahamc.com>" ];
|
authors = [ "Graham Christensen <graham@grahamc.com>" ];
|
||||||
src = ./../ofborg;
|
src = include [ "Cargo.toml" "Cargo.lock" "src" "test-srcs" ] ./../ofborg;
|
||||||
inherit dependencies buildDependencies features;
|
inherit dependencies buildDependencies features;
|
||||||
};
|
};
|
||||||
openssl_0_9_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
|
openssl_0_9_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
name = "ofborg"
|
name = "ofborg"
|
||||||
version = "0.1.1"
|
version = "0.1.1"
|
||||||
authors = ["Graham Christensen <graham@grahamc.com>"]
|
authors = ["Graham Christensen <graham@grahamc.com>"]
|
||||||
|
include = ["Cargo.toml", "Cargo.lock", "src", "test-srcs"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = "= 0.3.8"
|
log = "= 0.3.8"
|
||||||
|
|
Loading…
Reference in a new issue