From d118043638577283a2af63b4612dbaf95d7e88b6 Mon Sep 17 00:00:00 2001
From: Guillaume Pasero <guillaume.pasero@c-s.fr>
Date: Thu, 30 Apr 2015 10:30:55 +0200
Subject: [PATCH] BUG: fixing bug #1038

---
 SuperBuild/CMake/SystemCheckup.cmake | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/SuperBuild/CMake/SystemCheckup.cmake b/SuperBuild/CMake/SystemCheckup.cmake
index e5fe2f8ac6..7b7acb24bd 100644
--- a/SuperBuild/CMake/SystemCheckup.cmake
+++ b/SuperBuild/CMake/SystemCheckup.cmake
@@ -28,7 +28,7 @@ macro(SB_CHECKUP_FIND_PACKAGE var)
     set(_SB_CHECKUP_${_uppervar}_FOUND TRUE)
     set(_SB_CHECKUP_${_uppervar}_NAME ${var})
   endif()
-  
+
   if(_SB_CHECKUP_${_uppervar}_FOUND)
     set(_var_name ${_SB_CHECKUP_${_uppervar}_NAME})
     message(STATUS "|----------------------------------------------------------")
@@ -42,11 +42,18 @@ macro(SB_CHECKUP_FIND_PACKAGE var)
     elseif(DEFINED ${_var_name}_MAJOR_VERSION AND DEFINED ${_var_name}_MINOR_VERSION AND DEFINED ${_var_name}_BUILD_VERSION)
       set(_SB_CHECKUP_${_uppervar}_VERSION "${${_var_name}_MAJOR_VERSION}.${${_var_name}_MINOR_VERSION}.${${_var_name}_BUILD_VERSION}")
     endif()
-    
-    # fix incomplete version numbers
+
+    # fix incomplete version numbers -> add trailing '.0'
     if(_SB_CHECKUP_${_uppervar}_VERSION MATCHES "^[0-9]+\\.[0-9]+\$")
       set(_SB_CHECKUP_${_uppervar}_VERSION "${_SB_CHECKUP_${_uppervar}_VERSION}.0")
     endif()
+    # fix version numbers with 4 components -> keep first 3 components
+    if(_SB_CHECKUP_${_uppervar}_VERSION MATCHES "^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+\$")
+      set(_tmp_ver_num_  ${_SB_CHECKUP_${_uppervar}_VERSION})
+      string(REGEX REPLACE "^([0-9]+\\.[0-9]+\\.[0-9]+)\\.[0-9]+\$" "\\1"
+          _SB_CHECKUP_${_uppervar}_VERSION
+          ${_tmp_ver_num_})
+    endif()
     # display version number
     if(_SB_CHECKUP_${_uppervar}_VERSION MATCHES "^[0-9]+\\.[0-9]+\\.[0-9]+\$")
       message(STATUS "|  version = ${_SB_CHECKUP_${_uppervar}_VERSION}")
-- 
GitLab