Salome HOME
Refactored submission based on SH, RSH and SSH by grouping related commands in Commun...
[tools/libbatch.git] / CMakeModules / FindLocal.cmake
index bddeb896303352da9bc25fc4dc8148703605a0ba..4fb8b4ee9976580255f2ddc851a9f79c24824275 100644 (file)
 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-MACRO(FIND_LOCAL_COMMAND VAR COMMAND)
-    FIND_PROGRAM(${VAR} NAMES ${COMMAND} ${ARGN})
+MACRO(FIND_LOCAL_COMMAND VAR UNIX_COMMAND WIN32_COMMAND)
+    IF (WIN32)
+        FIND_PROGRAM(${VAR} ${WIN32_COMMAND})
+    ELSE (WIN32)
+        FIND_PROGRAM(${VAR} ${UNIX_COMMAND})
+    ENDIF (WIN32)
     IF (${VAR})
-        MESSAGE(STATUS "${COMMAND} found : ${${VAR}}")
+        MESSAGE(STATUS "${VAR} found : ${${VAR}}")
     ELSE (${VAR})
-        MESSAGE(STATUS "${COMMAND} not found, local submission might not work properly")
-        SET(${VAR} /bin/false)
+        MESSAGE(STATUS "${VAR} not found, local submission might not work properly")
     ENDIF (${VAR})
-    MARK_AS_ADVANCED(${VAR})
 ENDMACRO(FIND_LOCAL_COMMAND)
 
-MESSAGE(STATUS "Looking for commands needed for local submission...")
-
-FIND_PROGRAM(RM rm)
-IF (RM)
-    MESSAGE(STATUS "rm found : ${RM}")
-ELSE (RM)
+MACRO(FIND_LOCAL_COMMAND_WIN32_DEF VAR UNIX_COMMAND WIN32_DEFAULT)
     IF (WIN32)
-        MESSAGE(STATUS "using 'del' as rm command")
-        SET(RM del)
+        SET(${VAR} ${WIN32_DEFAULT} CACHE STRING "${VAR}")
+        MESSAGE(STATUS "${VAR} found : using '${${VAR}}' (Windows default)")
     ELSE (WIN32)
-        MESSAGE(STATUS "rm not found, local submission might not work properly")
-        SET(RM /bin/false)
+        FIND_LOCAL_COMMAND(${VAR} ${UNIX_COMMAND} ${WIN32_DEFAULT})
     ENDIF (WIN32)
-ENDIF (RM)
-MARK_AS_ADVANCED(RM)
+ENDMACRO(FIND_LOCAL_COMMAND_WIN32_DEF)
 
-FIND_PROGRAM(SH sh)
-IF (SH)
-    MESSAGE(STATUS "sh found : ${SH}")
-ELSE (SH)
-    FIND_PROGRAM(CMD cmd)
-    IF (CMD)
-        MESSAGE(STATUS "cmd found : ${CMD}")
-        SET(SH ${CMD})
-        SET(SH_COMMAND_IS_CMD TRUE)
-    ELSE (CMD)
-        MESSAGE(STATUS "sh not found, local submission might not work properly")
-        SET(SH /bin/false)
-    ENDIF (CMD)
-ENDIF (SH)
-MARK_AS_ADVANCED(CMD SH SH_COMMAND_IS_CMD)
+MACRO(EVAL VAR)
+   IF(${ARGN})
+     SET(${VAR} TRUE)
+   ELSE(${ARGN})
+     SET(${VAR} FALSE)
+   ENDIF(${ARGN})
+ENDMACRO(EVAL)
 
-FIND_PROGRAM(CP cp)
-IF (CP)
-    MESSAGE(STATUS "cp found : ${CP}")
-ELSE (CP)
-    IF (WIN32)
-        MESSAGE(STATUS "using 'copy' as cp command")
-        SET(CP copy)
-    ELSE (WIN32)
-        MESSAGE(STATUS "cp not found, local submission might not work properly")
-        SET(CP /bin/false)
-    ENDIF (WIN32)
-ENDIF (CP)
-MARK_AS_ADVANCED(CP)
+MESSAGE(STATUS "Looking for commands needed for local submission...")
+
+FIND_LOCAL_COMMAND_WIN32_DEF(RM_COMMAND rm del)
+FIND_LOCAL_COMMAND(SH_COMMAND sh cmd.exe)
+FIND_LOCAL_COMMAND_WIN32_DEF(CP_COMMAND cp copy)
+FIND_LOCAL_COMMAND(RSH_COMMAND rsh rsh)
+FIND_LOCAL_COMMAND(RCP_COMMAND rcp rcp)
+FIND_LOCAL_COMMAND(SSH_COMMAND ssh plink)
+FIND_LOCAL_COMMAND(SCP_COMMAND scp pscp)
 
-FIND_LOCAL_COMMAND(RSH rsh)
-FIND_LOCAL_COMMAND(RCP rcp)
-FIND_LOCAL_COMMAND(SSH ssh plink)
-FIND_LOCAL_COMMAND(SCP scp pscp)
+EVAL (HAS_SH SH_COMMAND AND CP_COMMAND AND RM_COMMAND)
+EVAL (HAS_RSH RSH_COMMAND AND RCP_COMMAND)
+EVAL (HAS_SSH SSH_COMMAND AND SCP_COMMAND)