nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
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
17 patches = [
18 ./paths.patch
19 ];
20
21 postPatch = ''
22 substituteInPlace \
23 src/qdoc/catch/CMakeLists.txt \
24 src/qdoc/catch_generators/CMakeLists.txt \
25 src/qdoc/catch_conversions/CMakeLists.txt \
26 --replace ''\'''${CMAKE_INSTALL_INCLUDEDIR}' "$out/include"
27 '';
28
29 env.NIX_CFLAGS_COMPILE = toString [
30 "-DNIX_OUTPUT_OUT=\"${placeholder "out"}\""
31 ];
32
33 buildInputs = lib.optionals withClang [
34 llvmPackages.libclang
35 llvmPackages.llvm
36 ];
37
38 propagatedBuildInputs = [
39 qtbase
40 qtdeclarative
41 ]
42 ++ lib.optionals stdenv.hostPlatform.isDarwin [ cups ];
43
44 cmakeFlags =
45 lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
46 "-DQt6LinguistTools_DIR=${pkgsBuildBuild.qt6.qttools}/lib/cmake/Qt6LinguistTools"
47 "-DQt6ToolsTools_DIR=${pkgsBuildBuild.qt6.qttools}/lib/cmake/Qt6ToolsTools"
48 ]
49 ++ lib.optionals withClang [
50 "-DFEATURE_clang=ON"
51 ];
52
53 postInstall = ''
54 mkdir -p "$dev"
55 ln -s "$out/bin" "$dev/bin"
56 '';
57}