cmake: 3.12 compatibility
[m6w6/libmemcached] / CMakeVersions.txt
index 683f43e7c0aee876531d0d4f57bfee1423e230b6..8f689ee2ae9f35b976e790e08ad1c921dcdeb603 100644 (file)
@@ -1,13 +1,25 @@
+function(to_hex HEX)
+    set(XNUMBER 0x)
+    set(XDIGITS 0 1 2 3 4 5 6 7 8 9 a b c d e f)
+    foreach(DEC IN LISTS ARGN)
+        if(${DEC} GREATER 255)
+            message(WARNING "to_hex(HEX ${DEC}): decimal number out of uint8 range (>=256)")
+        endif()
+        math(EXPR HIDEC "${DEC} / 16")
+        math(EXPR LODEC "${DEC} % 16")
+        list(GET XDIGITS ${HIDEC} HIHEX)
+        list(GET XDIGITS ${LODEC} LOHEX)
+        string(APPEND XNUMBER ${HIHEX}${LOHEX})
+    endforeach()
+    set(${HEX} ${XNUMBER} PARENT_SCOPE)
+endfunction()
 
 set(LIBMEMCACHED_VERSION_MAJOR 1)
 set(LIBMEMCACHED_VERSION_MINOR 0)
 set(LIBMEMCACHED_VERSION_PATCH 99)
 
 set(LIBMEMCACHED_VERSION ${LIBMEMCACHED_VERSION_MAJOR}.${LIBMEMCACHED_VERSION_MINOR}.${LIBMEMCACHED_VERSION_PATCH})
-
-set(LIBMEMCACHED_VERSION_HEX)
-math(EXPR LIBMEMCACHED_VERSION_HEX "(${LIBMEMCACHED_VERSION_MAJOR}<<16) + (${LIBMEMCACHED_VERSION_MINOR}<<8) + ${LIBMEMCACHED_VERSION_PATCH}+0"
-        OUTPUT_FORMAT HEXADECIMAL)
+to_hex(LIBMEMCACHED_VERSION_HEX ${LIBMEMCACHED_VERSION_MAJOR} ${LIBMEMCACHED_VERSION_MINOR} ${LIBMEMCACHED_VERSION_PATCH})
 
 set(LIBMEMCACHED_SO_VERSION_CUR 12)
 set(LIBMEMCACHED_SO_VERSION_REV 0)
@@ -32,10 +44,7 @@ set(LIBHASHKIT_VERSION_MINOR 0)
 set(LIBHASHKIT_VERSION_PATCH 0)
 
 set(LIBHASHKIT_VERSION ${LIBHASHKIT_VERSION_MAJOR}.${LIBHASHKIT_VERSION_MINOR}.${LIBHASHKIT_VERSION_PATCH})
-
-set(LIBHASHKIT_VERSION_HEX)
-math(EXPR LIBHASHKIT_VERSION_HEX "(${LIBHASHKIT_VERSION_MAJOR}<<16) + (${LIBHASHKIT_VERSION_MINOR}<<8) + ${LIBHASHKIT_VERSION_PATCH}+0"
-        OUTPUT_FORMAT HEXADECIMAL)
+to_hex(LIBHASHKIT_VERSION_HEX ${LIBHASHKIT_VERSION_MAJOR} ${LIBHASHKIT_VERSION_MINOR} ${LIBHASHKIT_VERSION_PATCH})
 
 set(LIBHASHKIT_SO_VERSION_CUR 2)
 set(LIBHASHKIT_SO_VERSION_REV 0)