From b2ce157052b67ed5c2c18a2ac98427ac30266f84 Mon Sep 17 00:00:00 2001 From: navarrop Date: Thu, 29 Apr 2010 14:07:48 +0000 Subject: [PATCH 1/1] Verification for Ruby binding. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7658 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- buildtools/Cmake/src/CMakeCompleteInFiles.txt | 57 +++++++------------ buildtools/Cmake/src/CMakeMakeExeLib.txt | 2 +- buildtools/Cmake/src/CMakePrintArgs.txt | 5 +- 3 files changed, 27 insertions(+), 37 deletions(-) diff --git a/buildtools/Cmake/src/CMakeCompleteInFiles.txt b/buildtools/Cmake/src/CMakeCompleteInFiles.txt index e55e0ad16a..e85eb9cd9f 100644 --- a/buildtools/Cmake/src/CMakeCompleteInFiles.txt +++ b/buildtools/Cmake/src/CMakeCompleteInFiles.txt @@ -53,40 +53,29 @@ CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT) set(CONTEXT_UCONTEXT 0) SET(CONTEXT_THREADS 0) -SET(HAVE_RUBY 0) -set(libruby "ruby1.8") + if(enable_ruby) include(FindRuby) - set(OKITOKI no) - foreach(path ${RUBY_INCLUDE_PATH}) - if(NOT OKITOKI) - set(RUBY_INCLUDE_PATH ${path}) - set(OKITOKI yes) - endif(NOT OKITOKI) - endforeach(path ${RUBY_INCLUDE_PATH}) - if(RUBY_INCLUDE_PATH) - find_library(RUBY_LIB_PATH_1 - NAMES ruby1.8 - PATHS ${RUBY_INCLUDE_PATH} - ) - if(RUBY_LIB_PATH_1) - string(REGEX REPLACE "libruby.*" "" RUBY_LIB_PATH_1 ${RUBY_LIB_PATH_1}) - SET(CMAKE_EXE_LINKER_FLAGS "-L${RUBY_LIB_PATH_1}") - endif(RUBY_LIB_PATH_1) - find_library(RUBY_LIB_PATH_2 - NAMES ruby.1.8 - PATHS ${RUBY_INCLUDE_PATH} - ) - if(RUBY_LIB_PATH_2) - set(libruby "ruby.1.8") - string(REGEX REPLACE "libruby.*" "" RUBY_LIB_PATH_2 ${RUBY_LIB_PATH_2}) - SET(CMAKE_EXE_LINKER_FLAGS "-L${RUBY_LIB_PATH_2}") - endif(RUBY_LIB_PATH_2) - - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${RUBY_INCLUDE_PATH} -fPIC ") - ADD_DEFINITIONS("-I${PROJECT_DIRECTORY}/src/bindings/ruby -I${PROJECT_DIRECTORY}/src/simix") - SET(HAVE_RUBY 1) - endif(RUBY_INCLUDE_PATH) + if(RUBY_LIBRARY) + if(RUBY_VERSION_MAJOR MATCHES "1" AND RUBY_VERSION_MINOR MATCHES "8") + string(REGEX REPLACE "libruby.*" "" LIB_RUBY_PATH "${RUBY_LIBRARY}") + string(REPLACE "${LIB_RUBY_PATH}lib" "" LIB_RUBY_VERSION "${RUBY_LIBRARY}") + string(REGEX REPLACE "[.].[a-z]$" "" LIB_RUBY_VERSION "${LIB_RUBY_VERSION}") + SET(CMAKE_EXE_LINKER_FLAGS "-L${LIB_RUBY_PATH}") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${RUBY_CONFIG_INCLUDE_DIR} ") #path to config.h + string(COMPARE EQUAL "${RUBY_INCLUDE_DIR}" "${RUBY_CONFIG_INCLUDE_DIR}" operation) + if(NOT operation) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${RUBY_INCLUDE_DIR} ") #path to ruby.h + endif(NOT operation) + ADD_DEFINITIONS("-I${PROJECT_DIRECTORY}/src/bindings/ruby -I${PROJECT_DIRECTORY}/src/simix") + SET(HAVE_RUBY 1) + else(RUBY_VERSION_MAJOR MATCHES "1" AND RUBY_VERSION_MINOR MATCHES "8") + message("Ruby binding need version 1.8.x actually version ${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.x") + SET(HAVE_RUBY 0) + endif(RUBY_VERSION_MAJOR MATCHES "1" AND RUBY_VERSION_MINOR MATCHES "8") + else(RUBY_LIBRARY) + SET(HAVE_RUBY 0) + endif(RUBY_LIBRARY) endif(enable_ruby) if(enable_tracing) @@ -310,10 +299,8 @@ if(enable_lua) set(HAVE_LUA 0) else(NOT LUA_LIB_PATH_1 AND NOT LUA_LIB_PATH_2 AND NOT LUA_LIB_PATH_3) string(REGEX REPLACE "liblua.*" "" lua_lib_path_to_use ${lua_lib_path_to_use}) - string(COMPARE EQUAL "-L${lua_lib_path_to_use}" "${CMAKE_EXE_LINKER_FLAGS}" operation) + string(REGEX MATCH "-L${lua_lib_path_to_use}" operation "${CMAKE_EXE_LINKER_FLAGS}") if(NOT operation) - message("${CMAKE_EXE_LINKER_FLAGS}") - message("-L${lua_lib_path_to_use}") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${lua_lib_path_to_use} ") endif(NOT operation) endif(NOT LUA_LIB_PATH_1 AND NOT LUA_LIB_PATH_2 AND NOT LUA_LIB_PATH_3) diff --git a/buildtools/Cmake/src/CMakeMakeExeLib.txt b/buildtools/Cmake/src/CMakeMakeExeLib.txt index 89210a058c..628da289a9 100644 --- a/buildtools/Cmake/src/CMakeMakeExeLib.txt +++ b/buildtools/Cmake/src/CMakeMakeExeLib.txt @@ -18,7 +18,7 @@ set(SIMGRID_DEP "-lm") set(SMPI_DEP "") if(HAVE_RUBY) - set(SIMGRID_DEP "${SIMGRID_DEP} -l${libruby} -module") + set(SIMGRID_DEP "${SIMGRID_DEP} -l${LIB_RUBY_VERSION} -module") exec_program("ln -sf ${PROJECT_DIRECTORY}/src/.libs/libsimgrid.so ${PROJECT_DIRECTORY}/src/bindings/ruby/libsimgrid.so" "${PROJECT_DIRECTORY}" OUTPUT_VARIABLE LIEN_OK) endif(HAVE_RUBY) diff --git a/buildtools/Cmake/src/CMakePrintArgs.txt b/buildtools/Cmake/src/CMakePrintArgs.txt index 0e80f83b12..65f7e3783e 100644 --- a/buildtools/Cmake/src/CMakePrintArgs.txt +++ b/buildtools/Cmake/src/CMakePrintArgs.txt @@ -69,7 +69,10 @@ if(enable_print_message) message("HAVE_VASPRINTF ${HAVE_VASPRINTF}") message("") - message("RUBY.H : ${RUBY_INCLUDE_PATH}") + message("RUBY.H : ${RUBY_INCLUDE_DIR}") + message("CONFIG.H : ${RUBY_CONFIG_INCLUDE_DIR}") + message("LIB_RUBY : ${LIB_RUBY_VERSION}") + message("RUBY_PATH : ${LIB_RUBY_PATH}") message("JNI.H : ${JAVA_INCLUDE_PATH}") message("JNI_MD.H : ${JAVA_INCLUDE_PATH2}") message("JAVAC : ${JAVA_COMPILE}") -- 2.20.1