Skip to content

Commit 0f00259

Browse files
committed
Validate platform files
1 parent 791f852 commit 0f00259

3 files changed

Lines changed: 68 additions & 2 deletions

File tree

Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,14 @@ ConfigFilesCHECKED := $(patsubst %.cfg,%.checked,$(ConfigFiles))
305305
xmllint --noout --relaxng cfg/cppcheck-cfg.rng $<
306306
validateCFG: ${ConfigFilesCHECKED}
307307

308+
# Validation of platforms files:
309+
PlatformFiles := $(wildcard platforms/*.xml)
310+
PlatformFilesCHECKED := $(patsubst %.xml,%.checked,$(PlatformFiles))
311+
.PHONY: validatePlatforms
312+
%.checked:%.xml
313+
xmllint --noout --relaxng platforms/cppcheck-platforms.rng $<
314+
validatePlatforms: ${PlatformFilesCHECKED}
315+
308316

309317
###### Build
310318

platforms/cppcheck-platforms.rng

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<grammar ns="" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3+
<start>
4+
<element name="platform">
5+
<element name="char_bit">
6+
<data type="integer"/>
7+
</element>
8+
<element name="default-sign">
9+
<data type="NCName"/>
10+
</element>
11+
<element name="sizeof">
12+
<zeroOrMore>
13+
<choice>
14+
<element name="bool">
15+
<data type="integer"/>
16+
</element>
17+
<element name="short">
18+
<data type="integer"/>
19+
</element>
20+
<element name="int">
21+
<data type="integer"/>
22+
</element>
23+
<element name="long">
24+
<data type="integer"/>
25+
</element>
26+
<element name="long-long">
27+
<data type="integer"/>
28+
</element>
29+
<element name="float">
30+
<data type="integer"/>
31+
</element>
32+
<element name="double">
33+
<data type="integer"/>
34+
</element>
35+
<element name="long-double">
36+
<data type="integer"/>
37+
</element>
38+
<element name="pointer">
39+
<data type="integer"/>
40+
</element>
41+
<element name="size_t">
42+
<data type="integer"/>
43+
</element>
44+
<element name="wchar_t">
45+
<data type="integer"/>
46+
</element>
47+
</choice>
48+
</zeroOrMore>
49+
</element>
50+
</element>
51+
</start>
52+
</grammar>

tools/dmake.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ int main(int argc, char **argv)
375375
fout << "\t./testrunner\n\n";
376376
fout << "check:\tall\n";
377377
fout << "\t./testrunner -q\n\n";
378-
fout << "checkcfg:\tcppcheck validateCFG\n";
378+
fout << "checkcfg:\tcppcheck validateCFG validatePlatforms\n";
379379
fout << "\t./test/cfg/runtests.sh\n\n";
380380
fout << "dmake:\ttools/dmake.o cli/filelister.o $(SRCDIR)/pathmatch.o $(SRCDIR)/path.o externals/simplecpp/simplecpp.o\n";
381381
fout << "\t$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)\n\n";
@@ -407,7 +407,13 @@ int main(int argc, char **argv)
407407
fout << "%.checked:%.cfg\n";
408408
fout << "\txmllint --noout --relaxng cfg/cppcheck-cfg.rng $<\n";
409409
fout << "validateCFG: ${ConfigFilesCHECKED}\n\n";
410-
410+
fout << "# Validation of platforms files:\n";
411+
fout << "PlatformFiles := $(wildcard platforms/*.xml)\n";
412+
fout << "PlatformFilesCHECKED := $(patsubst %.xml,%.checked,$(PlatformFiles))\n";
413+
fout << ".PHONY: validatePlatforms\n";
414+
fout << "%.checked:%.xml\n";
415+
fout << "\txmllint --noout --relaxng platforms/cppcheck-platforms.rng $<\n";
416+
fout << "validatePlatforms: ${PlatformFilesCHECKED}\n\n";
411417

412418
fout << "\n###### Build\n\n";
413419

0 commit comments

Comments
 (0)