*NIX (autofoo and cmake) part of the fix for
authorJeff Morriss <jeff.morriss.ws@gmail.com>
Tue, 18 Sep 2012 21:42:13 +0000 (21:42 -0000)
committerJeff Morriss <jeff.morriss.ws@gmail.com>
Tue, 18 Sep 2012 21:42:13 +0000 (21:42 -0000)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6134 :

Make VERSION_MAJOR, VERSION_MINOR, and VERSION_MICRO available in config.h so
(e.g.) dissector writers can #if around them as necessary to make a piece of
code compile with different versions of Wireshark.  (Hopefully VERSION_MICRO
is not important in this respect!)

Windows also defines VERSION_EXTRA which can be used to help identify custom
builds; this is not done for these build methods (yet?).

svn path=/trunk/; revision=44986

CMakeLists.txt
cmakeconfig.h.in
configure.ac

index 379286843de2f26c79fc9d1cd044ff9720391890..78fecd3340a96a047021c0ace6c93dab47516bfe 100644 (file)
@@ -33,42 +33,53 @@ if(COMMAND cmake_policy)
 #      cmake_policy(SET CMP0015 NEW)
 endif(COMMAND cmake_policy)
 
-# set(PROJECT_VERSION "1.3.4-rc5")
-# set(PROJECT_VERSION "1.3.4rc5")
-# set(PROJECT_VERSION "1.3.4")
-# If not set, copy over Wireshark version from configure.ac AC_INIT
-if(NOT PROJECT_VERSION)
+# set(PROJECT_MAJOR_VERSION 1)
+# set(PROJECT_MINOR_VERSION 9)
+# set(PROJECT_PATCH_VERSION 0)
+# set(PROJECT_VERSION_EXTENSION "-rc5")
+# If not set, copy over Wireshark version from configure.ac
+if(NOT PROJECT_MAJOR_VERSION)
        file(STRINGS
                ${CMAKE_SOURCE_DIR}/configure.ac
-               VERSIONLINE
-               REGEX "\\(wireshark, .*\\)"
+               PROJECT_MAJOR_VERSION_TMP
+               REGEX "^m4_define\\(version_major, [0-9]+\\)"
        )
-       string(REGEX REPLACE ".*\\(wireshark, ([^,)]*).*"
+       file(STRINGS
+               ${CMAKE_SOURCE_DIR}/configure.ac
+               PROJECT_MINOR_VERSION_TMP
+               REGEX "^m4_define\\(version_minor, [0-9]+\\)"
+       )
+       file(STRINGS
+               ${CMAKE_SOURCE_DIR}/configure.ac
+               PROJECT_PATCH_VERSION_TMP
+               REGEX "^m4_define\\(version_micro, [0-9]+\\)"
+       )
+       # XXX pull VERSION_EXTENSION out of configure.ac ?
+
+       string(REGEX REPLACE "m4_define\\(version_major, ([0-9]+)\\)"
+               "\\1"
+               PROJECT_MAJOR_VERSION
+               ${PROJECT_MAJOR_VERSION_TMP}
+       )
+       string(REGEX REPLACE "m4_define\\(version_minor, ([0-9]+)\\)"
+               "\\1"
+               PROJECT_MINOR_VERSION
+               ${PROJECT_MINOR_VERSION_TMP}
+       )
+       string(REGEX REPLACE "m4_define\\(version_micro, ([0-9]+)\\)"
                "\\1"
-               PROJECT_VERSION
-               ${VERSIONLINE}
+               PROJECT_PATCH_VERSION
+               ${PROJECT_PATCH_VERSION_TMP}
        )
 endif()
-string(REGEX REPLACE "([0-9]+)\\..*"
-       "\\1"
-       PROJECT_MAJOR_VERSION
-       ${PROJECT_VERSION}
-)
-string(REGEX REPLACE ".*\\.([0-9]+)\\..*"
-       "\\1"
-       PROJECT_MINOR_VERSION
-       ${PROJECT_VERSION}
-)
-string(REGEX REPLACE ".*\\..*\\.([0-9]+).*"
-       "\\1"
-       PROJECT_PATCH_VERSION
-       ${PROJECT_VERSION}
-)
-string(REGEX REPLACE ".*\\..*\\.[0-9]+(.*)"
-       "\\1"
-       PROJECT_VERSION_EXTENSION
-       ${PROJECT_VERSION}
-)
+
+
+if(PROJECT_VERSION_EXTENSION)
+       set(PROJECT_VERSION ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_PATCH_VERSION}${PROJECT_VERSION_EXTENSION})
+else()
+       set(PROJECT_VERSION ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_PATCH_VERSION})
+endif()
+
 message(STATUS "V: ${PROJECT_VERSION}, MaV: ${PROJECT_MAJOR_VERSION}, MiV: ${PROJECT_MINOR_VERSION}, PL: ${PROJECT_PATCH_VERSION}, EV: ${PROJECT_VERSION_EXTENSION}.")
 
 #Where to find local cmake scripts
index 52777aef49400d16718b5a9b4e674cd5b7750bb5..f8cd1cd0c545d4c5463dda2801a2c1a7aaa06fac 100644 (file)
@@ -7,6 +7,9 @@
 
 /* Version number of package */
 #define VERSION "${CPACK_PACKAGE_VERSION}"
+#define VERSION_MAJOR "${PROJECT_MAJOR_VERSION}"
+#define VERSION_MINOR "${PROJECT_MINOR_VERSION}"
+#define VERSION_MICRO "${PROJECT_PATCH_VERSION}"
 
 /* FIXME: Move the path stuff to the CMakeInstallDirs.cmake file */
 /* Directory for data */
index 978c376bf585bb9eb48386ebb676e8da71a8d150..fe9ab80566e1e423adf9f08db7569c4ece165c4b 100644 (file)
@@ -2,7 +2,12 @@
 #
 AC_PREREQ(2.60)
 
-AC_INIT(wireshark, 1.9.0, http://bugs.wireshark.org/, , http://www.wireshark.org/)
+m4_define(version_major, 1)
+m4_define(version_minor, 9)
+m4_define(version_micro, 0)
+# XXX version_extra ?
+
+AC_INIT(wireshark, [version_major.version_minor.version_micro], http://bugs.wireshark.org/, , http://www.wireshark.org/)
 
 dnl Check for CPU / vendor / OS
 dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
@@ -26,6 +31,11 @@ AC_CANONICAL_TARGET
 
 AM_INIT_AUTOMAKE([1.9 tar-ustar dist-bzip2 no-dist-gzip])
 
+# Make Wireshark's version available in config.h
+AC_DEFINE(VERSION_MAJOR, version_major, [Wireshark's major version])
+AC_DEFINE(VERSION_MINOR, version_minor, [Wireshark's minor version])
+AC_DEFINE(VERSION_MICRO, version_micro, [Wireshark's micro version])
+
 AM_DISABLE_STATIC
 
 dnl Checks for programs.