nixpkgs/pkgs/development/tools/tora/default.nix
2017-12-29 02:18:35 +01:00

67 lines
1.8 KiB
Nix

{ mkDerivation, lib, fetchFromGitHub, cmake, extra-cmake-modules, makeWrapper
, boost, doxygen, openssl, mysql, postgresql, graphviz, loki, qscintilla, qtbase }:
let
qscintillaLib = (qscintilla.override { withQt5 = true; });
in mkDerivation rec {
name = "tora-${version}";
version = "3.1";
src = fetchFromGitHub {
owner = "tora-tool";
repo = "tora";
rev = "v${version}";
sha256 = "0wninl10bcgiljf6wnhn2rv8kmzryw78x5qvbw8s2zfjlnxjsbn7";
};
nativeBuildInputs = [ cmake extra-cmake-modules makeWrapper ];
buildInputs = [
boost doxygen graphviz loki mysql.connector-c openssl postgresql qscintillaLib qtbase
];
preConfigure = ''
sed -i \
's|defaultGvHome = "/usr/bin"|defaultGvHome = "${lib.getBin graphviz}/bin"|' \
src/widgets/toglobalsetting.cpp
sed -i \
's|/usr/bin/dot|${lib.getBin graphviz}/bin/dot|' \
extlibs/libermodel/dotgraph.cpp
'';
cmakeFlags = [
"-DWANT_INTERNAL_LOKI=0"
"-DWANT_INTERNAL_QSCINTILLA=0"
# cmake/modules/FindQScintilla.cmake looks in qtbase and for the wrong library name
"-DQSCINTILLA_INCLUDE_DIR=${qscintillaLib}/include"
"-DQSCINTILLA_LIBRARY=${qscintillaLib}/lib/libqscintilla2.so"
"-DENABLE_DB2=0"
"-DENABLE_ORACLE=0"
"-DENABLE_TERADATA=0"
"-DQT5_BUILD=1"
"-Wno-dev"
];
# these libraries are only searched for at runtime so we need to force-link them
NIX_LDFLAGS = [
"-lgvc"
"-lmysqlclient"
"-lecpg"
"-lssl"
];
NIX_CFLAGS_COMPILE = [ "-L${mysql.connector-c}/lib/mysql" "-I${mysql.connector-c}/include/mysql" ];
postFixup = ''
wrapProgram $out/bin/tora \
--prefix PATH : ${lib.getBin graphviz}/bin
'';
meta = with lib; {
description = "Tora SQL tool";
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.linux;
license = licenses.asl20;
};
}