Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / interpreters / wasmer / default.nix
blob22b26c5345f0381927ee014125731cec152e9b98
1 { stdenv
2 , lib
3 , rustPlatform
4 , fetchFromGitHub
5 , llvmPackages
6 , libffi
7 , libxml2
8 , CoreFoundation
9 , SystemConfiguration
10 , Security
11 , withLLVM ? !stdenv.isDarwin
12 , withSinglepass ? !(stdenv.isDarwin && stdenv.isx86_64)
15 rustPlatform.buildRustPackage rec {
16   pname = "wasmer";
17   version = "4.2.1";
19   src = fetchFromGitHub {
20     owner = "wasmerio";
21     repo = pname;
22     rev = "refs/tags/v${version}";
23     hash = "sha256-GROw9TYKC53ECJUeYhCez8f2jImPla/lGgsP91tTGjQ=";
24   };
26   cargoHash = "sha256-JE7FDF4MWhqJbL7ZP+yzfV7/Z79x0NuQLYNwWwMjAao=";
28   nativeBuildInputs = [
29     rustPlatform.bindgenHook
30   ];
32   buildInputs = lib.optionals withLLVM [
33     llvmPackages.llvm
34     libffi
35     libxml2
36   ] ++ lib.optionals stdenv.isDarwin [
37     CoreFoundation
38     SystemConfiguration
39     Security
40   ];
42   # check references to `compiler_features` in Makefile on update
43   buildFeatures = [
44     "cranelift"
45     "wasmer-artifact-create"
46     "static-artifact-create"
47     "wasmer-artifact-load"
48     "static-artifact-load"
49   ]
50   ++ lib.optional withLLVM "llvm"
51   ++ lib.optional withSinglepass "singlepass";
53   cargoBuildFlags = [ "--manifest-path" "lib/cli/Cargo.toml" "--bin" "wasmer" ];
55   env.LLVM_SYS_140_PREFIX = lib.optionalString withLLVM llvmPackages.llvm.dev;
57   # Tests are failing due to `Cannot allocate memory` and other reasons
58   doCheck = false;
60   meta = with lib; {
61     description = "The Universal WebAssembly Runtime";
62     longDescription = ''
63       Wasmer is a standalone WebAssembly runtime for running WebAssembly outside
64       of the browser, supporting WASI and Emscripten. Wasmer can be used
65       standalone (via the CLI) and embedded in different languages, running in
66       x86 and ARM devices.
67     '';
68     homepage = "https://wasmer.io/";
69     license = licenses.mit;
70     maintainers = with maintainers; [ Br1ght0ne shamilton ];
71   };