mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
87 lines
2.9 KiB
CMake
87 lines
2.9 KiB
CMake
#=========================================================================
|
|
#
|
|
# 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", if git
|
|
# is found. On success sets following variables in caller's scope:
|
|
# ${var_prefix}_VERSION
|
|
# ${var_prefix}_VERSION_MAJOR
|
|
# ${var_prefix}_VERSION_MINOR
|
|
# ${var_prefix}_VERSION_PATCH
|
|
# ${var_prefix}_VERSION_PATCH_EXTRA
|
|
# ${var_prefix}_VERSION_FULL
|
|
# ${var_prefix}_VERSION_IS_RELEASE is patch-extra is empty.
|
|
#
|
|
# If git is not found, or git describe cannot be run successfully, then these
|
|
# variables are left unchanged and status message is printed.
|
|
#
|
|
# Arguments are:
|
|
# source_dir : Source directory
|
|
# git_command : git executable
|
|
# var_prefix : prefix for variables e.g. "PARAVIEW".
|
|
function(determine_version source_dir git_command var_prefix)
|
|
set (major)
|
|
set (minor)
|
|
set (patch)
|
|
set (full)
|
|
set (patch_extra)
|
|
set (result -1)
|
|
|
|
if (NOT PARAVIEW_GIT_DESCRIBE)
|
|
if (EXISTS ${git_command})
|
|
execute_process(
|
|
COMMAND ${git_command} describe
|
|
WORKING_DIRECTORY ${source_dir}
|
|
RESULT_VARIABLE result
|
|
OUTPUT_VARIABLE output
|
|
ERROR_QUIET
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_STRIP_TRAILING_WHITESPACE)
|
|
endif()
|
|
else()
|
|
set(result 0)
|
|
set(output ${PARAVIEW_GIT_DESCRIBE})
|
|
endif()
|
|
|
|
if (${result} EQUAL 0)
|
|
string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)[-]*(.*)"
|
|
version_matches "${output}")
|
|
if (CMAKE_MATCH_0)
|
|
message(STATUS "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})
|
|
set (patch_extra ${CMAKE_MATCH_4})
|
|
endif()
|
|
endif()
|
|
|
|
if (full)
|
|
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_PATCH_EXTRA ${patch_extra} 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()
|
|
else()
|
|
message(STATUS
|
|
"Could not use git to determine source version, using version ${${var_prefix}_VERSION_FULL}"
|
|
)
|
|
endif()
|
|
endfunction()
|