From 5bf248399355582af49e83e59199fcb985210137 Mon Sep 17 00:00:00 2001 From: "R. Tyler Croy" Date: Sun, 8 Jan 2017 00:28:43 -0800 Subject: [PATCH] Embed the arun.glade file as a resource in the built-binary --- Makefile | 24 ++++++++++++++++++++++++ arun.gpr | 7 ++++++- arun.gresource.xml | 6 ++++++ src/.gitignore | 1 + src/arun.adb | 6 +++--- 5 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 Makefile create mode 100644 arun.gresource.xml create mode 100644 src/.gitignore diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..062f1fa --- /dev/null +++ b/Makefile @@ -0,0 +1,24 @@ + +GPRBUILD:=$(shell which gprbuild) +GPRCLEAN:=$(shell which gprclean) +EXE=obj/arun + +all: $(EXE) + +$(EXE): prepare + $(GPRBUILD) -Parun.gpr -cargs:c $(shell pkg-config --cflags gio-2.0) + +prepare: src/arun-resources.c + mkdir -p obj + +src/arun-resources.c: arun.gresource.xml arun.glade + glib-compile-resources --generate-source --target=$@ arun.gresource.xml + +run: all + ./$(EXE) + +clean: + $(GPRCLEAN) -Parun.gpr + rm -f src/arun-resources.c + +.PHONY: all clean prepare run diff --git a/arun.gpr b/arun.gpr index 6a5fb1a..84a23bf 100644 --- a/arun.gpr +++ b/arun.gpr @@ -2,17 +2,22 @@ with "gtkada"; project Arun is + for Languages use ("Ada", "C"); for Source_Dirs use ("src"); for Object_Dir use "obj"; for Main use ("main.adb"); + package Linker is + For Leading_Switches ("Ada") use ("arun-resources.o"); + end Linker; + package Builder is for Executable ("main.adb") use "arun"; end Builder; -- Enable Ada 2005. package Compiler is - for Switches ("ada") use ("-gnat2012"); + for Switches ("Ada") use ("-gnat2012"); end Compiler; end Arun; diff --git a/arun.gresource.xml b/arun.gresource.xml new file mode 100644 index 0000000..49e2e5b --- /dev/null +++ b/arun.gresource.xml @@ -0,0 +1,6 @@ + + + + arun.glade + + diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 0000000..064a8d8 --- /dev/null +++ b/src/.gitignore @@ -0,0 +1 @@ +*.c diff --git a/src/arun.adb b/src/arun.adb index 85ba772..d3162ae 100644 --- a/src/arun.adb +++ b/src/arun.adb @@ -30,9 +30,9 @@ package body Arun is Gtk_New (Builder); - Return_Code := Add_From_File (Builder => Builder, - Filename => "arun.glade", - Error => Error'Access); + Return_Code := Add_From_Resource (Builder => Builder, + Resource_Path => "/io/lasagna/arun/arun.glade", + Error => Error'Access); if Error /= null then Put_Line ("Error : " & Get_Message (Error)); Error_Free (Error);