Merge pull request #150595 from willcohen/qscintilla
qscintilla: fix build on darwin
This commit is contained in:
commit
88d7e0ff33
|
@ -7,7 +7,7 @@
|
|||
, alsa-lib
|
||||
, libsndfile
|
||||
, qt4
|
||||
, qscintilla
|
||||
, qscintilla-qt4
|
||||
, libpulseaudio
|
||||
, libjack2
|
||||
, audioBackend ? "pulse" # "pulse", "alsa", or "jack"
|
||||
|
@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
|
|||
alsa-lib
|
||||
libsndfile
|
||||
qt4
|
||||
qscintilla
|
||||
qscintilla-qt4
|
||||
] ++ lib.optional (audioBackend == "pulse") libpulseaudio
|
||||
++ lib.optional (audioBackend == "jack") libjack2;
|
||||
|
||||
|
|
|
@ -114,7 +114,7 @@ in mkDerivation rec {
|
|||
cmakeFlags = [
|
||||
"-DCMAKE_SKIP_BUILD_RPATH=OFF"
|
||||
"-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
|
||||
"-DQSCI_SIP_DIR=${python3Packages.qscintilla-qt5}/share/sip/PyQt5"
|
||||
"-DQSCI_SIP_DIR=${python3Packages.qscintilla-qt5}/${python3Packages.python.sitePackages}/PyQt5/bindings"
|
||||
] ++ lib.optional (!withWebKit) "-DWITH_QTWEBKIT=OFF"
|
||||
++ lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchFromGitHub, cmake, qt4, qscintilla }:
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, qt4, qscintilla-qt4 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sqliteman";
|
||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ qt4 qscintilla ];
|
||||
buildInputs = [ qt4 qscintilla-qt4 ];
|
||||
|
||||
prePatch = ''
|
||||
sed -i 's,m_file(0),m_file(QString()),' Sqliteman/sqliteman/main.cpp
|
||||
|
@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
preConfigure = ''
|
||||
cd Sqliteman
|
||||
sed -i 's,/usr/include/Qsci,${qscintilla}/include/Qsci,' cmake/modules/FindQScintilla.cmake
|
||||
sed -i 's,PATHS ''${QT_LIBRARY_DIR},PATHS ${qscintilla}/libs,' cmake/modules/FindQScintilla.cmake
|
||||
sed -i 's,/usr/include/Qsci,${qscintilla-qt4}/include/Qsci,' cmake/modules/FindQScintilla.cmake
|
||||
sed -i 's,PATHS ''${QT_LIBRARY_DIR},PATHS ${qscintilla-qt4}/libs,' cmake/modules/FindQScintilla.cmake
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
60
pkgs/development/libraries/qscintilla-qt4/default.nix
Normal file
60
pkgs/development/libraries/qscintilla-qt4/default.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{ stdenv, lib, fetchurl, unzip, qt4, qmake4Hook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qscintilla-qt4";
|
||||
version = "2.11.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${version}/QScintilla-${version}.tar.gz";
|
||||
sha256 = "5zRgV9tH0vs4RGf6/M/LE6oHQTc8XVk7xytVsvDdIKc=";
|
||||
};
|
||||
|
||||
sourceRoot = "QScintilla-${version}/Qt4Qt5";
|
||||
|
||||
buildInputs = [ qt4 ];
|
||||
|
||||
nativeBuildInputs = [ unzip qmake4Hook ];
|
||||
|
||||
patches = ./fix-qt4-build.patch;
|
||||
|
||||
# Make sure that libqscintilla2.so is available in $out/lib since it is expected
|
||||
# by some packages such as sqlitebrowser
|
||||
postFixup = ''
|
||||
ln -s $out/lib/libqscintilla2_qt?.so $out/lib/libqscintilla2.so
|
||||
'';
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace qscintilla.pro \
|
||||
--replace '$$[QT_INSTALL_LIBS]' $out/lib \
|
||||
--replace '$$[QT_INSTALL_HEADERS]' $out/include \
|
||||
--replace '$$[QT_INSTALL_TRANSLATIONS]' $out/translations \
|
||||
--replace '$$[QT_HOST_DATA]/mkspecs' $out/mkspecs \
|
||||
--replace '$$[QT_INSTALL_DATA]/mkspecs' $out/mkspecs \
|
||||
--replace '$$[QT_INSTALL_DATA]' $out/share
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Qt port of the Scintilla text editing library";
|
||||
longDescription = ''
|
||||
QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor
|
||||
control.
|
||||
|
||||
As well as features found in standard text editing components,
|
||||
QScintilla includes features especially useful when editing and
|
||||
debugging source code. These include support for syntax styling,
|
||||
error indicators, code completion and call tips. The selection
|
||||
margin can contain markers like those used in debuggers to
|
||||
indicate breakpoints and the current line. Styling choices are
|
||||
more open than with many editors, allowing the use of
|
||||
proportional fonts, bold and italics, multiple foreground and
|
||||
background colours and multiple fonts.
|
||||
'';
|
||||
homepage = "https://www.riverbankcomputing.com/software/qscintilla/intro";
|
||||
license = with licenses; [ gpl3 ]; # and commercial
|
||||
maintainers = with maintainers; [ peterhoeg ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -1,33 +1,27 @@
|
|||
{ stdenv, lib, fetchurl, unzip
|
||||
, qt4 ? null, qmake4Hook ? null
|
||||
, withQt5 ? false, qtbase ? null, qtmacextras ? null, qmake ? null
|
||||
, qtbase, qtmacextras
|
||||
, qmake
|
||||
, fixDarwinDylibNames
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "qscintilla-qt${if withQt5 then "5" else "4"}";
|
||||
version = "2.11.6";
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
inherit pname version;
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qscintilla-qt5";
|
||||
version = "2.13.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${version}/QScintilla-${version}.tar.gz";
|
||||
sha256 = "5zRgV9tH0vs4RGf6/M/LE6oHQTc8XVk7xytVsvDdIKc=";
|
||||
url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${version}/QScintilla_src-${version}.tar.gz";
|
||||
sha256 = "gA49IHGpa8zNdYE0avDS/ij8MM1oUwy4MCaF0BOv1Uo=";
|
||||
};
|
||||
|
||||
sourceRoot = "QScintilla-${version}/Qt4Qt5";
|
||||
sourceRoot = "QScintilla_src-${version}/src";
|
||||
|
||||
buildInputs = [ (if withQt5 then qtbase else qt4) ];
|
||||
buildInputs = [ qtbase ];
|
||||
|
||||
propagatedBuildInputs = lib.optional (withQt5 && stdenv.isDarwin) qtmacextras;
|
||||
propagatedBuildInputs = lib.optionals stdenv.isDarwin [ qtmacextras ];
|
||||
|
||||
nativeBuildInputs = [ unzip ]
|
||||
++ (if withQt5 then [ qmake ] else [ qmake4Hook ])
|
||||
nativeBuildInputs = [ unzip qmake ]
|
||||
++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
|
||||
|
||||
patches = lib.optional (!withQt5) ./fix-qt4-build.patch;
|
||||
|
||||
# Make sure that libqscintilla2.so is available in $out/lib since it is expected
|
||||
# by some packages such as sqlitebrowser
|
||||
postFixup = ''
|
||||
|
@ -36,14 +30,13 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
postPatch = ''
|
||||
preConfigure = ''
|
||||
substituteInPlace qscintilla.pro \
|
||||
--replace '$$[QT_INSTALL_LIBS]' $out/lib \
|
||||
--replace '$$[QT_INSTALL_HEADERS]' $out/include \
|
||||
--replace '$$[QT_INSTALL_TRANSLATIONS]' $out/translations \
|
||||
--replace '$$[QT_HOST_DATA]/mkspecs' $out/mkspecs \
|
||||
--replace '$$[QT_INSTALL_DATA]/mkspecs' $out/mkspecs \
|
||||
--replace '$$[QT_INSTALL_DATA]' $out/share${lib.optionalString (! withQt5) "/qt"}
|
||||
--replace '$$[QT_INSTALL_DATA]' $out/share
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
42
pkgs/development/python-modules/qscintilla-qt4/default.nix
Normal file
42
pkgs/development/python-modules/qscintilla-qt4/default.nix
Normal file
|
@ -0,0 +1,42 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, disabledIf
|
||||
, isPy3k
|
||||
, isPyPy
|
||||
, pkgs
|
||||
, python
|
||||
, pyqt4
|
||||
}:
|
||||
|
||||
disabledIf (isPy3k || isPyPy)
|
||||
(buildPythonPackage {
|
||||
pname = "qscintilla";
|
||||
version = pkgs.qscintilla.version;
|
||||
format = "other";
|
||||
|
||||
src = pkgs.qscintilla.src;
|
||||
|
||||
nativeBuildInputs = [ pkgs.xorg.lndir ];
|
||||
|
||||
buildInputs = [ pyqt4.qt pyqt4 ];
|
||||
|
||||
preConfigure = ''
|
||||
mkdir -p $out
|
||||
lndir ${pyqt4} $out
|
||||
rm -rf "$out/nix-support"
|
||||
cd Python
|
||||
${python.executable} ./configure-old.py \
|
||||
--destdir $out/lib/${python.libPrefix}/site-packages/PyQt4 \
|
||||
--apidir $out/api/${python.libPrefix} \
|
||||
-n ${pkgs.qscintilla}/include \
|
||||
-o ${pkgs.qscintilla}/lib \
|
||||
--sipdir $out/share/sip
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Python binding to QScintilla, Qt based text editing control";
|
||||
license = licenses.lgpl21Plus;
|
||||
maintainers = with maintainers; [ danbst ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
})
|
|
@ -2,51 +2,53 @@
|
|||
, pythonPackages
|
||||
, qscintilla
|
||||
, qtbase
|
||||
, qmake
|
||||
, qtmacextras
|
||||
, stdenv
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (pythonPackages) buildPythonPackage isPy3k python sip_4 pyqt5;
|
||||
inherit (pythonPackages) buildPythonPackage isPy3k python sip sipbuild pyqt5 pyqt-builder;
|
||||
in buildPythonPackage rec {
|
||||
pname = "qscintilla";
|
||||
version = qscintilla.version;
|
||||
src = qscintilla.src;
|
||||
format = "other";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = !isPy3k;
|
||||
|
||||
nativeBuildInputs = [ sip_4 qtbase ];
|
||||
buildInputs = [ qscintilla ];
|
||||
propagatedBuildInputs = [ pyqt5 ];
|
||||
nativeBuildInputs = [ sip qmake pyqt-builder qscintilla ];
|
||||
buildInputs = [ qtbase ];
|
||||
propagatedBuildInputs = [ pyqt5 ] ++ lib.optionals stdenv.isDarwin [ qtmacextras ];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Python/configure.py \
|
||||
--replace \
|
||||
"target_config.py_module_dir" \
|
||||
"'$out/${python.sitePackages}'"
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
# configure.py will look for this folder
|
||||
mkdir -p $out/share/sip/PyQt5
|
||||
|
||||
cd Python
|
||||
substituteInPlace configure.py \
|
||||
--replace "qmake = {'CONFIG': 'qscintilla2'}" "qmake = {'CONFIG': 'qscintilla2', 'QT': 'widgets printsupport'}"
|
||||
${python.executable} ./configure.py \
|
||||
--pyqt=PyQt5 \
|
||||
--destdir=$out/${python.sitePackages}/PyQt5 \
|
||||
--stubsdir=$out/${python.sitePackages}/PyQt5 \
|
||||
--apidir=$out/api/${python.libPrefix} \
|
||||
--qsci-incdir=${qscintilla}/include \
|
||||
--qsci-featuresdir=${qscintilla}/mkspecs/features \
|
||||
--qsci-libdir=${qscintilla}/lib \
|
||||
--pyqt-sipdir=${pyqt5}/${python.sitePackages}/PyQt5/bindings \
|
||||
--qsci-sipdir=$out/share/sip/PyQt5 \
|
||||
--sip-incdir=${sip_4}/include
|
||||
cp pyproject-qt5.toml pyproject.toml
|
||||
echo '[tool.sip.project]' >> pyproject.toml
|
||||
echo 'sip-include-dirs = [ "${pyqt5}/${python.sitePackages}/PyQt5/bindings"]' \
|
||||
>> pyproject.toml
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace project.py \
|
||||
--replace \
|
||||
"if self.project.qsci_external_lib:
|
||||
if self.qsci_features_dir is not None:" \
|
||||
"if self.project.qsci_external_lib:
|
||||
self.builder_settings.append('QT += widgets')
|
||||
|
||||
self.builder_settings.append('QT += printsupport')
|
||||
|
||||
if self.qsci_features_dir is not None:"
|
||||
'';
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
build = ''
|
||||
sip-install --qsci-features-dir ${qscintilla}/mkspecs/features \
|
||||
--qsci-include-dir ${qscintilla}/include \
|
||||
--qsci-library-dir ${qscintilla}/lib --api-dir ${qscintilla}/share";
|
||||
'';
|
||||
postInstall = ''
|
||||
# Needed by pythonImportsCheck to find the module
|
||||
export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
|
||||
|
|
|
@ -9094,7 +9094,9 @@ with pkgs;
|
|||
|
||||
qprint = callPackage ../tools/text/qprint { };
|
||||
|
||||
qscintilla = callPackage ../development/libraries/qscintilla { };
|
||||
qscintilla = libsForQt5.callPackage ../development/libraries/qscintilla { };
|
||||
|
||||
qscintilla-qt4 = callPackage ../development/libraries/qscintilla-qt4 { };
|
||||
|
||||
qshowdiff = callPackage ../tools/text/qshowdiff { };
|
||||
|
||||
|
|
|
@ -8289,13 +8289,13 @@ in {
|
|||
|
||||
qreactor = callPackage ../development/python-modules/qreactor { };
|
||||
|
||||
qscintilla-qt4 = callPackage ../development/python-modules/qscintilla { };
|
||||
qscintilla-qt4 = callPackage ../development/python-modules/qscintilla-qt4 { };
|
||||
|
||||
qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 {
|
||||
pythonPackages = self;
|
||||
};
|
||||
|
||||
qscintilla = self.qscintilla-qt4;
|
||||
qscintilla = self.qscintilla-qt5;
|
||||
|
||||
qtawesome = callPackage ../development/python-modules/qtawesome { };
|
||||
|
||||
|
|
|
@ -190,9 +190,7 @@ in (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdParty // kdeGea
|
|||
|
||||
qoauth = callPackage ../development/libraries/qoauth { };
|
||||
|
||||
qscintilla = callPackage ../development/libraries/qscintilla {
|
||||
withQt5 = true;
|
||||
};
|
||||
qscintilla = callPackage ../development/libraries/qscintilla { };
|
||||
|
||||
qt5ct = callPackage ../tools/misc/qt5ct { };
|
||||
|
||||
|
|
Loading…
Reference in a new issue