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>
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>
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>
- 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>
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>
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>
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>
* 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
You might want to build only a specific list of plugins, libraries,
or executables by opting in, instead of building all of them and opting out.
Change-Id: Ic81da380828779e409ba4192f307aa1b77a89808
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Because the tests were missing the visibility flags, and PCH targets
that didn't have the visibility flags were skipped, tests were build
without PCH.
Change-Id: I56ddc81fadcb9e1004032a7e6096ea2c0a480a19
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
While porting to Qt6 we'll need the compat library at some places.
Add a custom Qt6Core5Compat target that we can unconditionally use.
For Qt5 it refers to a dummy target.
For Qt6 it refers to the actual compat library.
Task-number: QTCREATORBUG-24098
Change-Id: Idd2b9f285352f685cfe715eee3fa046dfb468873
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Set Qt5_VERSION for version checks (e.g. currently still JavaScript
locator filter).
Export special FindQt5.cmake for external plugins and super-repo builds.
Change-Id: I5edb8b0e8bef1a341cd2ff04a13d0a6ce22f6558
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Create a FindClang.cmake and move all Clang configuration there.
Find Clang and choose static libraries if available, otherwise use
clang-cpp if available.
Add option to link to clang-cpp even if static libraries are available.
Fixes: QTCREATORBUG-23172
Change-Id: If40304d174469df0c786259e724cbee8de0e2d0e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Clean the paths before adding them to targets.
This prevents the code completion from showing multiple identical
entries when completing an #include.
It also removes ~2MB from build.ninja.
Task-number: QTCREATORBUG-24514
Change-Id: I19f3df400e65d8dfc4747415a8e14dae05d4b88c
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
QTBUG-75867 about missing Qt5::DesignerComponents support has been
fixed, so use that over our own hand-rolled version.
Change-Id: I6d8bb7f7d5359050f20a095adb4a074f143e8d49
Reviewed-by: Eike Ziller <eike.ziller@qt.io>