74 lines
1.6 KiB
Nix
74 lines
1.6 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
llvmPackages_19,
|
|
boost,
|
|
cmake,
|
|
spdlog,
|
|
libxml2,
|
|
libffi,
|
|
testers,
|
|
}:
|
|
|
|
let
|
|
# The supported version is found in the changelog, the documentation does indicate a minimum version but not a maximum.
|
|
# The project is also using a `flake.nix` so we can retrieve the used llvm version with:
|
|
#
|
|
# ```shell
|
|
# nix eval --inputs-from .# nixpkgs#llvmPackages.libllvm.version
|
|
# ```
|
|
#
|
|
# > Where `.#` is the flake path were the repo `wasmedge` was cloned at the expected version.
|
|
llvmPackages = llvmPackages_19;
|
|
in
|
|
llvmPackages.stdenv.mkDerivation (finalAttrs: {
|
|
pname = "wasmedge";
|
|
version = "0.15.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "WasmEdge";
|
|
repo = "WasmEdge";
|
|
rev = finalAttrs.version;
|
|
sha256 = "sha256-P4syb8v3EY/tHwG8FOvR+kgMew/nwG+pG2weN6172go=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
llvmPackages.lld
|
|
];
|
|
|
|
buildInputs = [
|
|
boost
|
|
spdlog
|
|
llvmPackages.llvm
|
|
libxml2
|
|
libffi
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-DWASMEDGE_BUILD_TESTS=OFF" # Tests are downloaded using git
|
|
]
|
|
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
|
"-DWASMEDGE_FORCE_DISABLE_LTO=ON"
|
|
];
|
|
|
|
postPatch = ''
|
|
echo -n $version > VERSION
|
|
'';
|
|
|
|
passthru.tests = {
|
|
version = testers.testVersion {
|
|
package = finalAttrs.finalPackage;
|
|
};
|
|
};
|
|
|
|
meta = with lib; {
|
|
homepage = "https://wasmedge.org/";
|
|
license = with licenses; [ asl20 ];
|
|
description = "Lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications";
|
|
maintainers = with maintainers; [ dit7ya ];
|
|
platforms = platforms.all;
|
|
};
|
|
})
|