From 29ca70a6d534e1cd79963718c793ae740318cff1 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Fri, 10 Mar 2017 19:34:56 +0100 Subject: Initial plugin system --- main/CMakeLists.txt | 35 +++++++++++++++++++++++++++++++++++ main/src/main.vala | 20 ++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 main/CMakeLists.txt create mode 100644 main/src/main.vala (limited to 'main') diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt new file mode 100644 index 00000000..cfb14eed --- /dev/null +++ b/main/CMakeLists.txt @@ -0,0 +1,35 @@ +find_package(Vala REQUIRED) +find_package(PkgConfig REQUIRED) +include(${VALA_USE_FILE}) + +set(MAIN_PACKAGES + gee-0.8 + gio-2.0 + glib-2.0 + gtk+-3.0 + gmodule-2.0 + sqlite3 +) + +pkg_check_modules(MAIN REQUIRED ${MAIN_PACKAGES}) + +vala_precompile(MAIN_VALA_C +SOURCES + src/main.vala +CUSTOM_VAPIS + ${CMAKE_BINARY_DIR}/xmpp-vala/xmpp-vala.vapi + ${CMAKE_BINARY_DIR}/qlite/qlite.vapi + ${CMAKE_BINARY_DIR}/libdino/dino.vapi +PACKAGES + ${MAIN_PACKAGES} +OPTIONS + --target-glib=2.38 + -g + --thread +) + +set(CFLAGS ${VALA_CFLAGS} ${MAIN_CFLAGS} -I${CMAKE_BINARY_DIR}/xmpp-vala -I${CMAKE_BINARY_DIR}/qlite -I${CMAKE_BINARY_DIR}/libdino) +add_definitions(${CFLAGS}) +add_executable(dino ${MAIN_VALA_C}) +add_dependencies(dino dino-vapi) +target_link_libraries(dino libdino) \ No newline at end of file diff --git a/main/src/main.vala b/main/src/main.vala new file mode 100644 index 00000000..80f9bea5 --- /dev/null +++ b/main/src/main.vala @@ -0,0 +1,20 @@ +using Dino.Entities; +using Dino.Ui; + +namespace Dino { + +void main(string[] args) { + Gtk.init(ref args); + Dino.Ui.Application app = new Dino.Ui.Application(); + PluginLoader loader = new PluginLoader(); + foreach(string plugin in new string[]{}) { + try { + loader.load(plugin, app); + } catch (Dino.PluginError e) { + print(@"Error loading plugin $plugin: $(e.message)\n"); + } + } + app.run(args); +} + +} \ No newline at end of file -- cgit v1.2.3-70-g09d2