From af69b42694cb71650fb61cb3482040b384d95e58 Mon Sep 17 00:00:00 2001
From: Guilherme Amadio <amadio@cern.ch>
Date: Thu, 10 Jan 2019 16:26:42 +0100
Subject: [PATCH] proof/*: do not use file globbing

---
 proof/proof/CMakeLists.txt       | 84 +++++++++++++++++++++++++++-----
 proof/proofbench/CMakeLists.txt  | 58 ++++++++++++++++------
 proof/proofd/CMakeLists.txt      | 66 ++++++++++++++++++++++---
 proof/proofplayer/CMakeLists.txt | 76 ++++++++++++++++++++++-------
 proof/proofx/CMakeLists.txt      | 52 ++++++++++++++------
 5 files changed, 268 insertions(+), 68 deletions(-)

diff --git a/proof/proof/CMakeLists.txt b/proof/proof/CMakeLists.txt
index 30ac27108d8..8526b3d895e 100644
--- a/proof/proof/CMakeLists.txt
+++ b/proof/proof/CMakeLists.txt
@@ -3,19 +3,81 @@
 # @author Pere Mato, CERN
 ############################################################################
 
-ROOT_GLOB_HEADERS(headers RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/inc inc/*.h)
-ROOT_GLOB_SOURCES(sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src src/*.cxx)
-
-#--- AliEn Dataset manager only if AliEn is available
 if(alien)
   add_definitions(-DALIENDSMGR)
-else()
-  list(REMOVE_ITEM headers TDataSetManagerAliEn.h)
-  list(REMOVE_ITEM sources TDataSetManagerAliEn.cxx)
+  set(PROOF_EXTRA_HEADERS TDataSetManagerAliEn.h)
+  set(PROOF_EXTRA_SOURCES src/TDataSetManagerAliEn.cxx)
 endif()
 
 ROOT_STANDARD_LIBRARY_PACKAGE(Proof
-                              HEADERS ${headers}
-                              SOURCES ${sources}
-                              DEPENDENCIES Net Tree Thread RIO MathCore)
-
+  HEADERS
+    TCondor.h
+    TDataSetManagerAliEn.h
+    TDataSetManagerFile.h
+    TDataSetManager.h
+    TDSet.h
+    TDSetProxy.h
+    TLockPath.h
+    TPackMgr.h
+    TProofChain.h
+    TProofCondor.h
+    TProofDebug.h
+    TProof.h
+    TProofLite.h
+    TProofLog.h
+    TProofMgr.h
+    TProofMgrLite.h
+    TProofNodeInfo.h
+    TProofOutputFile.h
+    TProofOutputList.h
+    TProofProgressStatus.h
+    TProofQueryResult.h
+    TProofResources.h
+    TProofResourcesStatic.h
+    TProofServ.h
+    TProofServLite.h
+    TProofSuperMaster.h
+    TQueryResultManager.h
+    TSelVerifyDataSet.h
+    TSlave.h
+    TSlaveLite.h
+    TVirtualProofPlayer.h
+    ${PROOF_EXTRA_HEADERS}
+  SOURCES
+    src/TCondor.cxx
+    src/TDataSetManager.cxx
+    src/TDataSetManagerFile.cxx
+    src/TDSet.cxx
+    src/TDSetProxy.cxx
+    src/TLockPath.cxx
+    src/TPackMgr.cxx
+    src/TProofChain.cxx
+    src/TProofCondor.cxx
+    src/TProof.cxx
+    src/TProofDebug.cxx
+    src/TProofLite.cxx
+    src/TProofLog.cxx
+    src/TProofMgr.cxx
+    src/TProofMgrLite.cxx
+    src/TProofNodeInfo.cxx
+    src/TProofOutputFile.cxx
+    src/TProofOutputList.cxx
+    src/TProofProgressStatus.cxx
+    src/TProofQueryResult.cxx
+    src/TProofResourcesStatic.cxx
+    src/TProofServ.cxx
+    src/TProofServLite.cxx
+    src/TProofSuperMaster.cxx
+    src/TQueryResultManager.cxx
+    src/TSelVerifyDataSet.cxx
+    src/TSlave.cxx
+    src/TSlaveLite.cxx
+    src/TVirtualProofPlayer.cxx
+    ${PROOF_EXTRA_SOURCES}
+  DEPENDENCIES
+    MathCore
+    Net
+    RIO
+    Thread
+    Tree
+)
diff --git a/proof/proofbench/CMakeLists.txt b/proof/proofbench/CMakeLists.txt
index a5954d02af9..142cb8caca3 100644
--- a/proof/proofbench/CMakeLists.txt
+++ b/proof/proofbench/CMakeLists.txt
@@ -2,22 +2,48 @@
 # CMakeLists.txt file for building ROOT proof/proofbench package
 ############################################################################
 
-ROOT_GLOB_HEADERS(headers inc/TProof*.h)
-ROOT_GLOB_SOURCES(sources src/TProof*.cxx)
-
 ROOT_STANDARD_LIBRARY_PACKAGE(ProofBench
-                              HEADERS ${headers}
-                              SOURCES ${sources}
-                              DEPENDENCIES Core Hist Gpad ProofPlayer
-                              INSTALL_OPTIONS FILTER "TSel")
+  HEADERS
+    TProofBenchDataSet.h
+    TProofBench.h
+    TProofBenchRunCPU.h
+    TProofBenchRunDataRead.h
+    TProofBenchRun.h
+    TProofBenchTypes.h
+    TProofNodes.h
+    TProofPerfAnalysis.h
+  SOURCES
+    src/TProofBench.cxx
+    src/TProofBenchDataSet.cxx
+    src/TProofBenchRunCPU.cxx
+    src/TProofBenchRun.cxx
+    src/TProofBenchRunDataRead.cxx
+    src/TProofNodes.cxx
+    src/TProofPerfAnalysis.cxx
+  DEPENDENCIES
+    Core
+    Gpad
+    Hist
+    ProofPlayer
+  INSTALL_OPTIONS
+    FILTER "TSel"
+)
+
+# Generation and installation of the PAR files required by the benchmark
+add_custom_target(ProofBenchPARFiles ALL
+  DEPENDS
+    ${CMAKE_SOURCE_DIR}/etc/proof/utils/makepbenchpars.sh
+  COMMAND
+    ${CMAKE_SOURCE_DIR}/etc/proof/utils/makepbenchpars.sh ProofBenchCPUSel ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}
+  COMMAND
+    ${CMAKE_SOURCE_DIR}/etc/proof/utils/makepbenchpars.sh ProofBenchDataSel ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}
+  BYPRODUCTS
+    ${CMAKE_BINARY_DIR}/etc/proof/proofbench/ProofBenchCPUSel.par
+    ${CMAKE_BINARY_DIR}/etc/proof/proofbench/ProofBenchDataSel.par
+  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+)
 
-# Generation and installation of the PAR files required by the benchmark 
-add_custom_target(ProofBenchPARFiles ALL DEPENDS ${CMAKE_BINARY_DIR}/etc/proof/proofbench/ProofBenchCPUSel.par
-                                                 ${CMAKE_BINARY_DIR}/etc/proof/proofbench/ProofBenchDataSel.par)
 add_dependencies(ProofBenchPARFiles move_artifacts)
-add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/etc/proof/proofbench/ProofBenchCPUSel.par
-                          ${CMAKE_BINARY_DIR}/etc/proof/proofbench/ProofBenchDataSel.par
-    COMMAND etc/proof/utils/makepbenchpars.sh ARGS ProofBenchCPUSel ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} 
-    COMMAND etc/proof/utils/makepbenchpars.sh ARGS ProofBenchDataSel ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} 
-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
-install(DIRECTORY ${CMAKE_BINARY_DIR}/etc/proof/proofbench DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/proof USE_SOURCE_PERMISSIONS)
+
+install(DIRECTORY ${CMAKE_BINARY_DIR}/etc/proof/proofbench
+        DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/proof USE_SOURCE_PERMISSIONS)
diff --git a/proof/proofd/CMakeLists.txt b/proof/proofd/CMakeLists.txt
index 3fdf36787fc..ffbeec545fd 100644
--- a/proof/proofd/CMakeLists.txt
+++ b/proof/proofd/CMakeLists.txt
@@ -3,6 +3,31 @@
 # @author Pere Mato, CERN
 ############################################################################
 
+set(PROOFD_SOURCES
+  src/XpdObject.cxx
+  src/XProofProtUtils.cxx
+  src/XrdProofConn.cxx
+  src/XrdProofdAdmin.cxx
+  src/XrdProofdAux.cxx
+  src/XrdProofdClient.cxx
+  src/XrdProofdClientMgr.cxx
+  src/XrdProofdConfig.cxx
+  src/XrdProofdManager.cxx
+  src/XrdProofdNetMgr.cxx
+  src/XrdProofdPriorityMgr.cxx
+  src/XrdProofdProofServ.cxx
+  src/XrdProofdProofServMgr.cxx
+  src/XrdProofdProtocol.cxx
+  src/XrdProofdResponse.cxx
+  src/XrdProofdSandbox.cxx
+  src/XrdProofGroup.cxx
+  src/XrdProofPhyConn.cxx
+  src/XrdProofSched.cxx
+  src/XrdProofWorker.cxx
+  src/XrdROOT.cxx
+  ../../net/rpdutils/src/rpdconn.cxx
+)
+
 include_directories(${XROOTD_INCLUDE_DIRS})
 include_directories(AFTER ${CMAKE_CURRENT_SOURCE_DIR}/inc)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../net/rpdutils/res)
@@ -15,15 +40,40 @@ add_definitions(${XROOTD_CFLAGS})
 ROOT_ADD_CXX_FLAG(CMAKE_CXX_FLAGS -Wno-nonnull-compare)
 
 if(WIN32)
-  ROOT_LINKER_LIBRARY(XrdProofd XProofProtUtils.cxx LIBRARIES ${XROOTD_LIBRARIES})
+  ROOT_LINKER_LIBRARY(XrdProofd
+    XProofProtUtils.cxx
+    LIBRARIES
+      ${XROOTD_LIBRARIES}
+  )
 else()
   if (NOT XROOTD_NOMAIN)
-     ROOT_EXECUTABLE(xproofd X*.cxx ${CMAKE_SOURCE_DIR}/net/rpdutils/src/rpdconn.cxx
-                         LIBRARIES ${XROOTD_LIBRARIES} ${SYSLIBS} BUILTINS XROOTD)
-  endif ()
-  ROOT_LINKER_LIBRARY(XrdProofd X*.cxx ${CMAKE_SOURCE_DIR}/net/rpdutils/src/rpdconn.cxx
-                         LIBRARIES ${XROOTD_LIBRARIES} rpdutil ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} BUILTINS XROOTD)
+    ROOT_EXECUTABLE(xproofd
+      ${PROOFD_SOURCES}
+      LIBRARIES
+        ${XROOTD_LIBRARIES}
+        ${SYSLIBS}
+      BUILTINS
+        XROOTD
+    )
+  endif()
+
+  ROOT_LINKER_LIBRARY(XrdProofd
+    ${PROOFD_SOURCES}
+    LIBRARIES
+      ${XROOTD_LIBRARIES}
+      rpdutil
+      ${CMAKE_THREAD_LIBS_INIT}
+      ${CMAKE_DL_LIBS}
+    BUILTINS
+      XROOTD
+  )
   set_target_properties(XrdProofd PROPERTIES INTERFACE_LINK_LIBRARIES "")
-  ROOT_EXECUTABLE(proofexecv proofexecv.cxx ${CMAKE_SOURCE_DIR}/net/rpdutils/src/rpdconn.cxx ${CMAKE_SOURCE_DIR}/net/rpdutils/src/rpdpriv.cxx
-                         LIBRARIES ${SYSLIBS})
+
+  ROOT_EXECUTABLE(proofexecv
+    proofexecv.cxx
+    ${CMAKE_SOURCE_DIR}/net/rpdutils/src/rpdconn.cxx
+    ${CMAKE_SOURCE_DIR}/net/rpdutils/src/rpdpriv.cxx
+    LIBRARIES
+      ${SYSLIBS}
+  )
 endif()
diff --git a/proof/proofplayer/CMakeLists.txt b/proof/proofplayer/CMakeLists.txt
index 283daeaa4e8..e64966a4e96 100644
--- a/proof/proofplayer/CMakeLists.txt
+++ b/proof/proofplayer/CMakeLists.txt
@@ -3,25 +3,67 @@
 # @author Pere Mato, CERN
 ############################################################################
 
-ROOT_GLOB_HEADERS(headers inc/*.h)
-list(REMOVE_ITEM headers ${CMAKE_CURRENT_SOURCE_DIR}/inc/TProofDraw.h
-                         ${CMAKE_CURRENT_SOURCE_DIR}/inc/LinkDef.h
-                         ${CMAKE_CURRENT_SOURCE_DIR}/inc/LinkDefDraw.h)
-
-ROOT_GLOB_SOURCES(sources src/*.cxx)
-list(REMOVE_ITEM sources ${CMAKE_CURRENT_SOURCE_DIR}/src/TProofDraw.cxx)
-
 ROOT_STANDARD_LIBRARY_PACKAGE(ProofPlayer
-                              NO_INSTALL_HEADERS
-                              HEADERS ${headers}
-                              SOURCES ${sources}
-                              DEPENDENCIES Proof Hist RIO Tree Net Thread MathCore)
+  NO_INSTALL_HEADERS
+  HEADERS
+    TDrawFeedback.h
+    TEventIter.h
+    TOutputListSelectorDataMap.h
+    TPacketizerAdaptive.h
+    TPacketizerFile.h
+    TPacketizer.h
+    TPacketizerMulti.h
+    TPacketizerUnit.h
+    TPerfStats.h
+    TProofLimitsFinder.h
+    TProofMonSender.h
+    TProofMonSenderML.h
+    TProofMonSenderSQL.h
+    TProofPlayer.h
+    TProofPlayerLite.h
+    TStatsFeedback.h
+    TStatus.h
+    TVirtualPacketizer.h
+  SOURCES
+    TDrawFeedback.cxx
+    TEventIter.cxx
+    TOutputListSelectorDataMap.cxx
+    TPacketizerAdaptive.cxx
+    TPacketizer.cxx
+    TPacketizerFile.cxx
+    TPacketizerMulti.cxx
+    TPacketizerUnit.cxx
+    TPerfStats.cxx
+    TProofLimitsFinder.cxx
+    TProofMonSender.cxx
+    TProofMonSenderML.cxx
+    TProofMonSenderSQL.cxx
+    TProofPlayer.cxx
+    TProofPlayerLite.cxx
+    TStatsFeedback.cxx
+    TStatus.cxx
+    TVirtualPacketizer.cxx
+  DEPENDENCIES
+    Hist
+    Net
+    MathCore
+    Proof
+    RIO
+    Thread
+    Tree
+)
 
 ROOT_STANDARD_LIBRARY_PACKAGE(ProofDraw
-                              NO_INSTALL_HEADERS
-                              HEADERS TProofDraw.h
-                              LINKDEF LinkDefDraw.h
-                              SOURCES TProofDraw.cxx
-                              DEPENDENCIES ProofPlayer TreePlayer)
+  NO_INSTALL_HEADERS
+  HEADERS
+    TProofDraw.h
+  SOURCES
+    TProofDraw.cxx
+  LINKDEF
+    LinkDefDraw.h
+  DEPENDENCIES
+    ProofPlayer
+    TreePlayer
+)
 
 ROOT_INSTALL_HEADERS()
diff --git a/proof/proofx/CMakeLists.txt b/proof/proofx/CMakeLists.txt
index 676e142e1a9..5ab1f272099 100644
--- a/proof/proofx/CMakeLists.txt
+++ b/proof/proofx/CMakeLists.txt
@@ -3,26 +3,46 @@
 # @author Pere Mato, CERN
 ############################################################################
 
-if(WIN32)
-  set(headers TXProofMgr.h TXSlave.h TXSocket.h TXSocketHandler.h TXHandler.h)
-  set(sources TXProofMgr.cxx TXSlave.cxx TXSocket.cxx TXSocketHandler.cxx TXHandler.cxx
-               ../proofd/src/XrdProofConn.cxx ../proofd/src/XrdProofPhyConn.cxx ../proofd/src/XProofProtUtils.cxx)
-else()
-  ROOT_GLOB_HEADERS(headers RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/inc ${CMAKE_CURRENT_SOURCE_DIR}/inc/*.h)
-  ROOT_GLOB_SOURCES(sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cxx)
-endif()
-
+add_definitions(${XROOTD_CFLAGS})
 include_directories(${XROOTD_INCLUDE_DIRS})
 include_directories(AFTER ${CMAKE_CURRENT_SOURCE_DIR}/../proofd/inc)
 link_directories(${XROOTD_LIBRARY_DIR})
-add_definitions(${XROOTD_CFLAGS})
+set_source_files_properties(src/TXSocket.cxx COMPILE_FLAGS -Wno-address)
 
-if(GCC_MAJOR GREATER 3)
-  set_source_files_properties(src/TXSocket.cxx COMPILE_FLAGS -Wno-address)
+if(UNIX)
+  set(PROOFX_EXTRA_HEADERS TXUnixSocket.h)
+  set(PROOFX_EXTRA_SOURCES src/TXUnixSocket.cxx)
+elseif(WIN32)
+  set(PROOFX_EXTRA_SOURCES
+      ../proofd/src/XrdProofConn.cxx
+      ../proofd/src/XrdProofPhyConn.cxx
+      ../proofd/src/XProofProtUtils.cxx)
 endif()
 
 ROOT_STANDARD_LIBRARY_PACKAGE(Proofx
-                              HEADERS ${headers}
-                              LIBRARIES ${XROOTD_LIBRARIES} XrdProofd
-                              DEPENDENCIES Net Proof Thread
-                              BUILTINS XROOTD)
+  HEADERS
+    TXHandler.h
+    TXProofMgr.h
+    TXProofServ.h
+    TXSlave.h
+    TXSocket.h
+    TXSocketHandler.h
+    ${PROOFX_EXTRA_HEADERS}
+  SOURCES
+    src/TXHandler.cxx
+    src/TXProofMgr.cxx
+    src/TXProofServ.cxx
+    src/TXSlave.cxx
+    src/TXSocket.cxx
+    src/TXSocketHandler.cxx
+    ${PROOFX_EXTRA_SOURCES}
+  LIBRARIES
+    ${XROOTD_LIBRARIES}
+    XrdProofd
+  DEPENDENCIES
+    Net
+    Proof
+    Thread
+  BUILTINS
+    XROOTD
+)
-- 
GitLab