*NIX (autofoo and cmake) part of the fix for

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
This commit is contained in:
Jeff Morriss 2012-09-18 21:42:13 +00:00
parent b6e0cc28a5
commit 5ee932193f
3 changed files with 55 additions and 31 deletions

View 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_VERSION
${VERSIONLINE}
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_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

View 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 */

View 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.