# # add_file "version.ml.in" # # patch "Makefile" # from [9a58ed88e76c8b30f9edd8377f93e8c445f0d7ed] # to [f7c76bdb8d89c784245a1217a3ae62bc7c055676] # # patch "main.ml" # from [ee04cdcfaf5e0fbf0e24f71be66c3a8bdcbb4640] # to [8159bc944a1ff286d7ca279944691d7e19a13177] # # patch "version.ml.in" # from [] # to [6ed5da3c42df26d52eb89d76153e90ae31520d9b] # ======================================================================== --- Makefile 9a58ed88e76c8b30f9edd8377f93e8c445f0d7ed +++ Makefile f7c76bdb8d89c784245a1217a3ae62bc7c055676 @@ -23,7 +23,7 @@ database.ml database.mli agraph.ml agraph.mli \ autocolor.ml autocolor.mli viz_style.ml viz_style.mli \ icon.ml unidiff.ml unidiff.mli \ - view.ml view.mli query.ml ui.ml main.ml + view.ml view.mli query.ml ui.ml version.ml main.ml C_OBJ = mlsqlite/ocaml-sqlite3.o \ glib/ocaml-gspawn.o glib/ocaml-giochannel.o glib/ocaml-misc.o \ @@ -36,7 +36,7 @@ OBJX = $(patsubst %.ml,%.cmx,$(filter %.ml, $(SRC))) DISTSRC = Makefile configure.ac config.make.in ocaml.m4 configure aclocal.m4 \ - monotone-viz.style.sample README INSTALL NEWS COPYING \ + monotone-viz.style.sample README INSTALL NEWS COPYING version.ml.in \ viz_misc.ml viz_misc.mli viz_types.ml viz_types.mli q.ml q.mli \ autocolor.ml autocolor.mli viz_style.ml viz_style.mli \ dot_types.mli dot_lexer.mll dot_parser.mly \ @@ -84,6 +84,11 @@ crypto/ocaml-openssl.o : CINCDIRS = -ccopt "$(CRYPTO_CFLAGS)" gnomecanvas_hack.o : CINCDIRS = -ccopt "$(GNOMECANVAS_CFLAGS)" +REVISION_FILE := $(shell test -r MT/revision && echo MT/revision) +REVISION_ID = $(if $(REVISION_FILE),$(shell cat $(REVISION_FILE))) +version.ml : version.ml.in $(REVISION_FILE) + sed -e 's/@REVISION@/$(REVISION_ID)/' -e 's/@VERSION@/$(VERSION)/' < $< > $@ + %.ml : %.mll $(OCAMLLEX) $< ======================================================================== --- main.ml ee04cdcfaf5e0fbf0e24f71be66c3a8bdcbb4640 +++ main.ml 8159bc944a1ff286d7ca279944691d7e19a13177 @@ -82,10 +82,17 @@ with Glib.Convert.Error _ -> MTopt_db db +let print_version () = + Printf.printf "monotone-viz %s (base revision: %s)\n" Version.version Version.revision ; + Printf.printf "Copyright (C) 2004-2005 Olivier Andrieu \n" ; + exit 0 + let parse_cli () = let anons = ref Q.empty in let aa = ref true in - let cli_args = [ "-noaa", Arg.Clear aa, "don't use an anti-aliased canvas" ] in + let cli_args = [ "-noaa", Arg.Clear aa, "don't use an anti-aliased canvas" ; + "--version", Arg.Unit print_version, "print version number and exit" ; + ] in let usg_msg = Printf.sprintf "usage: %s [options] [db [branch [revision]]]" (Filename.basename Sys.executable_name) in ======================================================================== --- version.ml.in +++ version.ml.in 6ed5da3c42df26d52eb89d76153e90ae31520d9b @@ -0,0 +1,2 @@ +let version = "@VERSION@" +let revision = "@REVISION@"