about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJörg Thalheim <joerg@thalheim.io>2018-07-31 14:37:59 +0100
committerJörg Thalheim <joerg@thalheim.io>2018-07-31 14:37:59 +0100
commit611f0ed188622471c154e7122f27017a4ae0112b (patch)
tree908c7b61191f4d0d6612407b7e62191aa89c9b17
parenta4c932fa5121c9b16b774c2de8f90d9ee816343a (diff)
downloadnixlib-611f0ed188622471c154e7122f27017a4ae0112b.tar
nixlib-611f0ed188622471c154e7122f27017a4ae0112b.tar.gz
nixlib-611f0ed188622471c154e7122f27017a4ae0112b.tar.bz2
nixlib-611f0ed188622471c154e7122f27017a4ae0112b.tar.lz
nixlib-611f0ed188622471c154e7122f27017a4ae0112b.tar.xz
nixlib-611f0ed188622471c154e7122f27017a4ae0112b.tar.zst
nixlib-611f0ed188622471c154e7122f27017a4ae0112b.zip
kicad: properly wrap wxPython
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix31
-rw-r--r--pkgs/top-level/all-packages.nix5
2 files changed, 27 insertions, 9 deletions
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index 5066eafcd557..b67ff0f4ef59 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -1,10 +1,10 @@
 { 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
-, scriptingSupport ? true, swig, python, wxPython
+, scriptingSupport ? true, swig, python, pythonPackages
 }:
 
 assert ngspiceSupport -> libngspice != null;
@@ -34,17 +34,36 @@ stdenv.mkDerivation rec {
       "-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"
+      "-DCMAKE_CXX_FLAGS=-I${pythonPackages.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 ];
+  nativeBuildInputs = [
+    # https://www.mail-archive.com/kicad-developers@lists.launchpad.net/msg29840.html
+    (cmake.override {majorVersion = "3.10";})
+    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
   ] ++ optional (oceSupport) opencascade
     ++ optional (ngspiceSupport) libngspice
-    ++ optionals (scriptingSupport) [ swig python wxPython ];
+    ++ optionals (scriptingSupport) [ swig python ];
+
+  # 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";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f4b8df8bcf78..69a7ebce455b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11829,7 +11829,7 @@ with pkgs;
   sofia_sip = callPackage ../development/libraries/sofia-sip { };
 
   soil = callPackage ../development/libraries/soil { };
-  
+
   sonic = callPackage ../development/libraries/sonic { };
 
   soprano = callPackage ../development/libraries/soprano { };
@@ -20744,7 +20744,6 @@ with pkgs;
 
   kicad = callPackage ../applications/science/electronics/kicad {
     wxGTK = wxGTK30;
-    inherit (pythonPackages) wxPython;
     boost = boost160;
   };
 
@@ -20909,7 +20908,7 @@ with pkgs;
   spyder = pythonPackages.spyder;
 
   openspace = callPackage ../applications/science/astronomy/openspace { };
-  
+
   stellarium = libsForQt5.callPackage ../applications/science/astronomy/stellarium { };
 
   tulip = callPackage ../applications/science/misc/tulip {