From a946639cc427cf2eeb935ffc238b7e9f7cb0210e Mon Sep 17 00:00:00 2001
From: Whitney Armstrong <warmstrong@anl.gov>
Date: Thu, 28 Jun 2018 23:49:13 -0500
Subject: [PATCH] 	modified:   CMakeLists.txt 	new file:  
 external/CMakeLists.txt 	new file:   external/PODD.CMakeLists.txt 
 modified:   src/CMakeLists.txt

---
 CMakeLists.txt               |  9 +++++---
 external/CMakeLists.txt      | 40 ++++++++++++++++++++++++++++++++++++
 external/PODD.CMakeLists.txt | 20 ++++++++++++++++++
 src/CMakeLists.txt           |  4 ++--
 4 files changed, 68 insertions(+), 5 deletions(-)
 create mode 100644 external/CMakeLists.txt
 create mode 100644 external/PODD.CMakeLists.txt

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 13ae055..d81fb7a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,8 +7,8 @@ set(CMAKE_MODULE_PATH
    ${PROJECT_SOURCE_DIR}/cmake/modules)
 
 ## Use C++17 features 
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
+#set(CMAKE_CXX_STANDARD 17)
+#set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 ## OS Specific settings
 include(cmake/os.cmake)
@@ -18,11 +18,14 @@ include(cmake/modules/CompileTimeInfo.cmake)
 include(GNUInstallDirs)
 set(INSTALL_CONFIGDIR lib/hcana)
 
+list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX})
+
 find_package(EXPAT REQUIRED COMPONENTS EXPAT )
 find_package(Threads REQUIRED)
 find_package(ZLIB REQUIRED)
 
-find_package(EVIO REQUIRED)
+include(ExternalProject)
+add_subdirectory(external)
 find_package(PODD REQUIRED)
 
 list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS})
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
new file mode 100644
index 0000000..d66c2ad
--- /dev/null
+++ b/external/CMakeLists.txt
@@ -0,0 +1,40 @@
+cmake_minimum_required(VERSION 3.1)
+
+#include(ExternalProject)
+
+##############
+##  GFLAGS  ##
+##############
+message(STATUS "Subproject: PODD...")
+# Download and unpack gflags at configure time
+configure_file(
+  ${CMAKE_CURRENT_SOURCE_DIR}/PODD.CMakeLists.txt
+  ${CMAKE_BINARY_DIR}/PODD-download/CMakeLists.txt)
+
+execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
+  RESULT_VARIABLE result
+  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/PODD-download)
+if(result)
+  message(FATAL_ERROR "CMake step for PODD failed: ${result}")
+endif()
+execute_process(COMMAND ${CMAKE_COMMAND} --build .
+  RESULT_VARIABLE result
+  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/PODD-download)
+if(result)
+  message(FATAL_ERROR "Build step for PODD failed: ${result}")
+endif()
+
+#set(GFLAGS_NAMESPACE "gflags")
+#set(GFLAGS_INSTALL_STATIC_LIBS ON)
+#set(GFLAGS_INSTALL_HEADERS ON)
+#set(GFLAGS_IS_SUBPROJECT TRUE)
+add_subdirectory(
+  ${CMAKE_BINARY_DIR}/hallac_PODD-src
+  ${CMAKE_BINARY_DIR}/hallac_PODD-build)
+
+execute_process(COMMAND "rm -r *"
+  RESULT_VARIABLE result
+  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/PODD-download)
+
+message(STATUS "Subproject: PODD...DONE")
+
diff --git a/external/PODD.CMakeLists.txt b/external/PODD.CMakeLists.txt
new file mode 100644
index 0000000..c149508
--- /dev/null
+++ b/external/PODD.CMakeLists.txt
@@ -0,0 +1,20 @@
+cmake_minimum_required(VERSION 3.5)
+
+# simplify variable expansion
+cmake_policy(SET CMP0053 NEW)
+cmake_policy(SET CMP0010 NEW)
+
+project(PODD-download NONE)
+
+include(ExternalProject)
+
+ExternalProject_Add(PODD_project 
+      GIT_REPOSITORY    https://github.com/whit2333/analyzer.git
+      GIT_TAG           origin/testing
+      SOURCE_DIR "${CMAKE_BINARY_DIR}/hallac_PODD-src"
+      BINARY_DIR "${CMAKE_BINARY_DIR}/hallac_PODD-build"
+      CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=@CMAKE_INSTALL_PREFIX@" "-DCMAKE_PREFIX_PATH=@CMAKE_INSTALL_PREFIX@"
+      BUILD_COMMAND ${CMAKE_COMMAND} --build . -- -j4
+      TEST_COMMAND ""
+      LOG_DOWNLOAD ON
+      )
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 29f19bd..095e425 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -62,8 +62,8 @@ target_compile_options(HallC PRIVATE $<$<CXX_COMPILER_ID:GNU>:-DHAS_SSTREAM=1>)
 
 target_link_libraries(HallC
   PUBLIC ${ROOT_LIBRARIES} 
-  PUBLIC PODD::HallA
-  PUBLIC PODD::Decode
+  PUBLIC HallA
+  PUBLIC dc
 )
 #This is required so that the exported target has the name JSONUtils and not jsonutils
 #set_target_properties(HallC PROPERTIES EXPORT_NAME hallC)
-- 
GitLab