Commit Graph

488 Commits

Author SHA1 Message Date
Eike Ziller
c81baf1a9c cmake build: Use GNUInstallDirs for installation paths on Linux
Allows e.g. distributions to adapt to system layout.

Fixes: QTCREATORBUG-25142
Change-Id: Ia6d759514fef5a154334bc3d7221ea4b970122f2
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2021-01-07 12:17:20 +00:00
Cristian Adam
4ce6058e0b CMake: Error out when dependent targets are disabled
Change-Id: I0cc1e250dbe6eca66ed5f4ddecf9d5a8acfe955a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-01-05 11:46:04 +00:00
Eike Ziller
d95e1f940a Merge remote-tracking branch 'origin/4.14'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: I5b8d93f2f08b62626c3f3447728c64d198b601ff
2021-01-04 09:09:21 +01:00
Eike Ziller
0f9a206bd5 cmake build: Make separate debug info optional
In the CMake build in general, but still use it for
RelWithDebInfo builds with the build*.py scripts.

Fixes: QTCREATORBUG-25151
Change-Id: I8414f953278ebb395f73414c12af0ed7bd4fcdbe
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-12-22 13:02:03 +00:00
Eike Ziller
f74b317598 Fix compilation of ClangFormat plugin against LLVM with clang-cpp
The ClangFormat plugin needs to link against clang-cpp in that
case as well.

Fixes: QTCREATORBUG-25138
Change-Id: I84b1784b291d8944a9dee66ec14db32ad72ff8b5
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-12-18 15:29:45 +00:00
Eike Ziller
305ca7e434 cmake build: Fix handling of test dependencies
Test dependencies are not "real" code dependencies, they just
declare that for testing the plugin the other plugin has to
be loaded, even though it is _not_ a code dependency.

Add PLUGIN_TEST_DEPENDS to add_qtc_plugin. We cannot assume
that the target exists at that point, so adapt the usual pattern.

Fixes: QTCREATORBUG-25024
Change-Id: I4165ff8df762309e0be0bfe9e8bedef796a3bf17
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-12-18 08:24:46 +00:00
Eike Ziller
ea4a53a1aa Bump version to 4.14.1
Change-Id: I0391715109a6ac43da4b3b744a845cf914b0d0b2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-12-17 14:15:59 +00:00
Eike Ziller
5572bc7220 Merge remote-tracking branch 'origin/4.14'
Change-Id: Ie52e046f8e280e8c39f0cc5e9e710b4f885010a6
2020-12-17 13:10:44 +01:00
Eike Ziller
dc297f09b0 cmake build: Fix configuration for BUILD_LIBRARIES_BY_DEFAULT=OFF
Or BUILD_LIBRARY_YAML-CPP=OFF.
In that case the add_qtc_library does not result in a target, so
we must check before accessing it, and should not claim that yaml-cpp
is available if it isn't.

Change-Id: I710ce726d65f7a1c036fd94ebeb18ead290a45f2
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-12-15 12:59:04 +00:00
Eike Ziller
4bc2b4741d Merge remote-tracking branch 'origin/4.14'
Change-Id: I842a7c7358fd0ff6d85c151806e440043914e09a
2020-12-14 14:19:15 +01:00
Eike Ziller
0a20b8e7de cmake build: Fix PLUGIN_RECOMMENDS
Use the right variable name, and syntax for iterating the list.
Fix plugin configuration order, so targets are found.
Fix misspelled plugin name.

Also remove unused and wrong "EXPERIMENTAL" option.

Change-Id: I77cc5d12ebdaa8bcd0315dd830a9435c648b2ba3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-12-11 11:07:14 +00:00
Eike Ziller
1283b15117 Merge remote-tracking branch 'origin/4.14'
Conflicts:
	doc/qtdesignstudio/examples/loginui1/qtquickcontrols2.conf
	doc/qtdesignstudio/examples/loginui2/qtquickcontrols2.conf
	doc/qtdesignstudio/examples/loginui3/qtquickcontrols2.conf
	doc/qtdesignstudio/examples/loginui4/qtquickcontrols2.conf
	share/qtcreator/debugger/dumper.py
	share/qtcreator/debugger/qttypes.py

Change-Id: Id44a67cdeeb0889ff96eddcdf409d20ca7cbdd0b
2020-12-10 13:02:02 +01:00
Eike Ziller
a41b4eea75 Clang: Fix enabling of ClangFormat plugin with RelWithDebInfo
RelWithDebInfo also builds in release mode, so just checking for the
build type to match is not enough.

