aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorJeff Morriss <jeff.morriss.ws@gmail.com>2012-09-18 21:42:13 +0000
committerJeff Morriss <jeff.morriss.ws@gmail.com>2012-09-18 21:42:13 +0000
commit5ee932193f8d420cb1839347769841e82f3d8185 (patch)
tree6d62fcc8d4d29869405fa838d142664c4a0d5728 /CMakeLists.txt
parentb6e0cc28a56a0547c13d4547328bf827d8a66895 (diff)
*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
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt71
1 files changed, 41 insertions, 30 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 379286843d..78fecd3340 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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