소스 검색

ENH: check return value for uname -p

Bill Hoffman 19 년 전
부모
커밋
21564b4d61
1개의 변경된 파일9개의 추가작업 그리고 6개의 파일을 삭제
  1. 9 6
      Modules/CMakeDetermineSystem.cmake

+ 9 - 6
Modules/CMakeDetermineSystem.cmake

@@ -31,16 +31,19 @@ IF(UNIX)
   IF(CMAKE_UNAME)
   IF(CMAKE_UNAME)
     EXEC_PROGRAM(uname ARGS -s OUTPUT_VARIABLE CMAKE_SYSTEM_NAME)
     EXEC_PROGRAM(uname ARGS -s OUTPUT_VARIABLE CMAKE_SYSTEM_NAME)
     EXEC_PROGRAM(uname ARGS -r OUTPUT_VARIABLE CMAKE_SYSTEM_VERSION)
     EXEC_PROGRAM(uname ARGS -r OUTPUT_VARIABLE CMAKE_SYSTEM_VERSION)
-    EXEC_PROGRAM(uname ARGS -p OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR)
-    IF(${CMAKE_SYSTEM_PROCESSOR} MATCHES "--help")
-      EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR)
-    ENDIF(${CMAKE_SYSTEM_PROCESSOR} MATCHES "--help")
-    IF(${CMAKE_SYSTEM_PROCESSOR} MATCHES "--help")
+    EXEC_PROGRAM(uname ARGS -p OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR
+      RETURN_VALUE val)
+    IF(${val} GREATER 0)
+      EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_PROCESSOR
+        RETURN_VALUE val)
+    ENDIF(${val} GREATER 0)
+    IF(${val} GREATER 0)
       SET(CMAKE_SYSTEM_PROCESSOR "unknown")
       SET(CMAKE_SYSTEM_PROCESSOR "unknown")
-    ENDIF(${CMAKE_SYSTEM_PROCESSOR} MATCHES "--help")
+    ENDIF(${val} GREATER 0)
     SET(CMAKE_UNAME ${CMAKE_UNAME} CACHE INTERNAL "uname command")
     SET(CMAKE_UNAME ${CMAKE_UNAME} CACHE INTERNAL "uname command")
     # processor may have double quote in the name, and that needs to be removed
     # processor may have double quote in the name, and that needs to be removed
     STRING(REGEX REPLACE "\"" "" CMAKE_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}")
     STRING(REGEX REPLACE "\"" "" CMAKE_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}")
+    STRING(REGEX REPLACE "/" "_" CMAKE_SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}")
   ENDIF(CMAKE_UNAME)
   ENDIF(CMAKE_UNAME)
 ELSE(UNIX)
 ELSE(UNIX)
   IF(WIN32)
   IF(WIN32)