From cf8c86c25028c3f4fe721fd1a3f78edbdbbec685 Mon Sep 17 00:00:00 2001 From: vsr Date: Tue, 5 Nov 2013 11:30:32 +0000 Subject: [PATCH] Fix bug with zero-length list processing --- SalomeGUIConfig.cmake.in | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/SalomeGUIConfig.cmake.in b/SalomeGUIConfig.cmake.in index 100883051..0f7f4c130 100644 --- a/SalomeGUIConfig.cmake.in +++ b/SalomeGUIConfig.cmake.in @@ -87,26 +87,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) +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 + 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@") -- 2.39.2