From d54a7bfecf1bc8ecb30aee812c42f45e4da6d995 Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Wed, 4 Oct 2006 15:54:25 -0400 Subject: ENH: apply patch so that the config values from ruby are used to determine the additional locations (see #3297) Alex --- Modules/FindRuby.cmake | 60 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/Modules/FindRuby.cmake b/Modules/FindRuby.cmake index 5052614..f4f30c2 100644 --- a/Modules/FindRuby.cmake +++ b/Modules/FindRuby.cmake @@ -1,35 +1,55 @@ -# - Find ruby -# This module finds if RUBY is installed and determines where the include files +# - Find Ruby +# This module finds if Ruby is installed and determines where the include files # and libraries are. It also determines what the name of the library is. This # code sets the following variables: # # RUBY_INCLUDE_PATH = path to where ruby.h can be found # RUBY_EXECUTABLE = full path to the ruby binary -# -SET(RUBY_POSSIBLE_INCLUDE_PATHS - /usr/lib/ruby/1.8/i386-linux - ) +# Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. +# See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. -SET(RUBY_POSSIBLE_LIB_PATHS - /usr/lib - ) -FIND_PATH(RUBY_INCLUDE_PATH ruby.h - ${RUBY_POSSIBLE_INCLUDE_PATHS}) +if(RUBY_LIBRARY AND RUBY_INCLUDE_PATH) + # Already in cache, be silent + set(RUBY_FIND_QUIETLY TRUE) +endif (RUBY_LIBRARY AND RUBY_INCLUDE_PATH) + +# RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'` +# RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'` +# RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'` +# RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'` +# RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'` + +FIND_PROGRAM(RUBY_EXECUTABLE NAMES ruby ruby1.8 ruby18 ) + +EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts Config::CONFIG['archdir']" + OUTPUT_VARIABLE RUBY_ARCH_DIR) + + +EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts Config::CONFIG['libdir']" + OUTPUT_VARIABLE RUBY_POSSIBLE_LIB_PATH) + +EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts Config::CONFIG['rubylibdir']" + OUTPUT_VARIABLE RUBY_RUBY_LIB_PATH) + +# remove the new lines from the output by replacing them with empty strings +STRING(REPLACE "\n" "" RUBY_ARCH_DIR "${RUBY_ARCH_DIR}") +STRING(REPLACE "\n" "" RUBY_POSSIBLE_LIB_PATH "${RUBY_POSSIBLE_LIB_PATH}") +STRING(REPLACE "\n" "" RUBY_RUBY_LIB_PATH "${RUBY_RUBY_LIB_PATH}") + + +FIND_PATH(RUBY_INCLUDE_PATH + NAMES ruby.h + PATHS + ${RUBY_ARCH_DIR} + /usr/lib/ruby/1.8/i586-linux-gnu/ ) FIND_LIBRARY(RUBY_LIBRARY - NAMES ruby1.8 - PATHS ${RUBY_POSSIBLE_LIB_PATHS} + NAMES ruby + PATHS ${RUBY_POSSIBLE_LIB_PATH} ) -FIND_PROGRAM(RUBY_EXECUTABLE - NAMES ruby1.8 - PATHS - /usr/bin - /usr/local/bin -) - MARK_AS_ADVANCED( RUBY_EXECUTABLE RUBY_LIBRARY -- cgit v0.12