summaryrefslogtreecommitdiff
path: root/pkgs/hdl-convertor/default.nix
blob: 08e16d60cbbfa8538cea639b1d5b8a9f1edb1daa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
{ antlr
, buildPythonPackage
, cmake
, cython
, fetchFromGitHub
, hdl-convertor-ast
, jre
, python3
, scikit-build
}:
buildPythonPackage {
  pname = "hdl-convertor";
  version = "master-2023-03-21";

  src = fetchFromGitHub {
    repo = "hdlConvertor";
    owner = "Nic30";

    rev = "b6ba0f4e61adf776cad8ed08760f8d232a4fc663";
    sha256 = "sha256-Ketz5r7Z8kjshr7mjfdqF+QAOHGM/iTDpT6TMbYl6QU=";
  };

  nativeBuildInputs = [ antlr cmake jre cython ];
  propagatedBuildInputs = [ antlr.runtime.cpp hdl-convertor-ast ];
  propagatedNativeBuildInputs = [ scikit-build ];

  postPatch = ''
    sed -i 's/antlr4\(-complete\)/${antlr.name}\1/g' src/CMake_antlr4.txt
  '';

  doCheck = false;
  dontUseCmakeConfigure = true;

  # src/CMake_antlr4.txt espera una env var, no hay otra forma
  ANTLR_COMPLETE_PATH = "${antlr}/share/java";

  # No usamos cmakeArgs ya que esto lo interpreta skbuild y no el cmake hook de nixpkgs
  CMAKE_ARGS = [
    "-DHDLCONVERTOR_PYTHON=true"
    "-DANTLR_COMPLETE_PATH=${antlr}/share/java"
    "-DANTLR4CPP_LIBRARIES=${antlr.runtime.cpp}/lib/libantlr4-runtime.so"
    "-DANTLR4CPP_INCLUDE_DIRS=${antlr.runtime.cpp.dev}/include/antlr4-runtime"
  ];
}