Skip to content

Commit e92bbf6

Browse files
Aleksandr Pikalevdanmar
authored andcommitted
Fixed cppcheck-opensource#7275 - Make GUI tests buildable
* Use -std=c++11 flag for gcc and clang * Use $$PWD variable in qmake files to have correct paths * Change tokenizer.simplifyTokenList() to tokenizer.simplifyTokenList2() * Add build-generated files to .gitignore * Link libpcre only if rules are enabled
1 parent bd2892f commit e92bbf6

9 files changed

Lines changed: 139 additions & 134 deletions

File tree

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,16 @@ gui/Makefile
5555
gui/Makefile.debug
5656
gui/Makefile.release
5757
gui/qrc_gui.cpp
58+
gui/test/Makefile
59+
gui/test/*/Makefile
60+
gui/test/*/*/Makefile
61+
gui/test/benchmark/simple/benchmark-simple
62+
gui/test/filelist/test-filelist
63+
gui/test/projectfile/test-projectfile
64+
gui/test/translationhandler/test-translationhandler
65+
gui/test/xmlreport/test-xmlreport
66+
gui/test/xmlreportv1/test-xmlreportv1
67+
gui/test/xmlreportv2/test-xmlreportv2
5868

5969
# Doxygen output folder
6070
doxyoutput/

externals/tinyxml/tinyxml.pri

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
HEADERS += $${BASEPATH}tinyxml2.h
2-
SOURCES += $${BASEPATH}tinyxml2.cpp
1+
HEADERS += $${PWD}/tinyxml2.h
2+
SOURCES += $${PWD}/tinyxml2.cpp

gui/gui.pro

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,6 @@ contains(QMAKE_CC, gcc) {
162162
QMAKE_CXXFLAGS += -std=c++0x -Wno-missing-field-initializers -Wno-missing-braces -Wno-sign-compare
163163
}
164164

165-
macx {
166-
contains(QMAKE_CXX, clang++) {
167-
QMAKE_CXXFLAGS += -std=c++11
168-
}
165+
contains(QMAKE_CXX, clang++) {
166+
QMAKE_CXXFLAGS += -std=c++11
169167
}

gui/test/benchmark/common.pri

Lines changed: 0 additions & 9 deletions
This file was deleted.

gui/test/benchmark/simple/benchmarksimple.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void BenchmarkSimple::simplify()
5757
std::istringstream istr(data.constData());
5858
tokenizer.tokenize(istr, "test.cpp");
5959
QBENCHMARK {
60-
tokenizer.simplifyTokenList();
60+
tokenizer.simplifyTokenList2();
6161
}
6262
}
6363

@@ -74,7 +74,7 @@ void BenchmarkSimple::tokenizeAndSimplify()
7474
std::istringstream istr(data.constData());
7575
QBENCHMARK {
7676
tokenizer.tokenize(istr, "test.cpp");
77-
tokenizer.simplifyTokenList();
77+
tokenizer.simplifyTokenList2();
7878
}
7979
}
8080

gui/test/benchmark/simple/simple.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ INCLUDEPATH += .
55
OBJECTS_DIR = ../../build
66
MOC_DIR = ../../build
77

8-
include(../common.pri)
8+
include(../../common.pri)
99

1010
DEFINES += SRCDIR=\\\"$$PWD\\\"
1111

gui/test/common.pri

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,38 @@
11
CONFIG += qtestlib
2-
#DEPENDPATH += . ..
3-
INCLUDEPATH += . ../.. ../../../lib
2+
greaterThan(QT_MAJOR_VERSION, 4) {
3+
QT += widgets # In Qt 5 widgets are in separate module
4+
QT += printsupport # In Qt 5 QPrinter/QPrintDialog are in separate module
5+
}
6+
INCLUDEPATH += $${PWD}/..
47

5-
LIBS += -L../../../externals -lpcre
6-
INCLUDEPATH += ../../externals
8+
LIBS += -L$$PWD/../../externals
9+
INCLUDEPATH += $${PWD}/../../externals
710

8-
BASEPATH = ../../../lib/
9-
include($$PWD/../../lib/lib.pri)
11+
include($${PWD}/../../lib/lib.pri)
1012

