diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ee0e1824..83c342cd7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,6 @@ PROJECT( tomahawk ) CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) +SET( CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_SOURCE_DIR}/CMakeModules" ) IF( ${CMAKE_VERSION} VERSION_GREATER 2.8.3 ) CMAKE_POLICY(SET CMP0017 NEW) @@ -16,11 +17,31 @@ SET( TOMAHAWK_DESCRIPTION_SUMMARY "The social media player" ) SET( TOMAHAWK_VERSION_MAJOR 0 ) SET( TOMAHAWK_VERSION_MINOR 1 ) SET( TOMAHAWK_VERSION_PATCH 0 ) + +# SET( TOMAHAWK_VERSION_RC 0 ) + +IF( NOT CMAKE_BUILD_TYPE STREQUAL "Release" ) + # Use the date as the tweak level. + INCLUDE( ${CMAKE_MODULE_PATH}/kwsysDateStamp.cmake ) + SET( TOMAHAWK_VERSION_TWEAK "${KWSYS_DATE_STAMP_YEAR}${KWSYS_DATE_STAMP_MONTH}${KWSYS_DATE_STAMP_DAY}" ) + INCLUDE( ${CMAKE_MODULE_PATH}/CMakeVersionSource.cmake ) +ENDIF() + SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION_MAJOR}.${TOMAHAWK_VERSION_MINOR}.${TOMAHAWK_VERSION_PATCH} ) +IF( ${TOMAHAWK_VERSION_TWEAK} GREATER 0) + SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}.${TOMAHAWK_VERSION_TWEAK} ) +ENDIF() +IF( TOMAHAWK_VERSION_RC ) + SET( CMake_VERSION ${TOMAHAWK_VERSION}-rc${TOMAHAWK_VERSION_RC} ) +ENDIF() +IF( CMAKE_VERSION_SOURCE ) + SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}-${CMAKE_VERSION_SOURCE} ) +ENDIF() + + # set paths -SET( CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_SOURCE_DIR}/CMakeModules" ) SET( THIRDPARTY_DIR ${CMAKE_SOURCE_DIR}/thirdparty ) SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) diff --git a/CMakeModules/CMakeVersionSource.cmake b/CMakeModules/CMakeVersionSource.cmake new file mode 100644 index 000000000..acc177a75 --- /dev/null +++ b/CMakeModules/CMakeVersionSource.cmake @@ -0,0 +1,37 @@ +# Try to identify the current development source version. +set(CMAKE_VERSION_SOURCE "") +if(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD) + find_program(GIT_EXECUTABLE NAMES git git.cmd) + mark_as_advanced(GIT_EXECUTABLE) + if(GIT_EXECUTABLE) + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=4 HEAD + OUTPUT_VARIABLE head + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + ) + if(head) + set(CMAKE_VERSION_SOURCE "g${head}") + execute_process( + COMMAND ${GIT_EXECUTABLE} update-index -q --refresh + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + ) + execute_process( + COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD -- + OUTPUT_VARIABLE dirty + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + ) + if(dirty) + set(CMAKE_VERSION_SOURCE "${CMAKE_VERSION_SOURCE}-dirty") + endif() + endif() + endif() +elseif(EXISTS ${CMAKE_SOURCE_DIR}/CVS/Repository) + file(READ ${CMAKE_SOURCE_DIR}/CVS/Repository repo) + set(branch "") + if("${repo}" MATCHES "\\.git/") + string(REGEX REPLACE ".*\\.git/([^\r\n]*).*" "-\\1" branch "${repo}") + endif() + set(CMAKE_VERSION_SOURCE "cvs${branch}") +endif() diff --git a/CMakeModules/kwsysDateStamp.cmake b/CMakeModules/kwsysDateStamp.cmake new file mode 100644 index 000000000..f17c56cec --- /dev/null +++ b/CMakeModules/kwsysDateStamp.cmake @@ -0,0 +1,21 @@ +# Do not edit! Generated by kwsysDateStamp.py +#============================================================================= +# KWSys - Kitware System Library +# Copyright 2000-2009 Kitware, Inc., Insight Software Consortium +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= + +# KWSys version date year component. Format is CCYY. +SET(KWSYS_DATE_STAMP_YEAR 2011) + +# KWSys version date month component. Format is MM. +SET(KWSYS_DATE_STAMP_MONTH 07) + +# KWSys version date day component. Format is DD. +SET(KWSYS_DATE_STAMP_DAY 06)