@ -14,15 +14,13 @@
} :
} :
let
let
env =
buildD epsOnlyE nv =
let
let
rocksdb' = rocksdb . override {
rocksdb' = rocksdb . override {
enableJemalloc = builtins . elem " j e m a l l o c " features ;
enableJemalloc = builtins . elem " j e m a l l o c " features ;
} ;
} ;
in
in
{
{
CONDUIT_VERSION_EXTRA =
inputs . self . shortRev or inputs . self . dirtyShortRev ;
ROCKSDB_INCLUDE_DIR = " ${ rocksdb' } / i n c l u d e " ;
ROCKSDB_INCLUDE_DIR = " ${ rocksdb' } / i n c l u d e " ;
ROCKSDB_LIB_DIR = " ${ rocksdb' } / l i b " ;
ROCKSDB_LIB_DIR = " ${ rocksdb' } / l i b " ;
}
}
@ -35,26 +33,45 @@ let
rust
rust
stdenv ;
stdenv ;
} ) ;
} ) ;
in
craneLib . buildPackage rec {
buildPackageEnv = {
inherit
CONDUIT_VERSION_EXTRA = inputs . self . shortRev or inputs . self . dirtyShortRev ;
( craneLib . crateNameFromCargoToml {
} // buildDepsOnlyEnv ;
cargoToml = " ${ inputs . self } / C a r g o . t o m l " ;
} )
commonAttrs = {
pname
inherit
version ;
( craneLib . crateNameFromCargoToml {
cargoToml = " ${ inputs . self } / C a r g o . t o m l " ;
} )
pname
version ;
src = let filter = inputs . nix-filter . lib ; in filter {
src = let filter = inputs . nix-filter . lib ; in filter {
root = inputs . self ;
root = inputs . self ;
# Keep sorted
# Keep sorted
include = [
include = [
" C a r g o . l o c k "
" C a r g o . l o c k "
" C a r g o . t o m l "
" C a r g o . t o m l "
" s r c "
" s r c "
] ;
} ;
nativeBuildInputs = [
# bindgen needs the build platform's libclang. Apparently due to "splicing
# weirdness", pkgs.rustPlatform.bindgenHook on its own doesn't quite do the
# right thing here.
pkgsBuildHost . rustPlatform . bindgenHook
] ;
] ;
CARGO_PROFILE = profile ;
} ;
} ;
in
craneLib . buildPackage ( commonAttrs // {
cargoArtifacts = craneLib . buildDepsOnly ( commonAttrs // {
env = buildDepsOnlyEnv ;
} ) ;
cargoExtraArgs = " - - l o c k e d "
cargoExtraArgs = " - - l o c k e d "
+ lib . optionalString
+ lib . optionalString
@ -67,20 +84,11 @@ craneLib.buildPackage rec {
# This is redundant with CI
# This is redundant with CI
doCheck = false ;
doCheck = false ;
nativeBuildInputs = [
env = buildPackageEnv ;
# bindgen needs the build platform's libclang. Apparently due to "splicing
# weirdness", pkgs.rustPlatform.bindgenHook on its own doesn't quite do the
# right thing here.
pkgsBuildHost . rustPlatform . bindgenHook
] ;
CARGO_PROFILE = profile ;
inherit env ;
passthru = {
passthru = {
inherit e nv;
env = buildPackageEnv ;
} ;
} ;
meta . mainProgram = pname;
meta . mainProgram = commonAttrs . pname ;
}
} )