From 7b78efe4e53df331b2fe0d52bdf7c5f079a36995 Mon Sep 17 00:00:00 2001
From: Chuck Atkins <chuck.atkins@kitware.com>
Date: Thu, 20 Apr 2017 13:01:16 -0400
Subject: [PATCH] Integrate new dataman classes with CMake dependencies

---
 CMakeLists.txt                |  2 +
 source/dataman/CMakeLists.txt | 76 +++++++++++++----------------------
 2 files changed, 31 insertions(+), 47 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3d8b020a9..26b8c5a3f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -140,5 +140,7 @@ message("    BZip2:   ${ADIOS_USE_BZip2}")
 message("    ZFP:     ${ADIOS_USE_ZFP}")
 message("    ADIOS1:  ${ADIOS_USE_ADIOS1}")
 message("    DataMan: ${ADIOS_USE_DataMan}")
+message("      ZeroMQ:  ${ADIOS_USE_DataMan_ZeroMQ}")
+message("      ZFP:     ${ADIOS_USE_DataMan_ZFP}")
 message("    HDF5:    ${ADIOS_USE_HDF5}")
 message("")
diff --git a/source/dataman/CMakeLists.txt b/source/dataman/CMakeLists.txt
index 3905eeae5..c7ecdbaee 100644
--- a/source/dataman/CMakeLists.txt
+++ b/source/dataman/CMakeLists.txt
@@ -3,6 +3,8 @@
 # accompanying file Copyright.txt for details.
 #------------------------------------------------------------------------------#
 
+set(dataman_targets)
+
 add_library(dataman DataMan.cpp DataManBase.cpp)
 target_include_directories(dataman PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
 target_link_libraries(dataman PRIVATE adios2sys)
@@ -12,69 +14,49 @@ list(APPEND dataman_targets dataman)
 # MODULE libraries are designed to be plugins, i.e. shared libs that nobody
 # else links to.
 
-add_library(cacheman SHARED CacheMan.cpp)
-target_link_libraries(cacheman PRIVATE dataman)
-list(APPEND dataman_targets cacheman)
+add_library(dumpman MODULE DumpMan.h DumpMan.cpp)
+target_link_libraries(dumpman PRIVATE dataman)
+list(APPEND dataman_targets dumpman)
+
+add_library(temporalman MODULE TemporalMan.h TemporalMan.cpp)
+target_link_libraries(temporalman PRIVATE dataman)
+list(APPEND dataman_targets temporalman)
+
+add_library(streamman OBJECT StreamMan.h StreamMan.cpp)
 
 option(ADIOS_USE_DataMan_ZeroMQ "Enable ZeroMQ for DataMan" OFF)
 if(ADIOS_USE_DataMan_ZeroMQ)
   find_package(ZeroMQ REQUIRED)
-  message(STATUS "DataMan ZeroMQ support not yet implemented")
 
-#  add_library(zmqman MODULE ZmqMan.h ZmqMan.cpp)
-#  target_link_libraries(zmqman PRIVATE dataman ZeroMQ::ZMQ)
-#
-#  list(APPEND dataman_targets zmqman)
+  add_library(zmqman MODULE
+    ZmqMan.h ZmqMan.cpp
+    $<TARGET_OBJECTS:streamman>
+  )
+  target_link_libraries(zmqman PRIVATE dataman ZeroMQ::ZMQ)
+  list(APPEND dataman_targets zmqman)
+
+  add_library(mdtmman MODULE
+    MdtmMan.h MdtmMan.cpp
+    $<TARGET_OBJECTS:streamman>
+  )
+  target_link_libraries(mdtmman PRIVATE dataman ZeroMQ::ZMQ)
+  list(APPEND dataman_targets mdtmman)
 endif()
 
-# Make this a standalone option if you want to seperately enable/disable
-# DataMan ZFP support from ADIOS ZFP support.
-set(ADIOS_USE_DataMan_ZFP ${ADIOS_USE_ZFP})
 
+set(ADIOS_USE_DataMan_ZFP ${ADIOS_USE_ZFP} CACHE INTERNAL "Enable ZFP for DataMan" FORCE)
 if(ADIOS_USE_DataMan_ZFP)
   find_package(ZFP REQUIRED)
-  message(STATUS "DataMan ZFP support not yet implemented")
-
-#  add_library(zfpman MODULE ZfpMan.h ZfpMan.cpp)
-#  target_link_libraries(zfpman PRIVATE dataman zfp::zfp)
-#
-#  list(APPEND dataman_targets zfpman)
-endif()
 
-add_library(dumpman SHARED DumpMan.cpp)
-target_link_libraries(dumpman PRIVATE dataman)
-list(APPEND dataman_targets dumpman)
+  add_library(zfpman MODULE ZfpMan.h ZfpMan.cpp)
+  target_link_libraries(zfpman PRIVATE dataman zfp::zfp)
 
-add_library(streamman SHARED StreamMan.cpp)
-target_link_libraries(streamman PRIVATE dataman cacheman zmq)
-list(APPEND dataman_targets streamman)
-
-add_library(mdtmman SHARED MdtmMan.cpp)
-target_link_libraries(mdtmman PRIVATE dataman cacheman streamman zmq)
-list(APPEND dataman_targets mdtmman)
-
-add_library(zmqman SHARED ZmqMan.cpp)
-target_link_libraries(zmqman PRIVATE dataman cacheman streamman zmq)
-list(APPEND dataman_targets zmqman)
-
-add_library(zfpman SHARED ZfpMan.cpp)
-target_link_libraries(zfpman PRIVATE dataman zfp)
-list(APPEND dataman_targets zfpman)
-
-add_library(temporalman SHARED TemporalMan.cpp)
-target_link_libraries(temporalman PRIVATE dataman)
-list(APPEND dataman_targets temporalman)
+  list(APPEND dataman_targets zfpman)
+endif()
 
 install(
-<<<<<<< 3cc571b50c67adec8a481ab201f5437f1a8d923b
   TARGETS ${dataman_targets} EXPORT adios2
-=======
-  TARGETS dataman cacheman dumpman mdtmman zmqman zfpman temporalman EXPORT adios2
->>>>>>> added all dataman plugins
   RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
   LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 )
-
-
-
-- 
GitLab