diff options
Diffstat (limited to 'lib/kross')
-rw-r--r-- | lib/kross/CMakeLists.txt | 17 | ||||
-rw-r--r-- | lib/kross/ConfigureChecks.cmake | 119 | ||||
-rw-r--r-- | lib/kross/api/CMakeLists.txt | 38 | ||||
-rw-r--r-- | lib/kross/main/CMakeLists.txt | 39 | ||||
-rw-r--r-- | lib/kross/ruby/CMakeLists.txt | 35 | ||||
-rw-r--r-- | lib/kross/runner/CMakeLists.txt | 27 | ||||
-rw-r--r-- | lib/kross/test/CMakeLists.txt | 27 |
7 files changed, 302 insertions, 0 deletions
diff --git a/lib/kross/CMakeLists.txt b/lib/kross/CMakeLists.txt new file mode 100644 index 000000000..e083e027c --- /dev/null +++ b/lib/kross/CMakeLists.txt @@ -0,0 +1,17 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +tde_conditional_add_subdirectory(WITH_KROSS_PYTHON python) +tde_conditional_add_subdirectory(WITH_KROSS_RUBY ruby) + +add_subdirectory(api) +add_subdirectory(main) +add_subdirectory(runner) + +if (BUILD_TESTS) + add_subdirectory(test) +endif()
\ No newline at end of file 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 diff --git a/lib/kross/api/CMakeLists.txt b/lib/kross/api/CMakeLists.txt new file mode 100644 index 000000000..077b3bebf --- /dev/null +++ b/lib/kross/api/CMakeLists.txt @@ -0,0 +1,38 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(libkrossapi SHARED AUTOMOC + SOURCES + object.cpp variant.cpp list.cpp dict.cpp exception.cpp callable.cpp + eventaction.cpp eventsignal.cpp eventslot.cpp eventscript.cpp + qtobject.cpp script.cpp interpreter.cpp + LINK + tdecore-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +### Headers ################################################################### +install( + FILES + callable.h class.h dict.h eventaction.h event.h eventscript.h eventsignal.h + eventslot.h exception.h function.h interpreter.h list.h module.h object.h + proxy.h qtobject.h script.h value.h variant.h + DESTINATION ${INCLUDE_INSTALL_DIR}/kross/api +)
\ No newline at end of file diff --git a/lib/kross/main/CMakeLists.txt b/lib/kross/main/CMakeLists.txt new file mode 100644 index 000000000..3eee58de6 --- /dev/null +++ b/lib/kross/main/CMakeLists.txt @@ -0,0 +1,39 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kross/ + ${CMAKE_BINARY_DIR}/lib/kross/ + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Libraries ################################################################# +tde_add_library(libkrossmain SHARED AUTOMOC + SOURCES + krossconfig.cpp mainmodule.cpp scriptcontainer.cpp manager.cpp + scriptaction.cpp scriptguiclient.cpp wdgscriptsmanagerbase.ui + wdgscriptsmanager.cpp + LINK + tdecore-shared tdeio-shared tdeui-shared tdenewstuff-shared + libkrossapi-shared + DESTINATION ${LIB_INSTALL_DIR} +) + +### Headers ################################################################### +install( + FILES + krossconfig.h mainmodule.h manager.h scriptaction.h scriptcontainer.h + scriptguiclient.h wdgscriptsmanager.h + DESTINATION ${INCLUDE_INSTALL_DIR}/KOffice +)
\ No newline at end of file diff --git a/lib/kross/ruby/CMakeLists.txt b/lib/kross/ruby/CMakeLists.txt new file mode 100644 index 000000000..4ec25f67d --- /dev/null +++ b/lib/kross/ruby/CMakeLists.txt @@ -0,0 +1,35 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/lib/kross + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} + ${RUBY_INCLUDEDIR} + ${RUBY_INCLUDEDIR}/ruby + ${RUBY_ARCHINCLUDEDIR} + ${RUBY_ARCHINCLUDEDIR}/ruby +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +add_compile_options(${RUBY_LIBRUBYARG}) + +### Libraries ################################################################# +tde_add_kpart(krossruby SHARED AUTOMOC + SOURCES + rubyinterpreter.cpp rubyextension.cpp rubyscript.cpp rubymodule.cpp + rubywrapper.c + LINK + tdecore-shared libkrossapi-shared libkrossmain-shared + DESTINATION ${PLUGIN_INSTALL_DIR} +)
\ No newline at end of file diff --git a/lib/kross/runner/CMakeLists.txt b/lib/kross/runner/CMakeLists.txt new file mode 100644 index 000000000..7577d32e4 --- /dev/null +++ b/lib/kross/runner/CMakeLists.txt @@ -0,0 +1,27 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Programs ################################################################## +tde_add_executable(krossrunner AUTOMOC + SOURCES main.cpp + LINK + tdecore-shared tdeui-shared tdefx-shared tdeio-shared + tdetexteditor-shared libkrossapi-shared libkrossmain-shared + DESTINATION ${BIN_INSTALL_DIR} +)
\ No newline at end of file diff --git a/lib/kross/test/CMakeLists.txt b/lib/kross/test/CMakeLists.txt new file mode 100644 index 000000000..7068c6f54 --- /dev/null +++ b/lib/kross/test/CMakeLists.txt @@ -0,0 +1,27 @@ +############################################################################### +# Trinity KOffice # +# --------------- # +# This file is licensed under the terms of GNU GPL v3 or later. # +# Improvements and feedback are welcome. # +############################################################################### + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} +) + +### Programs ################################################################## +tde_add_executable(krosstest AUTOMOC + SOURCES + testobject.cpp testaction.cpp testplugin.cpp testwindow.cpp main.cpp + LINK + tdecore-shared tdeui-shared tdefx-shared dcop-shared tdetexteditor-shared + libkrossapi-shared libkrossmain-shared +)
\ No newline at end of file |