From 9d4d46b2c8264de1eb33ad96a2acb1e52020ae22 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 24 May 2019 20:51:46 +0200 Subject: Initial skeleton import --- meson.build | 29 +++++++++++++++++++ po/POTFILES | 1 + po/meson.build | 8 ++++++ src/nanolight.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 meson.build create mode 100644 po/POTFILES create mode 100644 po/meson.build create mode 100644 src/nanolight.c diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..d939dac --- /dev/null +++ b/meson.build @@ -0,0 +1,29 @@ +# Meson file for NanoLight +project('nanolight', 'c', + version : '0.1.0', + license : 'GPL3+', + default_options : ['buildtype=debugoptimized']) + +# Localisation +subdir('po') +add_project_arguments('-DLOCALEDIR="'+join_paths(get_option('prefix'), get_option('localedir'))+'"', + language : 'c') + +# Dependencies +gnome = import('gnome') +gdk_dep = dependency('gdk-3.0', required : true) +gtk_dep = dependency('gtk+-3.0', required : true) +glib_dep = dependency('glib-2.0', required : true) +gio_dep = dependency('gio-2.0', required : true) +cairo_dep = dependency('cairo', required : true) +pango_dep = dependency('pango', required : true) +pangocairo_dep = dependency('pangocairo', required : true) +cc = meson.get_compiler('c') +mdep = cc.find_library('m', required : false) + +# Main program +executable('nanolight', + ['src/nanolight.c', + ], + dependencies : [gtk_dep, mdep], + install : true) diff --git a/po/POTFILES b/po/POTFILES new file mode 100644 index 0000000..625c282 --- /dev/null +++ b/po/POTFILES @@ -0,0 +1 @@ +src/nanolight.c diff --git a/po/meson.build b/po/meson.build new file mode 100644 index 0000000..308dc06 --- /dev/null +++ b/po/meson.build @@ -0,0 +1,8 @@ +i18n = import('i18n') + +add_project_arguments('-DGETTEXT_PACKAGE="colloquium"', + language : 'c') + +i18n.gettext(meson.project_name(), + preset : 'glib', + args : '--directory='+meson.source_root()) diff --git a/src/nanolight.c b/src/nanolight.c new file mode 100644 index 0000000..c9f60d3 --- /dev/null +++ b/src/nanolight.c @@ -0,0 +1,86 @@ +/* + * nanolight.c + * + * Copyright © 2019 Thomas White + * + * This file is part of NanoLight. + * + * NanoLight is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + + +#include +#include +#include +#include +#include +#include +#include + +#include +#define _(x) gettext(x) + +static void quit_sig(GSimpleAction *action, GVariant *parameter, gpointer vp) +{ + GApplication *app = vp; + g_application_quit(app); +} + + +static void show_help(const char *s) +{ + printf(_("Syntax: %s [options]\n\n"), s); + printf(_("Theatrical lighting control program.\n\n" + " -h, --help Display this help message.\n")); +} + + +int main(int argc, char *argv[]) +{ + int c; + + /* Long options */ + const struct option longopts[] = { + {"help", 0, NULL, 'h'}, + {0, 0, NULL, 0} + }; + + /* Short options */ + while ((c = getopt_long(argc, argv, "h", longopts, NULL)) != -1) { + + switch (c) + { + case 'h' : + show_help(argv[0]); + return 0; + + case 0 : + break; + + default : + return 1; + } + + } + +#if !GLIB_CHECK_VERSION(2,36,0) + g_type_init(); +#endif + + bindtextdomain("colloquium", LOCALEDIR); + textdomain("colloquium"); + + return 0; +} -- cgit v1.2.3