mirror of
https://github.com/vale981/poetry2nix
synced 2025-03-04 16:51:40 -05:00
overrides: Make pyqt5 override configurable
This commit is contained in:
parent
b125af3789
commit
59a83bbc93
1 changed files with 90 additions and 68 deletions
158
overrides.nix
158
overrides.nix
|
@ -314,84 +314,106 @@ self: super:
|
|||
}
|
||||
);
|
||||
|
||||
pyqt5 = super.pyqt5.overridePythonAttrs (
|
||||
old: {
|
||||
format = "other";
|
||||
pyqt5 = let
|
||||
drv = super.pyqt5;
|
||||
withConnectivity = drv.passthru.args.withConnectivity or false;
|
||||
withMultimedia = drv.passthru.args.withMultimedia or false;
|
||||
withWebKit = drv.passthru.args.withWebKit or false;
|
||||
withWebSockets = drv.passthru.args.withWebSockets or false;
|
||||
in
|
||||
super.pyqt5.overridePythonAttrs (
|
||||
old: {
|
||||
format = "other";
|
||||
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [
|
||||
pkgs.pkgconfig
|
||||
pkgs.qt5.qmake
|
||||
pkgs.xorg.lndir
|
||||
pkgs.qt5.qtbase
|
||||
pkgs.qt5.qtsvg
|
||||
pkgs.qt5.qtdeclarative
|
||||
pkgs.qt5.qtwebchannel
|
||||
# self.pyqt5-sip
|
||||
self.sip
|
||||
];
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [
|
||||
pkgs.pkgconfig
|
||||
pkgs.qt5.qmake
|
||||
pkgs.xorg.lndir
|
||||
pkgs.qt5.qtbase
|
||||
pkgs.qt5.qtsvg
|
||||
pkgs.qt5.qtdeclarative
|
||||
pkgs.qt5.qtwebchannel
|
||||
# self.pyqt5-sip
|
||||
self.sip
|
||||
]
|
||||
++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
|
||||
++ lib.optional withMultimedia pkgs.qt5.qtmultimedia
|
||||
++ lib.optional withWebKit pkgs.qt5.qtwebkit
|
||||
++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
|
||||
;
|
||||
|
||||
buildInputs = old.buildInputs ++ [
|
||||
pkgs.dbus
|
||||
pkgs.qt5.qtbase
|
||||
pkgs.qt5.qtsvg
|
||||
pkgs.qt5.qtdeclarative
|
||||
self.sip
|
||||
];
|
||||
buildInputs = old.buildInputs ++ [
|
||||
pkgs.dbus
|
||||
pkgs.qt5.qtbase
|
||||
pkgs.qt5.qtsvg
|
||||
pkgs.qt5.qtdeclarative
|
||||
self.sip
|
||||
]
|
||||
++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
|
||||
++ lib.optional withWebKit pkgs.qt5.qtwebkit
|
||||
++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
|
||||
;
|
||||
|
||||
# Fix dbus mainloop
|
||||
inherit (pkgs.python3.pkgs.pyqt5) patches;
|
||||
# Fix dbus mainloop
|
||||
patches = pkgs.python3.pkgs.pyqt5.patches or [];
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
export PYTHONPATH=$PYTHONPATH:$out/${self.python.sitePackages}
|
||||
export PYTHONPATH=$PYTHONPATH:$out/${self.python.sitePackages}
|
||||
|
||||
mkdir -p $out/${self.python.sitePackages}/dbus/mainloop
|
||||
${self.python.executable} configure.py -w \
|
||||
--confirm-license \
|
||||
--no-qml-plugin \
|
||||
--bindir=$out/bin \
|
||||
--destdir=$out/${self.python.sitePackages} \
|
||||
--stubsdir=$out/${self.python.sitePackages}/PyQt5 \
|
||||
--sipdir=$out/share/sip/PyQt5 \
|
||||
--designer-plugindir=$out/plugins/designer
|
||||
mkdir -p $out/${self.python.sitePackages}/dbus/mainloop
|
||||
${self.python.executable} configure.py -w \
|
||||
--confirm-license \
|
||||
--no-qml-plugin \
|
||||
--bindir=$out/bin \
|
||||
--destdir=$out/${self.python.sitePackages} \
|
||||
--stubsdir=$out/${self.python.sitePackages}/PyQt5 \
|
||||
--sipdir=$out/share/sip/PyQt5 \
|
||||
--designer-plugindir=$out/plugins/designer
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
ln -s ${self.pyqt5-sip}/${self.python.sitePackages}/PyQt5/sip.* $out/${self.python.sitePackages}/PyQt5/
|
||||
for i in $out/bin/*; do
|
||||
wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
|
||||
done
|
||||
|
||||
# Let's make it a namespace package
|
||||
cat << EOF > $out/${self.python.sitePackages}/PyQt5/__init__.py
|
||||
from pkgutil import extend_path
|
||||
__path__ = extend_path(__path__, __name__)
|
||||
EOF
|
||||
'';
|
||||
|
||||
installCheckPhase = let
|
||||
modules = [
|
||||
"PyQt5"
|
||||
"PyQt5.QtCore"
|
||||
"PyQt5.QtQml"
|
||||
"PyQt5.QtWidgets"
|
||||
"PyQt5.QtGui"
|
||||
];
|
||||
imports = lib.concatMapStrings (module: "import ${module};") modules;
|
||||
in
|
||||
''
|
||||
echo "Checking whether modules can be imported..."
|
||||
${self.python.interpreter} -c "${imports}"
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
postInstall = ''
|
||||
ln -s ${self.pyqt5-sip}/${self.python.sitePackages}/PyQt5/sip.* $out/${self.python.sitePackages}/PyQt5/
|
||||
for i in $out/bin/*; do
|
||||
wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
|
||||
done
|
||||
|
||||
enableParallelBuilding = true;
|
||||
}
|
||||
);
|
||||
# Let's make it a namespace package
|
||||
cat << EOF > $out/${self.python.sitePackages}/PyQt5/__init__.py
|
||||
from pkgutil import extend_path
|
||||
__path__ = extend_path(__path__, __name__)
|
||||
EOF
|
||||
'';
|
||||
|
||||
installCheckPhase = let
|
||||
modules = [
|
||||
"PyQt5"
|
||||
"PyQt5.QtCore"
|
||||
"PyQt5.QtQml"
|
||||
"PyQt5.QtWidgets"
|
||||
"PyQt5.QtGui"
|
||||
]
|
||||
++ lib.optional withWebSockets "PyQt5.QtWebSockets"
|
||||
++ lib.optional withWebKit "PyQt5.QtWebKit"
|
||||
++ lib.optional withMultimedia "PyQt5.QtMultimedia"
|
||||
++ lib.optional withConnectivity "PyQt5.QtConnectivity"
|
||||
;
|
||||
|
||||
imports = lib.concatMapStrings (module: "import ${module};") modules;
|
||||
in
|
||||
''
|
||||
echo "Checking whether modules can be imported..."
|
||||
${self.python.interpreter} -c "${imports}"
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
}
|
||||
);
|
||||
|
||||
pytest-datadir = super.pytest-datadir.overrideAttrs (
|
||||
old: {
|
||||
|
|
Loading…
Add table
Reference in a new issue