serf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From br...@apache.org
Subject svn commit: r1841458 - /serf/trunk/build/SerfVersion.cmake
Date Thu, 20 Sep 2018 10:20:15 GMT
Author: brane
Date: Thu Sep 20 10:20:15 2018
New Revision: 1841458

URL: http://svn.apache.org/viewvc?rev=1841458&view=rev
Log:
* build/SerfVersion.cmake: Wrap the version parsint into a function to
   hide variables in a local scope. Simplify regular expressions.

Modified:
    serf/trunk/build/SerfVersion.cmake

Modified: serf/trunk/build/SerfVersion.cmake
URL: http://svn.apache.org/viewvc/serf/trunk/build/SerfVersion.cmake?rev=1841458&r1=1841457&r2=1841458&view=diff
==============================================================================
--- serf/trunk/build/SerfVersion.cmake (original)
+++ serf/trunk/build/SerfVersion.cmake Thu Sep 20 10:20:15 2018
@@ -19,36 +19,35 @@
 
 # Find the version number in serf.h so that we don't keep it in two places.
 
-set(SERF_HEADER "${SERF_SOURCE_DIR}/serf.h")
+function(serf_parse_version_number_from_header)
+  set(header_ "${SERF_SOURCE_DIR}/serf.h")
+  file(STRINGS "${header_}" version_parts_
+       REGEX "^ *# *define +SERF_[A-Z]+_VERSION +[0-9]+ *$")
+
+  foreach(STR ${version_parts_})
+    if(STR MATCHES "SERF_MAJOR_VERSION")
+      string(REGEX REPLACE "^[^0-9]+([0-9])+ *$" "\\1" major_ ${STR})
+    elseif(STR MATCHES "SERF_MINOR_VERSION")
+      string(REGEX REPLACE "^[^0-9]+([0-9])+ *$" "\\1" minor_ ${STR})
+    elseif(STR MATCHES "SERF_PATCH_VERSION")
+      string(REGEX REPLACE "^[^0-9]+([0-9])+ *$" "\\1" patch_ ${STR})
+    endif()
+  endforeach()
+
+  if(NOT DEFINED major_ OR NOT DEFINED minor_ OR NOT DEFINED patch_)
+    message(FATAL_ERROR "Could not find the version number in '${header_}'")
+  endif()
+
+  set(SERF_VERSION "${major_}.${minor_}.${patch_}" PARENT_SCOPE)
+  set(SERF_SOVERSION "${major_}.${minor_}.0" PARENT_SCOPE)
+  set(SERF_MAJOR_VERSION "${major_}" PARENT_SCOPE)
+  set(SERF_MINOR_VERSION "${minor_}" PARENT_SCOPE)
+  set(SERF_PATCH_VERSION "${patch_}" PARENT_SCOPE)
+endfunction()
 
 unset(SERF_VERSION)
 unset(SERF_SOVERSION)
 unset(SERF_MAJOR_VERSION)
 unset(SERF_MINOR_VERSION)
 unset(SERF_PATCH_VERSION)
-
-file(STRINGS "${SERF_HEADER}" SERF_VERSION_BITS
-     REGEX "^ *# *define +SERF_[A-Z]*_VERSION +[0-9]+ *$")
-foreach(STR ${SERF_VERSION_BITS})
-  if(STR MATCHES "^ *# *define +SERF_MAJOR_VERSION +([0-9])+ *$")
-    string(REGEX REPLACE "^ *# *define +SERF_MAJOR_VERSION +([0-9])+ *$"
-           "\\1" SERF_MAJOR_VERSION ${STR})
-  endif()
-  if(STR MATCHES "^ *# *define +SERF_MINOR_VERSION +([0-9])+ *$")
-    string(REGEX REPLACE "^ *# *define +SERF_MINOR_VERSION +([0-9])+ *$"
-           "\\1" SERF_MINOR_VERSION ${STR})
-  endif()
-  if(STR MATCHES "^ *# *define +SERF_PATCH_VERSION +([0-9])+ *$")
-    string(REGEX REPLACE "^ *# *define +SERF_PATCH_VERSION +([0-9])+ *$"
-           "\\1" SERF_PATCH_VERSION ${STR})
-  endif()
-endforeach()
-
-if(NOT DEFINED SERF_MAJOR_VERSION
-   OR NOT DEFINED SERF_MINOR_VERSION
-   OR NOT DEFINED SERF_PATCH_VERSION)
-  message(FATAL_ERROR "Could not find the version number in '${SERF_HEADER}'")
-endif()
-
-set(SERF_VERSION "${SERF_MAJOR_VERSION}.${SERF_MINOR_VERSION}.${SERF_PATCH_VERSION}")
-set(SERF_SOVERSION "${SERF_MAJOR_VERSION}.${SERF_MINOR_VERSION}.0")
+serf_parse_version_number_from_header()



Mime
View raw message