diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/unicorn')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/unicorn/default.nix | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/unicorn/default.nix b/nixpkgs/pkgs/development/libraries/unicorn/default.nix new file mode 100644 index 000000000000..b6a91a7367a4 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/unicorn/default.nix @@ -0,0 +1,49 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, cmake +, IOKit +, cctools +}: + +stdenv.mkDerivation rec { + pname = "unicorn"; + version = "2.0.1.post1"; + + src = fetchFromGitHub { + owner = "unicorn-engine"; + repo = pname; + rev = version; + hash = "sha256-Jz5C35rwnDz0CXcfcvWjkwScGNQO1uijF7JrtZhM7mI="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + ] ++ lib.optionals stdenv.isDarwin [ + cctools + ]; + + buildInputs = lib.optionals stdenv.isDarwin [ + IOKit + ]; + + # Ensure the linker is using atomic when compiling for RISC-V, otherwise fails + NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isRiscV "-latomic"; + + cmakeFlags = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ + # Some x86 tests are interrupted by signal 10 + "-DCMAKE_CTEST_ARGUMENTS=--exclude-regex;test_x86" + ]; + + doCheck = true; + + meta = with lib; { + description = "Lightweight multi-platform CPU emulator library"; + homepage = "https://www.unicorn-engine.org"; + license = licenses.gpl2Only; + platforms = platforms.unix; + maintainers = with maintainers; [ thoughtpolice luc65r ]; + }; +} |