[cmake-commits] alex committed CheckCSourceRuns.cmake 1.8 1.9 CheckCXXSourceRuns.cmake 1.4 1.5 FindThreads.cmake 1.14 1.15

cmake-commits at cmake.org cmake-commits at cmake.org
Tue Jul 31 13:30:13 EDT 2007


Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv14071

Modified Files:
	CheckCSourceRuns.cmake CheckCXXSourceRuns.cmake 
	FindThreads.cmake 
Log Message:

STYLE: don't use FIND_INCLUDE_FILE() but only FIND_INCLUDE_FILES() in
FindThreads.h

BUG: improve CheckC(XX)SourceRuns.cmake so that it works with cross
compiling, the return value has to go in the cache but shouldn't overwrite
the actual return value, and it should go only in the cache if we have a
result from try_run() otherwise we won't get here again if we have a result
later on

Alex


Index: CheckCXXSourceRuns.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CheckCXXSourceRuns.cmake,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- CheckCXXSourceRuns.cmake	13 Jul 2007 14:29:36 -0000	1.4
+++ CheckCXXSourceRuns.cmake	31 Jul 2007 17:30:10 -0000	1.5
@@ -32,7 +32,7 @@
       "${SOURCE}\n")
 
     MESSAGE(STATUS "Performing Test ${VAR}")
-    TRY_RUN(${VAR} ${VAR}_COMPILED
+    TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED
       ${CMAKE_BINARY_DIR}
       ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx
       COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
@@ -43,25 +43,31 @@
 
     # if it did not compile make the return value fail code of 1
     IF(NOT ${VAR}_COMPILED)
-      SET(${VAR} 1)
+      SET(${VAR}_EXITCODE 1)
     ENDIF(NOT ${VAR}_COMPILED)
     # if the return value was 0 then it worked
-    SET(result_var ${${VAR}})
-    IF("${result_var}" EQUAL 0)
+    IF("${${VAR}_EXITCODE}" EQUAL 0)
+      SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
       MESSAGE(STATUS "Performing Test ${VAR} - Success")
       FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
         "Performing C++ SOURCE FILE Test ${VAR} succeded with the following output:\n"
         "${OUTPUT}\n" 
         "Return value: ${${VAR}}\n"
         "Source file was:\n${SOURCE}\n")
-    ELSE("${result_var}" EQUAL 0)
+    ELSE("${${VAR}_EXITCODE}" EQUAL 0)
+      IF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES  "FAILED_TO_RUN")
+        SET(${VAR} "${${VAR}_EXITCODE}")
+      ELSE(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES  "FAILED_TO_RUN")
+        SET(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+      ENDIF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES  "FAILED_TO_RUN")
+
       MESSAGE(STATUS "Performing Test ${VAR} - Failed")
       FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log 
         "Performing C++ SOURCE FILE Test ${VAR} failed with the following output:\n"
         "${OUTPUT}\n"  
-        "Return value: ${${VAR}}\n"
+        "Return value: ${${VAR}_EXITCODE}\n"
         "Source file was:\n${SOURCE}\n")
-    ENDIF("${result_var}" EQUAL 0)
+    ENDIF("${${VAR}_EXITCODE}" EQUAL 0)
   ENDIF("${VAR}" MATCHES "^${VAR}$")
 ENDMACRO(CHECK_CXX_SOURCE_RUNS)
 

Index: FindThreads.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/FindThreads.cmake,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- FindThreads.cmake	1 Jun 2007 15:16:29 -0000	1.14
+++ FindThreads.cmake	31 Jul 2007 17:30:10 -0000	1.15
@@ -6,7 +6,6 @@
 #  CMAKE_USE_PTHREADS_INIT    - are we using pthreads
 #  CMAKE_HP_PTHREADS_INIT     - are we using hp pthreads
 
-INCLUDE (CheckIncludeFile)
 INCLUDE (CheckIncludeFiles)
 INCLUDE (CheckLibraryExists)
 
@@ -20,7 +19,7 @@
   SET(CMAKE_USE_SPROC_INIT 1)
 ELSE(CMAKE_HAVE_SPROC_H)
   # Do we have pthreads?
-  CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H)
+  CHECK_INCLUDE_FILES("pthread.h" CMAKE_HAVE_PTHREAD_H)
   IF(CMAKE_HAVE_PTHREAD_H)
     # We have pthread.h
     # Let's check for the library now.

Index: CheckCSourceRuns.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CheckCSourceRuns.cmake,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- CheckCSourceRuns.cmake	13 Jul 2007 14:29:36 -0000	1.8
+++ CheckCSourceRuns.cmake	31 Jul 2007 17:30:10 -0000	1.9
@@ -32,7 +32,7 @@
       "${SOURCE}\n")
 
     MESSAGE(STATUS "Performing Test ${VAR}")
-    TRY_RUN(${VAR} ${VAR}_COMPILED
+    TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED
       ${CMAKE_BINARY_DIR}
       ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.c
       COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
@@ -42,25 +42,32 @@
       COMPILE_OUTPUT_VARIABLE OUTPUT)
     # if it did not compile make the return value fail code of 1
     IF(NOT ${VAR}_COMPILED)
-      SET(${VAR} 1)
+      SET(${VAR}_EXITCODE 1)
     ENDIF(NOT ${VAR}_COMPILED)
     # if the return value was 0 then it worked
-    SET(result_var ${${VAR}})
-    IF("${result_var}" EQUAL 0)
+    IF("${${VAR}_EXITCODE}" EQUAL 0)
+      SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
       MESSAGE(STATUS "Performing Test ${VAR} - Success")
       FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
         "Performing C SOURCE FILE Test ${VAR} succeded with the following output:\n"
         "${OUTPUT}\n"
         "Return value: ${${VAR}}\n"
         "Source file was:\n${SOURCE}\n")
-    ELSE("${result_var}" EQUAL 0)
+    ELSE("${${VAR}_EXITCODE}" EQUAL 0)
+      IF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES  "FAILED_TO_RUN")
+        SET(${VAR} "${${VAR}_EXITCODE}")
+      ELSE(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES  "FAILED_TO_RUN")
+        SET(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+      ENDIF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES  "FAILED_TO_RUN")
+
       MESSAGE(STATUS "Performing Test ${VAR} - Failed")
       FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log 
         "Performing C SOURCE FILE Test ${VAR} failed with the following output:\n"
         "${OUTPUT}\n"
-        "Return value: ${result_var}\n"
+        "Return value: ${${VAR}_EXITCODE}\n"
         "Source file was:\n${SOURCE}\n")
-    ENDIF("${result_var}" EQUAL 0)
+
+    ENDIF("${${VAR}_EXITCODE}" EQUAL 0)
   ENDIF("${VAR}" MATCHES "^${VAR}$")
 ENDMACRO(CHECK_C_SOURCE_RUNS)
 



More information about the Cmake-commits mailing list