Amends 6b62a99a8a

Fixes: QTCREATORBUG-25056
Change-Id: I5ea448e1cdd0cb3b76d052d6019337cdf13bdbc4
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-12-08 10:52:40 +00:00
Orgad Shaneh
c1a0e9d638 Bump version to 4.15 beta
Change-Id: I39f45b880649323f71ebf3bd3a6bb3677ca33fd2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-12-08 10:19:36 +00:00
Eike Ziller
3f0e7bcbe1 Merge remote-tracking branch 'origin/4.14'
Change-Id: I9d1931b7862f4541ac7a064ff987128afd835cbe
2020-12-07 12:29:44 +01:00
Eike Ziller
ed23cecc44 Bump version to 4.14.0
Change-Id: I419bf8e73519be8f796dbf4399ebebedf3d74ffb
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-12-03 14:21:43 +00:00
Eike Ziller
8245523653 Merge remote-tracking branch 'origin/4.14'
Conflicts:
	src/plugins/designer/cpp/formclasswizard.h
	src/plugins/designer/cpp/formclasswizarddialog.h

Change-Id: I9f9d166e1a9249022305503f9cbe571136c2a2b1
2020-11-25 11:25:34 +01:00
Eike Ziller
471892deb0 Bump version to 4.14.0-rc1
Change-Id: Ifcb361437d1cac7d69e871a980a1824dc94b4c22
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-11-24 14:25:44 +00:00
Tim Jenssen
ec202c82a3 cmake: fix no libclang builds
Change-Id: Id5ce15851bf1cdbd3661adcf5751e66a4cf96930
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2020-11-23 19:57:25 +00:00
Tim Jenssen
5267efc234 cmake: disable reuse pch files for static libs with MSVC
Was not able to build something against these libraries
from another "cmake project".

Change-Id: I3876d102a320b4f5324e25fd8e840c181010c2a7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-23 12:26:23 +00:00
Christian Stenger
6b62a99a8a cmake: Fix building debug with release libclang
Parts of QC cannot be linked against a release build of clangTooling
libs and vice versa when building on Windows.
Check whether the provided libs match the current build mode and
disable respective parts if necessary.
Re-use this information to decide whether unittest should be build
or not.

Change-Id: Ibc2aab0d7886e78ebbf8f15a43152efad49f1eff
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-11-23 11:07:49 +00:00
Eike Ziller
05a1b2a6e8 cmake build: Remove unused component "Dependencies"
We don't use it for packaging, nor for github anymore, it duplicates a
whole lot of logic, and that only partially (as an example fixing the
RPATH for clang tools on macOS is missing), and the Clang part only
works with CMake >= 3.14 ("file(READ_SYMLINK"), which was the final
trigger of this patch.

Change-Id: I21ff6b01297009eff15bda36963e729dea4927c8
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-23 10:46:39 +00:00
Eike Ziller
5ca70bdcb3 Merge remote-tracking branch 'origin/4.14'
Change-Id: Iea84f23cf394de13e99a9ed777c8c113e4eff473
2020-11-19 15:38:13 +01:00
Eike Ziller
2422a90f1e cmake build/macOS: Fix installing when built with Qt6
In a framework the actual library can be accessed via two different
paths:

- Foo.framework/Foo
- Foo.framework/Versions/A/Foo

It happens that Qt5 exports the first variant for the framework LOCATION
and Qt6 exports the second variant.
We want to cut the whole "Foo.framework" part for the framework's location,
so actually do that.

Amends 98db9774f2

Change-Id: Idad12e92f2bfbdc480256a832320c4dec76a0e5f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-18 11:11:22 +00:00
Eike Ziller
eb4d230e38 cmake build: Create DebugInfo component with separate debug info
When building with RelWithDebInfo. The CMake code is adapted from
corresponding (internal) functions from Qt 6.
Also let the scripts create an additional *-debug.7z with the debug
info.

Task-number: QTCREATORBUG-24916
Change-Id: Ibc3c8c0013718b9c5e868136e5ce01e1e99f84c4
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-17 11:32:32 +00:00
Eike Ziller
4498c12ddc Merge remote-tracking branch 'origin/4.14'
Change-Id: I790a8b9002a55f52090d085b65d9fe58b7eb1d20
2020-11-16 11:26:03 +01:00
Eike Ziller
9ff91ef0d9 cmake build: Fix building with PCHs
- fix target name
- build pchs without extensions like all other targets
- require CMake 3.10 for plugins

