[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[vidalia-svn] r3928: Add a CMake macro for determining the version of a given Tor (vidalia/trunk/cmake)



Author: edmanm
Date: 2009-07-01 20:23:34 -0400 (Wed, 01 Jul 2009)
New Revision: 3928

Modified:
   vidalia/trunk/cmake/VidaliaMacros.cmake
Log:

Add a CMake macro for determining the version of a given Tor binary.


Modified: vidalia/trunk/cmake/VidaliaMacros.cmake
===================================================================
--- vidalia/trunk/cmake/VidaliaMacros.cmake	2009-06-30 20:57:22 UTC (rev 3927)
+++ vidalia/trunk/cmake/VidaliaMacros.cmake	2009-07-02 00:23:34 UTC (rev 3928)
@@ -147,6 +147,28 @@
   set(${OUTFILES} ${${OUTFILES}} ${wxl})
 endmacro(VIDALIA_ADD_WXL)
 
+## Queries the specified TOR_EXECUTABLE for its version string using the 
+## --version argument, parses its output and sets TOR_VERSION to the result.
+## If no version could be determined, ${TOR_VERSION} will be undefined.
+macro(VIDALIA_GET_TOR_VERSION TOR_VERSION TOR_EXECUTABLE)
+  get_filename_component(TOR_EXE_PATH ${TOR_EXECUTABLE} ABSOLUTE)
+  if (UNIX)
+    execute_process(
+      COMMAND ${TOR_EXE_PATH} --version
+      COMMAND tail -n 1
+      COMMAND awk "{print $3}"
+      COMMAND sed -e s/\\.$//
+      OUTPUT_VARIABLE ${TOR_VERSION}
+    )
+  else(UNIX)
+    message(FATAL_ERROR
+      "The vidalia_get_tor_version macro is not implemented for your platform")
+  endif(UNIX)
+  if (DEFINED ${TOR_VERSION})
+    string(STRIP ${${TOR_VERSION}} ${TOR_VERSION})
+  endif(DEFINED ${TOR_VERSION})
+endmacro(VIDALIA_GET_TOR_VERSION)
+
 if (APPLE)
   include(${Vidalia_SOURCE_DIR}/cmake/ParseArgumentsMacro.cmake)