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>
We change QTC_ENABLE_CLANG_LIBTOOLING to QTC_DISABLE_CLANG_REFACTORING, so
you now have to opt out instead of opt in. We bump the minimum version of
LLVM to 7.0 too because we mentioned that in the README already.
Change-Id: Ic4ee29a74a3ed79634ed8ea50be84d7bdc7db4ef
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
The prebuilt binaries are based on Qt 5.12 which requires macOS 10.12 or later
Change-Id: I72fbfed1aee4ca137676916f8c11c734c41149db
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
If we want to progress to LLVM 8 we have to drop MSVC 2015 because LLVM is
doing it. It would be enable much more conformant template support. So we
could use Ranges.
Change-Id: I9beb767e7380f8b355f5544d8f3e3a6fd9b5de62
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Set KSYNTAXHIGHLIGHTING_LIB_DIR to the directory that
contains the KSyntaxHighlighting library file
(e.g. libKF5SyntaxHighlighting.{dll,dylib,so}).
This will use the respective files from there and its
related include files instead of the files provided by QC.
If deducing the include directory depending on the library
does not work you can additionally specify
KSYNTAXHIGHLIGHTING_INCLUDE_DIR as well.
Both variables can be set either as qmake variable or
environment variable.
Task-number: QTCREATORBUG-21980
Change-Id: Ie021489d930dfc46ad3e37f9fa02d09fa146ac87
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Recent adaptations to Qt 5.13's API deprecations require using APIs
which were introduces in Qt 5.11.
Change-Id: I6c077d824c9ce716e019543b290c355a5d512fad
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>