1{
2 stdenv,
3 lib,
4 fetchurl,
5 cmake,
6 qtbase,
7 wrapQtAppsHook,
8}:
9
10let
11 isQt6 = lib.versions.major qtbase.version == "6";
12 cmakeName = if isQt6 then "KDSoap-qt6" else "KDSoap";
13in
14stdenv.mkDerivation rec {
15 pname = "kdsoap";
16 version = "2.2.0";
17
18 src = fetchurl {
19 url = "https://github.com/KDAB/KDSoap/releases/download/kdsoap-${version}/kdsoap-${version}.tar.gz";
20 sha256 = "sha256-2e8RlIRCGXyfpEvW+63IQrcoCmDfxAV3r2b97WN681Y=";
21 };
22
23 outputs = [
24 "out"
25 "dev"
26 ];
27
28 nativeBuildInputs = [
29 cmake
30 wrapQtAppsHook
31 ];
32
33 buildInputs = [ qtbase ];
34
35 cmakeFlags = [ (lib.cmakeBool "KDSoap_QT6" isQt6) ];
36
37 postInstall = ''
38 moveToOutput bin/kdwsdl2cpp* "$dev"
39 substituteInPlace "$out/lib/cmake/${cmakeName}/KDSoapTargets-release.cmake" \
40 --replace $out/bin $dev/bin
41 '';
42
43 meta = with lib; {
44 description = "Qt-based client-side and server-side SOAP component";
45 longDescription = ''
46 KD Soap is a Qt-based client-side and server-side SOAP component.
47
48 It can be used to create client applications for web services and also
49 provides the means to create web services without the need for any further
50 component such as a dedicated web server.
51 '';
52 license = with licenses; [
53 gpl2
54 gpl3
55 lgpl21
56 ];
57 maintainers = [ maintainers.ttuegel ];
58 };
59}