Simplify header-only mode usage
It's sufficient to define PUGIXML_HEADER_ONLY anywhere now, source is included automatically. This is a second attempt; this time it includes a workaround for QMake bug that caused it to generate incorrect Makefile.
This commit is contained in:
parent
ff16dbdd4c
commit
f3e42969a5
3 changed files with 23 additions and 1 deletions
|
@ -39,7 +39,6 @@
|
|||
|
||||
// Uncomment this to switch to header-only version
|
||||
// #define PUGIXML_HEADER_ONLY
|
||||
// #include "pugixml.cpp"
|
||||
|
||||
// Uncomment this to enable long long support
|
||||
// #define PUGIXML_HAS_LONG_LONG
|
||||
|
|
|
@ -1329,6 +1329,13 @@ namespace std
|
|||
|
||||
#endif
|
||||
|
||||
// Make sure implementation is included in header-only mode
|
||||
// Use macro expansion in #include to work around QMake (QTBUG-11923)
|
||||
#if defined(PUGIXML_HEADER_ONLY) && !defined(PUGIXML_SOURCE)
|
||||
# define PUGIXML_SOURCE "pugixml.cpp"
|
||||
# include PUGIXML_SOURCE
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Copyright (c) 2006-2014 Arseny Kapoulkine
|
||||
*
|
||||
|
|
16
tests/test_header_only.cpp
Normal file
16
tests/test_header_only.cpp
Normal file
|
@ -0,0 +1,16 @@
|
|||
#define PUGIXML_HEADER_ONLY
|
||||
#define pugi pugih
|
||||
|
||||
#include "common.hpp"
|
||||
|
||||
// Check header guards
|
||||
#include "../src/pugixml.hpp"
|
||||
#include "../src/pugixml.hpp"
|
||||
|
||||
TEST(header_only)
|
||||
{
|
||||
xml_document doc;
|
||||
CHECK(doc.load_string(STR("<node/>")));
|
||||
CHECK_STRING(doc.first_child().name(), STR("node"));
|
||||
CHECK(doc.first_child() == doc.select_node(STR("//*")).node());
|
||||
}
|
Loading…
Add table
Reference in a new issue