Amends c038abb0ab

Change-Id: I0eae58a9e7ce91c0df6103790cb91a5229d06051
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-16 10:00:58 +00:00
Cristian Adam
ab324a626c CMake: Add convenience BUILD_PLUGINS|EXECUTABLES|LIBRARIES variables
By setting the CMake list variable "BUILD_PLUGINS=foo;bar" the
Qt Creator CMake API will set "BUILD_PLUGINS_BY_DEFAULT=OFF" and
"BUILD_PLUGIN_FOO=ON" and "BUILD_PLUGIN_BAR=ON"

Change-Id: I766d7451bfb7ccbd23c973f288b06a18ada79dda
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-11-16 08:51:44 +00:00
Cristian Adam
c038abb0ab CMake Build: Fix problems with PCH and super repo
Make sure that every project will have its own precompile headers
sets.

This fixes problems with MSVC.

Change-Id: I37d58c9652f679545283907e7cad70cd579911a8
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2020-11-13 18:48:18 +00:00
Eike Ziller
da78629153 cmake build: Use CMAKE_INSTALL_NAME_TOOL instead of hardcoding
Amends 98db9774f2

Change-Id: I4aaaddcfc0e5cc31bb0646a3a3ccc18ee2fa5ff1
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-13 14:20:17 +00:00
Eike Ziller
98db9774f2 cmake build: Do not copy whole app bundle directory when installing
CMake just copies the whole app bundle directory when installing a
target, but we copy various things there that should not be part of the
installation, like static libraries, executables with SKIP_INSTALL,
Clang resources, and potentially .dSYM bundles.

Fixes: QTCREATORBUG-24021
Change-Id: I98bb466b664d2d6d203f3adc20d8345d9b3ce3cc
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-13 11:04:32 +00:00
Orgad Shaneh
d0df1527a6 yaml-cpp: Fix/suppress MSVC warnings
* C4251: 'YAML::Binary::m_data': class 'std::vector<unsigned char,std::allocator<unsigned char>>'
  needs to have dll-interface to be used by clients of class 'YAML::Binary'
* C4275: non dll-interface class 'std::runtime_error' used as base for
  dll-interface class 'YAML::Exception'
* STL4015: The std::iterator class template (used as a base class to provide
  typedefs) is deprecated in C++17.

Change-Id: I37e32df84ee2d2946181aad790dabd0c3ed58c08
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-12 14:01:10 +00:00
Eike Ziller
c92adb199e cmake build: Map generic IMPORTED_LOCATION for Qt6 tools
There once was a time where the Qt6 build only set
IMPORTED_LOCATION_<CONFIG> but nowadays it also sets
IMPORTED_LOCATION. Use the latter to make it work with both debug
and release builds of Qt6.

Change-Id: Ic8b14209cb97b47eb6136e23390045e115a12ac0
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-11 15:34:43 +00:00
Eike Ziller
fd6fe3f4e6 cmake build: Remove branding from target names
Targets are never branded

Change-Id: If7f23ac005b5492d52f87ba71789e674bb077a00
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-11 15:21:13 +00:00
Eike Ziller
743877730b cmake build: Fix branding
The cmake build used IDE_ID in too many paths that are actually
not branded (yet?).

Change-Id: I019dd806975ef2205aa946bc3b27b0675233e1ea
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2020-11-09 11:04:50 +00:00
Eike Ziller
d24c34c747 cmake build: Disable refactoringbackend and pchmanagerbackend
Disable the libs and executables if not needed by either the plugins or
by the tests.

So far in the cmake build the ClangRefactoring and ClangPchManager
plugins were disabled by default, but the backend executables were still
built. With this change the executables are not built if the plugins are
not enabled, like it is the case in the qmake build.

To make it possible to build all the tests even though the plugins are
disabled by default, the backend libraries are still built if tests are
enabled.

Change-Id: I3b61479525e1472a55215f1b003fea9facaf9e93
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2020-11-05 15:11:39 +00:00
Eike Ziller
eeb9856064 cmake build: Fix disabling of documentation targets
Change-Id: I8827dcc38c908ef9e19b9a59bb9559d29b0ff77e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-05 07:27:21 +00:00
Eike Ziller
495dee98fc cmake build: Handle turning on/off libraries the same as plugins
Previously the library targets were added, but with EXCLUDE_FROM_ALL.
This had the effect that libraries were not compiled if nothing depends
on them, but lead to various issues: It wasn't possible to manually
control compilation, and it lead to the library targets still being
exported, leading to configuration errors when building external
plugins.

