diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/science/electronics/kicad/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/science/electronics/kicad/default.nix | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix new file mode 100644 index 000000000000..e77f4a603a81 --- /dev/null +++ b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix @@ -0,0 +1,72 @@ +{ wxGTK, lib, stdenv, fetchurl, cmake, libGLU_combined, zlib +, libX11, gettext, glew, glm, cairo, curl, openssl, boost, pkgconfig +, doxygen, pcre, libpthreadstubs, libXdmcp +, wrapGAppsHook +, oceSupport ? true, opencascade +, ngspiceSupport ? true, libngspice +, swig, python, pythonPackages +}: + +assert ngspiceSupport -> libngspice != null; + +with lib; +stdenv.mkDerivation rec { + name = "kicad-${version}"; + series = "5.0"; + version = "5.0.2"; + + src = fetchurl { + url = "https://launchpad.net/kicad/${series}/${version}/+download/kicad-${version}.tar.xz"; + sha256 = "10605rr10x0353n6yk2z095ydnkd1i6j1ncbq64pfxdn5vkhcd1g"; + }; + + postPatch = '' + substituteInPlace CMakeModules/KiCadVersion.cmake \ + --replace no-vcs-found ${version} + ''; + + cmakeFlags = [ + "-DKICAD_SCRIPTING=ON" + "-DKICAD_SCRIPTING_MODULES=ON" + "-DKICAD_SCRIPTING_WXPYTHON=ON" + # nix installs wxPython headers in wxPython package, not in wxwidget + # as assumed. We explicitely set the header location. + "-DCMAKE_CXX_FLAGS=-I${pythonPackages.wxPython}/include/wx-3.0" + ] ++ optionals (oceSupport) [ "-DKICAD_USE_OCE=ON" "-DOCE_DIR=${opencascade}" ] + ++ optional (ngspiceSupport) "-DKICAD_SPICE=ON"; + + nativeBuildInputs = [ + cmake + doxygen + pkgconfig + wrapGAppsHook + pythonPackages.wrapPython + ]; + pythonPath = [ pythonPackages.wxPython ]; + propagatedBuildInputs = [ pythonPackages.wxPython ]; + + buildInputs = [ + libGLU_combined zlib libX11 wxGTK pcre libXdmcp gettext glew glm libpthreadstubs + cairo curl openssl boost + swig python + ] ++ optional (oceSupport) opencascade + ++ optional (ngspiceSupport) libngspice; + + # this breaks other applications in kicad + dontWrapGApps = true; + + preFixup = '' + buildPythonPath "$out $pythonPath" + gappsWrapperArgs+=(--set PYTHONPATH "$program_PYTHONPATH") + + wrapProgram "$out/bin/kicad" "''${gappsWrapperArgs[@]}" + ''; + + meta = { + description = "Free Software EDA Suite"; + homepage = http://www.kicad-pcb.org/; + license = licenses.gpl2; + maintainers = with maintainers; [ berce ]; + platforms = with platforms; linux; + }; +} |