1113
# GUI
12-
SOURCES += ../../erroritem.cpp \
13-
../../filelist.cpp \
14-
../../projectfile.cpp \
15-
../../report.cpp \
16-
../../translationhandler.cpp \
17-
../../xmlreport.cpp \
18-
../../xmlreportv1.cpp \
19-
../../xmlreportv2.cpp
14+
SOURCES += $${PWD}/../erroritem.cpp \
15+
$${PWD}/../filelist.cpp \
16+
$${PWD}/../projectfile.cpp \
17+
$${PWD}/../report.cpp \
18+
$${PWD}/../translationhandler.cpp \
19+
$${PWD}/../xmlreport.cpp \
20+
$${PWD}/../xmlreportv1.cpp \
21+
$${PWD}/../xmlreportv2.cpp
2022

21-
HEADERS += ../../erroritem.h \
22-
../../filelist.h \
23-
../../projectfile.h \
24-
../../report.h \
25-
../../translationhandler.h \
26-
../../xmlreport.h \
27-
../../xmlreportv1.h \
28-
../../xmlreportv2.h
23+
HEADERS += $${PWD}/../erroritem.h \
24+
$${PWD}/../filelist.h \
25+
$${PWD}/../projectfile.h \
26+
$${PWD}/../report.h \
27+
$${PWD}/../translationhandler.h \
28+
$${PWD}/../xmlreport.h \
29+
$${PWD}/../xmlreportv1.h \
30+
$${PWD}/../xmlreportv2.h
31+
32+
contains(QMAKE_CC, gcc) {
33+
QMAKE_CXXFLAGS += -std=c++11
34+
}
35+
36+
contains(QMAKE_CXX, clang++) {
37+
QMAKE_CXXFLAGS += -std=c++11
38+
}

lib/lib.pri

Lines changed: 86 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,92 @@
11
# no manual edits - this file is autogenerated by dmake
22

33
include($$PWD/pcrerules.pri)
4-
BASEPATH = ../externals/tinyxml/
54
include($$PWD/../externals/tinyxml/tinyxml.pri)
6-
BASEPATH = ../lib/
7-
INCLUDEPATH += ../externals/tinyxml
8-
HEADERS += $${BASEPATH}check.h \
9-
$${BASEPATH}astutils.h \
10-
$${BASEPATH}check.h \
11-
$${BASEPATH}check64bit.h \
12-
$${BASEPATH}checkassert.h \
13-
$${BASEPATH}checkautovariables.h \
14-
$${BASEPATH}checkbool.h \
15-
$${BASEPATH}checkboost.h \
16-
$${BASEPATH}checkbufferoverrun.h \
17-
$${BASEPATH}checkclass.h \
18-
$${BASEPATH}checkcondition.h \
19-
$${BASEPATH}checkexceptionsafety.h \
20-
$${BASEPATH}checkfunctions.h \
21-
$${BASEPATH}checkinternal.h \
22-
$${BASEPATH}checkio.h \
23-
$${BASEPATH}checkleakautovar.h \
24-
$${BASEPATH}checkmemoryleak.h \
25-
$${BASEPATH}checknullpointer.h \
26-
$${BASEPATH}checkother.h \
27-
$${BASEPATH}checkpostfixoperator.h \
28-
$${BASEPATH}checksizeof.h \
29-
$${BASEPATH}checkstl.h \
30-
$${BASEPATH}checkstring.h \
31-
$${BASEPATH}checktype.h \
32-
$${BASEPATH}checkuninitvar.h \
33-
$${BASEPATH}checkunusedfunctions.h \
34-
$${BASEPATH}checkunusedvar.h \
35-
$${BASEPATH}checkvaarg.h \
36-
$${BASEPATH}cppcheck.h \
37-
$${BASEPATH}errorlogger.h \
38-
$${BASEPATH}library.h \
39-
$${BASEPATH}mathlib.h \
40-
$${BASEPATH}path.h \
41-
$${BASEPATH}preprocessor.h \
42-
$${BASEPATH}settings.h \
43-
$${BASEPATH}suppressions.h \
44-
$${BASEPATH}symboldatabase.h \
45-
$${BASEPATH}templatesimplifier.h \
46-
$${BASEPATH}timer.h \
47-
$${BASEPATH}token.h \
48-
$${BASEPATH}tokenize.h \
49-
$${BASEPATH}tokenlist.h \
50-
$${BASEPATH}valueflow.h \
5+
INCLUDEPATH += $$PWD $$PWD/../externals/tinyxml
6+
HEADERS += $${PWD}/check.h \
7+
$${PWD}/astutils.h \
8+
$${PWD}/check.h \
9+
$${PWD}/check64bit.h \
10+
$${PWD}/checkassert.h \
11+
$${PWD}/checkautovariables.h \
12+
$${PWD}/checkbool.h \
13+
$${PWD}/checkboost.h \
14+
$${PWD}/checkbufferoverrun.h \
15+
$${PWD}/checkclass.h \
16+
$${PWD}/checkcondition.h \
17+
$${PWD}/checkexceptionsafety.h \
18+
$${PWD}/checkfunctions.h \
19+
$${PWD}/checkinternal.h \
20+
$${PWD}/checkio.h \
21+
$${PWD}/checkleakautovar.h \
22+
$${PWD}/checkmemoryleak.h \
23+
$${PWD}/checknullpointer.h \
24+
$${PWD}/checkother.h \
25+
$${PWD}/checkpostfixoperator.h \
26+
$${PWD}/checksizeof.h \
27+
$${PWD}/checkstl.h \
28+
$${PWD}/checkstring.h \
29+
$${PWD}/checktype.h \
30+
$${PWD}/checkuninitvar.h \
31+
$${PWD}/checkunusedfunctions.h \
32+
$${PWD}/checkunusedvar.h \
33+
$${PWD}/checkvaarg.h \
34+
$${PWD}/cppcheck.h \
35+
$${PWD}/errorlogger.h \
36+
$${PWD}/library.h \
37+
$${PWD}/mathlib.h \
38+
$${PWD}/path.h \
39+
$${PWD}/preprocessor.h \
40+
$${PWD}/settings.h \
41+
$${PWD}/suppressions.h \
42+
$${PWD}/symboldatabase.h \
43+
$${PWD}/templatesimplifier.h \
44+
$${PWD}/timer.h \
45+
$${PWD}/token.h \
46+
$${PWD}/tokenize.h \
47+
$${PWD}/tokenlist.h \
48+
$${PWD}/valueflow.h \
5149

