# HG changeset patch # User Alpar Juttner # Date 1222069043 -3600 # Node ID b4784a66a8e6c7069d9a0af4250d0055e435be75 # Parent cea3cb3bbcd76d475c4b32ff4cde24f34198d3fa# Parent 0821fea54d53f8c5ee78ed349425e7b5c3edfe8f Merge diff -r cea3cb3bbcd7 -r b4784a66a8e6 CMakeLists.txt --- a/CMakeLists.txt Sun Sep 21 18:26:25 2008 +0100 +++ b/CMakeLists.txt Mon Sep 22 08:37:23 2008 +0100 @@ -1,16 +1,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -#EXECUTE_PROCESS( -# COMMAND hg id -i -# OUTPUT_VARIABLE HG_REVISION -# OUTPUT_STRIP_TRAILING_WHITESPACE) - SET(PROJECT_NAME "LEMON") -SET(PROJECT_VERSION_MAJOR "0") -SET(PROJECT_VERSION_MINOR "99") -SET(PROJECT_VERSION_PATCH "0") -SET(PROJECT_VERSION - "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}") +SET(PROJECT_VERSION "hg-tip" CACHE STRING "The version string.") PROJECT(${PROJECT_NAME}) @@ -39,15 +30,12 @@ "LEMON - Library of Efficient Models and Optimization in Networks") SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE") - SET(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) - SET(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) - SET(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) SET(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) SET(CPACK_PACKAGE_INSTALL_DIRECTORY - "${PROJECT_NAME} ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}") + "${PROJECT_NAME} ${PROJECT_VERSION}") SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY - "${PROJECT_NAME} ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}") + "${PROJECT_NAME} ${PROJECT_VERSION}") # Variables to generate a component-based installer. #SET(CPACK_COMPONENTS_ALL headers library html_documentation) diff -r cea3cb3bbcd7 -r b4784a66a8e6 configure.ac --- a/configure.ac Sun Sep 21 18:26:25 2008 +0100 +++ b/configure.ac Mon Sep 22 08:37:23 2008 +0100 @@ -1,9 +1,15 @@ dnl Process this file with autoconf to produce a configure script. dnl Version information. -m4_define([lemon_version_number], []) +m4_define([lemon_version_number], + [m4_normalize(esyscmd([echo ${LEMON_VERSION}]))]) +dnl m4_define([lemon_version_number], []) +m4_define([lemon_hg_path], [m4_normalize(esyscmd([./scripts/chg-len.py]))]) m4_define([lemon_hg_revision], [m4_normalize(esyscmd([hg id -i]))]) -m4_define([lemon_version], [ifelse(lemon_version_number(), [], [lemon_hg_revision()], [lemon_version_number()])]) +m4_define([lemon_version], [ifelse(lemon_version_number(), + [], + [lemon_hg_path().lemon_hg_revision()], + [lemon_version_number()])]) AC_PREREQ([2.59]) AC_INIT([LEMON], [lemon_version()], [lemon-user@lemon.cs.elte.hu], [lemon]) diff -r cea3cb3bbcd7 -r b4784a66a8e6 scripts/chg-len.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/chg-len.py Mon Sep 22 08:37:23 2008 +0100 @@ -0,0 +1,39 @@ +#! /usr/bin/env python + +import sys +import os + +if len(sys.argv)>1 and sys.argv[1] in ["-h","--help"]: + print """ +This utility just prints the length of the longest path +in the revision graph from revison 0 to the current one. +""" + exit(0) +plist = os.popen("hg parents --template='{rev}\n'").readlines() +if len(plist)>1: + print "You are in the process of merging" + exit(1) +PAR = int(plist[0]) + +f = os.popen("hg log -r 0:tip --template='{rev} {parents}\n'").readlines() +REV = -1 +lengths=[] +for l in f: + REV+=1 + s = l.split() + rev = int(s[0]) + if REV != rev: + print "Something is seriously wrong" + exit(1) + if len(s) == 1: + par1 = par2 = rev - 1 + elif len(s) == 2: + par1 = par2 = int(s[1].split(":")[0]) + else: + par1 = int(s[1].split(":")[0]) + par2 = int(s[2].split(":")[0]) + if rev == 0: + lengths.append(0) + else: + lengths.append(max(lengths[par1],lengths[par2])+1) +print lengths[PAR]