From 6af210fd190155af8f539dd952783735b8943e62 Mon Sep 17 00:00:00 2001 From: Roger Leigh Date: Thu, 12 Mar 2015 13:24:53 +0000 Subject: [PATCH] build: Use long and short git revisions --- build.xml | 3 ++ components/antlib/resources/version.xml | 41 +++++++++++++---- components/antlib/scripts/source-archive.py | 46 ++++++++++++------- components/tools/OmeroCpp/cmake/Version.cmake | 21 +++++++-- 4 files changed, 84 insertions(+), 27 deletions(-) diff --git a/build.xml b/build.xml index e59bb0a782e..af9882959ca 100644 --- a/build.xml +++ b/build.xml @@ -465,10 +465,13 @@ To get started using Eclipse, execute "./build.py build-dev" and import the top- + + + diff --git a/components/antlib/resources/version.xml b/components/antlib/resources/version.xml index 391e1496188..d38f3fe5025 100644 --- a/components/antlib/resources/version.xml +++ b/components/antlib/resources/version.xml @@ -22,7 +22,9 @@ omero.shortversion e.g. 5.0.0 omero.vcs.revision git commit hash - omero.vcs.date git commit date + omero.vcs.shortrevision git commit hash (short form) + omero.vcs.date git commit date (string) + omero.vcs.date_unix git commit date (UNIX time) The omero.v namespace is for properties internal to this build file and should not be modified. @@ -57,8 +59,10 @@ + + @@ -83,13 +87,20 @@ - + + + + + + + + @@ -97,6 +108,14 @@ + + + + + + + + @@ -104,8 +123,10 @@ + + @@ -114,17 +135,21 @@ + + - Git describe output: ${omero.v.git} - Official: ${omero.version} (${omero.version.source}) - Plain: ${omero.plainversion} (${omero.plainversion.source}) - Short: ${omero.shortversion} (${omero.shortversion.source}) - Git revision: ${omero.vcs.revision} (${omero.vcs.revision.source}) - Git revision date: ${omero.vcs.date} (${omero.vcs.date.source}) + Git describe output: ${omero.v.git} + Official: ${omero.version} (${omero.version.source}) + Plain: ${omero.plainversion} (${omero.plainversion.source}) + Short: ${omero.shortversion} (${omero.shortversion.source}) + Git short revision: ${omero.vcs.shortrevision} (${omero.vcs.shortrevision.source}) + Git revision: ${omero.vcs.revision} (${omero.vcs.revision.source}) + Git revision date: ${omero.vcs.date} (${omero.vcs.date.source}) + Git revision date (UNIX): ${omero.vcs.date_unix} (${omero.vcs.date_unix.source}) diff --git a/components/antlib/scripts/source-archive.py b/components/antlib/scripts/source-archive.py index 9ac58c10564..765cb771f5b 100755 --- a/components/antlib/scripts/source-archive.py +++ b/components/antlib/scripts/source-archive.py @@ -27,6 +27,7 @@ + @@ -34,20 +35,24 @@ + """ GITVERSION_CMAKE = """set(OME_VERSION "%s") set(OME_VERSION_SHORT "%s") +set(OME_VCS_SHORTREVISION "%s") set(OME_VCS_REVISION "%s") set(OME_VCS_DATE "%s") +set(OME_VCS_DATE_S "%s") """ BF_GITVERSION_XML = """ + @@ -55,6 +60,7 @@ BF_GITVERSION_CMAKE = """set(OME_VERSION "%s") set(OME_VERSION_SHORT "%s") +set(OME_VCS_SHORTREVISION "%s") set(OME_VCS_REVISION "%s") set(OME_VCS_DATE %s) set(OME_VCS_DATE_S "%s") @@ -62,22 +68,27 @@ if __name__ == "__main__": - if len(sys.argv) != 12: + if len(sys.argv) != 15: raise Exception( - 'Usage: %s releasename shortversion fullversion vcs-revision' - ' vcs-date bf_shortversion bf_version bf_revision targetdir') + 'Usage: %s releasename shortversion fullversion' + ' vcs-shortrevision vcs-revision vcs-date vcs-date-unix' + ' bf_shortversion bf_version bf_shortrevision bf_revision' + ' bf_vcs-date bf_vcs-date-unix targetdir') release = sys.argv[1] shortversion = sys.argv[2] version = sys.argv[3] - vcs_revision = sys.argv[4] - vcs_date = sys.argv[5] - bf_shortversion = sys.argv[6] - bf_version = sys.argv[7] - bf_vcs_revision = sys.argv[8] - bf_vcs_date = sys.argv[9] - bf_vcs_date_unix = sys.argv[10] - target = os.path.abspath(sys.argv[11]) + vcs_shortrevision = sys.argv[4] + vcs_revision = sys.argv[5] + vcs_date = sys.argv[6] + vcs_date_unix = sys.argv[7] + bf_shortversion = sys.argv[8] + bf_version = sys.argv[9] + bf_vcs_shortrevision = sys.argv[10] + bf_vcs_revision = sys.argv[11] + bf_vcs_date = sys.argv[12] + bf_vcs_date_unix = sys.argv[13] + target = os.path.abspath(sys.argv[14]) release = "%s-%s" % (release, version) if not os.path.isdir('.git'): @@ -141,17 +152,20 @@ # Embed release number basezip.writestr( "%s/components/antlib/resources/gitversion.xml" % release, - GITVERSION_XML % (shortversion, version, vcs_revision, vcs_date)) + GITVERSION_XML % (shortversion, version, vcs_shortrevision, + vcs_revision, vcs_date)) basezip.writestr( "%s/components/tools/OmeroCpp/cmake/GitVersion.cmake" % release, - GITVERSION_CMAKE % (version, shortversion, vcs_revision, vcs_date)) + GITVERSION_CMAKE % (version, shortversion, vcs_shortrevision, + vcs_revision, vcs_date_unix, vcs_date)) basezip.writestr( "%s/components/bioformats/ant/gitversion.xml" % (release), - BF_GITVERSION_XML % (bf_version, bf_shortversion, bf_vcs_revision, + BF_GITVERSION_XML % (bf_version, bf_shortversion, + bf_vcs_shortrevision, bf_vcs_revision, bf_vcs_date)) basezip.writestr( "%s/components/bioformats/cpp/cmake/GitVersion.cmake" % (release), BF_GITVERSION_CMAKE % ( - bf_version, bf_shortversion, bf_vcs_revision, bf_vcs_date_unix, - bf_vcs_date)) + bf_version, bf_shortversion, bf_vcs_shortrevision, + bf_vcs_revision, bf_vcs_date_unix, bf_vcs_date)) diff --git a/components/tools/OmeroCpp/cmake/Version.cmake b/components/tools/OmeroCpp/cmake/Version.cmake index aee11f7ff5a..d34a85314bb 100644 --- a/components/tools/OmeroCpp/cmake/Version.cmake +++ b/components/tools/OmeroCpp/cmake/Version.cmake @@ -39,6 +39,7 @@ cmake_policy(SET CMP0007 NEW) function(ome_version) set(OME_VERSION UNKNOWN) set(OME_VERSION_SHORT UNKNOWN) + set(OME_VCS_SHORTREVISION UNKNOWN) set(OME_VCS_REVISION UNKNOWN) set(OME_VCS_DATE UNKNOWN) set(OME_VCS_DATE_S UNKNOWN) @@ -56,6 +57,14 @@ function(ome_version) endif(NOT GIT_FOUND) execute_process(COMMAND "${GIT_EXECUTABLE}" log -1 HEAD --pretty=%h + OUTPUT_VARIABLE commit_hash_short RESULT_VARIABLE git_log_fail ERROR_QUIET + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) + if (git_log_fail) + message(FATAL_ERROR "Could not obtain release commit hash from git") + endif (git_log_fail) + string(REPLACE "\n" "" commit_hash_short "${commit_hash_short}") + + execute_process(COMMAND "${GIT_EXECUTABLE}" log -1 HEAD --pretty=%H OUTPUT_VARIABLE commit_hash RESULT_VARIABLE git_log_fail ERROR_QUIET WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) if (git_log_fail) @@ -79,6 +88,7 @@ function(ome_version) endif (git_log_fail) string(REPLACE "\n" "" commit_date_unix "${commit_date_unix}") + set(OME_VCS_SHORTREVISION ${commit_hash_short} PARENT_SCOPE) set(OME_VCS_REVISION ${commit_hash} PARENT_SCOPE) set(OME_VCS_DATE ${commit_date_unix} PARENT_SCOPE) set(OME_VCS_DATE_S ${commit_date_string} PARENT_SCOPE) @@ -110,6 +120,11 @@ function(ome_version) endif(NOT describe_exact_fail) endif(EXISTS "${PROJECT_SOURCE_DIR}/components/tools/OmeroCpp/cmake/GitVersion.cmake") + set(OME_VCS_SHORTREVISION "${OME_VCS_SHORTREVISION}" PARENT_SCOPE) + set(OME_VCS_REVISION "${OME_VCS_REVISION}" PARENT_SCOPE) + set(OME_VCS_DATE "${OME_VCS_DATE}" PARENT_SCOPE) + set(OME_VCS_DATE_S "${OME_VCS_DATE_S}" PARENT_SCOPE) + string(REGEX MATCH "^v\\.?(.*)" commit_valid1 ${OME_VERSION}) if (commit_valid1) string(REGEX REPLACE "^v\\.?(.*)" "\\1" OME_VERSION ${OME_VERSION}) @@ -141,6 +156,6 @@ endfunction(ome_version) ome_version() message(STATUS "Configuring openmicroscopy version ${OME_VERSION}") -if(OME_VCS_REVISION AND OME_VCS_DATE_S) - message(STATUS "Using git commit ${OME_VCS_REVISION} on ${OME_VCS_DATE_S}") -endif(OME_VCS_REVISION AND OME_VCS_DATE_S) +if(OME_VCS_SHORTREVISION AND OME_VCS_DATE_S) + message(STATUS "Using git commit ${OME_VCS_SHORTREVISION} on ${OME_VCS_DATE_S}") +endif()