SDK Tool
Qt Online Installer uses the SDK Tool (sdktool
) to configure CMake and set Kit preferences, such as compilers, debuggers, devices, and Qt versions. You can use it from the command line to set Qt and Qt Creator preferences automatically for all users of a computer, for example. For a single user, it is usually easier to make changes in Preferences > Kits.
To use the SDK Tool, enter the following command in the Tools\sdktool\bin
directory in the Qt installation directory:
sdktool [OPTION] [OPERATION [OPTIONS]]
For information about the options and operations that your SDK Tool version supports, enter:
sdktool --help
Value Types
The operations add settings in the form <KEY> <TYPE>:<VALUE>
to the configuration that they create. The supported TYPE
values are:
bool
int
- QByteArray
- QString
- QVariantList
SDK Path
Qt Online Installer and the Qt Creator stand-alone installer both install sdktool
. The sdktool
from an installer defaults to the location from where the Qt Creator from the installer reads the information that the SDK Tool writes. To point sdktool
to some other Qt Creator installation, set --sdkpath
depending on whether you use Qt Online Installer or an offline installer.
- Qt Online Installer:
<Qt_Online_Installer>/Tools/sdktool
- Qt Creator stand-alone installer:
- On Windows and Linux:
<qtcreator>/share/qtcreator/
- On macOS
Qt Creator.app/Contents/Resources/
- On Windows and Linux:
Options
The following table summarizes the available options.
Option | Description |
---|---|
--help | -h | Display help on SDK tool options. Enter |
--sdkpath=<PATH> | -s <PATH> | Set the path to the files that the SDK tool writes. |
Operations
The following table summarizes the available operations.
Operation | Description |
---|---|
addAbiFlavor | Add a system architecture (ABI). |
addCMake | Add the path to a CMake tool. |
addDebugger | Add a debugger. |
addDev | Add a device. |
addKeys | Add settings as <KEY> <TYPE>:<VALUE> key-value pairs. |
addKit | Add a build and run kit. |
addQt | Add a Qt version. |
addTC | Add a compiler. |
find | Find a setting value. |
findKey | Find a setting key. |
get | Get settings. |
rmCMake | Remove the path to a CMake tool. |
rmDebugger | Remove a debugger. |
rmDev | Remove a device |
rmKeys | Remove settings. |
rmQt | Remove a Qt version. |
rmTC | Remove a compiler. |
Adding a System Architecture (ABI)
addAbiFlavor
sdktool addAbiFlavor --flavor <NAME> --oses <OS>(,<OS>)*
addAbiFlavor Options
The following table summarizes the available options.
Option | Description | Required |
---|---|---|
--flavor <NAME> | Name of the system architecture (ABI). | |
--oses <OS>(,<OS>)* | Operating system that the ABI applies to. |
ABI Flavor Example
To add Yocto Poky on Linux, enter:
./sdktool addAbiFlavor \ --flavor poky \ --oses linux
Adding CMake Tools
addCMake
sdktool addCMake --id <ID> --name <NAME> --path <PATH> [<KEY> <TYPE:VALUE>]
addCMake Options
The following table summarizes the available options.
Option | Description | Required |
---|---|---|
--id <ID> | ID of the CMake installation. Can be any ASCII (7-bit) string. If you do not use a version number in the string, the registered CMake keeps the ID when you update this CMake installation, and therefore, all kits are automatically updated to use the new version. | |
--name <NAME> | Name of the CMake installation. | |
--path <PATH> | Path to the CMake executable. | |
<KEY> <TYPE:VALUE> | Additional settings as key-value pairs. |
For more information, see Add CMake tools.
CMake Configuration Example
To add a CMake tool on Windows, enter:
sdktool addCMake \ --id "my.custom.cmake" \ --name "Custom CMake" \ --path "C:\Program Files\CMake-3.30\bin\cmake.exe"
Adding Compilers
addTC
sdktool addTC --id <ID> --language <ID> --name <NAME> --path <PATH> --abi <ABI STRING> [OPTIONS]
addTC Options
The following table summarizes the available options.
Option | Description | Required |
---|---|---|
--abi <ABI STRING> | ABI of the compiler in a format that ProjectExplorer::Abi::fromString() can parse. | |
--id <ID> | ID of the toolchain in the format ToolChainType:some_unique_part , where the toolchain type can be one of the following, or something else provided by a plugin:
Check the classes derived from
| |
--language <ID> | ID of the input language of the toolchain: C or Cxx . | |
--name <NAME> | Name of the toolchain. | |
--path <PATH> | Path to the compiler executable. | |
--supportedAbis <ABI STRING>,<ABI STRING> | List of ABIs that the compiler supports. | |
<KEY> <TYPE:VALUE> | Additional settings as key-value pairs. |
For more information, see Add compilers.
Compiler Example
To add a GCC compiler on Linux, enter:
./sdktool addTC \ --id "ProjectExplorer.ToolChain.Gcc:company.product.toolchain.g++" \ --language Cxx --name "GCC (C++, x86_64)" \ --path /home/code/build/gcc-6.3/usr/bin/g++ \ --abi x86-linux-generic-elf-64bit \ --supportedAbis x86-linux-generic-elf-64bit,x86-linux-generic-elf-32bit \ ADDITIONAL_INTEGER_PARAMETER int:42 \ ADDITIONAL_STRING_PARAMETER "QString:some string" \
Adding Debuggers
addDebugger
sdktool addDebugger --id <ID> --name <NAME> [OPTIONS]
addDebugger Options
The following table summarizes the available options.
Option | Description | Required |
---|---|---|
--abis <ABI,ABI> | Comma-separated list of system architecture definitions. | |
--binary <PATH> | Path to the debugger executable. Can be an absolute path, the value auto , or an ABI. Finds the appropriate debugger for MSVC toolchains where Qt Creator does not know the binary path. | |
--engine <ENGINE> | Debugger engine type:
| |
--id <ID> | Unique ID of the debugger. | |
--name <NAME> | Name of the debugger. | |
<KEY> <TYPE:VALUE> | Additional settings as key-value pairs. |
For more information, see Add debuggers.
Debugger Example
To add a GDB debugger on Linux, enter:
./sdktool addDebugger \ --id "company.product.toolchain.gdb" \ --name "GDB (company, product)" \ --engine 1 \ --binary /home/code/build/gdb-7.12/bin/gdb \ --abis arm-linux-generic-elf-32 \
Adding Devices
addDev
sdktool addDev --id <ID> --name <NAME> --type <INT> [OPTIONS]
addDev Options
The following table summarizes the available options. The options to use depend on the device type.
Option | Description | Required |
---|---|---|
--authentication <INT> | Authentication method:
| |
--b2qHardware <STRING> | Boot to Qt platform info about hardware. | |
--b2qSoftware <STRING> | Boot to Qt platform info about software. | |
--debugServerKey <STRING> | Debug server key. | |
--dockerClangdExecutable <STRING> | Path to the Clangd executable in the Docker container. | |
--dockerMappedPaths <STRING> | Semicolon-separated list of Docker mapped paths. | |
--dockerRepo <STRING> | Docker image repository. | |
--dockerTag <STRING> | Docker image tag. | |
--freePorts <STRING> | Free ports. | |
--host <STRING> | Host name or IP address of the device. | |
--id <ID> | Unique ID of the device. | |
--keyFile <STRING> | Path to the user's private key file. | |
--name <NAME> | Name of the device. | |
--origin <INT> | Whether the device was detected automatically:
| |
--osType <STRING> | Operating system on the device:
| |
--password <STRING> | Password for password authentication. | |
--sshPort <INT> | Port number for SSH connections. | |
--timeout <INT> | Timeout for reusing the SSH connection in seconds. | |
--type <INT> | Device type:
| |
--uname <STRING> | Username to access the device. | |
<KEY> <TYPE:VALUE> | Additional settings as key-value pairs. |
For more information, see How To: Develop for Devices.
Linux Device Example
To add a remote Linux device (hardware device) on Linux and use SSH keys to authenticate to the device, enter:
./sdktool addDev \ --id " LinuxDevice1" \ --name "My Remote Linux Device" \ --type 1 \ --authentication 2 \ --freePorts "10000-10100" \ --host "10.10.10.15" \ --keyFile "/usr/.ssh/qtc_id" \ --origin 1 \ --osType "GenericLinuxOsType" \ --sshPort 22 \ --timeout 10 \ --uname "root"
Adding Qt Versions
addQt
sdktool addQt --id <ID> --name <NAME> --qmake <PATH> --type <TYPE> [OPTIONS]
addQt Options
The following table summarizes the available options.
Option | Description | Required |
---|---|---|
--abis <ABI,ABI> | Comma-separated list of system architecture definitions. | |
--id <ID> | ID of the Qt installation. Qt Creator automatically sets the ID when it detects Qt versions installed on the computer. | |
--name <NAME> | Name of the Qt installation. | |
--qmake <PATH> | Path to the qmake executable in the Qt installation. | |
--type <TYPE> | The type of the Qt version:
The string returned by | |
<KEY> <TYPE:VALUE> | Additional settings as key-value pairs. |
For more information, see Add Qt versions.
Qt Version Example
To add a self-built Qt 6.8 version on Linux, enter:
./sdktool addQt \ --id "company.product.qt" \ --name "Custom Qt" \ --qmake /home/code/build/qt-6.8/bin/qmake \ --type Qt4ProjectManager.QtVersion.Desktop \
Adding Kits
addKit
sdktool addKit --id <ID> --name <NAME> --devicetype <TYPE> [OPTIONS]
addKit Options
The following table summarizes the available options.
Option | Description | Required |
---|---|---|
--builddevice <ID> | The ID of the device to build applications on. | |
--cmake <ID> | The ID of the CMake executable to use for building the project. | |
--cmake-config <KEY:TYPE=VALUE> | Parameters for the CMake configuration of the kit. You can add multiple entries of this type. | |
--cmake-generator <GEN>:<EXTRA>:<TOOLSET>:<PLATFORM> | The CMake Generator to use for producing project files. | |
--debugger <PATH> | Path to the debugger to use for the kit. Do not use this option with --debuggerid . | |
--debuggerengine <ENGINE> | The type of the debugger set with --debugger . Do not use this option with --debuggerid . | |
--debuggerid <ID> | One of the IDs used when adding debuggers with the addDebugger operation. Do not use this option with --debugger and --debuggerengine . | |
--device <ID> | The device to run applications on. | |
--devicetype <TYPE> | The type of the device to run applications on:
The string returned by | |
--env <VALUE> | Environment variable values for the build environment. You can add multiple entries of this type. | |
--icon <PATH> | Path to the image to use as an icon for the kit. | |
--id <ID> | ID of the kit. Qt Creator automatically sets the ID when it detects Qt versions installed on the computer. | |
--<LANG>toolchain <ID> | One of the IDs used when adding compilers with the addTC operation. <LANG> is: C , Cxx , Nim , or something set by a plugin. | |
--mkspec <PATH> | The mkspec configuration that qmake uses. Omit this option to use the default mkspec of the set Qt version. | |
--name <NAME> | Name of the kit. You can use variables to generate the kit name based on the kit elements you set with the other operations, such as the Qt version. | |
--qt <ID> | One of the IDs used when adding Qt versions with the addQt operation. | |
<KEY> <TYPE:VALUE> | Additional settings as key-value pairs. |
For more information, see Add kits.
Kit Example
To add a kit that uses the GCC compiler and the self-built Qt to build applications on Linux, enter:
./sdktool addKit \ --id "company.product.kit" \ --name "Qt %{Qt:Version} (company, product)" \ --debuggerid "company.product.toolchain.gdb" \ --devicetype GenericLinuxOsType \ --sysroot /tmp/sysroot \ --Ctoolchain "ProjectExplorer.ToolChain.Gcc:company.product.toolchain.gcc" \ --Cxxtoolchain "ProjectExplorer.ToolChain.Gcc:company.product.toolchain.g++" \ --qt "company.product.qt" \ --mkspec "devices/linux-mipsel-broadcom-97425-g++" \
Adding, Getting, and Finding Keys
Enter the path to a file relative to the top-level settings directory and without .xml extension, followed by one or more <KEY> <TYPE>:<VALUE>
key-value pairs.
Removing Configured Items
To remove a CMake tool, compiler, debugger, device, Qt version, or kit, enter:
rm<Item> --id <ID>
Where <ID>
is the ID of the item.
See also How To: Manage Kits, Installation, and Kits.
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.