forked from qt-creator/qt-creator
sdktool: Update README and convert it to markdown
Change-Id: I4ea36841e51138c4feed85d8146a07f8824ee853 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
49ed91b205
commit
e8d7a1f21e
@@ -1,4 +1,4 @@
|
||||
The SDK tool can be used to set up Qt versions, tool chains and kits
|
||||
The SDK tool can be used to set up Qt versions, tool chains, devices and kits
|
||||
in Qt Creator.
|
||||
|
||||
There still is a lot of knowledge about Qt Creator internals required
|
||||
@@ -6,18 +6,23 @@ to use this tool!
|
||||
|
||||
Note that some tool chains/Qt versions/kits may require settings not
|
||||
available via command line switches. All operations will add any parameter
|
||||
followed by another parameter in the form "<TYPE>:<VALUE>" to the
|
||||
followed by another parameter in the form `<TYPE>:<VALUE>` to the
|
||||
configuration that they create.
|
||||
|
||||
Currently supported types are int, bool, QString, QByteArray and QVariantList.
|
||||
|
||||
Dependencies:
|
||||
The SDK tool depends on the Utils library of Qt Creator and Qt itself.
|
||||
Please make sure both libraries are found by setting PATH/LD_LIBRARY_PATH.
|
||||
=============
|
||||
|
||||
The SDK tool depends only on Qt core library.
|
||||
|
||||
Usage:
|
||||
======
|
||||
|
||||
```
|
||||
./sdktool --help
|
||||
Qt Creator SDK setup tool.
|
||||
Usage:./sdktool <ARGS> <OPERATION> <OPERATION_ARGS>
|
||||
Usage: sdktool <ARGS> <OPERATION> <OPERATION_ARGS>
|
||||
|
||||
ARGS:
|
||||
--help|-h Print this help text
|
||||
@@ -26,109 +31,174 @@ ARGS:
|
||||
OPERATION:
|
||||
One of:
|
||||
addKeys add settings to Qt Creator configuration
|
||||
addKit add a Kit to Qt Creator
|
||||
addCMake add a CMake tool to Qt Creator
|
||||
addDebugger add a debugger to Qt Creator
|
||||
addDev add a device to Qt Creator
|
||||
addQt add a Qt version to Qt Creator
|
||||
addTC add a tool chain to Qt Creator
|
||||
findKey find a key in the settings of Qt Creator
|
||||
find find a value in the settings of Qt Creator
|
||||
addKit add a kit to Qt Creator
|
||||
get get settings from Qt Creator configuration
|
||||
rmCMake remove a CMake tool from Qt Creator
|
||||
rmKit remove a kit from Qt Creator
|
||||
rmDebugger remove a debugger from Qt Creator
|
||||
rmDev remove a device from Qt Creator
|
||||
rmKeys remove settings from Qt Creator configuration
|
||||
rmKit remove a Kit from Qt Creator
|
||||
rmQt remove a Qt version from Qt Creator
|
||||
rmTC remove a tool chain from Qt Creator
|
||||
findKey find a key in the settings of Qt Creator
|
||||
find find a value in the settings of Qt Creator
|
||||
|
||||
OPERATION_ARGS:
|
||||
use "--help <OPERATION>" to get help on the arguments required for an operation.
|
||||
|
||||
|
||||
Help for individual operations can be retrieved using
|
||||
|
||||
./sdktool --help addKit
|
||||
|
||||
Examples:
|
||||
```
|
||||
|
||||
Add a tool chain:
|
||||
================
|
||||
|
||||
```
|
||||
./sdktool addTC \
|
||||
--id "ProjectExplorer.ToolChain.Gcc:my_test_TC" \
|
||||
--name "Test TC" \
|
||||
--path /usr/bin/g++ \
|
||||
--id "ProjectExplorer.ToolChain.Gcc:company.product.toolchain.g++" \
|
||||
--language 2
|
||||
--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" \
|
||||
```
|
||||
|
||||
Tricky parts:
|
||||
- The id has to be in the form "ToolChainType:some_unique_part", where the
|
||||
tool chain type must be one of (as of Qt Creator 2.6):
|
||||
* ProjectExplorer.ToolChain.Msvc for Microsoft MSVC compilers
|
||||
- language is one of:
|
||||
* C
|
||||
* Cxx
|
||||
- `id` has to be in the form `ToolChainType:some_unique_part`, where the
|
||||
tool chain type can be one of the following, or other toolchains that plugins provide:
|
||||
* `ProjectExplorer.ToolChain.Msvc` for Microsoft MSVC compilers
|
||||
(Note: This one will be autodetected anyway, so there is little
|
||||
need to add it from the sdktool)
|
||||
* ProjectExplorer.ToolChain.WinCE for Windows CE tool chain by
|
||||
Microsoft (Note: This one will be autodetected anyway, so there
|
||||
is little need to add it from the sdktool)
|
||||
* ProjectExplorer.ToolChain.Gcc for a normal GCC (linux/mac)
|
||||
* Qt4ProjectManager.ToolChain.Android for the Android tool chain
|
||||
* ProjectExplorer.ToolChain.Clang for the Clang compiler
|
||||
* ProjectExplorer.ToolChain.LinuxIcc for the LinuxICC compiler
|
||||
* ProjectExplorer.ToolChain.Mingw for the Mingw compiler
|
||||
* `ProjectExplorer.ToolChain.Gcc` for a normal GCC (linux/mac)
|
||||
* `ProjectExplorer.ToolChain.Clang` for the Clang compiler
|
||||
* `ProjectExplorer.ToolChain.LinuxIcc` for the LinuxICC compiler
|
||||
* `ProjectExplorer.ToolChain.Mingw` for the Mingw compiler
|
||||
* `ProjectExplorer.ToolChain.ClangCl` for the Clang/CL compiler
|
||||
* `ProjectExplorer.ToolChain.Custom` for custom toolchain
|
||||
* `Qt4ProjectManager.ToolChain.Android` for the Android tool chain
|
||||
* `Qnx.QccToolChain` for the Qnx QCC tool chain
|
||||
|
||||
Check the classes derived from ProjectExplorer::ToolChain for their
|
||||
Check the classes derived from `ProjectExplorer::ToolChain` for their
|
||||
Ids.
|
||||
|
||||
The some_unique_part can be anything. Creator uses GUIDs by default,
|
||||
The `some_unique_part` can be anything. Qt Creator uses GUIDs by default,
|
||||
but any string is fine for the SDK to use.
|
||||
|
||||
- The ABI needs to be in a format that ProjectExplorer::Abi::fromString(...)
|
||||
- `abi` needs to be in a format that `ProjectExplorer::Abi::fromString(...)`
|
||||
can parse.
|
||||
|
||||
Add a Qt version:
|
||||
./sdktool addQt \
|
||||
--id "my_test_Qt" \
|
||||
--name "Test Qt" \
|
||||
--qmake /home/code/build/qt4-4/bin/qmake \
|
||||
--type Qt4ProjectManager.QtVersion.Desktop \
|
||||
Add a debugger:
|
||||
===============
|
||||
|
||||
|
||||
```
|
||||
./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 \
|
||||
```
|
||||
|
||||
Tricky parts:
|
||||
- The id can be any unique string. In creator this is set as the autodetection
|
||||
- `id` can be any unique string. In Qt Creator this is set as the autodetection
|
||||
source of the Qt version.
|
||||
TODO: is it use in any special way?
|
||||
|
||||
- `engine` is the integer used in the enum `Debugger::DebuggerEngineType`
|
||||
|
||||
Currently these are (Qt Creator 4.6):
|
||||
* 1 for gdb
|
||||
* 4 for cdb
|
||||
* 8 for pdb
|
||||
* 256 for lldb
|
||||
|
||||
- `binary` can be a absolute path, the value `auto` or an ABI.
|
||||
This is used to find the appropriate debugger for MSVC toolchains
|
||||
where Creator does not know the binary path itself.
|
||||
|
||||
Add a Qt version:
|
||||
=================
|
||||
|
||||
```
|
||||
./sdktool addQt \
|
||||
--id "company.product.qt" \
|
||||
--name "Custom Qt" \
|
||||
--qmake /home/code/build/qt-5.9/bin/qmake \
|
||||
--type Qt4ProjectManager.QtVersion.Desktop \
|
||||
```
|
||||
|
||||
Tricky parts:
|
||||
- `id` can be any unique string. In Qt Creator this is set as the autodetection
|
||||
source of the Qt version.
|
||||
|
||||
- type must be the string returned by BaseQtVersion::type().
|
||||
- `type` must be the string returned by `BaseQtVersion::type()`.
|
||||
|
||||
Currently these are (Qt Creator 2.6):
|
||||
* Qt4ProjectManager.QtVersion.Android for Android
|
||||
* Qt4ProjectManager.QtVersion.Desktop for a desktop Qt
|
||||
* RemoteLinux.EmbeddedLinuxQt for an embedded linux Qt
|
||||
* Qt4ProjectManager.QtVersion.Maemo for an Maemo Qt
|
||||
* Qt4ProjectManager.QtVersion.QNX.QNX for Qt on QNX
|
||||
* Qt4ProjectManager.QtVersion.Simulator for Qt running in the Qt simulator
|
||||
* Qt4ProjectManager.QtVersion.WinCE for Qt on WinCE
|
||||
Currently these are (Qt Creator 4.6):
|
||||
* `Qt4ProjectManager.QtVersion.Android` for Android
|
||||
* `Qt4ProjectManager.QtVersion.Desktop` for a desktop Qt
|
||||
* `Qt4ProjectManager.QtVersion.Ios` for iOS
|
||||
* `Qt4ProjectManager.QtVersion.QNX.QNX` for QNX
|
||||
* `RemoteLinux.EmbeddedLinuxQt` for Embedded Linux
|
||||
* `WinRt.QtVersion.WindowsRuntime` for Windows RT
|
||||
* `WinRt.QtVersion.WindowsPhone` for Windows RT phone
|
||||
|
||||
Add a Kit using the newly set up tool chain and Qt version:
|
||||
Add a kit:
|
||||
==========
|
||||
|
||||
Using the newly set up tool chain and Qt version:
|
||||
|
||||
```
|
||||
./sdktool addKit \
|
||||
--id "my_test_kit" \
|
||||
--name "Test Kit" \
|
||||
--debuggerengine 1 \
|
||||
--debugger /tmp/gdb-test \
|
||||
--devicetype Desktop \
|
||||
--id "company.product.kit" \
|
||||
--name "Qt %{Qt:Version} (company, product)" \
|
||||
--debuggerid "company.product.toolchain.gdb" \
|
||||
--devicetype GenericLinuxOsType \
|
||||
--sysroot /tmp/sysroot \
|
||||
--toolchain "ProjectExplorer.ToolChain.Gcc:my_test_TC" \
|
||||
--qt "my_test_Qt" \
|
||||
--mkspec "testspec" \
|
||||
--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++" \
|
||||
```
|
||||
|
||||
Tricky parts:
|
||||
- debuggerengine is the integer used in the enum Debugger::DebuggerEngineType
|
||||
The most important type is 1 for GDB.
|
||||
- debugger can be a absolute path or the value: 'auto'
|
||||
- `devicetype` is the string returned IDevice::type()
|
||||
|
||||
- devicetype is the string returned IDevice::type()
|
||||
Currently these are (Qt Creator 4.6):
|
||||
* `Android.Device.Type` for Android devices
|
||||
* `Desktop` for code running on the local desktop
|
||||
* `Ios.Device.Type` for an iOS device
|
||||
* `Ios.Simulator.Type` for an iOS simulator
|
||||
* `GenericLinuxOsType` for an embedded Linux device
|
||||
* `WinRt.Device.Local` for Windows RT (local)
|
||||
* `WinRt.Device.Emulator` for a Windows RT emulator
|
||||
* `WinRt.Device.Phone` for a Windows RT phone
|
||||
|
||||
Currently these are (Qt Creator 2.6):
|
||||
* Android.Device.Type for Android devices
|
||||
* Desktop for code running on the local desktop
|
||||
* HarmattanOsType for N9/N950 devices based on Harmattan
|
||||
* Maemo5OsType for N900 devices based on Maemo
|
||||
- `debuggerid` is one of the ids used when setting up toolchains with
|
||||
`sdktool addDebugger`.
|
||||
|
||||
- toolchain is one of the ids used when setting up toolchains with sdktool addTC.
|
||||
- `<Lang>toolchain` is one of the ids used when setting up toolchains with
|
||||
`sdktool addTC`.
|
||||
|
||||
- qt is one of the ids used when setting up Qt versions with sdktool addQt.
|
||||
- `<Lang>` is one of (options can be extended by plugins):
|
||||
* C, Cxx, Nim
|
||||
|
||||
- `qt` is one of the ids used when setting up Qt versions with `sdktool addQt`.
|
||||
|
||||
|
||||
Add a device:
|
||||
=============
|
||||
|
||||
TODO
|
||||
|
||||
Add a CMake:
|
||||
============
|
||||
|
||||
TODO
|
||||
|
Reference in New Issue
Block a user