[cmake-commits] alex committed CMakeLists.txt 1.5 1.6

cmake-commits at cmake.org cmake-commits at cmake.org
Wed Jun 13 16:26:52 EDT 2007


Update of /cvsroot/CMake/CMake/Tests/BuildDepends
In directory public:/mounts/ram/cvs-serv29763

Modified Files:
	CMakeLists.txt 
Log Message:

COMP: fix test, in some cases stdout from bar was not captured correctly,
probably because the process was killed before the fflush() worked because
the busy loop blocked the processor (failing midworld test)

Alex


Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Tests/BuildDepends/CMakeLists.txt,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- CMakeLists.txt	23 May 2007 21:58:14 -0000	1.5
+++ CMakeLists.txt	13 Jun 2007 20:26:49 -0000	1.6
@@ -5,15 +5,20 @@
 # value.  The subdir Project contains the CMakelists.txt
 # and source files for the test project. 
 project(BuildDepends)
-make_directory(${BuildDepends_BINARY_DIR}/Project)
+
+file(REMOVE_RECURSE ${BuildDepends_BINARY_DIR}/Project)
+file(MAKE_DIRECTORY ${BuildDepends_BINARY_DIR}/Project)
+message("Creating Project/foo.cxx")
 write_file(${BuildDepends_BINARY_DIR}/Project/foo.cxx 
   "const char* foo() { return \"foo\";}" )
+
+message("Building project first time")
 try_compile(RESULT 
   ${BuildDepends_BINARY_DIR}/Project
   ${BuildDepends_SOURCE_DIR}/Project
   testRebuild
   OUTPUT_VARIABLE OUTPUT)
-IF("${CMAKE_GENERATOR}" MATCHES "Xcode")
+if("${CMAKE_GENERATOR}" MATCHES "Xcode")
   try_compile(RESULT 
     ${BuildDepends_BINARY_DIR}/Project
     ${BuildDepends_SOURCE_DIR}/Project
@@ -24,14 +29,13 @@
     ${BuildDepends_SOURCE_DIR}/Project
     testRebuild
     OUTPUT_VARIABLE OUTPUT)
-ENDIF("${CMAKE_GENERATOR}" MATCHES "Xcode")
+endif("${CMAKE_GENERATOR}" MATCHES "Xcode")
 
 if(NOT RESULT)
   message(SEND_ERROR "Could not build test project: ${OUTPUT}")
 endif(NOT RESULT)
 
 set(bar ${BuildDepends_BINARY_DIR}/Project/bar${CMAKE_EXECUTABLE_SUFFIX})
-message("${BuildDepends_BINARY_DIR}/Project/Debug/bar${CMAKE_EXECUTABLE_SUFFIX}")
 if(EXISTS 
     "${BuildDepends_BINARY_DIR}/Project/Debug/bar${CMAKE_EXECUTABLE_SUFFIX}" )
   message("found debug")
@@ -39,18 +43,27 @@
     "${BuildDepends_BINARY_DIR}/Project/Debug/bar${CMAKE_EXECUTABLE_SUFFIX}")
 endif(EXISTS 
   "${BuildDepends_BINARY_DIR}/Project/Debug/bar${CMAKE_EXECUTABLE_SUFFIX}")
-message("running ${bar}  ")
-execute_process(COMMAND ${bar} OUTPUT_VARIABLE out TIMEOUT 3)
+
+message("Running ${bar}  ")
+execute_process(COMMAND ${bar} OUTPUT_VARIABLE out RESULT_VARIABLE runResult)
 string(REGEX REPLACE "[\r\n]" " " out "${out}")
-message("${out}")
+message("Run result: ${runResult} Output: \"${out}\"")
+
 if("${out}" STREQUAL "foo ")
   message("Worked!")
 else("${out}" STREQUAL "foo ")
   message(SEND_ERROR "Project did not initially build properly: ${out}")
 endif("${out}" STREQUAL "foo ")
 
+message("Waiting 3 seconds...")
+# any additional argument will cause ${bar} to wait forever
+execute_process(COMMAND ${bar} -infinite TIMEOUT 3 OUTPUT_VARIABLE out)
+
+message("Modifying Project/foo.cxx")
 write_file(${BuildDepends_BINARY_DIR}/Project/foo.cxx
   "const char* foo() { return \"foo changed\";}" )
+
+message("Building project second time")
 try_compile(RESULT 
   ${BuildDepends_BINARY_DIR}/Project
   ${BuildDepends_SOURCE_DIR}/Project
@@ -58,7 +71,7 @@
   OUTPUT_VARIABLE OUTPUT)
 
 # Xcode is in serious need of help here
-IF("${CMAKE_GENERATOR}" MATCHES "Xcode")
+if("${CMAKE_GENERATOR}" MATCHES "Xcode")
   try_compile(RESULT 
     ${BuildDepends_BINARY_DIR}/Project
     ${BuildDepends_SOURCE_DIR}/Project
@@ -69,7 +82,7 @@
     ${BuildDepends_SOURCE_DIR}/Project
     testRebuild
     OUTPUT_VARIABLE OUTPUT)
-ENDIF("${CMAKE_GENERATOR}" MATCHES "Xcode")
+endif("${CMAKE_GENERATOR}" MATCHES "Xcode")
 
 if(NOT RESULT)
   message(SEND_ERROR "Could not build test project: ${OUTPUT}")
@@ -80,9 +93,10 @@
 endif(EXISTS 
   "${BuildDepends_BINARY_DIR}/Project/Debug/bar${CMAKE_EXECUTABLE_SUFFIX}")
 
-execute_process(COMMAND ${bar} OUTPUT_VARIABLE out TIMEOUT 3)
+message("Running ${bar}  ")
+execute_process(COMMAND ${bar} OUTPUT_VARIABLE out RESULT_VARIABLE runResult)
 string(REGEX REPLACE "[\r\n]" " " out "${out}")
-message("${out}")
+message("Run result: ${runResult} Output: \"${out}\"")
 
 if("${out}" STREQUAL "foo changed ")
   message("Worked!")



More information about the Cmake-commits mailing list