From deddb4b8e96237bf22d4b3f851f832913a9741fd Mon Sep 17 00:00:00 2001 From: "Gergely POLONKAI (W00d5t0ck)" Date: Sun, 22 Sep 2013 10:32:15 +0200 Subject: [PATCH] Empty skeleton project --- Makefile.am | 0 README | 0 autogen.sh | 0 configure.ac | 0 data/Makefile.am | 0 data/hello-application.desktop.in.in | 0 data/icons/16x16/hello-application.png | 0 data/icons/22x22/hello-application.png | 0 data/icons/24x24/hello-application.png | 0 data/icons/256x256/hello-application.png | 0 data/icons/32x32/hello-application.png | 0 data/icons/48x48/hello-application.png | 0 data/icons/Makefile.am | 0 data/icons/hello-application.svg | 0 data/libhello-application.pc.in | 0 .../org.example.hello-application.gschema.xml | 0 docs/Makefile.am | 0 docs/gnome-autotools.xml | 205 ++++++++++++++++++ docs/help/C/index.page | 0 docs/help/Makefile.am | 0 docs/help/en_GB/en_GB.po | 0 docs/help/hello-application.omf.in | 0 .../libhello-application/Makefile.am | 0 libhello-application/Makefile.am | 0 libhello-application/hello-widget-private.h | 0 libhello-application/hello-widget.c | 0 libhello-application/hello-widget.h | 0 po/LINGUAS | 0 po/POTFILES.in | 0 po/en_GB.po | 0 src/Makefile.am | 0 src/hello-app.c | 0 src/hello-app.h | 0 src/hello-main.c | 0 src/hello-preferences.c | 0 src/hello-preferences.h | 0 src/hello-settings.c | 0 src/hello-settings.h | 0 src/hello-window.c | 0 src/hello-window.h | 0 40 files changed, 205 insertions(+) create mode 100644 Makefile.am create mode 100644 README create mode 100644 autogen.sh create mode 100644 configure.ac create mode 100644 data/Makefile.am create mode 100644 data/hello-application.desktop.in.in create mode 100644 data/icons/16x16/hello-application.png create mode 100644 data/icons/22x22/hello-application.png create mode 100644 data/icons/24x24/hello-application.png create mode 100644 data/icons/256x256/hello-application.png create mode 100644 data/icons/32x32/hello-application.png create mode 100644 data/icons/48x48/hello-application.png create mode 100644 data/icons/Makefile.am create mode 100644 data/icons/hello-application.svg create mode 100644 data/libhello-application.pc.in create mode 100644 data/org.example.hello-application.gschema.xml create mode 100644 docs/Makefile.am create mode 100644 docs/gnome-autotools.xml create mode 100644 docs/help/C/index.page create mode 100644 docs/help/Makefile.am create mode 100644 docs/help/en_GB/en_GB.po create mode 100644 docs/help/hello-application.omf.in create mode 100644 docs/references/libhello-application/Makefile.am create mode 100644 libhello-application/Makefile.am create mode 100644 libhello-application/hello-widget-private.h create mode 100644 libhello-application/hello-widget.c create mode 100644 libhello-application/hello-widget.h create mode 100644 po/LINGUAS create mode 100644 po/POTFILES.in create mode 100644 po/en_GB.po create mode 100644 src/Makefile.am create mode 100644 src/hello-app.c create mode 100644 src/hello-app.h create mode 100644 src/hello-main.c create mode 100644 src/hello-preferences.c create mode 100644 src/hello-preferences.h create mode 100644 src/hello-settings.c create mode 100644 src/hello-settings.h create mode 100644 src/hello-window.c create mode 100644 src/hello-window.h diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..e69de29 diff --git a/README b/README new file mode 100644 index 0000000..e69de29 diff --git a/autogen.sh b/autogen.sh new file mode 100644 index 0000000..e69de29 diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..e69de29 diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 0000000..e69de29 diff --git a/data/hello-application.desktop.in.in b/data/hello-application.desktop.in.in new file mode 100644 index 0000000..e69de29 diff --git a/data/icons/16x16/hello-application.png b/data/icons/16x16/hello-application.png new file mode 100644 index 0000000..e69de29 diff --git a/data/icons/22x22/hello-application.png b/data/icons/22x22/hello-application.png new file mode 100644 index 0000000..e69de29 diff --git a/data/icons/24x24/hello-application.png b/data/icons/24x24/hello-application.png new file mode 100644 index 0000000..e69de29 diff --git a/data/icons/256x256/hello-application.png b/data/icons/256x256/hello-application.png new file mode 100644 index 0000000..e69de29 diff --git a/data/icons/32x32/hello-application.png b/data/icons/32x32/hello-application.png new file mode 100644 index 0000000..e69de29 diff --git a/data/icons/48x48/hello-application.png b/data/icons/48x48/hello-application.png new file mode 100644 index 0000000..e69de29 diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am new file mode 100644 index 0000000..e69de29 diff --git a/data/icons/hello-application.svg b/data/icons/hello-application.svg new file mode 100644 index 0000000..e69de29 diff --git a/data/libhello-application.pc.in b/data/libhello-application.pc.in new file mode 100644 index 0000000..e69de29 diff --git a/data/org.example.hello-application.gschema.xml b/data/org.example.hello-application.gschema.xml new file mode 100644 index 0000000..e69de29 diff --git a/docs/Makefile.am b/docs/Makefile.am new file mode 100644 index 0000000..e69de29 diff --git a/docs/gnome-autotools.xml b/docs/gnome-autotools.xml new file mode 100644 index 0000000..46e1450 --- /dev/null +++ b/docs/gnome-autotools.xml @@ -0,0 +1,205 @@ + + + + + Using the GNU Auototools toolset for writing GNOME-related + software + + + Gergely + + Polonkai + + + September 22, 2013 + + + Configuring the Autotools toolset to suffice for GNOME Software + development + + + + 2013 + + Gergely Polonkai + + + + This work is distributed under a CreativeCommons Attribution-Share + Alike 3.0 Unported license. + + + + + I dedicate this article to all the GNOME Devs, + who don't really seem to like writing documentation. I feel for them, as I + was many times in the same shoes. I hope you get some neat documentors + soon! + + + + Preface + + While developing my first application for the GNOME Desktop, one of + my greatest problems was that the use of + Autotools is not documented for this use case. + The GNOME people have several (somewhat) internal protocols they follow, + and they also developed some helper M4 functions, but their use is hardly + documented, if documented at all. + + After digging through the sources of many projects, I came to a + better understanding of Autotools, the + freedesktop.org standards, and GNOME itself, + and learned about application writing best practices. But most + importantly, I came to the decision to write this tutorial, so no other + developers will have to suffer from this problem. + + + + Terms and Assumptions + + Although I assume basic knowledge of + Autotools throughout this document, I will try + my best to go into the details, so even beginners will have chance to + build good Makefiles. Also, I will use a sample + GNOME'ish C program, HelloApplication as an + example. + + This article is not some sacred text. It contains my (independent + developer, even independent of GNOME in some ways) + knowledge of the topic. You don't have to follow every little step to + write good software at all. + + + + The Big Picture + +
+ Our application's goal + + The goal of this application is two-fold. First of all, it + displays a widget defined in a library called + libhello-application. It does this in a neat + little GtkWindow, with its own icon, and in a + localized manner. You can set some preferences in the Preferences + window, which is stored in GSettings, and if + something is not clear, you can turn to the application's + Yelp help files. Oh, and as + libhello-application's widget is pretty, we + decided to make it available to other applications, so we also provide a + pkgconfig definitions file, and a + GTK-Doc documentation for that. +
+ +
+ Directory structure + + The directory structure of our application is as follows. + + + Please note that / in this case don't refer + to the filesystem root, but the project root! + + + data/ + icons/ + 16x16/ + hello-application.png + 22x22/ + hello-application.png + 24x24/ + hello-application.png + 32x32/ + hello-application.png + 48x48/ + hello-application.png + 256x256/ + hello-application.png + hello-application.svg + Makefile.am + hello-application.desktop.in.in + libhello-application.pc.in + org.example.helloapplication.gschema.xml + Makefile.am +docs/ + help/ + C/ + index.page + en_GB/ + en_GB.po + hello-application.omf.in + Makefile.am + references/ + libhello-application/ + libhello-application/Makefile.am + Makefile.am +libhello-application/ + hello-widget.c + hello-widget.h + hello-widget-private.h + Makefile.am +po/ + LINGUAS + POTFILES.in + en_GB.po +src/ + hello-app.c + hello-app.h + hello-preferences.c + hello-preferences.h + hello-settings.c + hello-settings.h + hello-window.c + hello-window.h + main.c +Makefile.am +README +autogen.sh +configure.ac + + Pretty crowded, huh? And after you run the + Autotools magic, it will become much more + crowded, trust me! +
+ +
+ Why so much icons? + + Short answer: the freedesktop.org + standards suggest them. + + Long answer: All icons have their own functionality. For example, + 16x16 icons are for small application menus, like the one in + WindowMaker, and it is also used by some + window managers to decorate windows (like the one on + Windows systems). 48x48 are the standard icon + size for the GNOME Shell application grid. + 256x256 icons will be usually used on systems used by visually impaired + people. +
+
+ + + The Source Tree + + Our application is divided into two parts. The first one is + libhello-application/, which provides + HelloWidget. + + + + The Build System + + The base of our operations is the / directory, which is often + referenced to as $(top_srcdir). The Makefile.am in this directory usually + contains nothing more than a SUBDIRS variable, which will instruct make to + recurse into those directories. + +
+ + + <para/> + </section> + </chapter> +</book> diff --git a/docs/help/C/index.page b/docs/help/C/index.page new file mode 100644 index 0000000..e69de29 diff --git a/docs/help/Makefile.am b/docs/help/Makefile.am new file mode 100644 index 0000000..e69de29 diff --git a/docs/help/en_GB/en_GB.po b/docs/help/en_GB/en_GB.po new file mode 100644 index 0000000..e69de29 diff --git a/docs/help/hello-application.omf.in b/docs/help/hello-application.omf.in new file mode 100644 index 0000000..e69de29 diff --git a/docs/references/libhello-application/Makefile.am b/docs/references/libhello-application/Makefile.am new file mode 100644 index 0000000..e69de29 diff --git a/libhello-application/Makefile.am b/libhello-application/Makefile.am new file mode 100644 index 0000000..e69de29 diff --git a/libhello-application/hello-widget-private.h b/libhello-application/hello-widget-private.h new file mode 100644 index 0000000..e69de29 diff --git a/libhello-application/hello-widget.c b/libhello-application/hello-widget.c new file mode 100644 index 0000000..e69de29 diff --git a/libhello-application/hello-widget.h b/libhello-application/hello-widget.h new file mode 100644 index 0000000..e69de29 diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..e69de29 diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..e69de29 diff --git a/po/en_GB.po b/po/en_GB.po new file mode 100644 index 0000000..e69de29 diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..e69de29 diff --git a/src/hello-app.c b/src/hello-app.c new file mode 100644 index 0000000..e69de29 diff --git a/src/hello-app.h b/src/hello-app.h new file mode 100644 index 0000000..e69de29 diff --git a/src/hello-main.c b/src/hello-main.c new file mode 100644 index 0000000..e69de29 diff --git a/src/hello-preferences.c b/src/hello-preferences.c new file mode 100644 index 0000000..e69de29 diff --git a/src/hello-preferences.h b/src/hello-preferences.h new file mode 100644 index 0000000..e69de29 diff --git a/src/hello-settings.c b/src/hello-settings.c new file mode 100644 index 0000000..e69de29 diff --git a/src/hello-settings.h b/src/hello-settings.h new file mode 100644 index 0000000..e69de29 diff --git a/src/hello-window.c b/src/hello-window.c new file mode 100644 index 0000000..e69de29 diff --git a/src/hello-window.h b/src/hello-window.h new file mode 100644 index 0000000..e69de29