Adding SYSTEM_INCLUDE for which you get no warnings. Fix
PUBLIC_SYSTEM_INCLUDE to work for all cases where PUBLIC_INLCUDES works.
Change-Id: I7059c2879004743c13c368220596081dd054407a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
The `env_with_default` function is part of Utils.cmake, which would need
to be deployed. But it can't be part of QtCreatorAPIInternal.cmake due
to its usage before the inclusion of QtCreatorAPIInternal.cmake in the
main QtCreator CMakeLists.txt file.
A sepparate function needs to do the task.
Amends 1036c776f5
Change-Id: I95344dd98c5fa0258303ed8d02855584a1945144
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Add another environment variable whether CMake should check for ccache
and adjust the compiler options accordingly when building Qt Creator.
Change-Id: I796f29d7f6ad4a1f054f978d50dbd0120b873aea
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Tests that create a QApplication need to be started with
"-platform minimal" so that they won't fail on build servers
without Display.
This also keeps them from distracting you if you run them while working.
Change-Id: I05df258b2204a3abd3cdea446d6a52f3e57a4a62
Reviewed-by: David Schulz <david.schulz@qt.io>
They were still using variables in qmake style.
Directly use CMake variables in the json.in files and remove the no
longer needed escaping of quotes.
Adds a fatal message if it detects the old style in a .json.in file for
easier porting.
Change-Id: I8de88d8db2da55781f0e9d72eda03f943723188e
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
add_qtc_library would have set the POSITION_INDEPENDENT_CODE property
for STATIC libraries on UNIX based systems.
The OBJECT libraries need the same treatment.
Change-Id: Ia333a36ea0f35d7db3ed876cdde5b895b47644c7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
for add_qtc_test and qtc_add_resources.
The condition needs to be wrapped in () because otherwise conditions
that contain AND or OR themselves break.
Change-Id: Iff64ad15c5f5b6e5a9db5a97c975bd8854c59c02
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Since we do not support Qt < 5.15 anymore, and as a first step
for getting rid of our special FindQt5.cmake.
Change-Id: Icc5dbaf9b0a3a622b1f609ff114b9decb6d2856c
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Instead of silenty failing and resulting in broken builds/packages.
The property is only available since CMake 3.19, so limit the feature to
that.
Change-Id: I82b06e78540e81a809f7fdfe130648becfc9672e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Adding qtc_enable_sanitize to add_qtc_executable to also instrument applications
Changing qtc_enable_sanitize to use target_compile_options instead of trying
to modify CMAKE_CXX_FLAGS_DEBUG and hoping that nobody else overwrites it,
which previously erased the added flags.
Adds support for MSVC /fsanitize
Change-Id: Ida80cfd7ef7ea91b2d6473fdc047cb7132cdfec6
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Some of our auto tests fail, so add an EXCLUDE_FROM_PRECHECK option for
add_qtc_test, which sets a corresponding label on the ctest, and exclude
these when running ctest on COIN.
Disable the Googletest based unittests for now, they are inconsistently
failing on CI, e.g. sometimes timing out after 60 seconds for tests that
usually take only a fraction of a second.
tst_perfdata from the perfparser submodule also fails. Temporarily
disable it explicitly, until the EXCLUDE_FROM_PRECHECK change can be
merged there.
Change-Id: I7e9d7aded75bbe8800f82f7aa125c181271a2a1f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This adds the build system feature that allows Qt Creator's libraries
and plugins to be compiled statically.
Fixes some symbol clashes when all plugins are linked into the same
executable.
Support for actually loading static plugins will be added in a separate
commit.
The feature is controlled by QTC_STATIC_BUILD which by default is OFF.
Change-Id: I1fab7953c43e42dc75619e35660029ee067106df
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
The ELF default is historical legacy. We should always require all
libraries and all plugins to link to their dependencies and not
accidentally forget something (like implementing a virtual function).
Change-Id: I5e00996d7f4b4a10bc98fffd1629f8bfcf0d1c8f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
The functionality comes from Qt6 and will be enabled only for Qt6 builds.
/w3 level for MSVC, -Wall -Wextra for the rest of compilers.
Change-Id: Ib62a27e50ce37a6a860ba2bfa1bdb80a7ae60ace
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Add another option to mark a test as manual and use this for some
existing.
Manual tests will not be added as a ctest, but they can still get
executed explicitly.
Beside this allow to use a condition when using add_qtc_test().
Change-Id: I03d5397db36c0a2c9ee506a4214ed68fae6ad6e7
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Prepend our own relative RPATHs to CMAKE_INSTALL_RPATH (or
CMAKE_BUILD_RPATH respectively) instead of overriding them completely.
That allows adding an RPATH to e.g. a self-compiled and separately
installed Qt to the installed Qt Creator.
Fixes: QTCREATORBUG-27008
Change-Id: I8cd9167fdf5ba9838850fcfab8135da9b79e6695
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
CMake 3.16 is available on the major Linux distributions nowadays,
so we can get rid of some workarounds.
Change-Id: I32500375748f33c3e40fbd7a08824d823f817a8f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Removes qmake as a build system for building Qt Creator itself.
Keep them for some tests that are not completely moved to CMake yet.
Change-Id: I846c6ef65626b6dfae6375fdc85d00677aa8c2fb
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@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>
Without SKIP_DEPENDENCY the source files would be treated as cmake
list files, which meant that for every source change cmake would
have been rerun.
Change-Id: Icc087fa951fa7e7aee25504367b6146e66bf9dcb
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
When running cmake after a build was done on Windows with MSVC will
get more files to build:
[1/15 9.0/sec] Running utility command for copy_python_dll
[2/15 3.6/sec] Automatic MOC and UIC for target ProjectExplorer
[3/15 2.2/sec] Building CXX object
src\plugins\projectexplorer\CMakeFiles\ProjectExplorer.dir\sessiondialog.cpp.obj
[4/15 2.9/sec] Building CXX object
src\plugins\projectexplorer\CMakeFiles\ProjectExplorer.dir\codestylesettingspropertiespage.cpp.obj
[5/15 3.6/sec] Building CXX object
src\plugins\projectexplorer\CMakeFiles\ProjectExplorer.dir\editorsettingspropertiespage.cpp.obj
[6/15 4.1/sec] Building CXX object
src\plugins\projectexplorer\CMakeFiles\ProjectExplorer.dir\projectexplorersettingspage.cpp.obj
[7/15 4.6/sec] Building CXX object
src\plugins\projectexplorer\CMakeFiles\ProjectExplorer.dir\sessionmodel.cpp.obj
[8/15 5.1/sec] Building CXX object
src\plugins\projectexplorer\CMakeFiles\ProjectExplorer.dir\customparserconfigdialog.cpp.obj
[9/15 5.2/sec] Building CXX object
src\plugins\projectexplorer\CMakeFiles\ProjectExplorer.dir\projectwizardpage.cpp.obj
[10/15 3.4/sec] Building CXX object
src\plugins\projectexplorer\CMakeFiles\ProjectExplorer.dir\ProjectExplorer_autogen\mocs_compilation.cpp.obj
[11/15 1.6/sec] Building CXX object
src\plugins\projectexplorer\CMakeFiles\ProjectExplorer.dir\projectexplorer.cpp.obj
[12/15 1.6/sec] Linking CXX shared library
lib\qtcreator\plugins\ProjectExplorer.dll
When adding "-d explain" to the build parameters ninja would print:
ninja explain: restat of output
src/plugins/projectexplorer/ProjectExplorer_autogen/timestamp older than
most recent input
src/plugins/projectexplorer/.rcc/generated_testdata.qrc.in
(6611078583964975 vs 6611078835307007)
ninja explain:
C:/Projects/QtCreator/build-repo-Desktop_Qt_5_15_2_MSVC2019_64bit-Release/src/plugins/projectexplorer/ProjectExplorer_autogen/mocs_compilation.cpp
is dirty
Change-Id: Iaa00478bb6d81f7235d25ad541fbf86c7ca593f6
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This was needed in the early days of the CMake port when the list of
source files would change due to being added to the qmake project
files.
Change-Id: I7afd219b24ab7a0d87fce26ba35dac75cf8caa5b
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Usually that is done by Qt, but not if reduce_relocations is off.
Fixes: QTCREATORBUG-26435
Change-Id: Idd337d59555fd6e732215b9c753820672f63c91f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christophe Giboudeaux <christophe@krop.fr>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This was done to have qmake parity when we compared the qmake and cmake
release builds.
Since we are past that now, and the cmake build is the one used to do
releases, we can drop the number from the dlls.
Change-Id: I60d1b368daf4258884c239204c2e3c18f244e930
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
They should have the same base name as the DLL/.lib, but were missing
the version number.
Fixes: QTCREATORBUG-25968
Change-Id: I30e39a62b94264bd5a4852f0b1100044fa47d811
Reviewed-by: Orgad Shaneh <orgads@gmail.com>