From d782b00711ddb3925738626e5509191932164975 Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 17 Sep 2013 00:59:37 +0100 Subject: [PATCH] Added git branch and revision to development builds --- Makefile.am | 65 ++++++++++++++++++++++++++---------------------- configure.ac | 9 +++++++ src/ui/console.c | 12 +++++++++ 3 files changed, 56 insertions(+), 30 deletions(-) diff --git a/Makefile.am b/Makefile.am index 45d8a9c0..9a4c96d5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,33 +1,18 @@ -bin_PROGRAMS = profanity -profanity_SOURCES = \ - src/contact.c src/contact.h src/log.c src/common.c \ - src/log.h src/profanity.c src/common.h \ - src/main.c src/profanity.h src/chat_session.c \ - src/chat_session.h src/muc.c src/muc.h src/jid.h src/jid.c \ - src/resource.c src/resource.h \ - src/xmpp/xmpp.h src/xmpp/capabilities.c src/xmpp/connection.c \ - src/xmpp/iq.c src/xmpp/message.c src/xmpp/presence.c src/xmpp/stanza.c \ - src/xmpp/stanza.h src/xmpp/message.h src/xmpp/iq.h src/xmpp/presence.h \ - src/xmpp/capabilities.h src/xmpp/connection.h \ - src/xmpp/roster.c src/xmpp/roster.h \ - src/xmpp/bookmark.c src/xmpp/bookmark.h \ - src/ui/ui.h src/ui/window.c src/ui/window.h src/ui/core.c \ - src/ui/titlebar.c src/ui/statusbar.c src/ui/inputwin.c \ - src/ui/console.c src/ui/notifier.c src/ui/notifier.h \ - src/ui/windows.c src/ui/windows.h \ - src/command/command.h src/command/command.c src/command/history.c \ - src/command/history.h src/tools/parser.c \ - src/tools/parser.h \ - src/tools/autocomplete.c src/tools/autocomplete.h \ - src/tools/history.c src/tools/history.h \ - src/tools/tinyurl.c src/tools/tinyurl.h \ - src/config/accounts.c src/config/accounts.h \ - src/config/preferences.c src/config/preferences.h \ - src/config/theme.c src/config/theme.h +if INCLUDE_GIT_VERSION +src/gitversion.c: .git/HEAD .git/index + rm -f src/gitversion.c src/gitversion.o + echo "#ifndef PROF_GIT_BRANCH" >> $@ + echo "#define PROF_GIT_BRANCH \"$(shell git rev-parse --symbolic-full-name --abbrev-ref HEAD)\"" >> $@ + echo "#endif" >> $@ + echo "#ifndef PROF_GIT_REVISION" >> $@ + echo "#define PROF_GIT_REVISION \"$(shell git log --pretty=format:'%h' -n 1)\"" >> $@ + echo "#endif" >> $@ -TESTS = tests/testsuite -check_PROGRAMS = tests/testsuite -tests_testsuite_SOURCES = \ +clean-local: + rm -f src/gitversion.c src/gitversion.o +endif + +core_sources = \ src/contact.c src/contact.h src/log.c src/common.c \ src/log.h src/profanity.c src/common.h \ src/profanity.h src/chat_session.c \ @@ -51,10 +36,30 @@ tests_testsuite_SOURCES = \ src/tools/tinyurl.c src/tools/tinyurl.h \ src/config/accounts.c src/config/accounts.h \ src/config/preferences.c src/config/preferences.h \ - src/config/theme.c src/config/theme.h \ + src/config/theme.c src/config/theme.h + +test_sources = \ tests/test_roster.c tests/test_common.c tests/test_history.c \ tests/test_autocomplete.c tests/testsuite.c tests/test_parser.c \ tests/test_jid.c + +main_source = src/main.c + +git_sources = \ + src/gitversion.c + +if INCLUDE_GIT_VERSION +with_git_sources = $(git_sources) $(core_sources) +else +with_git_sources = $(core_sources) +endif + +bin_PROGRAMS = profanity +profanity_SOURCES = $(main_source) $(with_git_sources) + +TESTS = tests/testsuite +check_PROGRAMS = tests/testsuite +tests_testsuite_SOURCES = $(with_git_sources) $(test_sources) tests_testsuite_LDADD = -lheadunit -lstdc++ man_MANS = docs/profanity.1 diff --git a/configure.ac b/configure.ac index a30c96d8..8468792c 100644 --- a/configure.ac +++ b/configure.ac @@ -4,6 +4,15 @@ AC_PREREQ([2.65]) AC_INIT([profanity], [0.4.0], [boothj5web@gmail.com]) PACKAGE_STATUS="development" + +## get git branch and revision if in development +if test "x$PACKAGE_STATUS" = xdevelopment; then + AM_CONDITIONAL([INCLUDE_GIT_VERSION], [true]) + AC_DEFINE_UNQUOTED([HAVE_GIT_VERSION], [1], [Include git info]) +else + AM_CONDITIONAL([INCLUDE_GIT_VERSION], [false]) +fi + AC_DEFINE_UNQUOTED([PACKAGE_STATUS], ["$PACKAGE_STATUS"], [Status of this build]) AC_CONFIG_SRCDIR([src/main.c]) AC_CONFIG_HEADERS([src/config.h]) diff --git a/src/ui/console.c b/src/ui/console.c index fe15d73f..17e97ca3 100644 --- a/src/ui/console.c +++ b/src/ui/console.c @@ -40,6 +40,10 @@ #include "xmpp/xmpp.h" #include "xmpp/bookmark.h" +#ifdef HAVE_GIT_VERSION +#include "gitversion.c" +#endif + static void _cons_splash_logo(void); void _show_roster_contacts(GSList *list, gboolean show_groups); @@ -167,7 +171,11 @@ cons_about(void) win_print_time(console, '-'); if (strcmp(PACKAGE_STATUS, "development") == 0) { +#ifdef HAVE_GIT_VERSION + wprintw(console->win, "Welcome to Profanity, version %sdev.%s.%s\n", PACKAGE_VERSION, PROF_GIT_BRANCH, PROF_GIT_REVISION); +#else wprintw(console->win, "Welcome to Profanity, version %sdev\n", PACKAGE_VERSION); +#endif } else { wprintw(console->win, "Welcome to Profanity, version %s\n", PACKAGE_VERSION); } @@ -1395,7 +1403,11 @@ _cons_splash_logo(void) wprintw(console->win, "\n"); win_print_time(console, '-'); if (strcmp(PACKAGE_STATUS, "development") == 0) { +#ifdef HAVE_GIT_VERSION + wprintw(console->win, "Version %sdev.%s.%s\n", PACKAGE_VERSION, PROF_GIT_BRANCH, PROF_GIT_REVISION); +#else wprintw(console->win, "Version %sdev\n", PACKAGE_VERSION); +#endif } else { wprintw(console->win, "Version %s\n", PACKAGE_VERSION); }