aboutsummaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2017-03-10 19:34:56 +0100
committerMarvin W <git@larma.de>2017-03-10 19:50:34 +0100
commit29ca70a6d534e1cd79963718c793ae740318cff1 (patch)
tree295bc0a88b9f31f103bc970fbdcd2d940d6c83e2 /main
parentcf51e1dee22273366700c41a185c4bea343dddfe (diff)
downloaddino-29ca70a6d534e1cd79963718c793ae740318cff1.tar.gz
dino-29ca70a6d534e1cd79963718c793ae740318cff1.zip
Initial plugin system
Diffstat (limited to 'main')
-rw-r--r--main/CMakeLists.txt35
-rw-r--r--main/src/main.vala20
2 files changed, 55 insertions, 0 deletions
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