diff options
Diffstat (limited to 'lib/kross/ConfigureChecks.cmake')
-rw-r--r-- | lib/kross/ConfigureChecks.cmake | 119 |
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 |