summary refs log tree commit diff
path: root/pkgs/applications/science
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2018-07-26 08:47:07 -0400
committerBen Gamari <ben@smart-cactus.org>2018-07-26 12:27:27 -0400
commita4c932fa5121c9b16b774c2de8f90d9ee816343a (patch)
treeadbbb03e818081b5cc90c5bd0ad946b604f4bf70 /pkgs/applications/science
parente7be6e0d00ad6e25350ba70c2c8138d43482aab7 (diff)
downloadnixlib-a4c932fa5121c9b16b774c2de8f90d9ee816343a.tar
nixlib-a4c932fa5121c9b16b774c2de8f90d9ee816343a.tar.gz
nixlib-a4c932fa5121c9b16b774c2de8f90d9ee816343a.tar.bz2
nixlib-a4c932fa5121c9b16b774c2de8f90d9ee816343a.tar.lz
nixlib-a4c932fa5121c9b16b774c2de8f90d9ee816343a.tar.xz
nixlib-a4c932fa5121c9b16b774c2de8f90d9ee816343a.tar.zst
nixlib-a4c932fa5121c9b16b774c2de8f90d9ee816343a.zip
kicad: 4.0.7 -> 5.0.0
Diffstat (limited to 'pkgs/applications/science')
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix102
1 files changed, 43 insertions, 59 deletions
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index e3244ec339ea..5066eafcd557 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -1,72 +1,56 @@
-{ stdenv, fetchurl, cmake, libGLU_combined, wxGTK, zlib, libX11, gettext, glew, cairo, curl, openssl, boost, pkgconfig, doxygen }:
+{ wxGTK, lib, stdenv, fetchurl, cmake, libGLU_combined, zlib
+, libX11, gettext, glew, glm, cairo, curl, openssl, boost, pkgconfig
+, doxygen, pcre, libpthreadstubs, libXdmcp
 
-stdenv.mkDerivation rec {
-  name = "kicad-${version}";
-  series = "4.0";
-  version = "4.0.7";
-
-  srcs = [
-    (fetchurl {
-      url = "https://code.launchpad.net/kicad/${series}/${version}/+download/kicad-${version}.tar.xz";
-      sha256 = "1hgxan9321szgyqnkflb0q60yjf4yvbcc4cpwhm0yz89qrvlq1q9";
-    })
-
-    (fetchurl {
-      url = "http://downloads.kicad-pcb.org/libraries/kicad-library-${version}.tar.gz";
-      sha256 = "1azb7v1y3l6j329r9gg7f4zlg0wz8nh4s4i5i0l9s4yh9r6i9zmv";
-    })
-
-    (fetchurl {
-      url = "http://downloads.kicad-pcb.org/libraries/kicad-footprints-${version}.tar.gz";
-      sha256 = "08qrz5zzsb5127jlnv24j0sgiryd5nqwg3lfnwi8j9a25agqk13j";
-    })
-  ];
-
-  sourceRoot = "kicad-${version}";
-
-  cmakeFlags = ''
-    -DKICAD_SKIP_BOOST=ON
-    -DKICAD_BUILD_VERSION=${version}
-    -DKICAD_REPO_NAME=stable
-  '';
+, oceSupport ? true, opencascade
+, ngspiceSupport ? true, libngspice
+, scriptingSupport ? true, swig, python, wxPython
+}:
 
-  enableParallelBuilding = true; # often fails on Hydra: fatal error: pcb_plot_params_lexer.h: No such file or directory
+assert ngspiceSupport -> libngspice != null;
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake libGLU_combined wxGTK zlib libX11 gettext glew cairo curl openssl boost doxygen ];
-
-  # They say they only support installs to /usr or /usr/local,
-  # so we have to handle this.
-  patchPhase = ''
-    sed -i -e 's,/usr/local/kicad,'$out,g common/gestfich.cpp
-  '';
-
-  postUnpack = ''
-    pushd $(pwd)
-  '';
-
-  postInstall = ''
-    popd
+with lib;
+stdenv.mkDerivation rec {
+  name = "kicad-${version}";
+  series = "5.0";
+  version = "5.0.0";
 
-    pushd kicad-library-*
-    cmake -DCMAKE_INSTALL_PREFIX=$out
-    make $MAKE_FLAGS
-    make install
-    popd
+  src = fetchurl {
+    url = "https://launchpad.net/kicad/${series}/${version}/+download/kicad-${version}.tar.xz";
+    sha256 = "17nqjszyvd25wi6550j981whlnb1wxzmlanljdjihiki53j84x9p";
+  };
 
-    pushd kicad-footprints-*
-    mkdir -p $out/share/kicad/modules
-    cp -R *.pretty $out/share/kicad/modules/
-    popd
+  postPatch = ''
+    substituteInPlace CMakeModules/KiCadVersion.cmake \
+      --replace no-vcs-found ${version}
   '';
 
+  cmakeFlags =
+    optionals (oceSupport) [ "-DKICAD_USE_OCE=ON" "-DOCE_DIR=${opencascade}" ]
+    ++ optional (ngspiceSupport) "-DKICAD_SPICE=ON"
+    ++ optionals (scriptingSupport) [
+      "-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${wxPython}/include/wx-3.0"
+    ];
+
+  # https://www.mail-archive.com/kicad-developers@lists.launchpad.net/msg29840.html
+  nativeBuildInputs = [ (cmake.override {majorVersion = "3.10";}) doxygen  pkgconfig ];
+  buildInputs = [
+    libGLU_combined zlib libX11 wxGTK pcre libXdmcp gettext glew glm libpthreadstubs
+    cairo curl openssl boost
+  ] ++ optional (oceSupport) opencascade
+    ++ optional (ngspiceSupport) libngspice
+    ++ optionals (scriptingSupport) [ swig python wxPython ];
 
   meta = {
     description = "Free Software EDA Suite";
     homepage = http://www.kicad-pcb.org/;
-    license = stdenv.lib.licenses.gpl2;
-    maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = with stdenv.lib.platforms; linux;
-    hydraPlatforms = []; # 'output limit exceeded' error on hydra
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ berce ];
+    platforms = with platforms; linux;
   };
 }