xrootd/xrootd-use-system-tinyxml-library-if-available.patch
Mattias Ellert f17a7f916c Correct plugin version checking to prevent false negatives
Fix wrong section number in xrootdfs.1 manpage
Use system tinyxml library (unbundle)
2020-11-18 20:33:37 +01:00

180 lines
5.8 KiB
Diff

From d90094c9e9a35559c6a256cb0c6c8be311d26603 Mon Sep 17 00:00:00 2001
From: Mattias Ellert <mattias.ellert@physics.uu.se>
Date: Wed, 18 Nov 2020 15:43:43 +0100
Subject: [PATCH 2/2] Use system tinyxml library if available
Fixes lintion packaging error:
E: libxrdxml3: embedded-library usr/lib/x86_64-linux-gnu/libXrdXml.so.3.0.0: tinyxml
---
cmake/FindTinyXml.cmake | 18 ++++++++++++
cmake/XRootDFindLibs.cmake | 2 ++
src/XrdXml.cmake | 34 +++++++++++++---------
src/XrdXml/XrdXmlRdrTiny.cc | 2 +-
src/XrdXml/{ => tinyxml}/tinystr.cpp | 0
src/XrdXml/{ => tinyxml}/tinystr.h | 0
src/XrdXml/{ => tinyxml}/tinyxml.cpp | 0
src/XrdXml/{ => tinyxml}/tinyxml.h | 0
src/XrdXml/{ => tinyxml}/tinyxmlerror.cpp | 0
src/XrdXml/{ => tinyxml}/tinyxmlparser.cpp | 0
10 files changed, 42 insertions(+), 14 deletions(-)
create mode 100644 cmake/FindTinyXml.cmake
rename src/XrdXml/{ => tinyxml}/tinystr.cpp (100%)
rename src/XrdXml/{ => tinyxml}/tinystr.h (100%)
rename src/XrdXml/{ => tinyxml}/tinyxml.cpp (100%)
rename src/XrdXml/{ => tinyxml}/tinyxml.h (100%)
rename src/XrdXml/{ => tinyxml}/tinyxmlerror.cpp (100%)
rename src/XrdXml/{ => tinyxml}/tinyxmlparser.cpp (100%)
diff --git a/cmake/FindTinyXml.cmake b/cmake/FindTinyXml.cmake
new file mode 100644
index 000000000..75c752707
--- /dev/null
+++ b/cmake/FindTinyXml.cmake
@@ -0,0 +1,18 @@
+FIND_PATH(TINYXML_INCLUDE_DIR tinyxml.h
+ HINTS
+ ${TINYXML_DIR}
+ $ENV{TINYXML_DIR}
+ /usr
+ PATH_SUFFIXES include
+)
+
+FIND_LIBRARY(TINYXML_LIBRARIES tinyxml
+ HINTS
+ ${TINYXML_DIR}
+ $ENV{TINYXML_DIR}
+ /usr
+ PATH_SUFFIXES lib
+)
+
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(TinyXml DEFAULT_MSG TINYXML_LIBRARIES TINYXML_INCLUDE_DIR)
diff --git a/cmake/XRootDFindLibs.cmake b/cmake/XRootDFindLibs.cmake
index 04692e9f8..bcea5fafe 100644
--- a/cmake/XRootDFindLibs.cmake
+++ b/cmake/XRootDFindLibs.cmake
@@ -19,6 +19,8 @@ if( ZLIB_FOUND )
add_definitions( -DHAVE_LIBZ )
endif()
+find_package( TinyXml )
+
find_package( LibXml2 )
if( LIBXML2_FOUND )
add_definitions( -DHAVE_XML2 )
diff --git a/src/XrdXml.cmake b/src/XrdXml.cmake
index ca7e67481..970509266 100644
--- a/src/XrdXml.cmake
+++ b/src/XrdXml.cmake
@@ -1,14 +1,23 @@
include( XRootDCommon )
+if ( TINYXML_FOUND )
+ set( TINYXML_FILES "" )
+ set( TINYXML_LIBRARIES ${TINYXML_LIBRARIES} )
+else()
+ set( TINYXML_FILES
+ XrdXml/tinyxml/tinystr.cpp XrdXml/tinyxml/tinystr.h
+ XrdXml/tinyxml/tinyxml.cpp XrdXml/tinyxml/tinyxml.h
+ XrdXml/tinyxml/tinyxmlerror.cpp
+ XrdXml/tinyxml/tinyxmlparser.cpp )
+ set( TINYXML_LIBRARIES "" )
+endif()
+
if ( LIBXML2_FOUND )
set( XRDXML2_READER_FILES
XrdXml/XrdXmlRdrXml2.cc
XrdXml/XrdXmlRdrXml2.hh )
set( XRDXML2_LIBRARIES ${LIBXML2_LIBRARIES} )
- if( CMAKE_VERSION VERSION_LESS "2.8" OR ${Solaris} STREQUAL "TRUE")
- INCLUDE_DIRECTORIES( ${LIBXML2_INCLUDE_DIR} )
- endif()
else()
set( XRDXML2_READER_FILES "" )
set( XRDXML2_LIBRARIES "" )
@@ -28,10 +37,7 @@ set( XRD_XML_PRELOAD_SOVERSION 2 )
add_library(
XrdXml
SHARED
- XrdXml/tinystr.cpp XrdXml/tinystr.h
- XrdXml/tinyxml.cpp XrdXml/tinyxml.h
- XrdXml/tinyxmlerror.cpp
- XrdXml/tinyxmlparser.cpp
+ ${TINYXML_FILES}
XrdXml/XrdXmlMetaLink.cc XrdXml/XrdXmlMetaLink.hh
XrdXml/XrdXmlRdrTiny.cc XrdXml/XrdXmlRdrTiny.hh
XrdXml/XrdXmlReader.cc XrdXml/XrdXmlReader.hh
@@ -40,24 +46,26 @@ add_library(
target_link_libraries(
XrdXml
XrdUtils
+ ${TINYXML_LIBRARIES}
${XRDXML2_LIBRARIES}
pthread )
-# INCLUDE_DIRECTORIES /usr/include/libxml2
set_target_properties(
XrdXml
PROPERTIES
- INCLUDE_DIRECTORIES ${CMAKE_SOURCE_DIR}/src/XrdXml/.
VERSION ${XRD_XML_VERSION}
SOVERSION ${XRD_XML_SOVERSION}
INTERFACE_LINK_LIBRARIES ""
LINK_INTERFACE_LIBRARIES "" )
+if ( TINYXML_FOUND )
+ target_include_directories( XrdXml PRIVATE ${TINYXML_INCLUDE_DIR} )
+else()
+ target_include_directories( XrdXml PRIVATE XrdXml/tinyxml )
+endif()
+
if ( LIBXML2_FOUND )
- set_target_properties(
- XrdXml
- PROPERTIES
- INCLUDE_DIRECTORIES ${LIBXML2_INCLUDE_DIR} )
+ target_include_directories( XrdXml PRIVATE ${LIBXML2_INCLUDE_DIR} )
endif()
#-------------------------------------------------------------------------------
diff --git a/src/XrdXml/XrdXmlRdrTiny.cc b/src/XrdXml/XrdXmlRdrTiny.cc
index 45196f02a..624654837 100644
--- a/src/XrdXml/XrdXmlRdrTiny.cc
+++ b/src/XrdXml/XrdXmlRdrTiny.cc
@@ -36,7 +36,7 @@
#include <iostream>
#include "XrdSys/XrdSysE2T.hh"
-#include "XrdXml/tinyxml.h"
+#include "tinyxml.h"
#include "XrdXml/XrdXmlRdrTiny.hh"
/******************************************************************************/
diff --git a/src/XrdXml/tinystr.cpp b/src/XrdXml/tinyxml/tinystr.cpp
similarity index 100%
rename from src/XrdXml/tinystr.cpp
rename to src/XrdXml/tinyxml/tinystr.cpp
diff --git a/src/XrdXml/tinystr.h b/src/XrdXml/tinyxml/tinystr.h
similarity index 100%
rename from src/XrdXml/tinystr.h
rename to src/XrdXml/tinyxml/tinystr.h
diff --git a/src/XrdXml/tinyxml.cpp b/src/XrdXml/tinyxml/tinyxml.cpp
similarity index 100%
rename from src/XrdXml/tinyxml.cpp
rename to src/XrdXml/tinyxml/tinyxml.cpp
diff --git a/src/XrdXml/tinyxml.h b/src/XrdXml/tinyxml/tinyxml.h
similarity index 100%
rename from src/XrdXml/tinyxml.h
rename to src/XrdXml/tinyxml/tinyxml.h
diff --git a/src/XrdXml/tinyxmlerror.cpp b/src/XrdXml/tinyxml/tinyxmlerror.cpp
similarity index 100%
rename from src/XrdXml/tinyxmlerror.cpp
rename to src/XrdXml/tinyxml/tinyxmlerror.cpp
diff --git a/src/XrdXml/tinyxmlparser.cpp b/src/XrdXml/tinyxml/tinyxmlparser.cpp
similarity index 100%
rename from src/XrdXml/tinyxmlparser.cpp
rename to src/XrdXml/tinyxml/tinyxmlparser.cpp
--
2.28.0