nix: introduce sqlite-lib package #219

merged
opened by oppi.li targeting master from push-mlxxvvqpzvlw

this is a helper derivation to speed up go builds, it builds sqlite shared objects and header files which are then passed into buildGoModule.

Signed-off-by: oppiliappan me@oppi.li

Changed files
+41 -1
nix
+15 -1
flake.lock
···
"indigo": "indigo",
"inter-fonts-src": "inter-fonts-src",
"lucide-src": "lucide-src",
-
"nixpkgs": "nixpkgs"
+
"nixpkgs": "nixpkgs",
+
"sqlite-lib-src": "sqlite-lib-src"
+
}
+
},
+
"sqlite-lib-src": {
+
"flake": false,
+
"locked": {
+
"lastModified": 1706631843,
+
"narHash": "sha256-bJoMjirsBjm2Qk9KPiy3yV3+8b/POlYe76/FQbciHro=",
+
"type": "tarball",
+
"url": "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip"
+
},
+
"original": {
+
"type": "tarball",
+
"url": "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip"
}
}
},
+8
flake.nix
···
url = "https://github.com/IBM/plex/releases/download/%40ibm%2Fplex-mono%401.1.0/ibm-plex-mono.zip";
flake = false;
};
+
sqlite-lib-src = {
+
url = "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip";
+
flake = false;
+
};
gitignore = {
url = "github:hercules-ci/gitignore.nix";
inputs.nixpkgs.follows = "nixpkgs";
···
lucide-src,
gitignore,
inter-fonts-src,
+
sqlite-lib-src,
ibm-plex-mono-src,
}: let
supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
···
};
in {
lexgen = final.callPackage ./nix/pkgs/lexgen.nix {inherit indigo;};
+
sqlite-lib = final.pkgsStatic.callPackage ./nix/pkgs/sqlite-lib.nix {
+
inherit (final.pkgsStatic) gcc;
+
inherit sqlite-lib-src;
};
# appview packages
+18
nix/pkgs/sqlite-lib.nix
···
+
{
+
gcc,
+
stdenv,
+
sqlite-lib-src,
+
}:
+
stdenv.mkDerivation {
+
name = "sqlite-lib";
+
src = sqlite-lib-src;
+
nativeBuildInputs = [gcc];
+
buildPhase = ''
+
gcc -c sqlite3.c
+
ar rcs libsqlite3.a sqlite3.o
+
ranlib libsqlite3.a
+
mkdir -p $out/include $out/lib
+
cp *.h $out/include
+
cp libsqlite3.a $out/lib
+
'';
+
}