mirror of
https://github.com/JakeHillion/object-introspection.git
synced 2024-11-09 21:24:14 +00:00
118 lines
3.3 KiB
Nix
118 lines
3.3 KiB
Nix
|
{
|
||
|
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||
|
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||
|
|
||
|
inputs.drgn = {
|
||
|
flake = false;
|
||
|
type = "github";
|
||
|
owner = "JakeHillion";
|
||
|
repo = "drgn";
|
||
|
rev = "f54be805ec0e8d63f54f513b5246f47e4ee100c5";
|
||
|
};
|
||
|
inputs.folly = {
|
||
|
flake = false;
|
||
|
type = "github";
|
||
|
owner = "JakeHillion";
|
||
|
repo = "folly";
|
||
|
rev = "8db54418e3ccdd97619ac8b69bb3702f82bb0f66";
|
||
|
};
|
||
|
|
||
|
description = "A flake for building and developing Object Introspection";
|
||
|
|
||
|
outputs = { self, nixpkgs, drgn, folly, flake-utils }: (
|
||
|
flake-utils.lib.eachSystem [ flake-utils.lib.system.x86_64-linux ]
|
||
|
(system:
|
||
|
let
|
||
|
pkgs =
|
||
|
import nixpkgs
|
||
|
{
|
||
|
system = "x86_64-linux";
|
||
|
overlays = [
|
||
|
(self: super: {
|
||
|
boost = super.boost.override { enableShared = false; enableStatic = true; };
|
||
|
rocksdb = super.rocksdb.overrideAttrs ( old: rec {
|
||
|
version = "8.5.3";
|
||
|
src = super.fetchFromGitHub {
|
||
|
owner = "facebook";
|
||
|
repo = "rocksdb";
|
||
|
rev = "v${version}";
|
||
|
sha256 = "sha256-Qa4bAprXptA79ilNE5KSfggEDvNFHdrvDQ6SvzWMQus=";
|
||
|
};
|
||
|
});
|
||
|
})
|
||
|
];
|
||
|
};
|
||
|
in
|
||
|
{
|
||
|
packages.oid = with pkgs;
|
||
|
pkgs.llvmPackages_12.stdenv.mkDerivation {
|
||
|
name = "oid";
|
||
|
src = self;
|
||
|
|
||
|
postPatch = with pkgs; ''
|
||
|
substituteInPlace CMakeLists.txt --replace '@gtest_src@' '${gtest.src}'
|
||
|
substituteInPlace CMakeLists.txt --replace '@folly_src@' '${folly}'
|
||
|
'';
|
||
|
|
||
|
cmakeFlags = [
|
||
|
"-Ddrgn_SOURCE_DIR=${drgn}"
|
||
|
"-DGIT_SUBMODULES=Off"
|
||
|
"-DWARNINGS_AS_ERRORS=Off"
|
||
|
];
|
||
|
|
||
|
installPhase = ''
|
||
|
mkdir -p $out/bin
|
||
|
install -t $out/bin /build/source/build/oid
|
||
|
'';
|
||
|
|
||
|
nativeBuildInputs = with pkgs; [
|
||
|
autoconf
|
||
|
automake
|
||
|
cmake
|
||
|
gettext
|
||
|
git
|
||
|
libtool
|
||
|
ninja
|
||
|
pkgconf
|
||
|
|
||
|
python310
|
||
|
python310Packages.toml
|
||
|
python310Packages.setuptools
|
||
|
];
|
||
|
buildInputs = with pkgs; [
|
||
|
bison
|
||
|
boost
|
||
|
bzip2
|
||
|
curl
|
||
|
double-conversion
|
||
|
elfutils
|
||
|
flex
|
||
|
fmt
|
||
|
gflags
|
||
|
glog
|
||
|
gtest
|
||
|
icu
|
||
|
jemalloc
|
||
|
libarchive
|
||
|
libmicrohttpd
|
||
|
llvmPackages_15.libclang
|
||
|
llvmPackages_15.llvm
|
||
|
lzma
|
||
|
msgpack
|
||
|
range-v3
|
||
|
rocksdb
|
||
|
sqlite
|
||
|
tomlplusplus
|
||
|
libxml2
|
||
|
zstd
|
||
|
];
|
||
|
};
|
||
|
|
||
|
packages.default = self.packages.${system}.oid;
|
||
|
}) // flake-utils.lib.eachSystem flake-utils.lib.allSystems (system: {
|
||
|
formatter = nixpkgs.legacyPackages.${system}.nixpkgs-fmt;
|
||
|
})
|
||
|
);
|
||
|
}
|
||
|
|