Commit Graph

469 Commits

Author SHA1 Message Date
Cristian Adam
19f5b835de CMake: Ensure qtcreatorcdbext is a shared library for all cases
qtcreatorcdbext.dll is being loaded by cdb.exe and needs to be a
shared library always.

Change-Id: I13582f295744d350907284ea02e08ce1e8055dbe
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>
2022-05-03 14:56:02 +00:00
Christian Stenger
07195cea8b Fix cmake build
Amends 88781a003f.

Change-Id: I37aa5c3fbf6490a186deacae257858d3ceb817d1
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2022-05-02 12:41:45 +00:00
Cristian Adam
88781a003f CMake: Qt Creator Static build support
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>
2022-04-29 07:16:53 +00:00
Eike Ziller
c892157862 Bump version to 7.0.2
Change-Id: Ib503b94b747698ab9ba9650c9eb0a3e44d6ca968
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-04-28 07:21:04 +00:00
David Schulz
ca7a18568c CMake: add ccache option
Change-Id: I482b0f3ac372f141e465b72fbcca9d8b5c5b352d
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2022-04-11 12:29:26 +00:00
Eike Ziller
c84380cdc8 Merge remote-tracking branch 'origin/7.0'
Change-Id: Ib2267ddbb702564a6e1c8f6b1db802bc9c45759d
2022-03-31 15:32:42 +02:00
Orgad Shaneh
30bb32d9af CMake build: List json.in files for plugins
Change-Id: Ia62e267d97ff225b94fe77da37af4e8fbc5f54b7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2022-03-31 08:35:31 +00:00
Eike Ziller
cd9a5b1c8d Bump version to 7.0.1
Change-Id: I73f23e53629e7c8ed39ba06a72b5baff1714e784
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-03-24 09:19:53 +00:00
Eike Ziller
860d8548ec Bump version to 7.0.0
Change-Id: Ie403b97a027b15ddfbafa3ffbf46b8883951bb78
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-03-11 11:01:23 +00:00
Eike Ziller
e8e4aada53 Bump version to 7.0-rc1
Change-Id: Ib643e8a7594fe12d0dab80963258cf7fc3b78d3c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-03-10 07:54:45 +00:00
Eike Ziller
acd7445c6e Do not require CMake 3.18
Amends 46f6c5d005

Simply disable this safe-guard for < 3.18.

Change-Id: I0ae3b7520a913861c8c9f97ec7e01e5c9c00d362
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-03-03 09:33:05 +00:00
Thiago Macieira
46f6c5d005 CMake: require no undefined symbols
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>
2022-03-02 20:03:46 +00:00
Eike Ziller
d295d16ab5 Merge remote-tracking branch 'origin/7.0'
Change-Id: I809383e6c060701a2751197a8bf16add92bfaf0d
2022-02-28 09:21:18 +01:00
Cristian Adam
47667772c7 CMake: Enable higher compiler warnings for building Qt Creator
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>
2022-02-25 09:54:49 +00:00
Eike Ziller
49ecd64b9c Merge remote-tracking branch 'origin/7.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/docker/dockerdevice.cpp
	src/plugins/mcusupport/mcupackage.cpp
	src/plugins/mcusupport/mcupackage.h
	src/plugins/mcusupport/mcusupportoptions.cpp
	src/plugins/mcusupport/mcusupportoptions.h
	src/plugins/mcusupport/mcusupportoptionspage.cpp
	src/plugins/mcusupport/mcusupportsdk.cpp
	src/plugins/mcusupport/mcusupportsdk.h

Change-Id: I8c8f5953a21729ba9178dbc44ed613eed131a0c8
2022-02-16 10:59:04 +01:00
Piotr Mućko
9917166b2e McuSupport: basic test & required refactoring
Introduced Package interface for mocking purposes.
Made some functions visible in headers for testing.
Added basic test skeleton for mcu plugin.

run cmd: `qtcreator -test McuSupport`

