252 lines
9.1 KiB
Diff
252 lines
9.1 KiB
Diff
Index: /trunk/libffado/src/SConscript
|
|
===================================================================
|
|
--- /trunk/libffado/src/SConscript (revision 2590)
|
|
+++ /trunk/libffado/src/SConscript (revision 2650)
|
|
@@ -289,4 +289,7 @@
|
|
libenv.MergeFlags( env['LIBCONFIG_FLAGS'] )
|
|
if not env['SERIALIZE_USE_EXPAT']:
|
|
+ if 'LIBXML30_FLAGS' in env :
|
|
+ libenv.MergeFlags( env['LIBXML30_FLAGS'] )
|
|
+ if not('LIBXML30_FLAGS' in env) :
|
|
libenv.MergeFlags( env['LIBXML26_FLAGS'] )
|
|
else:
|
|
Index: /trunk/libffado/src/libutil/serialize_libxml.cpp
|
|
===================================================================
|
|
--- /trunk/libffado/src/libutil/serialize_libxml.cpp (revision 1763)
|
|
+++ /trunk/libffado/src/libutil/serialize_libxml.cpp (revision 2650)
|
|
@@ -76,9 +76,17 @@
|
|
Util::XMLSerialize::writeVersion()
|
|
{
|
|
+#if LIBXMLXX_MAJOR_VERSION == 3
|
|
+ xmlpp::Element* pElem = m_doc.get_root_node()->add_child_element( "CacheVersion" );
|
|
+#else
|
|
xmlpp::Node* pNode = m_doc.get_root_node();
|
|
xmlpp::Element* pElem = pNode->add_child( "CacheVersion" );
|
|
+#endif
|
|
char* valstr;
|
|
asprintf( &valstr, "%s", CACHE_VERSION );
|
|
+#if LIBXMLXX_MAJOR_VERSION == 3
|
|
+ pElem->set_first_child_text( valstr );
|
|
+#else
|
|
pElem->set_child_text( valstr );
|
|
+#endif
|
|
free( valstr );
|
|
}
|
|
@@ -100,12 +108,20 @@
|
|
}
|
|
|
|
- xmlpp::Node* pNode = m_doc.get_root_node();
|
|
+ xmlpp::Element* pNode = m_doc.get_root_node();
|
|
pNode = getNodePath( pNode, tokens );
|
|
|
|
// element to be added
|
|
+#if LIBXMLXX_MAJOR_VERSION == 3
|
|
+ xmlpp::Element* pElem = pNode->add_child_element( tokens[tokens.size() - 1] );
|
|
+#else
|
|
xmlpp::Element* pElem = pNode->add_child( tokens[tokens.size() - 1] );
|
|
+#endif
|
|
char* valstr;
|
|
asprintf( &valstr, "%lld", value );
|
|
+#if LIBXMLXX_MAJOR_VERSION == 3
|
|
+ pElem->set_first_child_text( valstr );
|
|
+#else
|
|
pElem->set_child_text( valstr );
|
|
+#endif
|
|
free( valstr );
|
|
|
|
@@ -128,16 +144,21 @@
|
|
}
|
|
|
|
- xmlpp::Node* pNode = m_doc.get_root_node();
|
|
+ xmlpp::Element* pNode = m_doc.get_root_node();
|
|
pNode = getNodePath( pNode, tokens );
|
|
|
|
// element to be added
|
|
+#if LIBXMLXX_MAJOR_VERSION == 3
|
|
+ xmlpp::Element* pElem = pNode->add_child_element( tokens[tokens.size() - 1] );
|
|
+ pElem->set_first_child_text( str );
|
|
+#else
|
|
xmlpp::Element* pElem = pNode->add_child( tokens[tokens.size() - 1] );
|
|
pElem->set_child_text( str );
|
|
+#endif
|
|
|
|
return true;
|
|
}
|
|
|
|
-xmlpp::Node*
|
|
-Util::XMLSerialize::getNodePath( xmlpp::Node* pRootNode,
|
|
+xmlpp::Element*
|
|
+Util::XMLSerialize::getNodePath( xmlpp::Element* pRootNode,
|
|
std::vector<string>& tokens )
|
|
{
|
|
@@ -150,5 +171,5 @@
|
|
|
|
unsigned int iTokenIdx = 0;
|
|
- xmlpp::Node* pCurNode = pRootNode;
|
|
+ xmlpp::Element* pCurNode = pRootNode;
|
|
for (bool bFound = false;
|
|
( iTokenIdx < tokens.size() - 1 );
|
|
@@ -161,5 +182,5 @@
|
|
{
|
|
if ( ( *it )->get_name() == tokens[iTokenIdx] ) {
|
|
- pCurNode = *it;
|
|
+ pCurNode = (xmlpp::Element*) *it;
|
|
bFound = true;
|
|
break;
|
|
@@ -172,5 +193,9 @@
|
|
|
|
for ( unsigned int i = iTokenIdx; i < tokens.size() - 1; i++, iTokenIdx++ ) {
|
|
+#if LIBXMLXX_MAJOR_VERSION == 3
|
|
+ pCurNode = pCurNode->add_child_element( tokens[iTokenIdx] );
|
|
+#else
|
|
pCurNode = pCurNode->add_child( tokens[iTokenIdx] );
|
|
+#endif
|
|
}
|
|
return pCurNode;
|
|
@@ -255,8 +280,15 @@
|
|
debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "pNode = %s\n", pNode->get_name().c_str() );
|
|
|
|
+#if LIBXMLXX_MAJOR_VERSION == 3
|
|
+ xmlpp::Node::NodeSet nodeSet = pNode->find( strMemberName );
|
|
+ for ( xmlpp::Node::NodeSet::iterator it = nodeSet.begin();
|
|
+ it != nodeSet.end();
|
|
+ ++it )
|
|
+#else
|
|
xmlpp::NodeSet nodeSet = pNode->find( strMemberName );
|
|
for ( xmlpp::NodeSet::iterator it = nodeSet.begin();
|
|
it != nodeSet.end();
|
|
++it )
|
|
+#endif
|
|
{
|
|
const xmlpp::Element* pElement =
|
|
@@ -264,6 +296,11 @@
|
|
if ( pElement && pElement->has_child_text() ) {
|
|
char* tail;
|
|
+#if LIBXMLXX_MAJOR_VERSION == 3
|
|
+ value = strtoll( pElement->get_first_child_text()->get_content().c_str(),
|
|
+ &tail, 0 );
|
|
+#else
|
|
value = strtoll( pElement->get_child_text()->get_content().c_str(),
|
|
&tail, 0 );
|
|
+#endif
|
|
debugOutput( DEBUG_LEVEL_VERY_VERBOSE, "found %s = %lld\n",
|
|
strMemberName.c_str(), value );
|
|
@@ -291,13 +328,24 @@
|
|
xmlpp::Node* pNode = pDoc->get_root_node();
|
|
|
|
+#if LIBXMLXX_MAJOR_VERSION == 3
|
|
+ xmlpp::Node::NodeSet nodeSet = pNode->find( strMemberName );
|
|
+ for ( xmlpp::Node::NodeSet::iterator it = nodeSet.begin();
|
|
+ it != nodeSet.end();
|
|
+ ++it )
|
|
+#else
|
|
xmlpp::NodeSet nodeSet = pNode->find( strMemberName );
|
|
for ( xmlpp::NodeSet::iterator it = nodeSet.begin();
|
|
it != nodeSet.end();
|
|
++it )
|
|
+#endif
|
|
{
|
|
const xmlpp::Element* pElement = dynamic_cast< const xmlpp::Element* >( *it );
|
|
if ( pElement ) {
|
|
if ( pElement->has_child_text() ) {
|
|
+#if LIBXMLXX_MAJOR_VERSION == 3
|
|
+ str = pElement->get_first_child_text()->get_content();
|
|
+#else
|
|
str = pElement->get_child_text()->get_content();
|
|
+#endif
|
|
} else {
|
|
str = "";
|
|
@@ -323,5 +371,9 @@
|
|
}
|
|
xmlpp::Node* pNode = pDoc->get_root_node();
|
|
+#if LIBXMLXX_MAJOR_VERSION == 3
|
|
+ xmlpp::Node::NodeSet nodeSet = pNode->find( strMemberName );
|
|
+#else
|
|
xmlpp::NodeSet nodeSet = pNode->find( strMemberName );
|
|
+#endif
|
|
return nodeSet.size() > 0;
|
|
}
|
|
Index: /trunk/libffado/src/libutil/serialize_libxml.h
|
|
===================================================================
|
|
--- /trunk/libffado/src/libutil/serialize_libxml.h (revision 1154)
|
|
+++ /trunk/libffado/src/libutil/serialize_libxml.h (revision 2650)
|
|
@@ -81,5 +81,5 @@
|
|
DECLARE_DEBUG_MODULE;
|
|
|
|
- xmlpp::Node* getNodePath( xmlpp::Node* pRootNode,
|
|
+ xmlpp::Element* getNodePath( xmlpp::Element* pRootNode,
|
|
std::vector<std::string>& tokens );
|
|
};
|
|
Index: /trunk/libffado/tests/SConscript
|
|
===================================================================
|
|
--- /trunk/libffado/tests/SConscript (revision 2141)
|
|
+++ /trunk/libffado/tests/SConscript (revision 2650)
|
|
@@ -33,4 +33,7 @@
|
|
env.MergeFlags( env['LIBRAW1394_FLAGS'] )
|
|
if not env['SERIALIZE_USE_EXPAT']:
|
|
+ if 'LIBXML30_FLAGS' in env :
|
|
+ env.MergeFlags( env['LIBXML30_FLAGS'] )
|
|
+ if not('LIBXML30_FLAGS' in env) :
|
|
env.MergeFlags( env['LIBXML26_FLAGS'] )
|
|
else:
|
|
Index: /trunk/libffado/SConstruct
|
|
===================================================================
|
|
--- /trunk/libffado/SConstruct (revision 2628)
|
|
+++ /trunk/libffado/SConstruct (revision 2650)
|
|
@@ -277,5 +277,8 @@
|
|
|
|
if not env['SERIALIZE_USE_EXPAT']:
|
|
- pkgs['libxml++-2.6'] = '2.13.0'
|
|
+ if conf.CheckPKG('libxml++-3.0'):
|
|
+ pkgs['libxml++-3.0'] = '3.0.0'
|
|
+ if not('libxml++-3.0' in pkgs):
|
|
+ pkgs['libxml++-2.6'] = '2.13.0'
|
|
|
|
# Provide a way for users to compile newer libffado which will work
|
|
@@ -359,4 +362,6 @@
|
|
if conf.CheckPKG('libxml++-2.6 >= 2.39.1'):
|
|
env.Append(CXXFLAGS = '-std=gnu++11')
|
|
+ if conf.CheckPKG('libxml++-3.0 >= 3.0.0'):
|
|
+ env.Append(CXXFLAGS = '-std=gnu++11')
|
|
|
|
# Check for C99 lrint() and lrintf() functions used to convert from
|
|
Index: /trunk/libffado/support/tools/SConscript
|
|
===================================================================
|
|
--- /trunk/libffado/support/tools/SConscript (revision 2321)
|
|
+++ /trunk/libffado/support/tools/SConscript (revision 2650)
|
|
@@ -34,4 +34,7 @@
|
|
if not e.GetOption( "clean" ):
|
|
if not env['SERIALIZE_USE_EXPAT']:
|
|
+ if 'LIBXML30_FLAGS' in env :
|
|
+ e.MergeFlags( env['LIBXML30_FLAGS'] )
|
|
+ if not('LIBXML30_FLAGS' in env) :
|
|
e.MergeFlags( env['LIBXML26_FLAGS'] )
|
|
else:
|
|
Index: /trunk/libffado/support/firmware/SConscript
|
|
===================================================================
|
|
--- /trunk/libffado/support/firmware/SConscript (revision 2089)
|
|
+++ /trunk/libffado/support/firmware/SConscript (revision 2650)
|
|
@@ -34,5 +34,8 @@
|
|
env.MergeFlags( env['LIBIEC61883_FLAGS'] )
|
|
if not env['SERIALIZE_USE_EXPAT']:
|
|
- env.MergeFlags( env['LIBXML26_FLAGS'] )
|
|
+ if 'LIBXML30_FLAGS' in env :
|
|
+ env.MergeFlags( env['LIBXML30_FLAGS'] )
|
|
+ if not('LIBXML30_FLAGS' in env) :
|
|
+ env.MergeFlags( env['LIBXML26_FLAGS'] )
|
|
else:
|
|
env.PrependUnique( LIBS=["expat"] )
|
|
Index: /trunk/libffado/support/dbus/SConscript
|
|
===================================================================
|
|
--- /trunk/libffado/support/dbus/SConscript (revision 2165)
|
|
+++ /trunk/libffado/support/dbus/SConscript (revision 2650)
|
|
@@ -42,5 +42,8 @@
|
|
env.MergeFlags( env['LIBRAW1394_FLAGS'] )
|
|
if not env['SERIALIZE_USE_EXPAT']:
|
|
- env.MergeFlags( env['LIBXML26_FLAGS'] )
|
|
+ if 'LIBXML30_FLAGS' in env :
|
|
+ env.MergeFlags( env['LIBXML30_FLAGS'] )
|
|
+ if not('LIBXML30_FLAGS' in env) :
|
|
+ env.MergeFlags( env['LIBXML26_FLAGS'] )
|
|
else:
|
|
env.PrependUnique( LIBS=["expat"] )
|