CppTools: De-duplicate code for CppProjectUpdater

Centralize gathering the kit, toolchains and qt version.

Change-Id: I6bd586ac7925e2ee556fd119f1dab096cd500e41
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Nikolai Kosjar
2019-01-04 12:35:28 +01:00
parent 6b5b94d7ca
commit 4ce9ec5d63
13 changed files with 260 additions and 126 deletions

View File

@@ -0,0 +1,61 @@
/****************************************************************************
**
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#include "cppkitinfo.h"
#include <projectexplorer/kit.h>
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/kitmanager.h>
#include <projectexplorer/project.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/target.h>
#include <qtsupport/qtkitinformation.h>
namespace CppTools {
using namespace ProjectExplorer;
KitInfo::KitInfo(Project *project)
{
// Kit
if (Target *target = project->activeTarget())
kit = target->kit();
else
kit = KitManager::defaultKit();
// Toolchains
if (kit) {
cToolChain = ToolChainKitInformation::toolChain(kit, Constants::C_LANGUAGE_ID);
cxxToolChain = ToolChainKitInformation::toolChain(kit, Constants::CXX_LANGUAGE_ID);
}
}
bool KitInfo::isValid() const
{
return kit;
}
} // namespace CppTools

View File

@@ -0,0 +1,54 @@
/****************************************************************************
**
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#pragma once
#include "projectpart.h"
#include "cpptools_global.h"
namespace ProjectExplorer {
class Kit;
class Project;
class ToolChain;
} // namespace ProjectExplorer
namespace CppTools {
class CPPTOOLS_EXPORT KitInfo
{
public:
KitInfo(ProjectExplorer::Project *project);
bool isValid() const;
ProjectExplorer::Kit *kit = nullptr;
ProjectExplorer::ToolChain *cToolChain = nullptr;
ProjectExplorer::ToolChain *cxxToolChain = nullptr;
ProjectPart::QtVersion projectPartQtVersion = ProjectPart::NoQt;
};
} // namespace CppTools

View File

@@ -102,7 +102,8 @@ HEADERS += \
cpptools_clangtidychecks.h \
cppmodelmanagerinterface.h \
cppbuiltinmodelmanagersupport.h \
headerpathfilter.h
headerpathfilter.h \
cppkitinfo.h
SOURCES += \
abstracteditorsupport.cpp \
@@ -189,7 +190,8 @@ SOURCES += \
cppprojectpartchooser.cpp \
wrappablelineedit.cpp \
cppbuiltinmodelmanagersupport.cpp \
headerpathfilter.cpp
headerpathfilter.cpp \
cppkitinfo.cpp
FORMS += \
clangdiagnosticconfigswidget.ui \

View File

@@ -115,6 +115,8 @@ Project {
"cppincludesfilter.h",
"cppindexingsupport.cpp",
"cppindexingsupport.h",
"cppkitinfo.cpp",
"cppkitinfo.h",
"cpplocalsymbols.cpp",
"cpplocalsymbols.h",
"cpplocatordata.cpp",