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()