From 8f009a87eba28921f6b6cc1e610181252e307b6d Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Fri, 13 Sep 2013 14:48:38 +0200
Subject: [PATCH] Fix in finding ROOT under windows

---
 App/CMakeLists.txt           | 22 ++++++++++---
 CMakeLists.txt               |  1 +
 cmake/modules/FindROOT.cmake | 60 ++++++++++++++++++++----------------
 3 files changed, 52 insertions(+), 31 deletions(-)

diff --git a/App/CMakeLists.txt b/App/CMakeLists.txt
index 39d6d283a6c..882479f2cdf 100644
--- a/App/CMakeLists.txt
+++ b/App/CMakeLists.txt
@@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
 
 set(executable_name App)
 
-# files to have in library
+# source files
 file(GLOB source_files
     "src/*.cpp"
     "${CMAKE_CURRENT_SOURCE_DIR}/../Tests/FunctionalTests/TestCore/IsGISAXS06/*.cpp"
@@ -20,6 +20,17 @@ file(GLOB source_files
 # to get rid from files generated via qmake compilation
 list(REMOVE_ITEM source_files ${CMAKE_CURRENT_SOURCE_DIR}/src/AppDict.cpp)
 
+# header files
+file(GLOB include_files
+    "inc/*.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/../Tests/FunctionalTests/TestCore/IsGISAXS06/*.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/../Tests/FunctionalTests/TestCore/IsGISAXS07/*.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/../Tests/FunctionalTests/TestCore/IsGISAXS08/*.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/../Tests/FunctionalTests/TestCore/IsGISAXS10/*.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/../Tests/FunctionalTests/TestCore/IsGISAXS11/*.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/../Tests/FunctionalTests/TestCore/IsGISAXS15/*.h"
+)
+
 include_directories(
     ${CMAKE_CURRENT_SOURCE_DIR}/inc
     ${CMAKE_CURRENT_SOURCE_DIR}/../Tests/FunctionalTests/TestCore/IsGISAXS06
@@ -33,15 +44,18 @@ include_directories(
 # data files are required by App for comparison
 execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/Tests/ReferenceData/IsGISAXS ${CMAKE_BINARY_DIR}/Tests/ReferenceData/IsGISAXS)
 
-#dictionaries
+# dictionaries
 ROOT_GENERATE_DICTIONARY(AppDict    inc/DrawHelper.h inc/TreeEventStructure.h  LINKDEF AppLinkDef.h)
 
-add_executable(${executable_name} ${source_files} AppDict.cxx)
+add_executable(${executable_name} ${source_files} AppDict.cxx ${header_files})
 
 # dependencies
 include_directories(${BornAgainCore_INCLUDE_DIRS})
 target_link_libraries(${executable_name} ${BornAgainCore_LIBRARY}) 
 include_directories(${BornAgainFit_INCLUDE_DIRS})
 target_link_libraries(${executable_name} ${BornAgainFit_LIBRARY}) 
-target_link_libraries(${executable_name} ${ROOT_LIBRARIES}) 
 
+message("XXX ROOT_LIBRARIES ${ROOT_LIBRARIES}")
+message("XXX ROOT_INCLUDE_DIR ${ROOT_INCLUDE_DIR}")
+include_directories(${ROOT_INCLUDE_DIR})
+target_link_libraries(${executable_name} ${ROOT_LIBRARIES}) 
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 37c0cee24d2..cd14bde5670 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,6 +35,7 @@ add_subdirectory(ThirdParty/RootMinimizers)
 add_subdirectory(Fit)
 add_subdirectory(Tests/FunctionalTests)  # functional tests (make check)
 
+message("XXX ${ROOT_FOUND}")
 if(ROOT_FOUND AND BORNAGAIN_APP)
     add_subdirectory(App)
 endif()
diff --git a/cmake/modules/FindROOT.cmake b/cmake/modules/FindROOT.cmake
index bbbab4ba8ed..de21d6ee71e 100644
--- a/cmake/modules/FindROOT.cmake
+++ b/cmake/modules/FindROOT.cmake
@@ -11,40 +11,46 @@ find_program(ROOT_CONFIG_EXECUTABLE root-config
   PATHS $ENV{ROOTSYS}/bin)
 
 if(NOT ROOT_CONFIG_EXECUTABLE)
-  set(ROOT_FOUND FALSE)
-else()    
-  set(ROOT_FOUND TRUE)
+    set(ROOT_FOUND FALSE)
+else()
+    set(ROOT_FOUND TRUE)
 
-  execute_process(
-    COMMAND ${ROOT_CONFIG_EXECUTABLE} --prefix 
-    OUTPUT_VARIABLE ROOTSYS 
-    OUTPUT_STRIP_TRAILING_WHITESPACE)
+    if(WIN32)
+        set(ROOT_INCLUDE_DIR $ENV{ROOTSYS}/include)
+        set(ROOT_LIBRARY_DIR $ENV{ROOTSYS}/lib)
+        set(ROOT_LIBRARIES -LIBPATH:${ROOT_LIBRARY_DIR} libGpad.lib libHist.lib libGraf.lib libGraf3d.lib libTree.lib libRint.lib libPostscript.lib libMatrix.lib libPhysics.lib libMathCore.lib libRIO.lib libNet.lib libThread.lib libCore.lib libCint.lib)
+  
+    else()
 
-  execute_process(
-    COMMAND ${ROOT_CONFIG_EXECUTABLE} --version 
-    OUTPUT_VARIABLE ROOT_VERSION
-    OUTPUT_STRIP_TRAILING_WHITESPACE)
+        execute_process(
+            COMMAND ${ROOT_CONFIG_EXECUTABLE} --prefix 
+            OUTPUT_VARIABLE ROOTSYS 
+            OUTPUT_STRIP_TRAILING_WHITESPACE)
 
-  execute_process(
-    COMMAND ${ROOT_CONFIG_EXECUTABLE} --incdir
-    OUTPUT_VARIABLE ROOT_INCLUDE_DIR
-    OUTPUT_STRIP_TRAILING_WHITESPACE)
+        execute_process(
+            COMMAND ${ROOT_CONFIG_EXECUTABLE} --version 
+            OUTPUT_VARIABLE ROOT_VERSION
+            OUTPUT_STRIP_TRAILING_WHITESPACE)
 
-  execute_process(
-    COMMAND ${ROOT_CONFIG_EXECUTABLE} --libs
-    OUTPUT_VARIABLE ROOT_LIBRARIES
-    OUTPUT_STRIP_TRAILING_WHITESPACE)
+        execute_process(
+            COMMAND ${ROOT_CONFIG_EXECUTABLE} --incdir
+            OUTPUT_VARIABLE ROOT_INCLUDE_DIR
+            OUTPUT_STRIP_TRAILING_WHITESPACE)
 
-  #set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -lThread -lMinuit -lHtml -lVMC -lEG -lGeom -lTreePlayer -lXMLIO -lProof)
-  #set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -lProofPlayer -lMLP -lSpectrum -lEve -lRGL -lGed -lXMLParser -lPhysics)
-  set(ROOT_LIBRARY_DIR ${ROOTSYS}/lib)
+        execute_process(
+            COMMAND ${ROOT_CONFIG_EXECUTABLE} --libs
+            OUTPUT_VARIABLE ROOT_LIBRARIES
+            OUTPUT_STRIP_TRAILING_WHITESPACE)
 
-  # Make variables changeble to the advanced user
-  mark_as_advanced(ROOT_CONFIG_EXECUTABLE)
+        set(ROOT_LIBRARY_DIR ${ROOTSYS}/lib)
 
-  if(NOT ROOT_FIND_QUIETLY)
-    message(STATUS "Found ROOT ${ROOT_VERSION} in ${ROOTSYS}")
-  endif()
+        # Make variables changeble to the advanced user
+        mark_as_advanced(ROOT_CONFIG_EXECUTABLE)
+
+        if(NOT ROOT_FIND_QUIETLY)
+            message(STATUS "Found ROOT ${ROOT_VERSION} in ${ROOTSYS}")
+        endif()
+    endif()
 endif()
 
 
-- 
GitLab