diff --git a/dbus/jackdbus.c b/dbus/jackdbus.c index 5f2000a3..60b2f436 100644 --- a/dbus/jackdbus.c +++ b/dbus/jackdbus.c @@ -35,6 +35,7 @@ #include #include "config.h" +#include "version.h" #include "jackdbus.h" #include "controller.h" @@ -899,7 +900,9 @@ main (int argc, char **argv) setup_sigsegv(); jack_info("------------------"); - jack_info("Controller activated. Version %s (%s) built on %s", jack_get_version_string(), JACK_VERSION, timestamp_str); + jack_info("jackdbus version %s built from %s on %s", JACK_VERSION, GIT_VERSION, timestamp_str); + jack_info("JACK server version %s", jack_get_version_string()); + jack_info("jackdbus controller activated."); if (!dbus_threads_init_default()) { diff --git a/dbus/wscript b/dbus/wscript index 5352ce74..b7280781 100644 --- a/dbus/wscript +++ b/dbus/wscript @@ -33,8 +33,6 @@ def options(opt): def configure(conf): - conf.define('JACK_VERSION', conf.env['JACK_VERSION']) - if not conf.check_cfg(package='dbus-1 >= 1.0.0', args='--cflags --libs', mandatory=False): print( Logs.colors.RED + 'ERROR !! jackdbus will not be built because libdbus-dev is missing' + Logs.colors.NORMAL diff --git a/wscript b/wscript index b798b18b..3a825057 100644 --- a/wscript +++ b/wscript @@ -25,12 +25,11 @@ import shutil import sys from waflib import Logs, Options, TaskGen +from waflib import Context from waflib.Build import BuildContext, CleanContext, InstallContext, UninstallContext -# see also common/JackConstants.h -VERSION = '2.22' -APPNAME = 'jack' -JACK_API_VERSION = '0.1.0' +VERSION = "2.22.1" +APPNAME = 'jackdbus' # these variables are mandatory ('/' are converted automatically) top = '.' @@ -155,14 +154,11 @@ def configure(conf): conf.load('autooptions') - conf.recurse('dbus') - conf.env['LIB_PTHREAD'] = ['pthread'] conf.env['LIB_DL'] = ['dl'] conf.env['LIB_RT'] = ['rt'] conf.env['LIB_M'] = ['m'] conf.env['LIB_STDC++'] = ['stdc++'] - conf.env['JACK_API_VERSION'] = JACK_API_VERSION conf.env['JACK_VERSION'] = VERSION conf.env['BINDIR'] = conf.env['PREFIX'] + '/bin' @@ -194,10 +190,21 @@ def configure(conf): conf.env.append_unique('CFLAGS', '-g') conf.env.append_unique('LINKFLAGS', '-g') + conf.define('JACK_VERSION', conf.env['JACK_VERSION']) conf.write_config_header('config.h', remove=False) + conf.recurse('dbus') + print() - print('LADI JACK ' + VERSION) + version_msg = APPNAME + "-" + VERSION + if os.access('version.h', os.R_OK): + data = open('version.h').read() + m = re.match(r'^#define GIT_VERSION "([^"]*)"$', data) + if m != None: + version_msg += " exported from " + m.group(1) + elif os.access('.git', os.R_OK): + version_msg += " git revision will be checked and eventually updated during build" + print(version_msg) conf.msg('Install prefix', conf.env['PREFIX'], color='CYAN') conf.msg('Library directory', conf.all_envs['']['LIBDIR'], color='CYAN') @@ -234,8 +241,37 @@ def configure(conf): print(Logs.colors.NORMAL, end=' ') print() +def git_ver(self): + bld = self.generator.bld + header = self.outputs[0].abspath() + if os.access('./version.h', os.R_OK): + header = os.path.join(os.getcwd(), out, "version.h") + shutil.copy('./version.h', header) + data = open(header).read() + m = re.match(r'^#define GIT_VERSION "([^"]*)"$', data) + if m != None: + self.ver = m.group(1) + Logs.pprint('BLUE', "tarball from git revision " + self.ver) + else: + self.ver = "tarball" + return + + if bld.srcnode.find_node('.git'): + self.ver = bld.cmd_and_log("LANG= git rev-parse HEAD", quiet=Context.BOTH).splitlines()[0] + if bld.cmd_and_log("LANG= git diff-index --name-only HEAD", quiet=Context.BOTH).splitlines(): + self.ver += "-dirty" + + Logs.pprint('BLUE', "git revision " + self.ver) + else: + self.ver = "unknown" + + fi = open(header, 'w') + fi.write('#define GIT_VERSION "%s"\n' % self.ver) + fi.close() def build(bld): + bld(rule=git_ver, target='version.h', update_outputs=True, always=True, ext_out=['.h']) + # process subfolders from here if bld.env['IS_LINUX'] or bld.env['IS_FREEBSD']: