1{
2    "version": 3,
3    "configurePresets": [
4        {
5            "name": "dev",
6            "displayName": "Build as debug",
7            "generator": "Ninja",
8            "binaryDir": "${sourceDir}/build",
9            "cacheVariables": {
10                "CMAKE_BUILD_TYPE": "Debug",
11                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
12            },
13            "installDir": "$env{KF5}"
14        },
15        {
16            "name": "dev-disable-deprecated",
17            "displayName": "Build as without deprecated methods",
18            "generator": "Ninja",
19            "binaryDir": "${sourceDir}/build-disable-deprecated",
20            "cacheVariables": {
21                "CMAKE_BUILD_TYPE": "Debug",
22                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
23                "CMAKE_CXX_FLAGS_INIT": "-DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x060000"
24            },
25	    "installDir": "$env{KF5}"
26        },
27        {
28            "name": "asan",
29            "displayName": "Build with Asan support.",
30            "generator": "Ninja",
31            "binaryDir": "${sourceDir}/build-asan",
32            "cacheVariables": {
33                "CMAKE_BUILD_TYPE": "Debug",
34                "ECM_ENABLE_SANITIZERS" : "'address;undefined'",
35                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
36            },
37            "installDir": "$env{KF5}"
38        },
39        {
40            "name": "pch",
41            "displayName": "Build with PCH support.",
42            "generator": "Ninja",
43            "binaryDir": "${sourceDir}/build-pch",
44            "cacheVariables": {
45                "CMAKE_BUILD_TYPE": "Debug",
46		"COMPILE_WITH_CMAKE_PCH_SUPPORT": "ON",
47                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
48            },
49            "installDir": "$env{KF5}"
50        },
51        {
52            "name": "dev-clang",
53            "displayName": "dev-clang",
54            "generator": "Ninja",
55            "binaryDir": "${sourceDir}/build-clang",
56            "cacheVariables": {
57                "CMAKE_BUILD_TYPE": "Debug",
58                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
59            },
60            "environment": {
61                "CXX": "clang++",
62                "CCACHE_DISABLE": "ON"
63            },
64            "installDir": "$env{KF5}"
65        },
66        {
67            "name": "unity",
68            "displayName": "Build with CMake unity support.",
69            "generator": "Ninja",
70            "binaryDir": "${sourceDir}/build-unity",
71            "cacheVariables": {
72                "CMAKE_BUILD_TYPE": "Debug",
73                "USE_UNITY_CMAKE_SUPPORT": "ON",
74                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
75            },
76            "installDir": "$env{KF5}"
77        },
78        {
79            "name": "release",
80            "displayName": "Build as release mode.",
81            "generator": "Ninja",
82            "binaryDir": "${sourceDir}/build-release",
83            "cacheVariables": {
84                "CMAKE_BUILD_TYPE": "Release"
85            },
86            "installDir": "$env{KF5}"
87        },
88        {
89            "name": "profile",
90            "displayName": "profile",
91            "generator": "Ninja",
92            "binaryDir": "${sourceDir}/build-profile",
93            "cacheVariables": {
94                "CMAKE_BUILD_TYPE": "RelWithDebInfo",
95                "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
96            },
97            "installDir": "$env{KF5}"
98        },
99        {
100            "name": "clazy",
101            "displayName": "clazy",
102            "generator": "Ninja",
103            "binaryDir": "${sourceDir}/build-clazy",
104            "cacheVariables": {
105                "CMAKE_BUILD_TYPE": "Debug"
106            },
107            "environment": {
108                "CXX": "clazy",
109                "CCACHE_DISABLE": "ON"
110            },
111            "installDir": "$env{KF5}"
112        }
113
114    ],
115    "buildPresets": [
116        {
117            "name": "dev",
118            "configurePreset": "dev"
119        },
120        {
121            "name": "dev-disable-deprecated",
122            "configurePreset": "dev-disable-deprecated"
123        },
124        {
125            "name": "pch",
126            "configurePreset": "pch"
127        },
128        {
129            "name": "release",
130            "configurePreset": "release"
131        },
132        {
133            "name": "dev-clang",
134            "configurePreset": "dev-clang"
135        },
136        {
137            "name": "asan",
138            "configurePreset": "asan"
139        },
140        {
141            "name": "unity",
142            "configurePreset": "unity"
143        },
144        {
145            "name": "clazy",
146            "configurePreset": "clazy",
147            "environment": {
148                "CLAZY_CHECKS" : "level0,level1,detaching-member,ifndef-define-typo,isempty-vs-count,qrequiredresult-candidates,reserve-candidates,signal-with-return-value,unneeded-cast,function-args-by-ref,function-args-by-value,returning-void-expression,no-ctor-missing-parent-argument,isempty-vs-count,qhash-with-char-pointer-key,raw-environment-function,qproperty-type-mismatch,old-style-connect,qstring-allocations,container-inside-loop,heap-allocated-small-trivial-type,inefficient-qlist,qstring-varargs,level2,detaching-member,heap-allocated-small-trivial-type,isempty-vs-count,qstring-varargs,qvariant-template-instantiation,raw-environment-function,reserve-candidates,signal-with-return-value,thread-with-slots,no-ctor-missing-parent-argument,no-missing-typeinfo",
149                "CCACHE_DISABLE" : "ON"
150            }
151        }
152    ],
153    "testPresets": [
154    {
155      "name": "dev",
156      "configurePreset": "dev",
157      "output": {"outputOnFailure": true},
158      "execution": {"noTestsAction": "error", "stopOnFailure": false}
159    },
160    {
161      "name": "asan",
162      "configurePreset": "asan",
163      "output": {"outputOnFailure": true},
164      "execution": {"noTestsAction": "error", "stopOnFailure": true}
165    }
166    ]
167}
168