summaryrefslogtreecommitdiff
path: root/src/tools/clangpchmanagerbackend/clangpchmanagerbackend.qbs
blob: adb7e0c62b665d36ae640ef2476e264c2f3db7de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import qbs
import qbs.FileInfo

QtcTool {
    name: "clangpchmanagerbackend"
    Depends { name: "libclang"; required: false }
    condition: libclang.present
               && libclang.toolingEnabled
               && (!qbs.targetOS.contains("windows") || libclang.llvmBuildModeMatches)

    Depends { name: "ClangSupport" }

    Depends { name: "Qt.network" }

    cpp.cxxFlags: base.concat(libclang.llvmToolingCxxFlags)
    cpp.defines: {
        var list = base.concat(libclang.llvmToolingDefines);
        list.push('CLANG_COMPILER_PATH="'
                  + FileInfo.joinPaths(FileInfo.path(libclang.llvmConfig), "clang") + '"');
        return list;
    }
    cpp.includePaths: base.concat(libclang.llvmIncludeDir).concat(libclang.llvmToolingIncludes)
                          .concat(["source", "../clangrefactoringbackend/source"])
    cpp.libraryPaths: base.concat(libclang.llvmLibDir)
    cpp.dynamicLibraries: base.concat(libclang.llvmToolingLibs)

    Properties {
        condition: qbs.targetOS.contains("unix") && !qbs.targetOS.contains("macos")
        cpp.rpaths: base.concat(libclang.llvmLibDir)
    }

    files: [
        "clangpchmanagerbackendmain.cpp",
    ]

    Group {
        prefix: "source/"
        files: [
            "changedfilepathcompressor.h",
            "clangpathwatcherinterface.cpp",
            "clangpathwatcherinterface.h",
            "clangpathwatchernotifier.cpp",
            "clangpathwatchernotifier.h",
            "clangpathwatcher.cpp",
            "clangpathwatcher.h",
            "clangpchmanagerbackend_global.h",
            "collectincludesaction.h",
            "collectincludespreprocessorcallbacks.h",
            "collectincludestoolaction.h",
            "environment.h",
            "idpaths.cpp",
            "idpaths.h",
            "includecollector.cpp",
            "includecollector.h",
            "pchcreatorinterface.cpp",
            "pchcreatorinterface.h",
            "pchcreator.cpp",
            "pchcreator.h",
            "pchgenerator.h",
            "pchgeneratorinterface.cpp",
            "pchgeneratorinterface.h",
            "pchgeneratornotifierinterface.cpp",
            "pchgeneratornotifierinterface.h",
            "pchmanagerserver.cpp",
            "pchmanagerserver.h",
            "pchnotcreatederror.h",
            "projectpartsinterface.cpp",
            "projectpartsinterface.h",
            "projectparts.cpp",
            "projectparts.h",
        ]
    }

    Group {
        name: "sources from clangrefactoring"
        prefix: "../clangrefactoringbackend/source/"
        files: [
            "clangtool.cpp",
            "refactoringcompilationdatabase.cpp",
        ]
    }
}