lol
1{ stdenv
2, lib
3, fetchurl
4, cmake
5, pkg-config
6, ninja
7, python3
8, qtbase
9, qt5compat
10, qtdeclarative
11, qtdoc
12, qtquick3d
13, qtquicktimeline
14, qtserialport
15, qtsvg
16, qttools
17, qtwebengine
18, qtwayland
19, qtshadertools
20, wrapQtAppsHook
21, yaml-cpp
22, litehtml
23, gumbo
24, llvmPackages
25, rustc-demangle
26, elfutils
27, perf
28}:
29
30stdenv.mkDerivation rec {
31 pname = "qtcreator";
32 version = "11.0.3";
33
34 src = fetchurl {
35 url = "https://download.qt.io/official_releases/${pname}/${lib.versions.majorMinor version}/${version}/qt-creator-opensource-src-${version}.tar.xz";
36 hash = "sha256-X1AeZOg2t+PlC5iz68NFsgE5al/ZLklzjau14mjVzxw=";
37 };
38
39 nativeBuildInputs = [
40 cmake
41 pkg-config
42 (qttools.override { withClang = true; })
43 wrapQtAppsHook
44 python3
45 ninja
46 ];
47
48 buildInputs = [
49 qtbase
50 qtdoc
51 qtsvg
52 qtquick3d
53 qtwebengine
54 qtwayland
55 qtserialport
56 qtshadertools
57 qt5compat
58 qtdeclarative
59 qtquicktimeline
60 yaml-cpp
61 litehtml
62 gumbo
63 llvmPackages.libclang
64 llvmPackages.llvm
65 rustc-demangle
66 elfutils
67 ];
68
69 cmakeFlags = [
70 # workaround for missing CMAKE_INSTALL_DATAROOTDIR
71 # in pkgs/development/tools/build-managers/cmake/setup-hook.sh
72 "-DCMAKE_INSTALL_DATAROOTDIR=${placeholder "out"}/share"
73 # qtdeclarative in nixpkgs does not provide qmlsc
74 # fix can't find Qt6QmlCompilerPlusPrivate
75 "-DQT_NO_FIND_QMLSC=TRUE"
76 "-DWITH_DOCS=ON"
77 "-DBUILD_DEVELOPER_DOCS=ON"
78 "-DBUILD_QBS=OFF"
79 "-DQTC_CLANG_BUILDMODE_MATCH=ON"
80 "-DCLANGTOOLING_LINK_CLANG_DYLIB=ON"
81 ];
82
83 qtWrapperArgs = [
84 "--set-default PERFPROFILER_PARSER_FILEPATH ${lib.getBin perf}/bin"
85 ];
86
87 postInstall = ''
88 substituteInPlace $out/share/applications/org.qt-project.qtcreator.desktop \
89 --replace "Exec=qtcreator" "Exec=$out/bin/qtcreator"
90 '';
91
92 meta = with lib; {
93 description = "Cross-platform IDE tailored to the needs of Qt developers";
94 longDescription = ''
95 Qt Creator is a cross-platform IDE (integrated development environment)
96 tailored to the needs of Qt developers. It includes features such as an
97 advanced code editor, a visual debugger and a GUI designer.
98 '';
99 homepage = "https://wiki.qt.io/Qt_Creator";
100 license = licenses.gpl3Only; # annotated with The Qt Company GPL Exception 1.0
101 maintainers = [ maintainers.rewine ];
102 platforms = platforms.linux;
103 };
104}