5250

53-
SOURCES += $${BASEPATH}astutils.cpp \
54-
$${BASEPATH}check.cpp \
55-
$${BASEPATH}check64bit.cpp \
56-
$${BASEPATH}checkassert.cpp \
57-
$${BASEPATH}checkautovariables.cpp \
58-
$${BASEPATH}checkbool.cpp \
59-
$${BASEPATH}checkboost.cpp \
60-
$${BASEPATH}checkbufferoverrun.cpp \
61-
$${BASEPATH}checkclass.cpp \
62-
$${BASEPATH}checkcondition.cpp \
63-
$${BASEPATH}checkexceptionsafety.cpp \
64-
$${BASEPATH}checkfunctions.cpp \
65-
$${BASEPATH}checkinternal.cpp \
66-
$${BASEPATH}checkio.cpp \
67-
$${BASEPATH}checkleakautovar.cpp \
68-
$${BASEPATH}checkmemoryleak.cpp \
69-
$${BASEPATH}checknullpointer.cpp \
70-
$${BASEPATH}checkother.cpp \
71-
$${BASEPATH}checkpostfixoperator.cpp \
72-
$${BASEPATH}checksizeof.cpp \
73-
$${BASEPATH}checkstl.cpp \
74-
$${BASEPATH}checkstring.cpp \
75-
$${BASEPATH}checktype.cpp \
76-
$${BASEPATH}checkuninitvar.cpp \
77-
$${BASEPATH}checkunusedfunctions.cpp \
78-
$${BASEPATH}checkunusedvar.cpp \
79-
$${BASEPATH}checkvaarg.cpp \
80-
$${BASEPATH}cppcheck.cpp \
81-
$${BASEPATH}errorlogger.cpp \
82-
$${BASEPATH}library.cpp \
83-
$${BASEPATH}mathlib.cpp \
84-
$${BASEPATH}path.cpp \
85-
$${BASEPATH}preprocessor.cpp \
86-
$${BASEPATH}settings.cpp \
87-
$${BASEPATH}suppressions.cpp \
88-
$${BASEPATH}symboldatabase.cpp \
89-
$${BASEPATH}templatesimplifier.cpp \
90-
$${BASEPATH}timer.cpp \
91-
$${BASEPATH}token.cpp \
92-
$${BASEPATH}tokenize.cpp \
93-
$${BASEPATH}tokenlist.cpp \
94-
$${BASEPATH}valueflow.cpp
51+
SOURCES += $${PWD}/astutils.cpp \
52+
$${PWD}/check.cpp \
53+
$${PWD}/check64bit.cpp \
54+
$${PWD}/checkassert.cpp \
55+
$${PWD}/checkautovariables.cpp \
56+
$${PWD}/checkbool.cpp \
57+
$${PWD}/checkboost.cpp \
58+
$${PWD}/checkbufferoverrun.cpp \
59+
$${PWD}/checkclass.cpp \
60+
$${PWD}/checkcondition.cpp \
61+
$${PWD}/checkexceptionsafety.cpp \
62+
$${PWD}/checkfunctions.cpp \
63+
$${PWD}/checkinternal.cpp \
64+
$${PWD}/checkio.cpp \
65+
$${PWD}/checkleakautovar.cpp \
66+
$${PWD}/checkmemoryleak.cpp \
67+
$${PWD}/checknullpointer.cpp \
68+
$${PWD}/checkother.cpp \
69+
$${PWD}/checkpostfixoperator.cpp \
70+
$${PWD}/checksizeof.cpp \
71+
$${PWD}/checkstl.cpp \
72+
$${PWD}/checkstring.cpp \
73+
$${PWD}/checktype.cpp \
74+
$${PWD}/checkuninitvar.cpp \
75+
$${PWD}/checkunusedfunctions.cpp \
76+
$${PWD}/checkunusedvar.cpp \
77+
$${PWD}/checkvaarg.cpp \
78+
$${PWD}/cppcheck.cpp \
79+
$${PWD}/errorlogger.cpp \
80+
$${PWD}/library.cpp \
81+
$${PWD}/mathlib.cpp \
82+
$${PWD}/path.cpp \
83+
$${PWD}/preprocessor.cpp \
84+
$${PWD}/settings.cpp \
85+
$${PWD}/suppressions.cpp \
86+
$${PWD}/symboldatabase.cpp \
87+
$${PWD}/templatesimplifier.cpp \
88+
$${PWD}/timer.cpp \
89+
$${PWD}/token.cpp \
90+
$${PWD}/tokenize.cpp \
91+
$${PWD}/tokenlist.cpp \
92+
$${PWD}/valueflow.cpp

