Skip to content
Snippets Groups Projects
Commit f744f457 authored by Utkarsh Ayachit's avatar Utkarsh Ayachit
Browse files

Fixed BUG #12311. Changed ParaView version number policy.

We now use "git describe" to determine the version for ParaView. Thus we no
longer have to use minor/major version number trick for releases. "git describe"
returns a string such as "v3.10.1-1701-g427f283". The version is then set as
follows:
Major: 3
Minor: 10
Patch: 1
Full : 3.10.1-1701-g427f283

If Full=="Major.Minor.Patch", then it's treated as a release.

Release candidates can be tagged as "x.y.z-rcN" and the version will be set
correctly.

If git cannot determine the source version correctly, then
"CMake/.paraview.version" file is searched for and we try to parse the version
string from this file. It's a fatal error is both these approaches fail.
parent 427f2839
No related branches found
No related tags found
No related merge requests found
......@@ -250,11 +250,6 @@ if(APPLE)
install(SCRIPT "${OSX_MAKE_STANDALONE_BUNDLE_CMAKE_SCRIPT}" COMPONENT Bundle)
endif(APPLE)
set(_VERSION_PATCH "${PARAVIEW_VERSION_PATCH}")
if(PARAVIEW_VERSION_RC)
set(_VERSION_PATCH "${PARAVIEW_VERSION_PATCH}-RC${PARAVIEW_VERSION_RC}")
endif(PARAVIEW_VERSION_RC)
set(_package_name "ParaView")
if(PARAVIEW_INSTALL_DEVELOPMENT)
set(_package_name "ParaView-Development")
......@@ -267,7 +262,7 @@ build_paraview_client_cpack_config_init(
ORGANIZATION "Kitware Inc."
VERSION_MAJOR "${PARAVIEW_VERSION_MAJOR}"
VERSION_MINOR "${PARAVIEW_VERSION_MINOR}"
VERSION_PATCH ${_VERSION_PATCH}
VERSION_PATCH "${PARAVIEW_VERSION_PATCH}"
DESCRIPTION "ParaView is a scientific visualization tool"
LICENSE_FILE "${ParaView_SOURCE_DIR}/License_v1.2.txt"
DESCRIPTION_FILE "${ParaView_SOURCE_DIR}/License_v1.2.txt"
......
#=========================================================================
#
# Program: ParaView
#
# Copyright (c) Kitware, Inc.
# All rights reserved.
# See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even
# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the above copyright notice for more information.
#
#=========================================================================
# Used to determine the version for ParaView source using "git describe".
# source_dir : Source directory
# git_command : git executable
# alternative_version_file : file to read if git fails.
# var_prefix : prefix for variables e.g. "PARAVIEW".
function(determine_version source_dir git_command alternative_version_file var_prefix)
set (major)
set (minor)
set (patch)
set (full)
execute_process(
COMMAND ${git_command} describe
WORKING_DIRECTORY ${source_dir}
RESULT_VARIABLE result
OUTPUT_VARIABLE output
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)
if (${result} EQUAL 0)
string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+).*"
version_matches ${output})
if (CMAKE_MATCH_0)
message("Determined Source Version : ${CMAKE_MATCH_0}")
set (full ${CMAKE_MATCH_0})
set (major ${CMAKE_MATCH_1})
set (minor ${CMAKE_MATCH_2})
set (patch ${CMAKE_MATCH_3})
# not sure if I want to write the file out yet.
#file (WRITE ${alternative_version_file} ${full})
endif()
endif()
if (NOT ${major})
# Check is file exists, use that.
file (READ ${alternative_version_file} contents)
string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+).*"
version_matches ${contents})
if (CMAKE_MATCH_0)
message("Determined Source Version : ${CMAKE_MATCH_0}")
set (full ${CMAKE_MATCH_0})
set (major ${CMAKE_MATCH_1})
set (minor ${CMAKE_MATCH_2})
set (patch ${CMAKE_MATCH_3})
endif()
endif()
if (NOT ${major})
message (FATAL_ERROR "Failed to determine source version correctly.")
endif()
set (${var_prefix}_VERSION "${major}.${minor}" PARENT_SCOPE)
set (${var_prefix}_VERSION_MAJOR ${major} PARENT_SCOPE)
set (${var_prefix}_VERSION_MINOR ${minor} PARENT_SCOPE)
set (${var_prefix}_VERSION_PATCH ${patch} PARENT_SCOPE)
set (${var_prefix}_VERSION_FULL ${full} PARENT_SCOPE)
if ("${major}.${minor}.${patch}" EQUAL "${full}")
set (${var_prefix}_VERSION_IS_RELEASE TRUE PARENT_SCOPE)
else ()
set (${var_prefix}_VERSION_IS_RELEASE FALSE PARENT_SCOPE)
endif()
endfunction()
......@@ -13,6 +13,8 @@ FOREACH(policy CMP0017)
ENDFOREACH()
PROJECT(ParaView)
SET(ParaView_CMAKE_DIR "${ParaView_SOURCE_DIR}/CMake")
SET (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ParaView_CMAKE_DIR})
INCLUDE(Utilities/Git/Git.cmake)
......@@ -57,24 +59,27 @@ IF("${ParaView_SOURCE_DIR}" STREQUAL "${ParaView_BINARY_DIR}")
ENDIF("${ParaView_SOURCE_DIR}" STREQUAL "${ParaView_BINARY_DIR}")
#########################################################################
SET(PARAVIEW_VERSION_MAJOR 3)
SET(PARAVIEW_VERSION_MINOR 11)
SET(PARAVIEW_VERSION_PATCH 1)
#SET(PARAVIEW_VERSION_RC 1)
SET(PARAVIEW_VERSION "${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}")
SET(PARAVIEW_VERSION_FULL "${PARAVIEW_VERSION}.${PARAVIEW_VERSION_PATCH}")
IF(PARAVIEW_VERSION_RC)
SET(PARAVIEW_VERSION_FULL "${PARAVIEW_VERSION}.${PARAVIEW_VERSION_PATCH}-RC${PARAVIEW_VERSION_RC}")
ENDIF()
# See VTK/CMakeLists.txt for an explanation of this default selection.
IF(PARAVIEW_VERSION_MINOR MATCHES "[02468]$")
SET (PARAVIEW_VERSION_MAJOR 0)
SET (PARAVIEW_VERSION_MINOR 0)
SET (PARAVIEW_VERSION_PATCH -1)
SET (PARAVIEW_VERSION "0.0")
SET (PARAVIEW_VERSION_FULL "0.0.-1")
SET (PARAVIEW_VERSION_IS_RELEASE FALSE)
INCLUDE(ParaViewDetermineVersion)
determine_version(
${ParaView_SOURCE_DIR}
${GIT_EXECUTABLE}
${ParaView_SOURCE_DIR}/CMake/.paraview.version
"PARAVIEW")
IF (PARAVIEW_VERSION_IS_RELEASE)
# This is a release version. Default to not use rpath.
SET(VTK_USE_RPATH_DEFAULT OFF)
ELSE(PARAVIEW_VERSION_MINOR MATCHES "[02468]$")
ELSE()
# This is a development version. Default to use rpath.
SET(VTK_USE_RPATH_DEFAULT ON)
ENDIF(PARAVIEW_VERSION_MINOR MATCHES "[02468]$")
ENDIF()
#########################################################################
# build VTK/Qt support
......@@ -239,9 +244,6 @@ SET (dynamicHeaders)
SET(VTK_MAKE_INSTANTIATOR "${ParaView_SOURCE_DIR}/VTK/CMake")
SET(VTKCS_CONFIG_DIR "${ParaView_SOURCE_DIR}/Utilities/VTKClientServer/CMake")
SET(ParaView_CMAKE_DIR "${ParaView_SOURCE_DIR}/CMake")
SET (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ParaView_CMAKE_DIR})
# used in ParaViewPlugins.cmake
SET(ParaView_QT_DIR ${ParaView_SOURCE_DIR}/Qt)
SET(PARAVIEW_QT_QMAKE_EXECUTABLE ${QT_QMAKE_EXECUTABLE})
......
......@@ -6,7 +6,7 @@ GET_FILENAME_COMPONENT(ParaView_INSTALL_PREFIX "${ParaView_DIR}@REL_REF@" ABSOLU
SET(PARAVIEW_VERSION_MAJOR "@PARAVIEW_VERSION_MAJOR@")
SET(PARAVIEW_VERSION_MINOR "@PARAVIEW_VERSION_MINOR@")
SET(PARAVIEW_VERSION_PATCH "@PARAVIEW_VERSION_PATCH@")
SET(PARAVIEW_VERSION_RC "@PARAVIEW_VERSION_RC@")
SET(PARAVIEW_VERSION_FULL "@PARAVIEW_VERSION_FULL@")
# Locations for the source and binary dirs.
# I am not sure ParaView_SOURCE_DIR should be exported since it won't be
......
......@@ -52,7 +52,6 @@
#define PARAVIEW_VERSION_MAJOR @PARAVIEW_VERSION_MAJOR@
#define PARAVIEW_VERSION_MINOR @PARAVIEW_VERSION_MINOR@
#define PARAVIEW_VERSION_PATCH @PARAVIEW_VERSION_PATCH@
#define PARAVIEW_VERSION_RC @PARAVIEW_VERSION_RC@
#define PARAVIEW_VERSION "@PARAVIEW_VERSION@"
#define PARAVIEW_VERSION_FULL "@PARAVIEW_VERSION_FULL@"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment