82 lines
2.1 KiB
Nix
82 lines
2.1 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchurl,
|
|
copper,
|
|
python3,
|
|
pkg-config,
|
|
withQt ? false,
|
|
qtbase ? null,
|
|
wrapQtAppsHook ? null,
|
|
withGtk2 ? false,
|
|
gtk2,
|
|
withGtk3 ? false,
|
|
gtk3,
|
|
mkDerivation ? stdenv.mkDerivation,
|
|
}:
|
|
let
|
|
onlyOneEnabled = xs: 1 == builtins.length (builtins.filter lib.id xs);
|
|
in
|
|
assert onlyOneEnabled [
|
|
withQt
|
|
withGtk2
|
|
withGtk3
|
|
];
|
|
mkDerivation rec {
|
|
pname = "code-browser";
|
|
version = "8.0";
|
|
src = fetchurl {
|
|
url = "https://tibleiz.net/download/code-browser-${version}-src.tar.gz";
|
|
sha256 = "sha256-beCp4lx4MI1+hVgWp2h3piE/zu51zfwQdB5g7ImgmwY=";
|
|
};
|
|
postPatch =
|
|
''
|
|
substituteInPlace Makefile --replace "LFLAGS=-no-pie" "LFLAGS=-no-pie -L."
|
|
patchShebangs .
|
|
''
|
|
+ lib.optionalString withQt ''
|
|
substituteInPlace libs/copper-ui/Makefile --replace "moc -o" "${qtbase.dev}/bin/moc -o"
|
|
substituteInPlace libs/copper-ui/Makefile --replace "all: qt gtk gtk2" "all: qt"
|
|
''
|
|
+ lib.optionalString withGtk2 ''
|
|
substituteInPlace libs/copper-ui/Makefile --replace "all: qt gtk gtk2" "all: gtk2"
|
|
''
|
|
+ lib.optionalString withGtk3 ''
|
|
substituteInPlace libs/copper-ui/Makefile --replace "all: qt gtk gtk2" "all: gtk"
|
|
'';
|
|
nativeBuildInputs =
|
|
[
|
|
copper
|
|
python3
|
|
pkg-config
|
|
]
|
|
++ lib.optionals withGtk2 [ gtk2 ]
|
|
++ lib.optionals withGtk3 [ gtk3 ]
|
|
++ lib.optionals withQt [
|
|
qtbase
|
|
wrapQtAppsHook
|
|
];
|
|
buildInputs =
|
|
lib.optionals withQt [ qtbase ]
|
|
++ lib.optionals withGtk2 [ gtk2 ]
|
|
++ lib.optionals withGtk3 [ gtk3 ];
|
|
makeFlags =
|
|
[
|
|
"prefix=$(out)"
|
|
"COPPER=${copper}/bin/copper-elf64"
|
|
"with-local-libs"
|
|
]
|
|
++ lib.optionals withQt [
|
|
"QINC=${qtbase.dev}/include"
|
|
"UI=qt"
|
|
]
|
|
++ lib.optionals withGtk2 [ "UI=gtk2" ]
|
|
++ lib.optionals withGtk3 [ "UI=gtk" ];
|
|
|
|
meta = with lib; {
|
|
description = "Folding text editor, designed to hierarchically structure any kind of text file and especially source code";
|
|
homepage = "https://tibleiz.net/code-browser/";
|
|
license = licenses.gpl2;
|
|
platforms = platforms.x86_64;
|
|
};
|
|
}
|