tools/dmake.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -183,23 +183,21 @@ int main(int argc, char **argv)
183183
if (fout1.is_open()) {
184184
fout1 << "# no manual edits - this file is autogenerated by dmake\n\n";
185185
fout1 << "include($$PWD/pcrerules.pri)\n";
186-
fout1 << "BASEPATH = ../externals/tinyxml/\n";
187186
fout1 << "include($$PWD/../externals/tinyxml/tinyxml.pri)\n";
188-
fout1 << "BASEPATH = ../lib/\n";
189-
fout1 << "INCLUDEPATH += ../externals/tinyxml\n";
190-
fout1 << "HEADERS += $${BASEPATH}check.h \\\n";
187+
fout1 << "INCLUDEPATH += $$PWD $$PWD/../externals/tinyxml\n";
188+
fout1 << "HEADERS += $${PWD}/check.h \\\n";
191189
for (unsigned int i = 0; i < libfiles.size(); ++i) {
192190
std::string fname(libfiles[i].substr(4));
193191
if (fname.find(".cpp") == std::string::npos)
194192
continue; // shouldn't happen
195193
fname.erase(fname.find(".cpp"));
196-
fout1 << std::string(11, ' ') << "$${BASEPATH}" << fname << ".h";
194+
fout1 << std::string(11, ' ') << "$${PWD}/" << fname << ".h";
197195
if (i + 1 < testfiles.size())
198196
fout1 << " \\\n";
199197
}
200198
fout1 << "\n\nSOURCES += ";
201199
for (unsigned int i = 0; i < libfiles.size(); ++i) {
202-
fout1 << "$${BASEPATH}" << libfiles[i].substr(4);
200+
fout1 << "$${PWD}/" << libfiles[i].substr(4);
203201
if (i < libfiles.size() - 1)
204202
fout1 << " \\\n" << std::string(11, ' ');
205203
}

0 commit comments

Comments
 (0)