diff --git a/CMakeLists.txt b/CMakeLists.txt index 18640abf5..6b2618ee7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,10 @@ IF(POLICY CMP0003) CMAKE_POLICY(SET CMP0003 NEW) ENDIF(POLICY CMP0003) +IF(POLICY CMP0048) + CMAKE_POLICY(SET CMP0048 NEW) +ENDIF(POLICY CMP0048) + IF(POLICY CMP0056) CMAKE_POLICY(SET CMP0056 NEW) ENDIF(POLICY CMP0056) @@ -18,8 +22,32 @@ IF(POLICY CMP0072) CMAKE_POLICY(SET CMP0072 NEW) ENDIF(POLICY CMP0072) -# Speed Dreams project -PROJECT(speed-dreams-2) +IF(NOT ${CMAKE_VERSION} VERSION_LESS "3.0.2") + # Speed Dreams project + PROJECT(speed-dreams-2 VERSION 2.2.3) +ELSE(NOT ${CMAKE_VERSION} VERSION_LESS "3.0.2") + # Speed Dreams project + PROJECT(speed-dreams-2) + + SET(PROJECT_VERSION_MAJOR 2) + SET(PROJECT_VERSION_MINOR 2) + SET(PROJECT_VERSION_PATCH 3) + SET(PROJECT_VERSION_TWEAK ) + SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}) + + IF(DEFINED PROJECT_VERSION_MINOR) + SET(PROJECT_VERSION ${PROJECT_VERSION}.${PROJECT_VERSION_MINOR}) + IF(DEFINED PROJECT_VERSION_PATCH) + SET(PROJECT_VERSION ${PROJECT_VERSION}.${PROJECT_VERSION_PATCH}) + IF(DEFINED PROJECT_VERSION_TWEAK) + SET(PROJECT_VERSION ${PROJECT_VERSION}.${PROJECT_VERSION_TWEAK}) + ENDIF(DEFINED PROJECT_VERSION_TWEAK) + ENDIF(DEFINED PROJECT_VERSION_PATCH) + ENDIF(DEFINED PROJECT_VERSION_MINOR) + + SET(speed-dreams-2_VERSION ${PROJECT_VERSION}) + #MESSAGE(WARNING "CMAKE_VERSION ${CMAKE_VERSION} is deprecated") +ENDIF(NOT ${CMAKE_VERSION} VERSION_LESS "3.0.2") INCLUDE(cmake/macros.cmake) INCLUDE(cmake/checks.cmake) @@ -30,7 +58,9 @@ CHECK_LIBRARIES() # Determine version SET(NEXT_LESSER_VERSION 0) # The next lesser version -SET(NEXT_MAJOR_MINOR_VERSION "2.3") # Next major.minor version +MATH(EXPR NEXT_MINOR "${PROJECT_VERSION_MINOR} + 1") +SET(NEXT_MAJOR_MINOR_VERSION "${PROJECT_VERSION_MAJOR}.${NEXT_MINOR}") # Next major.minor version +#MESSAGE(STATUS "NEXT_MAJOR_MINOR_VERSION ${NEXT_MAJOR_MINOR_VERSION}") # Uncomment if you don't want automatic SVN version detection # (poor performances under Windows, don't work with git-svn, ...) @@ -117,6 +147,23 @@ ELSE(NOT OPTION_AUTOVERSION) ENDIF(NOT OPTION_AUTOVERSION) +# SVN_REV is used by packagers, so set it to something +# in case it couldn't be retrieved or OPTION_AUTOVERSION is FALSE +IF(NOT SVN_REV) + SET(SVN_REV "XXXX") +ENDIF(NOT SVN_REV) + +# PROJECT_VERSION_METADATA is used by NSIS packagers +# its what comes after the '-' sign (if anything) +# ie: in tag '2.2.2-rc1' PROJECT_VERSION_METADATA should be '-rc1' +STRING(FIND "${VERSION}" "-" _METADATA_INDEX) +IF(NOT ${_METADATA_INDEX} EQUAL -1) + STRING(SUBSTRING ${VERSION} ${_METADATA_INDEX} -1 PROJECT_VERSION_METADATA) +ELSE(NOT ${_METADATA_INDEX} EQUAL -1) + SET(PROJECT_VERSION_METADATA ) +ENDIF(NOT ${_METADATA_INDEX} EQUAL -1) +#MESSAGE(STATUS "PROJECT_VERSION_METADATA ${PROJECT_VERSION_METADATA}") + # Generate config.h CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.h.in.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) diff --git a/packaging/windows/speed-dreams.nsh.in b/packaging/windows/speed-dreams.nsh.in index 6e20f2015..a95442dee 100644 --- a/packaging/windows/speed-dreams.nsh.in +++ b/packaging/windows/speed-dreams.nsh.in @@ -10,19 +10,19 @@ ; (at your option) any later version. !ifndef VER_MAJOR - !define VER_MAJOR 2 + !define VER_MAJOR @PROJECT_VERSION_MAJOR@ !endif !ifndef VER_MINOR - !define VER_MINOR 2 + !define VER_MINOR @PROJECT_VERSION_MINOR@ !endif !ifndef VER_PATCH - !define VER_PATCH 3 + !define VER_PATCH @PROJECT_VERSION_PATCH@ !endif !ifndef VER_EXTRA - !define VER_EXTRA "" + !define VER_EXTRA "@PROJECT_VERSION_METADATA@" !endif ;!echo "VER_EXTRA = ${VER_EXTRA}"