mirror of
https://github.com/Aorimn/dislocker
synced 2026-06-08 10:24:29 +00:00
11013b491c
When ruby is installed on the target machine, compile dislocker to have bindings to it. This was done in the previous Makefile but not entirely in the cmakelists toolchain.
90 lines
2.6 KiB
CMake
90 lines
2.6 KiB
CMake
# Ruby cmake package
|
|
#
|
|
# Returns
|
|
# RUBY_FOUND
|
|
# RUBY_INCLUDE_DIRS
|
|
# RUBY_LIBRARIES
|
|
# RUBY_VERSION_MAJOR
|
|
# RUBY_VERSION_MINOR
|
|
# RUBY_VERSION_STRING
|
|
|
|
if(RUBY_FOUND)
|
|
set(RUBY_FIND_QUIETLY TRUE)
|
|
endif()
|
|
|
|
find_program(RUBY_EXECUTABLE
|
|
NAMES ruby2.2 ruby22 ruby2.1 ruby21 ruby2.0 ruby2 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
|
|
)
|
|
if(RUBY_EXECUTABLE)
|
|
execute_process(
|
|
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['MAJOR']"
|
|
OUTPUT_VARIABLE RUBY_VERSION_MAJOR
|
|
)
|
|
|
|
execute_process(
|
|
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['MINOR']"
|
|
OUTPUT_VARIABLE RUBY_VERSION_MINOR
|
|
)
|
|
|
|
execute_process(
|
|
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['TEENY']"
|
|
OUTPUT_VARIABLE RUBY_VERSION_TEENY
|
|
)
|
|
set(RUBY_VERSION_STRING ${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.${RUBY_VERSION_TEENY})
|
|
|
|
execute_process(
|
|
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubyhdrdir'] || RbConfig::CONFIG['archdir']"
|
|
OUTPUT_VARIABLE RUBY_ARCH_DIR
|
|
)
|
|
execute_process(
|
|
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['arch']"
|
|
OUTPUT_VARIABLE RUBY_ARCH
|
|
)
|
|
execute_process(
|
|
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['libdir']"
|
|
OUTPUT_VARIABLE RUBY_POSSIBLE_LIB_PATH
|
|
)
|
|
execute_process(
|
|
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['rubylibdir']"
|
|
OUTPUT_VARIABLE RUBY_LIB_PATH
|
|
)
|
|
execute_process(
|
|
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['archincludedir']"
|
|
OUTPUT_VARIABLE RUBY_ARCH_INC_DIR
|
|
)
|
|
execute_process(
|
|
COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['RUBY_SO_NAME']"
|
|
OUTPUT_VARIABLE RUBY_SO_NAME
|
|
)
|
|
|
|
find_path(RUBY_INCLUDE_DIRS
|
|
NAMES ruby.h ruby/config.h
|
|
PATHS ${RUBY_ARCH_DIR}
|
|
)
|
|
set(RUBY_INCLUDE_ARCH "${RUBY_INCLUDE_DIRS}/${RUBY_ARCH}")
|
|
find_library(RUBY_LIB
|
|
NAMES ${RUBY_SO_NAME}
|
|
PATHS ${RUBY_POSSIBLE_LIB_PATH} ${RUBY_RUBY_LIB_PATH}
|
|
)
|
|
|
|
if(RUBY_LIB AND RUBY_INCLUDE_DIRS)
|
|
set(RUBY_FOUND TRUE)
|
|
set(RUBY_INCLUDE_DIRS "${RUBY_INCLUDE_DIRS};${RUBY_INCLUDE_ARCH};${RUBY_ARCH_INC_DIR}/ruby-${RUBY_VERSION_STRING}")
|
|
set(RUBY_LIBRARIES ${RUBY_LIB})
|
|
endif()
|
|
|
|
if(RUBY_OLD_VERSION)
|
|
set(RUBY_FOUND FALSE)
|
|
set(RUBY_NOT_FOUND TRUE)
|
|
endif()
|
|
|
|
mark_as_advanced(
|
|
RUBY_INCLUDE_DIRS
|
|
RUBY_LIBRARIES
|
|
RUBY_LIB
|
|
RUBY_VERSION_MAJOR RUBY_VERSION_MINOR
|
|
RUBY_VERSION_STRING
|
|
)
|
|
endif()
|