summaryrefslogtreecommitdiffstats
path: root/Modules/FindRuby.cmake
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2006-10-04 19:54:25 (GMT)
committerAlexander Neundorf <neundorf@kde.org>2006-10-04 19:54:25 (GMT)
commitd54a7bfecf1bc8ecb30aee812c42f45e4da6d995 (patch)
tree1315fb68a79c091ff3c8032d2e01cdea33aae564 /Modules/FindRuby.cmake
parent2dfa2ba888bb3f1ea5dd5eedf84a3c5b23bdb202 (diff)
downloadCMake-d54a7bfecf1bc8ecb30aee812c42f45e4da6d995.zip
CMake-d54a7bfecf1bc8ecb30aee812c42f45e4da6d995.tar.gz
CMake-d54a7bfecf1bc8ecb30aee812c42f45e4da6d995.tar.bz2
ENH: apply patch so that the config values from ruby are used to determine
the additional locations (see #3297) Alex
Diffstat (limited to 'Modules/FindRuby.cmake')
-rw-r--r--Modules/FindRuby.cmake60
1 files 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