Commit Graph

3443 Commits

Author SHA1 Message Date
Tobias Hunger
0dbe6f8e3c CMake: Add heuristics to set "Run in Terminal" flag
For CMake file-api, flag all applications not linking to "QtXGui"
as "Run in Terminal".

Task-number: QTCREATORBUG-21451
Change-Id: I29f086c546d3d8a9f56257e423602f787db42ccd
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2019-12-12 14:55:17 +00:00
hjk
d1d9df60b6 CMake: Dissolve CMakeExtraBuildInfo
The information is effectively derivable from kit and build type, so
do it only when needed.

Change-Id: Ideb4e5106a6a0632ade98aad894d5b7aa6f83126
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-12-11 11:27:25 +00:00
hjk
b1a29dedfc ProjectExplorer: Pass parameters to BuildConfiguration initialization
... directly again, mostly undoing the temporary hack from fb631cb258.

Change-Id: I4485dcb23765d99b4b5869973f004457ebd7aa7d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-12-10 11:43:33 +00:00
hjk
2ab33d1dc9 CMake: Remove CMakeBuildConfiguration::project() overload
The base version is good enough nowadays.

Change-Id: I2e2ca690a29f9b877309ca98038d211d5c678fbd
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-12-10 11:27:55 +00:00
Tobias Hunger
a8b96a8240 CMake: More logging of parsing starting/stopped
Change-Id: I52dad9260c21e03add513f7229148635ae76236a
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2019-12-10 09:16:22 +00:00
hjk
041a86c8c7 ProjectExplorer: Use function object for special build config init
Change-Id: I5da0f28ee1a64f8d9a3145f059019be702bee463
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-12-09 14:12:45 +00:00
Orgad Shaneh
49f6b0146a Merge remote-tracking branch 'origin/4.11'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/mcusupport/mcusupportrunconfiguration.cpp
	src/plugins/python/pythonproject.cpp
	src/plugins/qmakeprojectmanager/qmakestep.cpp
	src/plugins/qmlprojectmanager/qmlproject.cpp
	src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp

Change-Id: I22507be28fd80c49c9fee0dff5937a40db176a82
2019-12-07 18:39:54 +02:00
hjk
3c41b91d44 ProjectExplorer: Settle on fixed set of build step lists
Even if the implementation allowed different lists than 'build'
and 'clean', that's the only set that has been used, ever.

If really needed, this could be re-instated, but for now having
them fixed removes part of the neeed for a two-phase construction
and helps to simplify user code.

Change-Id: I3df09a1829a7d020ef8963d358ea80f8d199ba13
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-12-06 14:49:59 +00:00
hjk
6771a46928 Cmake: Remove unused code
Change-Id: I7305ad6f853c6645cc34ca66fc602f0b58982f60
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-12-04 09:24:52 +00:00
BogDan Vatra
40a6bef7ed Android: Default to armv7 instead of arm64 (qmake & CMake)
Change-Id: I1c67a047784204a8a08c8a1ec4ec672532cbed11
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2019-12-02 12:01:20 +00:00
Alessandro Portale
89a02029b8 CMakeProjectManager: Make search for CMake in "ProgramFiles" more robust
Also search in "ProgramW6432", so that a 32-bit Qt Creator on a 64-bit
Windows can find a 64-bit CMake installation.

Change-Id: Ia02a8a3e2308fa0dfb422df6969c8313868d3ce6
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-11-28 10:02:19 +00:00
Eike Ziller
6fc85b49fa Merge remote-tracking branch 'origin/4.11'
Conflicts:
	src/plugins/designer/codemodelhelpers.cpp

Change-Id: I78906f2fbbfd27d254589a272ebca423b0b80699
2019-11-28 08:24:10 +01:00
Alessandro Portale
b619c60ff7 CMakeprojectManager: Use Utils::ElidingLabel in GeneratorKitAspect
Don't stretch the kit options page horizontally more than required.

