From 35dbcf2c7c7611431a119c4543e605b1d7e5a776 Mon Sep 17 00:00:00 2001 From: navarrop Date: Wed, 14 Apr 2010 07:16:26 +0000 Subject: [PATCH] Enable launch cmake in different directories. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7559 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- CMakeLists.txt | 5 ++-- buildtools/Cmake/src/CMakeCompleteInFiles.txt | 26 +++++++++++-------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0cb1bd6570..f889b7f560 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,10 +14,11 @@ find_path(GCOV_PATH NAMES gcov PATHS NO_DEFAULT_PATHS) find_path(VALGRIND_PATH NAMES valgrind PATHS NO_DEFAULT_PATHS) ### AUTO DETECT THE PROJECT_DIRECTORY -exec_program("${PWD_EXE}" ARGS "| ${SED_EXE} 's/\\/Cmake//g'" OUTPUT_VARIABLE PROJECT_DIRECTORY) +message("Project_BINARY_DIR : ${Project_BINARY_DIR}") +message("CMAKE_HOME_DIRECTORY : ${CMAKE_HOME_DIRECTORY}") ### SET THE PROJECT_DIRECTORY -#SET(PROJECT_DIRECTORY "/home/navarrop/Bureau/simgrid-trunk") +SET(PROJECT_DIRECTORY "${CMAKE_HOME_DIRECTORY}") ### Set some variables for Cmake SET(PROJECT_SOURCE_DIRECTORY "${PROJECT_DIRECTORY}/src") diff --git a/buildtools/Cmake/src/CMakeCompleteInFiles.txt b/buildtools/Cmake/src/CMakeCompleteInFiles.txt index a64286ba67..a81b494c81 100644 --- a/buildtools/Cmake/src/CMakeCompleteInFiles.txt +++ b/buildtools/Cmake/src/CMakeCompleteInFiles.txt @@ -180,12 +180,13 @@ try_run(RUN_mcsc_VAR COMPILE_mcsc_VAR ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_AC_CHECK_MCSC.c COMPILE_DEFINITIONS "${mcsc_flags}" ) -file(READ "${PROJECT_DIRECTORY}/conftestval" mcsc) -if(mcsc MATCHES "yes") +file(READ "${Project_BINARY_DIR}/conftestval" mcsc) +STRING(REPLACE "\n" "" mcsc ${mcsc}) +if(mcsc) set(mcsc "yes") -elseif(mcsc MATCHES "yes") +elseif(mcsc) set(mcsc "no") -endif(mcsc MATCHES "yes") +endif(mcsc) if(mcsc MATCHES "no" AND pthread) if(HAVE_WINDOWS_H) @@ -221,9 +222,9 @@ endif(with_context MATCHES "auto") if(with_context MATCHES "ucontext") set(with_context_ok 1) - if(mcsc MATCHES "yes") + if(mcsc) set(CONTEXT_UCONTEXT 1) - else(mcsc MATCHES "yes") + else(mcsc) if(windows_context MATCHES "yes") set(with_context "windows") message("with_context ucontext change to windows") @@ -231,7 +232,7 @@ if(with_context MATCHES "ucontext") set(with_context "pthread") message("with_context ucontext change to pthread") endif(windows_context MATCHES "yes") - endif(mcsc MATCHES "yes") + endif(mcsc) endif(with_context MATCHES "ucontext") if(with_context MATCHES "pthread") @@ -435,9 +436,12 @@ if(HAVE_MAKECONTEXT) COMPILE_DEFINITIONS "${makecontext_CPPFLAGS} ${makecontext_CPPFLAGS_2}" ) - - exec_program("${SED_EXE}" ARGS "-e 's;,.*$;;' ${PROJECT_DIRECTORY}/conftestval" OUTPUT_VARIABLE "makecontext_addr") - exec_program("${SED_EXE}" ARGS "-e 's;^.*,;;' ${PROJECT_DIRECTORY}/conftestval" OUTPUT_VARIABLE "makecontext_size") + file(READ ${Project_BINARY_DIR}/conftestval MAKECONTEXT_ADDR_SIZE) + string(REPLACE "\n" "" MAKECONTEXT_ADDR_SIZE "${MAKECONTEXT_ADDR_SIZE}") + string(REGEX MATCH ;^.*,;MAKECONTEXT_ADDR "${MAKECONTEXT_ADDR_SIZE}") + string(REGEX MATCH ;,.*$; MAKECONTEXT_SIZE "${MAKECONTEXT_ADDR_SIZE}") + string(REPLACE "," "" makecontext_addr "${MAKECONTEXT_ADDR}") + string(REPLACE "," "" makecontext_size "${MAKECONTEXT_SIZE}") set(pth_skaddr_makecontext "#define pth_skaddr_makecontext(skaddr,sksize) (${makecontext_addr})") set(pth_sksize_makecontext "#define pth_sksize_makecontext(skaddr,sksize) (${makecontext_size})") @@ -451,7 +455,7 @@ endif(HAVE_MAKECONTEXT) ${PROJECT_DIRECTORY} ${PROJECT_DIRECTORY}/buildtools/Cmake/prog_test/prog_stackgrowth.c ) -file(READ "${PROJECT_DIRECTORY}/conftestval" stack) +file(READ "${Project_BINARY_DIR}/conftestval" stack) if(stack MATCHES "down") set(PTH_STACKGROWTH "-1") endif(stack MATCHES "down") -- 2.20.1