-FOREACH(_prog ${_exec_programs})
- IF(MSVC)
- FIND_PROGRAM(
- ${_prog}_APP
- NAMES ${_prog}
- HINTS /usr /usr/local
- PATHS @CMAKE_INSTALL_PREFIX@/bin @PROJECT_BINARY_DIR@/$(ConfigurationName)
- PATH_SUFFIXES bin sbin
- DOC "Where is ${_prog}?"
- )
- ELSE(MSVC)
- FIND_PROGRAM(
- ${_prog}_APP
- NAMES ${_prog}
- HINTS /usr /usr/local
- PATHS @CMAKE_INSTALL_PREFIX@/bin @PROJECT_BINARY_DIR@
- PATH_SUFFIXES bin sbin
- DOC "Where is ${_prog}?"
- )
- ENDIF(MSVC)
- MARK_AS_ADVANCED(FORCE ${_prog}_APP)
-ENDFOREACH(_prog)
+SET(_b_locations)
+FOREACH(_p ${_exec_programs})
+ FIND_PROGRAM(
+ ${_p}_APP
+ NAMES ${_p}
+ HINTS /usr /usr/local
+ PATHS @CMAKE_INSTALL_PREFIX@/bin @PROJECT_BINARY_DIR@ ${_b_locations}
+ PATH_SUFFIXES bin sbin
+ DOC "Where is ${_prog}?"
+ )
+ IF(${_p}_APP)
+ MARK_AS_ADVANCED(FORCE ${_p}_APP)
+ GET_FILENAME_COMPONENT(_dir ${${_p}_APP} DIRECTORY)
+ LIST(APPEND _b_locations ${_dir})
+ LIST(REMOVE_DUPLICATES _b_locations)
+ ENDIF(${_p}_APP)
+ENDFOREACH(_p)