Implement the same mechanism with BUILD_LIBRARY_* as with plugins,
giving complete control.

Change-Id: Idea3371d130593c5c2fdceee374021b6923db0c9
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-11-02 19:10:05 +00:00
Eike Ziller
c135f4a253 cmake build: Fix documentation generation with Qt6
qhelpgenerator moved to a separate package "Tools" which doesn't exist in Qt5.

Task-number: QTCREATORBUG-24098
Change-Id: If7d0d638d6cee27f9154141ca415fb412745d1ee
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-02 07:09:40 +00:00
Eike Ziller
acd2aaa0f0 cmake build: Add missing rcc alias for Qt6
Change-Id: I353ded95f8ee8fd263d7a9f830cdcf662a250bd1
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-10-30 09:20:19 +00:00
Eike Ziller
bf8879ee5c TextEditor: Add missing file to dev package
The public header "textdocumentlayout.h" includes "State" from
KSyntaxHighlighting, so we need to export that.
Since it doesn't have the ".h" extension, it doesn't get exported
automatically either. Add a generic function for adding such special
public header files.

Fixes: QTCREATORBUG-24413
Change-Id: I841e6d601df7e925f48eedcc2a28d6b43c00350e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-10-29 12:58:52 +00:00
Eike Ziller
d5d5068009 Bump version to 4.14 beta2
Change-Id: Ife5666e272697da19e1ba1a96d93281943deb37e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-10-29 10:24:08 +00:00
Eike Ziller
240fba0222 cmake build: Allow branding to change documentation file
Task-number: QTCREATORBUG-22488
Change-Id: I80a1feafa7b027dc99acdb019359037ae0259573
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-10-28 08:53:23 +00:00
Eike Ziller
7ae976a8b9 cmake build: Use qtc_add_resources for StudioWelcome
Avoids creating resource file if plugin is disabled.

Change-Id: Ia3e1a127c49cae4b03547367a78ca7dd8c3689f3
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-10-27 12:53:54 +00:00
Eike Ziller
43facbe090 Revert "cmake build: Disable clangpchmanagerbackend and refactoringbackend"
The change breaks the dev package:

The imported target "QtCreator::clangrefactoringbackend_lib" references
the file
"/home/qt/work/build/qtc_build/lib/qtcreator/libclangrefactoringbackend_lib.a"
but this file does not exist.

This reverts commit 20a6207459.

Change-Id: I68f3b6948bde611b9e5b841d1fde2b136877cbfc
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-10-27 08:37:26 +00:00
Eike Ziller
781d54249e cmake build: add qtc_add_resources to API
Adapted from qt6_add_resources. Takes a list of files and compiles these
into a resource file.

Change-Id: I375aa17b76e283b90bc0cbe8b6859520bcac7da3
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-10-27 06:45:52 +00:00
Eike Ziller
20a6207459 cmake build: Disable clangpchmanagerbackend and refactoringbackend
By default. Previously only the corresponding plugins were disabled, but
not even building the backends makes more sense.

Change-Id: I36d61869a3050f37da1f480dea89e7539dda599a
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2020-10-26 15:34:22 +00:00
Eike Ziller
c510cf79d8 cmake build: Add option for exporting plugins
That can be used for external plugins. Just add the option "EXPORT" to
your "add_qtc_plugin(MyPlugin ...." call. Other plugins can then do
"find_package(QtCreatorMyPlugin)" and link against
"QtCreator::MyPlugin".

Supports both using a Devel install or using a build directory of the
plugin that is depended on.

Task-number: QTCREATORBUG-22803
Change-Id: I80724eca8c828d2d5be307d32f3125c4e3bd8b3a
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-10-22 11:45:12 +00:00
Eike Ziller
067cb61c7c cmake build: Fix export name in case of branding
We must use the same name everywhere for the export name, for simplicity
stay with QtCreator, since this is not user-visible anyhow.

Change-Id: I4f51982534662d46401dad1320eec3758eed055b
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-10-22 11:44:58 +00:00
Cristian Adam
3c4f7967e3 CMake Build: Allow building unittests when targets are missing
when configuring a minimal build make sure that when querying
for target properties like SOURCE_DIR the target actually exists.

Change-Id: Ib754b79be6461e3ddd4cdeb1abac123cf4535068
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-10-20 14:12:54 +00:00