zydis: split zycore into separate derivation

This commit splits the Zycore dependency that was previously pulled
in via `fetchSubmodules` into a separate derivation. The package
previously didn't install the Zycore headers and CMake configs, making
it impossible to actually compile any code that uses Zydis because Zydis
includes Zycore headers.
This commit is contained in:
Joel Höner 2022-11-20 21:27:58 +01:00
parent b799bb34ee
commit 5ce55991d5
2 changed files with 51 additions and 4 deletions

View File

@ -1,9 +1,16 @@
{ lib
, stdenv
, fetchFromGitHub
, callPackage
, cmake
, python3
}:
let
zycore = callPackage ./zycore.nix {
inherit stdenv fetchFromGitHub cmake;
};
in
stdenv.mkDerivation rec {
pname = "zydis";
version = "4.0.0";
@ -12,14 +19,29 @@ stdenv.mkDerivation rec {
owner = "zyantific";
repo = "zydis";
rev = "v${version}";
fetchSubmodules = true;
sha256 = "sha256-WSBi8HUVj/JR0/0pBoEaUKD0kOk41gSW5ZW74fn8b4k=";
hash = "sha256-/no/8FNa5LlwhZMSMao4/cwZk6GlamLjqr+isbh6tEI=";
};
nativeBuildInputs = [
cmake
nativeBuildInputs = [ cmake ];
buildInputs = [ zycore ];
cmakeFlags = [
"-DZYAN_SYSTEM_ZYCORE=ON"
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DCMAKE_INSTALL_INCLUDEDIR=include"
];
doCheck = true;
checkInputs = [ python3 ];
checkPhase = ''
pushd ../tests
python3 ./regression.py test ../build/ZydisInfo
python3 ./regression_encoder.py \
../build/Zydis{Fuzz{ReEncoding,Encoder},TestEncoderAbsolute}
popd
'';
passthru = { inherit zycore; };
meta = with lib; {
homepage = "https://zydis.re/";
description = "Fast and lightweight x86/x86-64 disassembler library";

View File

@ -0,0 +1,25 @@
{ stdenv
, fetchFromGitHub
, cmake
}:
stdenv.mkDerivation rec {
pname = "zycore";
version = "1.4.1";
src = fetchFromGitHub {
owner = "zyantific";
repo = "zycore-c";
rev = "v${version}";
hash = "sha256-kplUgrYecymGxz92tEU6H+NNtcN/Ao/tmmqdVo2c7HA=";
};
nativeBuildInputs = [ cmake ];
# The absolute paths set by the Nix CMake build manager confuse
# Zycore's config generation (which appends them to the package path).
cmakeFlags = [
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DCMAKE_INSTALL_INCLUDEDIR=include"
];
}