diff options
author | Cristian Adam <cristian.adam@qt.io> | 2021-05-19 17:22:29 +0200 |
---|---|---|
committer | Cristian Adam <cristian.adam@qt.io> | 2021-05-20 07:28:16 +0000 |
commit | b5428d0903309918d88ae13c7c1c0a5b2f45c831 (patch) | |
tree | bed6186d053e4b4dc99391f4a06f1671c7c10466 | |
parent | 97b6b2c0914f9c56da9d80d876abe00bcae1e625 (diff) | |
download | qt-creator-b5428d0903309918d88ae13c7c1c0a5b2f45c831.tar.gz |
CMakePM: Do not filter out all UTILITY targets
add_custom_target will be set as UTILITY target, which one might
want to reference as "cm <target>" or "--target <target>".
Filter out instead the "_autogen" and "_autogen_timestamp_deps".
Fixes: QTCREATORBUG-25726
Change-Id: Ia73d6e87e4b230114d068649964792ff3f626378
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp | 15 | ||||
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildsystem.h | 2 | ||||
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp | 2 |
3 files changed, 13 insertions, 6 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index b558cc0d9d..d32c6e7d5e 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -1016,7 +1016,7 @@ const QList<BuildTargetInfo> CMakeBuildSystem::appTargets() const const bool forAndroid = DeviceTypeKitAspect::deviceTypeId(kit()) == Android::Constants::ANDROID_DEVICE_TYPE; for (const CMakeBuildTarget &ct : m_buildTargets) { - if (ct.targetType == UtilityType) + if (CMakeBuildSystem::filteredOutTarget(ct)) continue; if (ct.targetType == ExecutableType || (forAndroid && ct.targetType == DynamicLibraryType)) { @@ -1047,11 +1047,10 @@ const QList<BuildTargetInfo> CMakeBuildSystem::appTargets() const QStringList CMakeBuildSystem::buildTargetTitles() const { - auto nonUtilityTargets = filtered(m_buildTargets, [this](const CMakeBuildTarget &target){ - return target.targetType != UtilityType || - CMakeBuildStep::specialTargets(usesAllCapsTargets()).contains(target.title); + auto nonAutogenTargets = filtered(m_buildTargets, [this](const CMakeBuildTarget &target){ + return !CMakeBuildSystem::filteredOutTarget(target); }); - return transform(nonUtilityTargets, &CMakeBuildTarget::title); + return transform(nonAutogenTargets, &CMakeBuildTarget::title); } const QList<CMakeBuildTarget> &CMakeBuildSystem::buildTargets() const @@ -1073,6 +1072,12 @@ CMakeConfig CMakeBuildSystem::parseCMakeCacheDotTxt(const Utils::FilePath &cache return result; } +bool CMakeBuildSystem::filteredOutTarget(const CMakeBuildTarget &target) +{ + return target.title.endsWith("_autogen") || + target.title.endsWith("_autogen_timestamp_deps"); +} + bool CMakeBuildSystem::isMultiConfig() const { return m_reader.isMultiConfig(); diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.h b/src/plugins/cmakeprojectmanager/cmakebuildsystem.h index 00740feaa0..3b591c1581 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.h @@ -99,6 +99,8 @@ public: static CMakeConfig parseCMakeCacheDotTxt(const Utils::FilePath &cacheFile, QString *errorMessage); + static bool filteredOutTarget(const CMakeBuildTarget &target); + bool isMultiConfig() const; bool usesAllCapsTargets() const; diff --git a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp index abeec70e59..65ee922918 100644 --- a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp +++ b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp @@ -71,7 +71,7 @@ void CMakeTargetLocatorFilter::prepareSearch(const QString &entry) const QList<CMakeBuildTarget> buildTargets = bs->buildTargets(); for (const CMakeBuildTarget &target : buildTargets) { - if (target.targetType == UtilityType && !CMakeBuildStep::specialTargets(bs->usesAllCapsTargets()).contains(target.title)) + if (CMakeBuildSystem::filteredOutTarget(target)) continue; const int index = target.title.indexOf(entry); if (index >= 0) { |