Change-Id: I8eb3855ae48a8a172741b1c42f79b9e05cc7eb42
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-11-22 11:35:07 +00:00
Eike Ziller
4e6142c932 Merge remote-tracking branch 'origin/4.11'
Conflicts:
	src/plugins/autotest/testresultspane.cpp
	src/plugins/cmakeprojectmanager/cmaketool.cpp

Change-Id: Iade695ac9cab8bf3e3a1abd6e2c71f4a19132ac0
2019-11-21 22:18:35 +02:00
hjk
c2127c9ec4 ProjectExplorer: Introduce and use a Target::buildSystemUpdated signal
Change-Id: I497d46866146600a1ed9162bd720c574ee4d4769
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-11-21 13:08:06 +00:00
hjk
738bbf1a87 ProjectExplorer: Introduce per-buildsystem setRootProjectNode
Currently diverting to the original Project::setRootProjectNode.
Idea is to focus on the BuildSystem <-> generated tree relation.

Change-Id: I8b20173e364713f0919cf4f8b76a2f79ef8770bb
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-11-21 07:40:22 +00:00
Cristian Adam
da25ac6322 CMakeProjectManager: Add ability to specify path to ninja
Task-number: QTBUG-79885
Change-Id: If0c5efc534e2fc6f0041b9407e2ae24ed671ac8a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-11-20 11:37:00 +00:00
hjk
95ba85c86e ProjectExplorer: Use a Kit to initialize KitInfo
Change-Id: I70a83ff9a9da814b4e1ad9ce5e0b626105c09ca4
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-11-20 11:31:14 +00:00
hjk
e097323817 ProjectExplorer: Fix compilation with MSVC
Amends 2758682723.

Change-Id: I005c6aa848cd15fef8b59e05681c6b49b1453202
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-11-19 14:59:30 +00:00
hjk
2758682723 ProjectExplorer: Move BuildSystem owership to BuildConfiguration
... or Target.

This patch moves build system from conceptually "one per project"
to "one per target (i.e. per project-and-kit)" or "per
BuildConfigurations" for targets where the builds differ
significantly.

Building requires usually items from the kit (Qt version, compiler,
...) so a target-agnostic build is practically almost always wrong.

Moving the build system to the target also has the potential
to solve issues caused by switching targets while parsing, that
used Project::activeTarget() regularly, with potentially different
results before and after the switch.

This patch might create performance/size regressions when several
targets are set up per project as the build system implementation's
internal data are duplicated in this case.

The idea is to fix that by sharing per-project pieces again in
the project implementation once these problems occur.

Change-Id: I87f640ce418b93175b5029124eaa55f3b8721dca
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-11-19 11:05:52 +00:00
Tobias Hunger
cca33e2e26 CMake: Do not make the CMake tool invalid on timeout
Do no mark the CMake tool as invalid when it times out when fetching
auto-completion information. This happens the first time a CMakeLists.txt
file is edited in Creator.

Also increase the timeout so that there is less of a chance
to trigger have the information retrival time out -- which breaks
auto-completion of cmake variables, etc. in the CMakeLists.txt editor.

Closes: QTCREATORBUG-18530
Change-Id: I914377a6ece90c6f78ea5eb007da8fbe07785563
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-11-14 16:17:12 +00:00
Eike Ziller
646c7860cb Merge remote-tracking branch 'origin/4.11'
Conflicts:
	src/plugins/genericprojectmanager/genericprojectplugin.cpp
	src/plugins/projectexplorer/environmentaspect.cpp
	src/plugins/projectexplorer/environmentaspect.h
	src/plugins/projectexplorer/environmentaspectwidget.cpp

Change-Id: Id21d62cf14419febd1e06c9b429fcdf4501c0eaf
2019-11-11 12:58:11 +01:00
Cristian Adam
f930fb2b75 CMakeProjectManager: Do not convert PATHS to user output
CMake works natively with / for paths, if we convert them to \ on
Windows, and then give back to CMake, we end up having bad paths.

Change-Id: I44da27ba4927ec5b83c8e381a8c65ca3fca3505b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-11-07 13:52:35 +00:00
Eike Ziller
04bd6e39c8 Merge remote-tracking branch 'origin/4.11'
Conflicts:
	share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quick3dnodeinstance.cpp