Change-Id: I1011d49052bd8c894da393d8a285b241682f1f94
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-02-15 11:03:30 +00:00
Christian Stenger
1652be1310 Tests: Provide some cmake files for manual tests
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>
2022-02-15 08:21:40 +00:00
Eike Ziller
dfd3f81084 Bump version to 7.0-beta2
Change-Id: Id6c117792e2dbf3a15fcafcc815a243535357f41
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-02-14 09:17:39 +00:00
Eike Ziller
76f5b73e98 Bump version to 8.0 beta
Change-Id: I03a99d3b134a2116eb12e6d4e98b994d684f133c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-02-11 13:10:49 +00:00
Eike Ziller
3ba00ac39f CMake build: Allow adding RPATHs via CMAKE_(BUILD|INSTALL)_RPATH
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>
2022-02-10 16:32:42 +00:00
Thiago Macieira
652639327f CMake: install the cmake files inside CMAKE_INSTALL_LIBDIR
Change-Id: I54f205f6b7314351b078fffd16d0bab2ccd81cd4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-02-10 16:17:02 +00:00
Aaron Barany
ccad4fa924 CMake: Better detect imported tool locations
On some systems IMPORTED_LOCATION isn't set, but configuration-specific
locations like IMPORTED_LOCATION_RELEASE are. In these cases, fall back to
the location of the release build if the default isn't found.

Fixes the build on Arch Linux.

Change-Id: Iff87a8356302a260b2ac5f959f835d1cdf8a5c65
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-02-07 20:20:38 +00:00
Eike Ziller
1221552377 Require CMake 3.16 and remove workarounds
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>
2022-02-02 08:55:31 +00:00
Orgad Shaneh
9cbf0904db Clang: Remove redundant warning suppressions
They are no longer needed with Clang 12.

Change-Id: I964d53e6a106b38cd32a7f34bbad6e15e0dd7e48
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2022-01-30 11:53:57 +00:00
Eike Ziller
9d8a419d10 Remove qmake build files
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>
2022-01-20 12:18:15 +00:00
Eike Ziller
d8e393953d Merge remote-tracking branch 'origin/6.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: I04ea68c9e20dc331b1f12b77c8b6f6b4db38c836
2022-01-19 13:36:24 +01:00
Eike Ziller
f708e0e70c Update copyright year
Change-Id: I42049e2b3a78ee3968e3df7dfea229c3927c3a75
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-01-19 12:34:26 +00:00
Eike Ziller
58f2bdaa9b Bump version to 6.0.3
Change-Id: I77600bb39157c7c228e1fd0aee86c4f3ec9e7e65
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-01-19 12:34:20 +00:00
Eike Ziller
33f2074272 Bump requirement to Qt 5.15.2
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>
2022-01-17 10:20:32 +00:00
Eike Ziller
501b6eff9c Merge remote-tracking branch 'origin/6.0'
Change-Id: Id84183d2ba73dbe98700af43074cc2d05b26f06d
2022-01-10 09:47:11 +01:00
Cristian Adam
94dc8dfac2 CMake: Fix include CheckCXXSourceCompiles file casing name
This will break on Windows systems that have file casing enabled.

Change-Id: I769d27b434e4433ed4e251d6f23efee8698ab0ae
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2022-01-07 11:08:11 +00:00
Eike Ziller
303f958ee0 Bump version to 6.0.2
Change-Id: I4e6fcbded04028bf20433984f0679fafa54da310
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-12-17 13:24:30 +00:00
Eike Ziller
85b60d9608 Merge remote-tracking branch 'origin/6.0'
Conflicts:
	src/plugins/coreplugin/editormanager/editormanager.cpp

Change-Id: I80fe565749ad5c06dfe99436f2dc6ab4b66a2537
2021-12-16 10:50:33 +01:00
Cristian Adam
1b1527b64f CMake: SKIP_DEPENDENCY for gtest_add_tests for unittest
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>
2021-12-14 09:54:31 +00:00
Cristian Adam
323567e64a CMake: Skip AUTOMOC and AUTOUIC for Googletest and Yaml-cpp
These libraries do not use any Qt related technologies, no need
to have automoc and autouic enabled.

