CMake postavke
CMakePresets.json ima opcije za izgradnje za cijeli projekt, dok CMakeUserPresets.json ima opcije za vaše lokalne izgradnje.
Stvorite datoteke s predlošcima u formatu opisanom u cmake-presets(7) i spremite ih u korijenski direktorij projekta. Zatim ih možete vidjeti u prikazu projekata.
Qt Creator podržava presete za configure, build i test do verzije 5 (uvedeni u CMakeu 3.24), ali ne provodi provjeru verzije. Čita i koristi sva polja iz verzije 5 ako su prisutna.
Možete uvesti presete prvi put kada otvorite projekt, kada ne postoji datoteka CMakeLists.txt.user ili kada ste onemogućili sve komplete u projektu.

Presete možete pregledati u polju za postavke izgradnje ( Initial Configuration ) i u polju za konfiguraciju okruženja ispod njega.

Za ažuriranje promjena u datoteci CMakePresets.json, idite na Build, odaberite Reload CMake Presets i zatim odaberite datoteku s presetima za učitavanje.
Konfiguriraj presete
Sljedeći configure preseti nalažu CMakeu da koristi zadani generator na platformi i određuju direktorij za izgradnju za sve vrste izgradnje. NOT_COMMON_VALUE se prikazuje u Initial Parameters, a AN_ENVIRONMENT_FLAG u polju za konfiguraciju okruženja.
{
"version": 1,
"configurePresets": [
{
"name": "preset",
"displayName": "preset",
"binaryDir": "${sourceDir}/build/preset",
"cacheVariables": {
"NOT_COMMON_VALUE": "NOT_COMMON_VALUE"
},
"environment": {
"AN_ENVIRONMENT_FLAG": "1"
}
},
"vendor": {
"qt.io/QtCreator/1.0": {
"AskBeforePresetsReload": false,
"AskReConfigureInitialParams": false,
"AutorunCMake": false,
"PackageManagerAutoSetup": false,
"ShowAdvancedOptionsByDefault": true,
"ShowSourceSubFolders": false,
"UseJunctionsForSourceAndBuildDirectories": true
}
}
]
}Za više informacija o postavkama CMake projekta u odjeljku vendor pogledajte CMake Qt Vendor Presets.
MinGW primjer
Sljedeći primjer konfigurira Qt projekt s:
- MinGW kompajler
- direktorij za izgradnju –
<sourceDir>/build-release - vrsta izgradnje –
CMAKE_BUILD_TYPEkaoRelease - generator – MinGW Makefiles
- putanju do CMake izvršne datoteke
- put do instalacije Qt-a putem
CMAKE_PREFIX_PATH - GNU gdb 11.2.0 za MinGW 11.2.0 64-bitni otklonivač pogrešaka
{
"version": 1,
"configurePresets": [
{
"name": "mingw",
"displayName": "MinGW 11.2.0",
"generator": "MinGW Makefiles",
"binaryDir": "${sourceDir}/build-release",
"cmakeExecutable": "C:/Qt/Tools/CMake_64/bin/cmake.exe",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_PREFIX_PATH": "C:/Qt/6.4.0/mingw_64"
},
"environment": {
"PATH": "C:/Qt/Tools/mingw1120_64/bin;$penv{PATH}"
},
"vendor": {
"qt.io/QtCreator/1.0": {
"debugger": {
"DisplayName": "GNU gdb 11.2.0 for MinGW 11.2.0 64-bit",
"Abis": ["x86-windows-msys-pe-64bit"],
"Binary": "C:/Qt/Tools/mingw1120_64/bin/gdb.exe",
"EngineType": 1,
"Version": "11.2.0"
}
}
}
]
}Za ubrzanje procesa na Windowsu navedite CMAKE_C_COMPILER i CMAKE_CXX_COMPILER u odjeljku cacheVariables.
Za moguće vrijednosti nekih postavki u odjeljku debugger pogledajte CMake Qt Vendor Presets.
Primjer Ninja generatora
Sljedeći configure i build preseti postavljaju Ninja Multi-Config kao generator, dodaju korake izgradnje za Debug i Release te navode putanju do ninja.exe kao vrijednost varijable CMAKE_MAKE_PROGRAM:
{
"version": 2,
"configurePresets": [
{
"name": "ninja-nmc",
"displayName": "Ninja Multi-Config MinGW",
"generator": "Ninja Multi-Config",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_CONFIGURATION_TYPES": "Debug;Release",
"CMAKE_PREFIX_PATH": "C:/Qt/6.4.0/mingw_64",
"CMAKE_MAKE_PROGRAM": "C:/Qt/Tools/Ninja/ninja.exe"
},
"environment": {
"PATH": "c:/Qt/Tools/mingw1120_64/bin;$penv{PATH}"
}
}
],
"buildPresets": [
{
"name": "release",
"displayName": "Ninja Release",
"configurePreset": "ninja-nmc",
"configuration": "Release"
},
{
"name": "debug",
"displayName": "Ninja Debug",
"configurePreset": "ninja-nmc",
"configuration": "Debug"
}
]
}Ovaj primjer pretpostavlja da je putanja do CMake izvršne datoteke postavljena u Preferences > CMake > Tools.
MSVC primjer
Kada koristite MSVC kompajlere s NMAKE Makefile-ovima, Ninja ili Ninja Multi-Config generatorima, možete koristiti strategiju external za polja architecture i toolset. Time se Qt Creator omogućuje da pripremi okruženje Visual C++ prije pozivanja CMakea.
Na primjer:
"generator": "Ninja Multi-Config", "toolset": { "value": "v142,host=x64", "strategy": "external" }, "architecture": { "value": "x64", "strategy": "external" },
Ako koristite MSVC kompajlere s generatorima koji nisu VS i imate više kompajlera u PATH, možda ćete također morati navesti kompajler koji ćete koristiti u cacheVariables ili environmentVariables:
"generator": "Ninja Multi-Config", "toolset": { "value": "v142,host=x64", "strategy": "external" }, "architecture": { "value": "x64", "strategy": "external" }, "cacheVariables": { "CMAKE_C_COMPILER": "cl.exe", "CMAKE_CXX_COMPILER": "cl.exe" }
Primjer prekompilacije
Sljedeći primjer konfigurira Qt projekt za križnu kompilaciju na macOS-u za Windows i pokretanje s emulatorom wine na macOS-u:
- generator – Ninja
- direktorij za izgradnju –
<sourceDir>/build-release - LLVM/MinGW alatni lanac
- vrsta konfiguracije –
CMAKE_BUILD_TYPEkaoRelease - Debugger LLDB 18.1.6
wineemulator
{
"version": 4,
"configurePresets": [
{
"name": "llvm-mingw",
"displayName": "LLVM-MinGW 18.1.6",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build-release",
"toolchainFile": "llvm-mingw.cmake",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_CROSSCOMPILING_EMULATOR": "/opt/homebrew/bin/wine"
},
"vendor": {
"qt.io/QtCreator/1.0": {
"debugger": {
"DisplayName": "LLDB 18.1.6 (CMake Preset)",
"Abis": ["x86-darwin-generic-mach_o-64bit", "arm-darwin-generic-mach_o-64bit"],
"Binary": "/Users/jdoe/llvm-mingw/bin/lldb",
"EngineType": 256,
"Version": "18.1.6"
}
}
}
}
]
}Uvjeti korištenja
Sljedeći configure preseti koriste se ako odgovaraju condition u. To jest, ako je hostSystemName jednak Linux u, koriste se preseti linux a, a ako je jednak Windows u, koriste se preseti windows a.
{
"version": 3,
"configurePresets": [
{
"name": "linux",
"displayName": "Linux GCC",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_PREFIX_PATH": "$env{HOME}/Qt/6.4.0/gcc_64"
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
}
},
{
"name": "windows",
"displayName": "Windows MSVC",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_PREFIX_PATH": "$env{SYSTEMDRIVE}/Qt/6.4.0/msvc2019_64"
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
}
]
}Postavke testova
Sljedeći testni preseti nalažu CMakeu da prekine izvršavanje testa i ispiše izlazni rezultat testnog programa pri neuspjehu, kao i da prikaže pogrešku ako se test ne može pronaći.
{
"version": 3,
"testPresets": [
{
"name": "default",
"configurePreset": "default",
"output": {"outputOnFailure": true},
"execution": {"noTestsAction": "error", "stopOnFailure": true}
}
],
}Vidi također Konfiguracija izgradnje CMakea, CMake, CMake Qt Vendor Presets i Alat SDK.
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.