forked from qt-creator/qt-creator
		
	Change-Id: I017092613cdec7c00736442c10ca80b3c74f0189 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
		
			
				
	
	
		
			99 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/****************************************************************************
 | 
						|
**
 | 
						|
** Copyright (C) 2015 The Qt Company Ltd
 | 
						|
** All rights reserved.
 | 
						|
** For any questions to The Qt Company, please use contact form at http://www.qt.io/contact-us
 | 
						|
**
 | 
						|
** This file is part of the Qt Enterprise ClangStaticAnalyzer Add-on.
 | 
						|
**
 | 
						|
** Licensees holding valid Qt Enterprise licenses may use this file in
 | 
						|
** accordance with the Qt Enterprise License Agreement provided with the
 | 
						|
** Software or, alternatively, in accordance with the terms contained in
 | 
						|
** a written agreement between you and The Qt Company.
 | 
						|
**
 | 
						|
** If you have questions regarding the use of this file, please use
 | 
						|
** contact form at http://www.qt.io/contact-us
 | 
						|
**
 | 
						|
****************************************************************************/
 | 
						|
 | 
						|
#include "clangstaticanalyzersettings.h"
 | 
						|
 | 
						|
#include "clangstaticanalyzerconstants.h"
 | 
						|
 | 
						|
#include <coreplugin/icore.h>
 | 
						|
 | 
						|
#include <utils/hostosinfo.h>
 | 
						|
#include <utils/qtcassert.h>
 | 
						|
 | 
						|
#include <QFileInfo>
 | 
						|
#include <QThread>
 | 
						|
 | 
						|
static const char clangExecutableKey[] = "clangExecutable";
 | 
						|
static const char simultaneousProcessesKey[] = "simultaneousProcesses";
 | 
						|
 | 
						|
namespace ClangStaticAnalyzer {
 | 
						|
namespace Internal {
 | 
						|
 | 
						|
ClangStaticAnalyzerSettings::ClangStaticAnalyzerSettings()
 | 
						|
    : m_simultaneousProcesses(-1)
 | 
						|
{
 | 
						|
    readSettings();
 | 
						|
}
 | 
						|
 | 
						|
ClangStaticAnalyzerSettings *ClangStaticAnalyzerSettings::instance()
 | 
						|
{
 | 
						|
    static ClangStaticAnalyzerSettings instance;
 | 
						|
    return &instance;
 | 
						|
}
 | 
						|
 | 
						|
QString ClangStaticAnalyzerSettings::clangExecutable() const
 | 
						|
{
 | 
						|
    return m_clangExecutable;
 | 
						|
}
 | 
						|
 | 
						|
void ClangStaticAnalyzerSettings::setClangExecutable(const QString &exectuable)
 | 
						|
{
 | 
						|
    QTC_ASSERT(!exectuable.isEmpty(), return);
 | 
						|
    m_clangExecutable = exectuable;
 | 
						|
}
 | 
						|
 | 
						|
int ClangStaticAnalyzerSettings::simultaneousProcesses() const
 | 
						|
{
 | 
						|
    return m_simultaneousProcesses;
 | 
						|
}
 | 
						|
 | 
						|
void ClangStaticAnalyzerSettings::setSimultaneousProcesses(int processes)
 | 
						|
{
 | 
						|
    QTC_ASSERT(processes >=1, return);
 | 
						|
    m_simultaneousProcesses = processes;
 | 
						|
}
 | 
						|
 | 
						|
void ClangStaticAnalyzerSettings::readSettings()
 | 
						|
{
 | 
						|
    QSettings *settings = Core::ICore::settings();
 | 
						|
    settings->beginGroup(QLatin1String(Constants::SETTINGS_ID));
 | 
						|
 | 
						|
    const QString defaultClangExecutable = Utils::HostOsInfo::withExecutableSuffix(
 | 
						|
                QLatin1String(Constants::CLANG_EXECUTABLE_BASE_NAME));
 | 
						|
    setClangExecutable(settings->value(QLatin1String(clangExecutableKey),
 | 
						|
                                       defaultClangExecutable).toString());
 | 
						|
 | 
						|
    const int defaultSimultaneousProcesses = qMax(0, QThread::idealThreadCount() / 2);
 | 
						|
    setSimultaneousProcesses(settings->value(QLatin1String(simultaneousProcessesKey),
 | 
						|
                                             defaultSimultaneousProcesses).toInt());
 | 
						|
 | 
						|
    settings->endGroup();
 | 
						|
}
 | 
						|
 | 
						|
void ClangStaticAnalyzerSettings::writeSettings() const
 | 
						|
{
 | 
						|
    QSettings *settings = Core::ICore::settings();
 | 
						|
    settings->beginGroup(QLatin1String(Constants::SETTINGS_ID));
 | 
						|
    settings->setValue(QLatin1String(clangExecutableKey), clangExecutable());
 | 
						|
    settings->setValue(QLatin1String(simultaneousProcessesKey), simultaneousProcesses());
 | 
						|
    settings->endGroup();
 | 
						|
}
 | 
						|
 | 
						|
} // namespace Internal
 | 
						|
} // namespace ClangStaticAnalyzer
 |