diff --git a/cmake/DD4hep_XML_setup.cmake b/cmake/DD4hep_XML_setup.cmake
index 633855ca890ff26c90979422b15e0425b0d8b2d3..eed371ed510a05f7929719c25af2c7bfe6844df0 100644
--- a/cmake/DD4hep_XML_setup.cmake
+++ b/cmake/DD4hep_XML_setup.cmake
@@ -8,8 +8,10 @@ if(DD4HEP_USE_XERCESC)
   set(XML_LIBRARIES XercesC::XercesC)
 else()
   set(DD4HEP_USE_XERCESC OFF)
-  ADD_LIBRARY(TinyXML INTERFACE)
-  TARGET_COMPILE_DEFINITIONS(TinyXML INTERFACE DD4HEP_USE_TINYXML)
+  IF(NOT TARGET TinyXML)
+    ADD_LIBRARY(TinyXML INTERFACE)
+    TARGET_COMPILE_DEFINITIONS(TinyXML INTERFACE DD4HEP_USE_TINYXML)
+    INSTALL(TARGETS TinyXML EXPORT DD4hep DESTINATION lib)
+  ENDIF()
   set(XML_LIBRARIES TinyXML)
-  INSTALL(TARGETS TinyXML EXPORT DD4hep DESTINATION lib)
 endif()