66 lines
1.2 KiB
Nix
66 lines
1.2 KiB
Nix
{
|
|
lib,
|
|
|
|
src,
|
|
version,
|
|
nameSuffix,
|
|
|
|
stdenv,
|
|
|
|
unzip,
|
|
zlib,
|
|
icu,
|
|
|
|
extensions ? [ ],
|
|
extraLibraries ? [ ],
|
|
features ? { },
|
|
featureFlags ? [ ],
|
|
enableInteractive ? false,
|
|
|
|
...
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "sqlite-amalgamation${nameSuffix}";
|
|
inherit version src;
|
|
|
|
nativeBuildInputs = [
|
|
unzip
|
|
];
|
|
|
|
buildInputs = [
|
|
zlib
|
|
] ++ lib.optional features.ENABLE_ICU [
|
|
icu
|
|
];
|
|
|
|
# required for aarch64 but applied for all arches for simplicity
|
|
preConfigure = ''
|
|
patchShebangs configure
|
|
'';
|
|
|
|
# sqlite relies on autosetup now; so many of the
|
|
# previously-understood flags are gone. They should instead be set
|
|
# on a per-output basis.
|
|
setOutputFlags = false;
|
|
|
|
configureFlags = lib.optional features.ENABLE_ICU [
|
|
"--enable-icu-collations"
|
|
"--with-icu-config=${lib.getExe' icu.dev "icu-config"}"
|
|
];
|
|
|
|
env.NIX_CFLAGS_COMPILE = lib.concatStringsSep " " featureFlags;
|
|
env.NIX_CFLAGS_LINK = lib.optionalString features.ENABLE_FTS5 "-lm";
|
|
env.CC_FOR_BUILD = "${stdenv.cc.targetPrefix}cc";
|
|
|
|
makeFlags = [ "sqlite3.c" "sqlite3.h" ];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -Dm444 sqlite3.{c,h} -t "$out"
|
|
|
|
runHook postInstall
|
|
'';
|
|
})
|