From e34cb050c84233baac164f80c96bc30d06d6475b Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Thu, 4 Jul 2024 18:03:29 +0200 Subject: [PATCH 1/2] silice: unstable-2022-08-05 -> 0-unstable-2024-06-23 --- pkgs/development/compilers/silice/default.nix | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/development/compilers/silice/default.nix b/pkgs/development/compilers/silice/default.nix index 287862b5f2b8..cf3cd6e6fb5f 100644 --- a/pkgs/development/compilers/silice/default.nix +++ b/pkgs/development/compilers/silice/default.nix @@ -1,19 +1,21 @@ { stdenv, fetchFromGitHub, lib , cmake, pkg-config, openjdk , libuuid, python3 +, glfw , silice, yosys, nextpnr, verilator , dfu-util, icestorm, trellis +, unstableGitUpdater }: stdenv.mkDerivation rec { pname = "silice"; - version = "unstable-2022-08-05"; + version = "0-unstable-2024-06-23"; src = fetchFromGitHub { owner = "sylefeb"; repo = pname; - rev = "e26662ac757151e5dd8c60c45291b44906b1299f"; - sha256 = "sha256-Q1JdgDlEErutZh0OfxYy5C4aVijFKlf6Hm5Iv+1jsj4="; + rev = "5ba9ef0d03b3c8d4a43efe10acfb51c97d3679ef"; + sha256 = "sha256-LrLUaCpwzaxH02TGyEfARIumPi0s2REc1g79fSxJjFc="; fetchSubmodules = true; }; @@ -21,12 +23,16 @@ stdenv.mkDerivation rec { cmake pkg-config openjdk + glfw ]; buildInputs = [ libuuid ]; propagatedBuildInputs = [ - (python3.withPackages (p: with p; [ edalize ])) + (python3.withPackages (p: [ + p.edalize + p.termcolor + ])) ]; postPatch = '' @@ -78,6 +84,8 @@ stdenv.mkDerivation rec { pipeline_sort = testProject "pipeline_sort"; }; + passthru.updateScript = unstableGitUpdater { }; + meta = with lib; { description = "Open source language that simplifies prototyping and writing algorithms on FPGA architectures"; homepage = "https://github.com/sylefeb/Silice"; From a345e796b3632df1fc76fd5c3866aa5d683665bf Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Thu, 4 Jul 2024 18:22:19 +0200 Subject: [PATCH 2/2] silice: refactor, add maintainer pbsds --- pkgs/development/compilers/silice/default.nix | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/pkgs/development/compilers/silice/default.nix b/pkgs/development/compilers/silice/default.nix index cf3cd6e6fb5f..871219a28dce 100644 --- a/pkgs/development/compilers/silice/default.nix +++ b/pkgs/development/compilers/silice/default.nix @@ -2,18 +2,18 @@ , cmake, pkg-config, openjdk , libuuid, python3 , glfw -, silice, yosys, nextpnr, verilator +, yosys, nextpnr, verilator , dfu-util, icestorm, trellis , unstableGitUpdater }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "silice"; version = "0-unstable-2024-06-23"; src = fetchFromGitHub { owner = "sylefeb"; - repo = pname; + repo = "silice"; rev = "5ba9ef0d03b3c8d4a43efe10acfb51c97d3679ef"; sha256 = "sha256-LrLUaCpwzaxH02TGyEfARIumPi0s2REc1g79fSxJjFc="; fetchSubmodules = true; @@ -42,13 +42,18 @@ stdenv.mkDerivation rec { ''; installPhase = '' + runHook preInstall + make install mkdir -p $out cp -ar ../{bin,frameworks,lib} $out/ + + runHook postInstall ''; passthru.tests = let + silice = finalAttrs.finalPackage; testProject = project: stdenv.mkDerivation { name = "${silice.name}-test-${project}"; nativeBuildInputs = [ @@ -60,18 +65,24 @@ stdenv.mkDerivation rec { icestorm trellis ]; - src = "${src}/projects"; + src = "${silice.src}/projects"; sourceRoot = "projects/${project}"; buildPhase = '' - targets=$(cut -d " " -f 2 configs | tr -d '\r') - for target in $targets ; do + targets=() + for target in $(cat configs | tr -d '\r') ; do + [[ $target != Makefile* ]] || continue make $target ARGS="--no_program" + targets+=($target) done + if test "''${#targets[@]}" -eq 0; then + >&2 echo "ERROR: no target found!" + false + fi ''; installPhase = '' mkdir $out - for target in $targets ; do - cp -r BUILD_$target $out/ + for target in "''${targets[@]}" ; do + [[ $target != Makefile* ]] || continue done ''; }; @@ -86,10 +97,15 @@ stdenv.mkDerivation rec { passthru.updateScript = unstableGitUpdater { }; - meta = with lib; { + meta = { description = "Open source language that simplifies prototyping and writing algorithms on FPGA architectures"; homepage = "https://github.com/sylefeb/Silice"; - license = licenses.bsd2; - maintainers = [ maintainers.astro ]; + license = lib.licenses.bsd2; + mainProgram = "silice"; + maintainers = with lib.maintainers; [ + astro + pbsds + ]; + platforms = lib.platforms.all; }; -} +})