Salome HOME
Fix bug with zero-length list processing
[modules/kernel.git] / SalomeKERNELConfig.cmake.in
index 2c5be26f82f615b12ecd5c66a8fc32e8c42d2f08..a5e884660c1e5392b490bb0fc6f93359565c947c 100644 (file)
@@ -109,26 +109,28 @@ SET(_PREREQ @_PREREQ_LIST@)
 SET(_PREREQ_CONFIG_DIR @_PREREQ_DIR_LIST@)
 SET(_PREREQ_COMPONENTS "@_PREREQ_COMPO_LIST@")
 LIST(LENGTH _PREREQ_CONFIG_DIR _list_len)
-# Another CMake stupidity - FOREACH(... RANGE r) generates r+1 numbers ...
-MATH(EXPR _range "${_list_len}-1")
-FOREACH(_p RANGE ${_range})  
-  LIST(GET _PREREQ            ${_p} _pkg    )
-  LIST(GET _PREREQ_CONFIG_DIR ${_p} _pkg_dir)
-  LIST(GET _PREREQ_COMPONENTS ${_p} _pkg_compo)
-  MESSAGE(STATUS "===> Reloading targets from ${_pkg} ...")
-  IF(NOT _pkg_compo)
-    FIND_PACKAGE(${_pkg} REQUIRED NO_MODULE 
+IF(NOT _list_len EQUAL 0)
+  # Another CMake stupidity - FOREACH(... RANGE r) generates r+1 numbers ...
+  MATH(EXPR _range "${_list_len}-1")
+  FOREACH(_p RANGE ${_range})  
+    LIST(GET _PREREQ            ${_p} _pkg    )
+    LIST(GET _PREREQ_CONFIG_DIR ${_p} _pkg_dir)
+    LIST(GET _PREREQ_COMPONENTS ${_p} _pkg_compo)
+    MESSAGE(STATUS "===> Reloading targets from ${_pkg} ...")
+    IF(NOT _pkg_compo)
+      FIND_PACKAGE(${_pkg} REQUIRED NO_MODULE 
           PATHS "${_pkg_dir}" 
           NO_DEFAULT_PATH)
-  ELSE()
-    STRING(REPLACE "," ";" _compo_lst "${_pkg_compo}")
-    MESSAGE(STATUS "===> (components: ${_pkg_compo})")
-    FIND_PACKAGE(${_pkg} REQUIRED NO_MODULE
+    ELSE()
+      STRING(REPLACE "," ";" _compo_lst "${_pkg_compo}")
+      MESSAGE(STATUS "===> (components: ${_pkg_compo})")
+      FIND_PACKAGE(${_pkg} REQUIRED NO_MODULE
           COMPONENTS ${_compo_lst} 
           PATHS "${_pkg_dir}"
           NO_DEFAULT_PATH)
-  ENDIF()
-ENDFOREACH()
+    ENDIF()
+  ENDFOREACH()
+ENDIF()
 
 # Installation directories
 SET(SALOME_INSTALL_BINS "@SALOME_INSTALL_BINS@")