Change-Id: I8ea57eba526ab830608fd928c28771c5441749f8
2019-11-01 15:31:19 +01:00
hjk
6908ecc084 ProjectExlorer: Streamline creation of NamedWidgets
Change-Id: I67c1506ea4e2d7722c9ce38738e350418d725a0e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-11-01 10:20:32 +00:00
Nikolai Kosjar
d337d03ce1 CppEditor: Simplify
bugprone-branch-clone
readability-simplify-boolean-expr

Change-Id: Id30a155e224370713d23b4b534fb82f5e630f36c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-11-01 09:21:29 +00:00
Nikolai Kosjar
02a81b89c4 CMake: Simplify
Change-Id: I3e5fd3aebf8b11037d99ff367826ff8f8f436045
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2019-11-01 09:11:06 +00:00
hjk
923027537a Cmake: Cleanup initialization
Change-Id: If3ee26bb7d6995405f706bd9c78460fb744b5136
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-10-29 14:28:50 +00:00
Leena Miettinen
5b943b6e7a CMake: Fix UI text
Change-Id: I5bf6e8a67bb09500502b4d35e227354390a3be19
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-10-28 15:20:54 +00:00
Eike Ziller
bea3a8fa6f Merge remote-tracking branch 'origin/4.11'
Change-Id: I66389d88d5a60c6c86547b93cca945af42aa807b
2019-10-28 11:48:31 +01:00
BogDan Vatra
e3904f3b13 CMake: Add Android Multi ABI support
Change-Id: Ia5b3fcda29705fefca85833ebc28b4154defba5f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-10-28 05:47:53 +00:00
hjk
6a878c7293 ProjectExplorer: Use a functor for BuildSystem creation
... instead of creating the BuildSystem direct. This will help the
shift of BuildSystem owner ship as a Project will have potentially
multiple BuildSystem instances (one per BuildConfiguration), but
still be responsible for creating them with the Targets.

Change-Id: I2dd71c7687ed41af9e42c874b3f932ce704e7ee3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-10-25 09:01:52 +00:00
hjk
5b815d22a3 Cmake: Avoid warning about reaching the end of a non-void function
Change-Id: Iee74d8315c2b3813d9671c9696581c1b68a4c45a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-10-25 08:21:14 +00:00
hjk
66c7d75dbd Qbs, Qmake, Python, Generic: Introduce BuildSystem derived classes
... and move context menu action handling there.

This is a temporary measure to be able to move that functionality
alongside the actual BuildSystem to the BuildConfiguration.

There is a lot to be cleaned up left, to keep the patch small.

Change-Id: If4b0820a13b376fc97b70785052924972ce22705
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-10-25 07:55:10 +00:00
Eike Ziller
9760d02b77 Merge remote-tracking branch 'origin/4.11'
Conflicts:
	src/plugins/perfprofiler/perfprofilerflamegraphmodel.cpp
	src/plugins/qtsupport/qtversionmanager.cpp

Change-Id: I2f29dd2e86b028be46184b12ac2c17ace2513d5a
2019-10-23 07:41:01 +02:00
Cristian Adam
8ee22dd597 CMakeProjectManager: Fix clang code model when CMake PCHs are used
CMake gives the path to the cmake_pch.h[xx] file as relative path
to build directory. Making it absolute fixes the code model.

Fixes: QTCREATORBUG-22888
Change-Id: I2fdc080be779f22b737788be2074254290994aaa
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-10-22 08:12:26 +00:00
Christian Stenger
ef4565cf6b CMakePM: Fix compile for gcc 5.3
Amends 196b0da08a.

Change-Id: I22a6212adde0fa404aa770703ce5aeb97441c7b4
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-10-21 04:55:30 +00:00
Tobias Hunger
23e79ba60f CMake: Put source directory last when running cmake
Tealeaf reader using CMake version 3.5.2 fails to configure any
project now that creator passes "-C something". It wrongly assumes
the provided "something" is the actual source directory.

