weechat/cmake/FindRuby.cmake

100 lines
3.0 KiB
CMake
Raw Normal View History

2007-05-21 16:30:04 +00:00
#
2014-01-01 00:14:12 +01:00
# Copyright (C) 2003-2014 Sébastien Helleu <flashcode@flashtux.org>
#
# This file is part of WeeChat, the extensible chat client.
#
# WeeChat is free software; you can redistribute it and/or modify
2007-05-21 16:30:04 +00:00
# it under the terms of the GNU General Public License as published by
2007-07-02 12:25:13 +00:00
# the Free Software Foundation; either version 3 of the License, or
2007-05-21 16:30:04 +00:00
# (at your option) any later version.
#
# WeeChat is distributed in the hope that it will be useful,
2007-05-21 16:30:04 +00:00
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with WeeChat. If not, see <http://www.gnu.org/licenses/>.
2007-05-21 16:30:04 +00:00
#
# - 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_DIRS = C flags to compile with ruby
# RUBY_LIBRARY_DIRS = linker flags to compile with ruby (found with pkg-config)
# RUBY_LIB = ruby library (found without pkg-config)
2007-05-21 16:30:04 +00:00
IF(RUBY_FOUND)
# Already in cache, be silent
SET(RUBY_FIND_QUIETLY TRUE)
ENDIF(RUBY_FOUND)
FIND_PACKAGE(PkgConfig)
IF(PKG_CONFIG_FOUND)
2014-03-16 11:26:47 +01:00
pkg_search_module(RUBY ruby-2.1 ruby-2.0 ruby-1.9 ruby-1.8)
ENDIF(PKG_CONFIG_FOUND)
2007-05-21 16:30:04 +00:00
IF(RUBY_FOUND)
2007-05-21 16:30:04 +00:00
SET(RUBY_LIB "")
MARK_AS_ADVANCED(RUBY_LIB)
2009-11-29 16:41:08 +01:00
ELSE(RUBY_FOUND)
2011-10-26 20:37:03 +02:00
FIND_PROGRAM(RUBY_EXECUTABLE
NAMES ruby1.9.3 ruby193 ruby1.9.2 ruby192 ruby1.9.1 ruby191 ruby1.9 ruby19 ruby1.8 ruby18 ruby
PATHS /usr/bin /usr/local/bin /usr/pkg/bin
2007-05-21 16:30:04 +00:00
)
2009-11-29 16:41:08 +01:00
IF(RUBY_EXECUTABLE)
2011-10-26 20:37:03 +02:00
EXECUTE_PROCESS(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubyhdrdir'] || RbConfig::CONFIG['archdir']"
OUTPUT_VARIABLE RUBY_ARCH_DIR
)
2007-05-21 16:30:04 +00:00
EXECUTE_PROCESS(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['arch']"
OUTPUT_VARIABLE RUBY_ARCH
)
2009-11-29 16:41:08 +01:00
EXECUTE_PROCESS(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['libdir']"
OUTPUT_VARIABLE RUBY_POSSIBLE_LIB_PATH
)
2007-05-21 16:30:04 +00:00
EXECUTE_PROCESS(
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubylibdir']"
OUTPUT_VARIABLE RUBY_RUBY_LIB_PATH
)
2011-10-26 20:37:03 +02:00
FIND_PATH(RUBY_INCLUDE_DIRS
NAMES ruby.h
PATHS ${RUBY_ARCH_DIR}
)
2011-10-26 20:37:03 +02:00
SET(RUBY_INCLUDE_ARCH "${RUBY_INCLUDE_DIRS}/${RUBY_ARCH}")
FIND_LIBRARY(RUBY_LIB
NAMES ruby-1.9.3 ruby1.9.3 ruby193 ruby-1.9.2 ruby1.9.2 ruby192 ruby-1.9.1 ruby1.9.1 ruby191 ruby1.9 ruby19 ruby1.8 ruby18 ruby
PATHS ${RUBY_POSSIBLE_LIB_PATH} ${RUBY_RUBY_LIB_PATH}
)
IF(RUBY_LIB AND RUBY_INCLUDE_DIRS)
SET(RUBY_FOUND TRUE)
ENDIF(RUBY_LIB AND RUBY_INCLUDE_DIRS)
SET(RUBY_INCLUDE_DIRS "${RUBY_INCLUDE_DIRS};${RUBY_INCLUDE_ARCH}")
MARK_AS_ADVANCED(
RUBY_INCLUDE_DIRS
RUBY_LIBRARY_DIRS
RUBY_LIB
)
ENDIF(RUBY_EXECUTABLE)
ENDIF(RUBY_FOUND)