1{
2 pkgsBuildBuild,
3 qtModule,
4 stdenv,
5 lib,
6 qtbase,
7 qtdeclarative,
8 cups,
9 llvmPackages,
10 # clang-based c++ parser for qdoc and lupdate
11 withClang ? false,
12}:
13
14qtModule {
15 pname = "qttools";
16 buildInputs = lib.optionals withClang [
17 llvmPackages.libclang
18 llvmPackages.llvm
19 ];
20 propagatedBuildInputs = [
21 qtbase
22 qtdeclarative
23 ]
24 ++ lib.optionals stdenv.hostPlatform.isDarwin [ cups ];
25 cmakeFlags = lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
26 "-DQt6LinguistTools_DIR=${pkgsBuildBuild.qt6.qttools}/lib/cmake/Qt6LinguistTools"
27 "-DQt6ToolsTools_DIR=${pkgsBuildBuild.qt6.qttools}/lib/cmake/Qt6ToolsTools"
28 ];
29 patches = [
30 ./paths.patch
31 ];
32 env.NIX_CFLAGS_COMPILE = toString [
33 "-DNIX_OUTPUT_OUT=\"${placeholder "out"}\""
34 ];
35 postPatch = ''
36 substituteInPlace \
37 src/qdoc/catch/CMakeLists.txt \
38 src/qdoc/catch_generators/CMakeLists.txt \
39 src/qdoc/catch_conversions/CMakeLists.txt \
40 --replace ''\'''${CMAKE_INSTALL_INCLUDEDIR}' "$out/include"
41 '';
42 postInstall = ''
43 mkdir -p "$dev"
44 ln -s "$out/bin" "$dev/bin"
45 '';
46}