Change-Id: I3d74cc81a18255b669ab3f9f892472c2ac5d304f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-10-18 14:33:55 +00:00
Tobias Hunger
97855766bd CMake: Fix build directory location in fileapi and tealeaf reader
Sorry, this was wrong in 196b0da08a

Change-Id: Id2d6a5fb180ccc74c6fea0559466f8e390de69e8
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-10-18 14:33:46 +00:00
Tobias Hunger
196b0da08a CMake: Write creators settings into build directory
Write a file qtcsettings.cmake into the build directory. This
file contains all applicable CMake configuration settings that
creator wants to set.

Use "cmake -C qtcsettings.cmake .." to reconfigure on the command
line to make use of this file.

Change-Id: I4a69d082c50bb66e60b4eec1b3155df53e00734d
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-10-18 14:11:13 +00:00
Tobias Hunger
22ecd6b7ef CMake: Use radio buttons to select build targets
Use radio buttons to select build targets in CMakeBuildStep.

CMake only allows for one target to be built at one time, so checkboxes
are confusing.

Task-number: QTCREATORBUG-20764
Change-Id: I1171abd1753817595562526456c3ce613a22667c
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-10-18 08:50:22 +00:00
Eike Ziller
900ef05d37 Merge remote-tracking branch 'origin/4.11'
Change-Id: I48e406d43f185e893523cc5e0dcf288afdc3e36c
2019-10-17 07:32:01 +02:00
Eike Ziller
fcb12a275f Merge remote-tracking branch 'origin/4.10' into 4.11
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
	src/plugins/projectexplorer/deploymentdata.cpp
	src/plugins/projectexplorer/msvctoolchain.cpp

Change-Id: I64c304fc71435629a6a0060a9df71e8952699508
2019-10-16 15:27:22 +02:00
Tobias Hunger
e38ccf16cd CMake: Make use of CMake-provided .qch files
* Have UI to select a .qch file location in CMake Tool setup
* Auto-detect CMake's .qch file in its default location (relative
  to the cmake executable)
* Register the .qch files with the HelpManager

Task-number: QTCREATORBUG-21338
Change-Id: I4057eec42c39535012d9f0daf788fc62ef20d544
Reviewed-by: hjk <hjk@qt.io>
2019-10-16 10:40:03 +00:00
Tobias Hunger
c12a80306c CMake: Remove clearBuildTarget from CMakeBuildStep
That method makes little sense, considering that there can only ever
be one build target.

Change-Id: I53d555fa7d713dd8c05b4a9f5944908afeee859f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2019-10-16 08:45:15 +00:00
Tobias Hunger
28e4ed61af CMake: Polish configuration check dialog
Polish "CMakeCache.txt is different from Project" dialog based on suggestions
by Cornelis Bockemühlmade on the Qt Creator mailing list.

Task-number: QTCREATORBUG-17555
Change-Id: I22e616bfef1ffd79590a93335a5e34364e1a4f3f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-10-10 10:06:54 +00:00
Cristian Adam
84756c69e9 CMake: Use non translatable names for build directory names
The CMake build types names are translated, which is fine in UI,
but we shouldn't use the translations in the directory name.

Debug/Release/RelMinSize/RelWithDebInfo are known in CMake world,
and don't cause any problems with MSVC when having translations
for Russian / Japanese.

Fixes: QTCREATORBUG-19984
Change-Id: Ia19326f0ca5d277b549f1b82bc569518f7b5c441
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-10-10 09:40:05 +00:00
Tobias Hunger
5d1fe43a7a CMake: Run CMake less often
Run CMake less often to extract information on the CMake tool.

Change-Id: I959df99fee16e6196db61c84aee7908d66af222d
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2019-10-10 08:14:04 +00:00
Tobias Hunger
e23f96e98c CMake: Do not delay on manual request to run cmake
Change-Id: I116cf3b41fefbe17237437e8ad4ec0fe91bbf31d
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2019-10-10 08:13:45 +00:00
Tobias Hunger
4d2211aa46 CMake: Make BuildDirManager a bit more robust
Handle error situations better.

Change-Id: I1376e2ef72f6e599779a0bf692e2c0dfee85724b
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2019-10-10 08:13:28 +00:00