Change-Id: I294a989c200bc8ec937f8aa780ef20a5882e5a56
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>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2021-12-14 09:53:58 +00:00
Cristian Adam
06b967df50 CMake: Remove uneeded auto moc related rebuilds on done builds
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>
2021-12-14 09:53:39 +00:00
Ulf Hermann
3b7453e3ed CMake: Generate metatypes for all libraries
We need them for any QML modules that use types from any libraries.

Change-Id: Ia9e992db39d70f74ab15e7e25ed4bbabf7524e42
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2021-12-13 18:14:24 +00:00
Eike Ziller
d422b408e0 Merge remote-tracking branch 'origin/6.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: I32991a77e52831dd2e24cf4a51ec252998c2d743
2021-12-09 12:04:32 +01:00
BogDan Vatra
187f0f21eb Fix get_filename_component usage
get_filename_component called with incorrect number of arguments

Change-Id: I4f1c8dbc185c2e53bc596bf02a48f72b76ac6955
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2021-12-08 11:45:54 +00:00
Eike Ziller
4cbfdecaf3 Bump version to 6.0.1
Change-Id: Idc7519d7b74968cb6bdb473ff3dabff18ad0cee5
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-12-02 11:15:35 +00:00
Cristian Adam
7a0bdccadf CMake: Remove debug list source files comparison
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>
2021-11-29 10:34:18 +00:00
Eike Ziller
25f1efc2b6 Bump version to 6.0.0
Change-Id: I68af70325909705107b2e880011c72d0b75000ae
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-11-11 14:43:55 +00:00
Joerg Kreuzberger
efdaeaba43 Add option to build QtCreator with sanitizer
Fixes: QTCREATORBUG-26318
Change-Id: I44589b5bb39958eda2329b444e4857e8f61823bf
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-11-05 09:03:41 +00:00
Eike Ziller
ab86842ac5 Bump version to 6.0-rc1
Change-Id: I08fc4a48ad6089e4477230824317ae0f1bd408e5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-10-28 11:11:27 +00:00
Eike Ziller
588ef08d46 Merge remote-tracking branch 'origin/6.0'
Change-Id: Ib49e73e6c69d71fd0d8402c08f4344476295e409
2021-10-26 09:15:45 +02:00
Eike Ziller
ea1655881d CMake build: Force -fPIC for static libraries on UNIX
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>
2021-10-21 08:33:31 +00:00
Eike Ziller
0543a810e5 Bump version to 6.0.0-beta2
Change-Id: If15ba5f3b6484a7b649baac5bd0eb25147cc10db
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-10-14 10:04:12 +00:00
Eike Ziller
c2d9495b62 Bump version to 7.0
Change-Id: Icc31b9c768480885593794b59a1997c352ad774c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-10-08 09:17:03 +00:00
Eike Ziller
31bcc0ca2c Merge remote-tracking branch 'origin/5.0' into 6.0
Change-Id: I311d1128c6a299c1db8717a12b40393055a889bb
2021-10-05 09:13:56 +02:00
Joerg Bornemann
068c4e9b7b CMake: Work around Qt6::ATSPI2_nolink issue
This works around QTBUG-97023.

When building the Qt Creator super repo against the installer-provided Qt 6.2.0 on Linux,
Qt6Gui creates an imported library target named Qt6::ATSPI2_nolink.
This one must also be promoted to global scope.
Otherwise, subsequent find_package(Qt6 COMPONENTS Gui) calls fail with

  Some (but not all) targets in this export set were already defined.
  Targets Defined: Qt6::Gui;Qt6::GuiPrivate
  Targets not yet defined: Qt6::ATSPI2_nolink

Add Qt6::ATSPI2_nolink to the components that are promoted and aliased.

Change-Id: I39c46e8f1c831e2fad2aa4e928b785da08a0407c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-10-05 05:50:13 +00:00