summaryrefslogtreecommitdiffstats
path: root/lib/kross/ConfigureChecks.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kross/ConfigureChecks.cmake')
-rw-r--r--lib/kross/ConfigureChecks.cmake119
1 files changed, 119 insertions, 0 deletions
diff --git a/lib/kross/ConfigureChecks.cmake b/lib/kross/ConfigureChecks.cmake
new file mode 100644
index 000000000..5949ee220
--- /dev/null
+++ b/lib/kross/ConfigureChecks.cmake
@@ -0,0 +1,119 @@
+###############################################################################
+# 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() \ No newline at end of file