diff --git a/gui/gui.pro b/gui/gui.pro
index 7275ec285..d98e152a5 100644
--- a/gui/gui.pro
+++ b/gui/gui.pro
@@ -16,6 +16,10 @@ contains(LINKCORE, [yY][eE][sS]) {
}
LIBS += -L$$PWD/../externals
+# z3
+LIBS += -lz3
+QMAKE_CXXFLAGS += -DUSE_Z3
+
DESTDIR = .
RCC_DIR = temp
MOC_DIR = temp
diff --git a/gui/gui.qrc b/gui/gui.qrc
index aa669b4f8..c40e1ba7a 100644
--- a/gui/gui.qrc
+++ b/gui/gui.qrc
@@ -28,5 +28,6 @@
images/applications-development.png
images/applications-system.png
images/llvm-dragon.png
+ images/verify.svg
diff --git a/gui/images/verify.svg b/gui/images/verify.svg
new file mode 100644
index 000000000..41cdf3c04
--- /dev/null
+++ b/gui/images/verify.svg
@@ -0,0 +1,74 @@
+
+
+
+
diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp
index e06d0dee3..024fddb46 100644
--- a/gui/mainwindow.cpp
+++ b/gui/mainwindow.cpp
@@ -840,6 +840,7 @@ Settings MainWindow::getCppcheckSettings()
}
result.clang = mProjectFile->clangParser;
+ result.bugHunting = mProjectFile->bugHunting;
const QStringList undefines = mProjectFile->getUndefines();
foreach (QString undefine, undefines)
diff --git a/gui/projectfile.cpp b/gui/projectfile.cpp
index cbcd6c6e0..f5bce9ebf 100644
--- a/gui/projectfile.cpp
+++ b/gui/projectfile.cpp
@@ -46,6 +46,7 @@ ProjectFile::ProjectFile(const QString &filename, QObject *parent) :
void ProjectFile::clear()
{
clangParser = false;
+ bugHunting = false;
mRootPath.clear();
mBuildDir.clear();
mImportProject.clear();
@@ -115,6 +116,9 @@ bool ProjectFile::read(const QString &filename)
if (xmlReader.name() == CppcheckXml::Parser)
clangParser = true;
+ if (xmlReader.name() == CppcheckXml::BugHunting)
+ bugHunting = true;
+
if (xmlReader.name() == CppcheckXml::CheckHeadersElementName)
mCheckHeaders = readBool(xmlReader);
@@ -719,6 +723,11 @@ bool ProjectFile::write(const QString &filename)
xmlWriter.writeEndElement();
}
+ if (bugHunting) {
+ xmlWriter.writeStartElement(CppcheckXml::BugHunting);
+ xmlWriter.writeEndElement();
+ }
+
xmlWriter.writeStartElement(CppcheckXml::CheckHeadersElementName);
xmlWriter.writeCharacters(mCheckHeaders ? "true" : "false");
xmlWriter.writeEndElement();
diff --git a/gui/projectfile.h b/gui/projectfile.h
index de47b0f98..b0a5c4705 100644
--- a/gui/projectfile.h
+++ b/gui/projectfile.h
@@ -366,6 +366,8 @@ public:
/** Use Clang parser */
bool clangParser;
+ /** Bug hunting */
+ bool bugHunting;
protected:
/**
diff --git a/gui/projectfiledialog.cpp b/gui/projectfiledialog.cpp
index 6e2a26c8a..d8800fce1 100644
--- a/gui/projectfiledialog.cpp
+++ b/gui/projectfiledialog.cpp
@@ -264,6 +264,7 @@ void ProjectFileDialog::loadFromProjectFile(const ProjectFile *projectFile)
mUI.mBtnClangParser->setChecked(true);
else
mUI.mBtnCppcheckParser->setChecked(true);
+ mUI.mBugHunting->setChecked(projectFile->bugHunting);
setExcludedPaths(projectFile->getExcludedPaths());
setLibraries(projectFile->getLibraries());
const QString platform = projectFile->getPlatform();
@@ -366,6 +367,7 @@ void ProjectFileDialog::saveToProjectFile(ProjectFile *projectFile) const
projectFile->setExcludedPaths(getExcludedPaths());
projectFile->setLibraries(getLibraries());
projectFile->clangParser = mUI.mBtnClangParser->isChecked();
+ projectFile->bugHunting = mUI.mBugHunting->isChecked();
if (mUI.mComboBoxPlatform->currentText().endsWith(".xml"))
projectFile->setPlatform(mUI.mComboBoxPlatform->currentText());
else {
diff --git a/gui/projectfiledialog.ui b/gui/projectfiledialog.ui
index 343fd60e7..add2a2bad 100644
--- a/gui/projectfiledialog.ui
+++ b/gui/projectfiledialog.ui
@@ -7,7 +7,7 @@
0
0
888
- 546
+ 600
@@ -388,6 +388,13 @@
Analysis
+ -
+
+
+ Bug hunting
+
+
+
-
diff --git a/lib/importproject.h b/lib/importproject.h
index 2a600028a..948f57cb1 100644
--- a/lib/importproject.h
+++ b/lib/importproject.h
@@ -123,6 +123,7 @@ namespace CppcheckXml {
const char ImportProjectElementName[] = "importproject";
const char AnalyzeAllVsConfigsElementName[] = "analyze-all-vs-configs";
const char Parser[] = "parser";
+ const char BugHunting[] = "bug-hunting";
const char IncludeDirElementName[] = "includedir";
const char DirElementName[] = "dir";
const char DirNameAttrib[] = "name";