Minitrace is a library to produce json traces suitable for chromes
built-in trace viewer. Unfortunately it lacks the ability to add
custom arguments to the json files which is needed in our case
in order to examine Design Studios state from within the evaluating
python script. Nanotrace is a rewrite of minitrace that adds this
ability. Additional benefits are higher precision and the fact that
it is written in c++.
Change-Id: Id2610b93188483d88547369c3fa8dacbe4dee9f7
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Qt 5.15.2 includes API that makes transitioning to Qt 6 easier.
We currently have workarounds for Qt 5.14 in place that we can
remove when requiring 5.15.2, and we also can stop adding workarounds
for new code.
Change-Id: I920fdccc41d755a6ad39cb5161cd916999fee755
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Robert Löhning <robert.loehning@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Also use a paragraph from the upstream documentation for
third-party code that missed it so far.
Change-Id: I2609d32eafca9810116f7a9ac2df9221541acb15
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
LLVM moved to github a while ago - the old svn repositories are dead.
Furthermore, (almost) all of the code is now under the "Apache 2.0
with LLVM Exception" main license
(see also https://foundation.llvm.org/docs/relicensing/)
Change-Id: I8319f8479357c6182c5bf78b1ee7fe202e666980
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Compiling Qbs takes time and is not strictly necessary for the Qbs
integration in Qt Creator.
We still want to build it for the release, but let's not build it by
default anymore.
[ChangeLog][Building from Sources] Qbs is not built anymore by default.
Pass -DBUILD_QBS=ON on the CMake command line to enable it.
Change-Id: Ic5793e26c7f6a7ac92931777e5d77cef2c8bf888
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Minitrace is a small C++ library used for adding trace points
into the code. When enabled with the build flag
BUILD_LIBRARY_MINITRACE set to true it will write a JSON file
containing these trace points to disk.
This file can be visualized with chromes builtin trace viewer
(about:tracing) which helps in profiling performance issues
and keeping track of performance regression.
Task-number: QDS-3766
Change-Id: I6109a72507b53c5e3ad8f9f504ff26a4fad206be
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Adds CMAKE_PROJECT_INCLUDE_BEFORE as initial CMake parameters
with a path to a auto-setup.cmake script that will run
conan install if a conanfile.txt is found in the prject.
A project can have a local QtCreatorPackageManager.cmake file
that will be loaded if exists.
The auto setup can be controlled via the following CMake variables:
* QT_CREATOR_SKIP_PACKAGE_MANAGER_SETUP
* QT_CREATOR_SKIP_CONAN_SETUP
* QT_CREATOR_SKIP_VCPKG_SETUP
conan.cmake is taken from https://github.com/conan-io/cmake-conan
which takes care of the conan specific compiler cruft. License
is MIT.
Fixes: QTCREATORBUG-25362
Change-Id: I70a6e1abc5600851d048f1590ca24204ce52a503
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
The plugin builds just fine and should be mostly (fully?) functional with
upstream clang, so it seems excessive to force-disable it entirely for
everybody not using our custom patch.
Change-Id: Id6a179c20325290a8205218c9514a16c1adc9076
Reviewed-by: hjk <hjk@qt.io>
Finding a heading in the quite long README.md is challenging. If you try
to build with LLVM, you already have enough challenges. Use anchor links
to the "Getting LLVM/Clang for the Clang Code Model" heading.
Change-Id: Ie0b29cf2f0ad3331666be1f322de840db697cc7b
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
by our binary packages. Building on 32bit is still possible.
Fixes: QTCREATORBUG-25182
Change-Id: Ic88579bcd9bf3b6aef449e6ac3bcaa6430cd68f2
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Our binaries no longer support Ubuntu 16.
Update LLVM requirements.
Move build instructions to use CMake and overhaul the complicated
Windows instructions.
Change-Id: Idf139fd76b0cfb91dbce11f7b814ec8abd9b21f6
Reviewed-by: David Schulz <david.schulz@qt.io>
To advertise the docs on GitHub.
Task-number: QTCREATORBUG-21179
Change-Id: I39bac5cfb8f9749966c3b879b0a89c4e62d934f4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Fix MSVC2019
- result type of conditional expression is ambiguous:
types 'const char [1]' and 'QByteArray' can be converted
to multiple common types
Fix MinGW 8.1
- undefined reference to SemanticHighlightNotification::methodName
Fix Utils::transform with std::vector for GCC & MSVC
Unfortunately we cannot get rid of the special variant and optional
implementations, because Apple Clang requires deployment target >= 10.14
for the functions that can throw std::bad_optional_access.
Fixes: QTCREATORBUG-20520
Change-Id: I5c36a70f21f8b0215d2f4fc5c0653a022778d928
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
This is required for proceeding with support for building
Qt Creator with Qt 6.
Change-Id: Ibf8a3eef6d6da943c5ee7f4a2239f45ee49b1093
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: David Schulz <david.schulz@qt.io>
std::span is a universal class to represent a non owning contiguous data.
You can even manipulate the data but you can not change the size like sort.
It's very nice for interfaces which call in other code but don't need to
own the container or make an internal copy anyway.
https: //en.cppreference.com/w/cpp/container/span
https: //solarianprogrammer.com/2019/11/03/cpp-20-span-tutorial/
Change-Id: Iaced1bd60c14b2fd7ea6576bb6e1720ed8990da8
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
QSortFilterProxyModel::filterRegExp is going to go away in Qt6,
so port over to use QRegularExpression instead.
This required some changes where setFilterWildcard/FixedString()
was being used, as those would instantiate QRegExp based filters
in Qt 5, and will use QRegularExpression in Qt 6. Use the generic
setFilterRegularExpression here, to keep things portable between
5 and 6.
Change-Id: I6379be781aa3821b10ba783c088f82c1a0970911
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Version: tags/yaml-cpp-0.6.2
License: MIT
yaml-cpp requires c++11 and since yaml-cpp 0.6 there is no dependency on
boost anymore.
A YAML parser is needed for the ClangTools plugin to parse exported
diagnostics from clang-tidy/clazy:
$ clang-tidy -export-fixes=/tmp/tidy.yaml source.cpp
The imported source is stripped of unneeded files as documented with
src/libs/3rdparty/yaml-cpp/patches/0001-yaml-cpp-Strip-unneeded-sources.patch
(generated with "git format-patch -D")
Change-Id: Ib0a521b5aff4b1cd058eb480bfb99fde4b320dc7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This new plugin adds a viewer for Chrome Trace Format (CTF) files
(aka Trace Event Format). It uses the same UI components as the
QML Profiler timeline and the Perf Profiler.
The Trace Event Format is generated by different kinds of tracing tools.
Usually the files are display with the trace-viewer, built into Chrome
(chrome://tracing). This plugin was developed because of the high memory
usage of trace-viewer, which makes it difficult to use with trace files
bigger than 100 MB.
The plugin fully supports all event types used in data generated by
LTTng, converted to CTF by https://github.com/KDAB/ctf2ctf.
Some of the more advanced event types used for example in Android system
traces, though, are not supported. The viewer will silently ignore
unsupported event types.
Supported Event Types:
- Begin, End, Duration and Instant events
- Counter events (graphs)
- Metadata events (process and thread name)
The plugin uses nlohmann/json instead of QJson because of the ~128 MB
object size limit by QJson.
[ChangeLog][Tracing][CtfVisualizer] Added Chrome Trace Format Visualizer plugin
Change-Id: I5969f7f83f3305712d4aec04487e2403510af64b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>