ROOTSYS for AMORE
authoragrigora <alina.grigoras@cern.ch>
Fri, 28 Nov 2014 10:43:34 +0000 (11:43 +0100)
committeragrigora <alina.grigoras@cern.ch>
Mon, 15 Dec 2014 12:52:03 +0000 (13:52 +0100)
CMakeLists.txt
cmake/FindAMORE.cmake
cmake/FindDATE.cmake

index 7e1ef77..4d82ec9 100644 (file)
@@ -35,9 +35,14 @@ include(CMakeALICE)
 # in case ROOT Extra static library needs to be enabled
 
 # DATE
+# date-config needs DIMDIR and ODIR set
 if(DATE_CONFIG)
-    find_package(DATE)
-endif(DATE_CONFIG)
+    if(DIMDIR AND ODIR)
+        find_package(DATE)
+    else()
+        message(FATAL_ERROR "DATE enabled but no DIMDIR and ODIR set. Please set DIMDIR and ODIR")
+    endif()
+endif()
 
 # daqDA
 if(daqDA)
@@ -46,7 +51,11 @@ endif(daqDA)
 
 # AMORE
 if(AMORE_CONFIG)
-    find_package(AMORE)
+    if(ROOTSYS)
+        find_package(AMORE)
+    else()
+        message(FATAL_ERROR "AMORE enabled but no ROOTSYS defined")
+    endif()
 endif(AMORE_CONFIG)
 
 # DA is enabled
index c7b0bb9..ff8895a 100644 (file)
 set(AMORE_FOUND FALSE)
 
 if(AMORE_CONFIG)
+    # Setting ROOTSYS environment variable for the amore-config to find root-config
+    # The variable is unset after the Find is finished
+    set(ENV{ROOTSYS} ${ROOTSYS})
+
     # Checking AMORE version
     execute_process(COMMAND ${AMORE_CONFIG} --version OUTPUT_VARIABLE AMORE_VERSION ERROR_VARIABLE error OUTPUT_STRIP_TRAILING_WHITESPACE )
     if(error)
         message(FATAL_ERROR "Error retrieving AMORE version : ${error}")
     endif(error)
-    string(STRIP ${AMORE_VERSION} AMORE_VERSION)
+    
+    if(AMORE_VERSION)
+        string(STRIP ${AMORE_VERSION} AMORE_VERSION)
+    endif(AMORE_VERSION)
 
     # Extract major, minor, and patch versions from
 #    string(REGEX REPLACE "^([0-9]+)\\.[0-9]+" "\\1" DATE_VERSION_MAJOR "${DATE_VERSION}")
@@ -42,15 +49,21 @@ if(AMORE_CONFIG)
     if(error)
         message(FATAL_ERROR "Error retrieving AMORE static libraries : ${error}")
     endif(error)
-    string(STRIP ${AMORE_STATICLIBS} AMORE_STATICLIBS)
-    string(REPLACE "\n" " " AMORE_STATICLIBS ${AMORE_STATICLIBS})
+    
+    if(AMORE_STATICLIBS)
+        string(STRIP ${AMORE_STATICLIBS} AMORE_STATICLIBS)
+        string(REPLACE "\n" " " AMORE_STATICLIBS ${AMORE_STATICLIBS})
+    endif(AMORE_STATICLIBS)
 
     # Checking AMORE auxiliary libraries
     execute_process(COMMAND ${AMORE_CONFIG} --auxlibs-list OUTPUT_VARIABLE AMORE_AUXLIBS ERROR_VARIABLE error OUTPUT_STRIP_TRAILING_WHITESPACE )
     if(error)
         message(FATAL_ERROR "Error retrieving AMORE auxiliary libraries : ${error}")
     endif(error)
-    string(STRIP ${AMORE_AUXLIBS} AMORE_AUXLIBS)
+    
+    if(AMORE_AUXLIBS)
+        string(STRIP ${AMORE_AUXLIBS} AMORE_AUXLIBS)
+    endif(AMORE_AUXLIBS)
 
     # Checking AMORE cflags
     execute_process(COMMAND ${AMORE_CONFIG} --cflags OUTPUT_VARIABLE AMORE_CFLAGS ERROR_VARIABLE error OUTPUT_STRIP_TRAILING_WHITESPACE )
@@ -72,8 +85,8 @@ if(AMORE_CONFIG)
         string(STRIP ${AMORE_INCLUDE_DIR} AMORE_INCLUDE_DIR)
     endif(AMORE_INCLUDE_DIR)
 
-
     set(AMORE_DEFINITIONS "-DALI_AMORE")
     set(AMORE_FOUND TRUE)
+    unset(ENV{ROOTSYS})
 
 endif(AMORE_CONFIG)
index 0099368..21ac925 100644 (file)
@@ -62,6 +62,11 @@ endfunction(find_date_libraries _output library_list library_paths)
 
 # DATE_CONFIG set from the configuration
 if(DATE_CONFIG)
+    # Setting DIMDIR, ODIR and ROOTSYS in the environment, they are needed by date-config
+    set(ENV{DIMDIR} ${DIMDIR})
+    set(ENV{ODIR} ${ODIR})
+    set(ENV{ROOTSYS} ${ROOTSYS})
+
     # Checking DATE version
     execute_process(COMMAND ${DATE_CONFIG} --version OUTPUT_VARIABLE DATE_VERSION ERROR_VARIABLE error OUTPUT_STRIP_TRAILING_WHITESPACE )
     if(error)
@@ -189,6 +194,11 @@ if(DATE_CONFIG)
         string(STRIP ${DATE_DYNMONLIBS} DATE_DYNMONLIBS)
     endif()
 
+    # unsetting all environment variables
+    unset(ENV{DIMDIR})
+    unset(ENV{ODIR})
+    unset(ENV{ROOTSYS})
+
     set(DATE_FOUND TRUE)
 else()
     message(STATUS "DATE not found")