You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koffice/lib/kross/ConfigureChecks.cmake

119 lines
6.0 KiB
CMake

###############################################################################
# Trinity KOffice #
# --------------- #
# This file is licensed under the terms of GNU GPL v3 or later. #
# Improvements and feedback are welcome. #
###############################################################################
### Python ####################################################################
if (WITH_KROSS_PYTHON)
# find_package(Python3 COMPONENTS Interpreter Development)
# if (NOT Python3_FOUND)
# message(WARNING "Python developement files were not found, Python scripting support for "
# "KOffice will not be built. If you don't need Python scripting, you "
# "can ignore this message.")
message(WARNING "The Python bindings of Kross don't support Python3."
"Python scripting support for KOffice will not be built. If you don't "
"need Python scripting, you can ignore this message.")
set(WITH_KROSS_PYTHON OFF)
# endif()
endif()
if (WITH_KROSS_RUBY)
find_program(RUBY ruby)
if (NOT RUBY)
message(WARNING "The Ruby executable was not found. "
"Ruby scripting support for KOffice will not be built. If you don't "
"need Ruby scripting, you can ignore this message.")
set(WITH_KROSS_RUBY OFF)
else()
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MAJOR))"
OUTPUT_VARIABLE RUBY_MAJOR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MINOR))"
OUTPUT_VARIABLE RUBY_MINOR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(archdir))"
OUTPUT_VARIABLE RUBY_ARCHDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitearchdir))"
OUTPUT_VARIABLE RUBY_SITEARCHDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitedir))"
OUTPUT_VARIABLE RUBY_SITEDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(libdir))"
OUTPUT_VARIABLE RUBY_LIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitelibdir))"
OUTPUT_VARIABLE RUBY_SITELIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubylibdir))"
OUTPUT_VARIABLE RUBY_RUBYLIBDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(LIBRUBYARG_SHARED))"
OUTPUT_VARIABLE RUBY_LIBRUBYARG OUTPUT_STRIP_TRAILING_WHITESPACE)
###
if (RUBY_LIBRUBYARG)
set(RUBY_ENABLESHARED ON)
else()
set(RUBY_ENABLESHARED OFF)
endif()
###
set(RUBY_SERIES "${RUBY_MAJOR}.${RUBY_MINOR}")
set(RUBY_VERSION_DEFS "")
if (RUBY_SERIES VERSION_GREATER_EQUAL "1.9")
set(HAVE_RUBY_1_9 1)
set(RUBY_VERSION_DEFS "${RUBY_VERSION_DEFS} -DHAVE_RUBY_1_9")
endif()
if (RUBY_SERIES VERSION_GREATER_EQUAL "3.0")
set(HAVE_RUBY_3 1)
set(RUBY_VERSION_DEFS "${RUBY_VERSION_DEFS} -DHAVE_RUBY_3")
endif()
###
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyhdrdir))"
OUTPUT_VARIABLE RUBY_HAS_INCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
if (RUBY_HAS_INCLUDEDIR STREQUAL "true")
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyhdrdir))"
OUTPUT_VARIABLE RUBY_INCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyarchhdrdir))"
OUTPUT_VARIABLE RUBY_HAS_ARCHINCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
if (RUBY_HAS_ARCHINCLUDEDIR STREQUAL "true")
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyarchhdrdir))"
OUTPUT_VARIABLE RUBY_ARCHINCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
else()
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(arch))"
OUTPUT_VARIABLE RUBY_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
set(RUBY_ARCHINCLUDEDIR "${RUBY_INCLUDEDIR}/${RUBY_ARCH}")
endif()
set(RUBY_CFLAGS "-I${RUBY_INCLUDEDIR} -I${RUBY_ARCHINCLUDEDIR}")
else()
execute_process(COMMAND ${RUBY} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(archdir))"
OUTPUT_VARIABLE RUBY_INCLUDEDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
set(RUBY_CFLAGS "-I${RUBY_INCLUDEDIR}")
message("set RUBY_CFLAGS 2 ${RUBY_CFLAGS}")
endif()
endif()
###
if (NOT EXISTS "${RUBY_INCLUDEDIR}/ruby/config.h" AND
NOT EXISTS "${RUBY_ARCHINCLUDEDIR}/ruby/config.h")
message(WARNING "Ruby development files were not found, or Ruby <= 1.8.1 was found, "
"Ruby scripting support for KOffice will not be built. If you don't "
"need Ruby scripting, you can ignore this message.")
set(WITH_KROSS_RUBY OFF)
else()
message(STATUS "Ruby executable: ${RUBY}")
message(STATUS "Ruby archdir: ${RUBY_ARCHDIR}")
message(STATUS "Ruby sitearchdir: ${RUBY_SITEARCHDIR}")
message(STATUS "Ruby sitedir: ${RUBY_SITEDIR}")
message(STATUS "Ruby sitelibdir: ${RUBY_SITELIBDIR}")
message(STATUS "Ruby libdir: ${RUBY_LIBDIR}")
message(STATUS "Ruby includedir: ${RUBY_INCLUDEDIR}")
message(STATUS "Ruby librubyarg: ${RUBY_LIBRUBYARG}")
message(STATUS "Ruby cflags: ${RUBY_CFLAGS}")
endif()
endif()