diff --git a/thirdparty/NLohmannJson/CMakeLists.txt b/thirdparty/NLohmannJson/CMakeLists.txt
index afe7c4a73576ae298808320f9a7c31108f5f69af..7a340d53da828daaf02622a85b1371fe4994012d 100644
--- a/thirdparty/NLohmannJson/CMakeLists.txt
+++ b/thirdparty/NLohmannJson/CMakeLists.txt
@@ -1,4 +1 @@
-add_library(NLohmann::Json INTERFACE IMPORTED GLOBAL)
-set_target_properties(NLohmann::Json PROPERTIES
-  INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/json/src
-)
+add_subdirectory(json)
diff --git a/thirdparty/NLohmannJson/json/CMakeLists.txt b/thirdparty/NLohmannJson/json/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9e34ce3a003f818936381f990c2020114f7f4ffc
--- /dev/null
+++ b/thirdparty/NLohmannJson/json/CMakeLists.txt
@@ -0,0 +1,5 @@
+add_library(NLohmannJson INTERFACE)
+target_include_directories(NLohmannJson INTERFACE
+  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
+)
+install(TARGETS NLohmannJson EXPORT adios2Exports)
diff --git a/thirdparty/pugixml/CMakeLists.txt b/thirdparty/pugixml/CMakeLists.txt
index 07a05515c27e26dd2e9187e75def9dcb50b51163..7cc8a3d5957e2d0bd50f4d430a24069d23b5c6d6 100644
--- a/thirdparty/pugixml/CMakeLists.txt
+++ b/thirdparty/pugixml/CMakeLists.txt
@@ -1,12 +1 @@
-# This is an extremely simple and tiny library.  Rather than build it
-# seperately we'll just create an interface library containing the sources and
-# headers
-add_library(pugixml INTERFACE)
-target_sources(pugixml INTERFACE
-  ${CMAKE_CURRENT_SOURCE_DIR}/pugixml/src/pugiconfig.hpp
-  ${CMAKE_CURRENT_SOURCE_DIR}/pugixml/src/pugixml.hpp
-  ${CMAKE_CURRENT_SOURCE_DIR}/pugixml/src/pugixml.cpp
-)
-target_include_directories(pugixml INTERFACE
-  ${CMAKE_CURRENT_SOURCE_DIR}/pugixml/src
-)
+add_subdirectory(pugixml)
diff --git a/thirdparty/pugixml/pugixml/CMakeLists.txt b/thirdparty/pugixml/pugixml/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0ff662a9eb74587dd06152ce711631e471107d32
--- /dev/null
+++ b/thirdparty/pugixml/pugixml/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_library(pugixml INTERFACE)
+target_sources(pugixml INTERFACE
+  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/pugiconfig.hpp>
+  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/pugixml.hpp>
+  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/pugixml.cpp>
+)
+target_include_directories(pugixml INTERFACE
+  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
+)
+install(TARGETS pugixml EXPORT adios2Exports)