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