Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Simplify the stack direction detection
[simgrid.git] / buildtools / Cmake / CompleteInFiles.cmake
index 7310817..ba8db2b 100644 (file)
@@ -634,20 +634,18 @@ if (NOT CMAKE_CROSSCOMPILING)
   try_run(RUN_makecontext_VAR COMPILE_makecontext_VAR
     ${CMAKE_BINARY_DIR}
     ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_prog/prog_stackgrowth.c
+    RUN_OUTPUT_VARIABLE stack
     )
-  if (RUN_makecontext_VAR)
-    file(READ "${CMAKE_BINARY_DIR}/conftestval" stack)
-    if(stack MATCHES "down")
-      set(PTH_STACKGROWTH "-1")
-    endif()
-    if(stack MATCHES "up")
-      set(PTH_STACKGROWTH "1")
-    endif()
-  endif()
 endif()
-if(NOT PTH_STACKGROWTH)
+if("${stack}" STREQUAL "down")
+  set(PTH_STACKGROWTH "-1")
+elseif("${stack}" STREQUAL "up")
+  set(PTH_STACKGROWTH "1")
+else()
   if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64")
     set(PTH_STACKGROWTH "-1")
+  elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "i686")
+    set(PTH_STACKGROWTH "-1")
   else()
     message(ERROR "Could not figure the stack direction.")
   endif()