CMakeLists.txt
changeset 982 0b9a94956916
parent 980 48e17328c155
child 983 fc1aa7c01c55
     1.1 --- a/CMakeLists.txt	Mon Jan 30 10:54:49 2012 +0100
     1.2 +++ b/CMakeLists.txt	Mon Jan 30 17:49:50 2012 +0100
     1.3 @@ -12,29 +12,47 @@
     1.4    SET(LEMON_VERSION $ENV{LEMON_VERSION} CACHE STRING "LEMON version string.")
     1.5  ELSE()
     1.6    EXECUTE_PROCESS(
     1.7 -    COMMAND ${PYTHON_EXECUTABLE} ./scripts/chg-len.py
     1.8 +    COMMAND
     1.9 +    hg log -r. --template "{latesttag}"
    1.10      WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
    1.11 -    OUTPUT_VARIABLE HG_REVISION_PATH
    1.12 +    OUTPUT_VARIABLE HG_REVISION_TAG
    1.13      ERROR_QUIET
    1.14      OUTPUT_STRIP_TRAILING_WHITESPACE
    1.15    )
    1.16    EXECUTE_PROCESS(
    1.17 -    COMMAND hg id -i
    1.18 +    COMMAND
    1.19 +    hg log -r. --template "{latesttagdistance}"
    1.20      WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
    1.21 -    OUTPUT_VARIABLE HG_REVISION
    1.22 +    OUTPUT_VARIABLE HG_REVISION_DIST
    1.23      ERROR_QUIET
    1.24      OUTPUT_STRIP_TRAILING_WHITESPACE
    1.25    )
    1.26 -  IF(HG_REVISION STREQUAL "")
    1.27 +  EXECUTE_PROCESS(
    1.28 +    COMMAND
    1.29 +    hg log -r. --template "{node|short}"
    1.30 +    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
    1.31 +    OUTPUT_VARIABLE HG_REVISION_ID
    1.32 +    ERROR_QUIET
    1.33 +    OUTPUT_STRIP_TRAILING_WHITESPACE
    1.34 +  )
    1.35 +
    1.36 +  IF(HG_REVISION_TAG STREQUAL "")
    1.37      SET(HG_REVISION_ID "hg-tip")
    1.38    ELSE()
    1.39 -    IF(HG_REVISION_PATH STREQUAL "")
    1.40 -      SET(HG_REVISION_ID ${HG_REVISION})
    1.41 +    IF(HG_REVISION_TAG STREQUAL "null")
    1.42 +      SET(HG_REVISION_TAG "trunk")
    1.43 +    ELSEIF(HG_REVISION_TAG MATCHES "^r")
    1.44 +      STRING(SUBSTRING ${HG_REVISION_TAG} 1 -1 HG_REVISION_TAG)
    1.45 +    ENDIF()
    1.46 +    IF(HG_REVISION_DIST STREQUAL "0")
    1.47 +      SET(HG_REVISION ${HG_REVISION_TAG})
    1.48      ELSE()
    1.49 -      SET(HG_REVISION_ID ${HG_REVISION_PATH}.${HG_REVISION})
    1.50 +      SET(HG_REVISION
    1.51 +	"${HG_REVISION_TAG}+${HG_REVISION_DIST}-${HG_REVISION_ID}")
    1.52      ENDIF()
    1.53    ENDIF()
    1.54 -  SET(LEMON_VERSION ${HG_REVISION_ID} CACHE STRING "LEMON version string.")
    1.55 +
    1.56 +  SET(LEMON_VERSION ${HG_REVISION} CACHE STRING "LEMON version string.")
    1.57  ENDIF()
    1.58  
    1.59  SET(PROJECT_VERSION ${LEMON_VERSION})