Fix the version numbering mess

This commit is contained in:
David Sansome 2011-01-03 14:21:10 +00:00
parent 156f4a51c5
commit 0fba393f6e
13 changed files with 65 additions and 56 deletions

View File

@ -2,7 +2,7 @@ set(DEB_ARCH amd64 CACHE STRING "Architecture of the deb file")
add_custom_target(deb
COMMAND dpkg-buildpackage -b -d -uc -us
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../clementine_${CLEMENTINE_DEB_VERSION}_${DEB_ARCH}.deb
${CMAKE_BINARY_DIR}/clementine.deb
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../clementine_${CLEMENTINE_VERSION_DEB}_${DEB_ARCH}.deb
${CMAKE_BINARY_DIR}/clementine_${CLEMENTINE_VERSION_DEB}_${DEB_ARCH}.deb
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)

View File

@ -5,9 +5,9 @@ set(RPM_ARCH x86_64 CACHE STRING "Architecture of the rpm file")
add_custom_target(rpm
COMMAND ${CMAKE_SOURCE_DIR}/dist/maketarball.sh
COMMAND ${CMAKE_COMMAND} -E copy clementine-${CLEMENTINE_VERSION}.tar.gz ${RPMBUILD_DIR}/SOURCES/
COMMAND ${CMAKE_COMMAND} -E copy clementine-${CLEMENTINE_VERSION_RPM}.tar.gz ${RPMBUILD_DIR}/SOURCES/
COMMAND rpmbuild -bs ${CMAKE_SOURCE_DIR}/dist/clementine.spec
COMMAND mock -r ${MOCK_CHROOT} ${RPMBUILD_DIR}/SRPMS/clementine-${CLEMENTINE_VERSION}-1.${RPM_DISTRO}.src.rpm
COMMAND ${CMAKE_COMMAND} -E copy /var/lib/mock/${MOCK_CHROOT}/result/clementine-${CLEMENTINE_VERSION}-1.${RPM_DISTRO}.${RPM_ARCH}.rpm
${CMAKE_BINARY_DIR}/clementine.rpm
COMMAND mock -r ${MOCK_CHROOT} ${RPMBUILD_DIR}/SRPMS/clementine-${CLEMENTINE_VERSION_RPM}-1.${RPM_DISTRO}.src.rpm
COMMAND ${CMAKE_COMMAND} -E copy /var/lib/mock/${MOCK_CHROOT}/result/clementine-${CLEMENTINE_VERSION_RPM}-1.${RPM_DISTRO}.${RPM_ARCH}.rpm
${CMAKE_BINARY_DIR}/clementine-${CLEMENTINE_VERSION_RPM}-1.${RPM_DISTRO}.${RPM_ARCH}.rpm
)

View File

@ -3,38 +3,50 @@
# Version numbers.
set(CLEMENTINE_VERSION_MAJOR 0)
set(CLEMENTINE_VERSION_MINOR 6)
set(CLEMENTINE_VERSION_PATCH 0)
#set(CLEMENTINE_VERSION_PRERELEASE rc1)
include(FindSubversion)
# This should be set to OFF in an svn tag
set(INCLUDE_SVN_REVISION ON)
set(BUILDBOT_REVISION $ENV{BUILDBOT_REVISION})
if(NOT BUILDBOT_REVISION)
# The format for version numbers is:
# Display: $major.$minor [$prerelease] [$svn]
# Deb: $major.$minor[~$prerelease][~$svn]
# Rpm: $major.$minor[$prerelease][.$svn]
# And the rpm version is used for mac and windows
set(CLEMENTINE_VERSION_DISPLAY "${CLEMENTINE_VERSION_MAJOR}.${CLEMENTINE_VERSION_MINOR}")
set(CLEMENTINE_VERSION_DEB "${CLEMENTINE_VERSION_MAJOR}.${CLEMENTINE_VERSION_MINOR}")
set(CLEMENTINE_VERSION_RPM "${CLEMENTINE_VERSION_MAJOR}.${CLEMENTINE_VERSION_MINOR}")
# Add prerelease
if(CLEMENTINE_VERSION_PRERELEASE)
set(CLEMENTINE_VERSION_DISPLAY "${CLEMENTINE_VERSION_DISPLAY} ${CLEMENTINE_VERSION_PRERELEASE}")
set(CLEMENTINE_VERSION_DEB "${CLEMENTINE_VERSION_DEB}~${CLEMENTINE_VERSION_PRERELEASE}")
set(CLEMENTINE_VERSION_RPM "${CLEMENTINE_VERSION_RPM}${CLEMENTINE_VERSION_PRERELEASE}")
endif(CLEMENTINE_VERSION_PRERELEASE)
# Add svn revision
if(FORCE_SVN_REVISION)
set(SVN_REVISION ${FORCE_SVN_REVISION})
else(FORCE_SVN_REVISION)
include(FindSubversion)
find_package(Subversion)
if(SUBVERSION_FOUND)
if(Subversion_FOUND)
execute_process(COMMAND ${Subversion_SVN_EXECUTABLE} info ${PROJECT_SOURCE_DIR}
RESULT_VARIABLE SVN_INFO_RESULT
OUTPUT_QUIET
ERROR_QUIET)
if(${SVN_INFO_RESULT} EQUAL 0)
Subversion_WC_INFO(${PROJECT_SOURCE_DIR} clementine)
set(BUILDBOT_REVISION ${clementine_WC_REVISION})
set(SVN_REVISION ${clementine_WC_REVISION})
endif(${SVN_INFO_RESULT} EQUAL 0)
endif(SUBVERSION_FOUND)
endif(NOT BUILDBOT_REVISION)
if(BUILDBOT_REVISION)
set(CLEMENTINE_VERSION_STRING "${CLEMENTINE_VERSION_MAJOR}.${CLEMENTINE_VERSION_MINOR} r${BUILDBOT_REVISION}") # Displayed in GUIs
set(CLEMENTINE_VERSION_SHORT_STRING "${CLEMENTINE_VERSION_MAJOR}.${CLEMENTINE_VERSION_MINOR}r${BUILDBOT_REVISION}") # Used in filenames
set(CLEMENTINE_VERSION ${CLEMENTINE_VERSION_MAJOR}.${CLEMENTINE_VERSION_MINOR}.90.r${BUILDBOT_REVISION})
set(CLEMENTINE_DEB_VERSION ${CLEMENTINE_VERSION_MAJOR}.${CLEMENTINE_VERSION_MINOR}.90~r${BUILDBOT_REVISION}~${DEB_DIST})
else(BUILDBOT_REVISION)
if (CLEMENTINE_VERSION_PATCH)
set(CLEMENTINE_VERSION ${CLEMENTINE_VERSION_MAJOR}.${CLEMENTINE_VERSION_MINOR}.${CLEMENTINE_VERSION_PATCH})
else (CLEMENTINE_VERSION_PATCH)
set(CLEMENTINE_VERSION ${CLEMENTINE_VERSION_MAJOR}.${CLEMENTINE_VERSION_MINOR})
endif (CLEMENTINE_VERSION_PATCH)
set(CLEMENTINE_DEB_VERSION ${CLEMENTINE_VERSION}~${DEB_DIST})
set(CLEMENTINE_VERSION_STRING "${CLEMENTINE_VERSION}")
set(CLEMENTINE_VERSION_SHORT_STRING "${CLEMENTINE_VERSION}")
endif(BUILDBOT_REVISION)
endif(Subversion_FOUND)
endif(FORCE_SVN_REVISION)
if(INCLUDE_SVN_REVISION AND SVN_REVISION)
set(CLEMENTINE_VERSION_DISPLAY "${CLEMENTINE_VERSION_DISPLAY} r${SVN_REVISION}")
set(CLEMENTINE_VERSION_DEB "${CLEMENTINE_VERSION_DEB}~r${SVN_REVISION}")
set(CLEMENTINE_VERSION_RPM "${CLEMENTINE_VERSION_RPM}.r${SVN_REVISION}")
endif(INCLUDE_SVN_REVISION AND SVN_REVISION)

4
debian/changelog.in vendored
View File

@ -1,5 +1,5 @@
clementine (${CLEMENTINE_DEB_VERSION}) ${DEB_DIST}; urgency=low
clementine (${CLEMENTINE_VERSION_DEB}) ${DEB_DIST}; urgency=low
* Version ${CLEMENTINE_VERSION_STRING}
* Version ${CLEMENTINE_VERSION_DISPLAY}
-- David Sansome <me@davidsansome.com> ${DEB_DATE}

2
debian/rules.in vendored
View File

@ -7,7 +7,7 @@ configure-stamp:
cd bin && cmake .. \
-DCMAKE_INSTALL_PREFIX=$(CURDIR)/debian/clementine/usr \
-DBUNDLE_PROJECTM_PRESETS=OFF \
-DBUILDBOT_REVISION=@BUILDBOT_REVISION@
-DFORCE_SVN_REVISION=@SVN_REVISION@
touch configure-stamp
build: build-stamp

8
dist/Info.plist.in vendored
View File

@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>clementine</string>
<key>CFBundleGetInfoString</key>
<string>Clementine ${CLEMENTINE_VERSION_STRING}</string>
<string>Clementine ${CLEMENTINE_VERSION_DISPLAY}</string>
<key>CFBundleIconFile</key>
<string>clementine</string>
<key>CFBundleIdentifier</key>
@ -15,15 +15,15 @@
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
<string>${CLEMENTINE_VERSION_STRING}</string>
<string>${CLEMENTINE_VERSION_DISPLAY}</string>
<key>CFBundleName</key>
<string>Clementine</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>${CLEMENTINE_VERSION_SHORT_STRING}</string>
<string>${CLEMENTINE_VERSION_RPM}</string>
<key>CFBundleVersion</key>
<string>${BUILDBOT_REVISION}</string>
<string>${CLEMENTINE_VERSION_RPM}</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>LSRequiresCarbon</key>

View File

@ -1,5 +1,5 @@
Name: clementine
Version: @CLEMENTINE_VERSION@
Version: @CLEMENTINE_VERSION_RPM@
Release: 1%{?dist}
Summary: A music player and library organiser
@ -82,5 +82,5 @@ make clean
%{_datadir}/clementine/projectm-presets
%changelog
* @RPM_DATE@ David Sansome <me@davidsansome.com> - @CLEMENTINE_VERSION@
- Version @CLEMENTINE_VERSION_STRING@
* @RPM_DATE@ David Sansome <me@davidsansome.com> - @CLEMENTINE_VERSION_RPM@
- Version @CLEMENTINE_VERSION_DISPLAY@

View File

@ -1,8 +1,8 @@
#!/bin/bash
name=clementine
version="@CLEMENTINE_VERSION@"
deb_version="@CLEMENTINE_DEB_VERSION@"
version="@CLEMENTINE_VERSION_RPM@"
deb_version="@CLEMENTINE_VERSION_DEB@"
root=$(cd "${0%/*}/.." && echo $PWD/${0##*/})
root=`dirname "$root"`
rootnoslash=`echo $root | sed "s/^\///"`

View File

@ -2,8 +2,8 @@
!define PRODUCT_PUBLISHER "Clementine"
!define PRODUCT_VERSION_MAJOR @CLEMENTINE_VERSION_MAJOR@
!define PRODUCT_VERSION_MINOR @CLEMENTINE_VERSION_MINOR@
!define PRODUCT_DISPLAY_VERSION "@CLEMENTINE_VERSION_STRING@"
!define PRODUCT_DISPLAY_VERSION_SHORT "@CLEMENTINE_VERSION_SHORT_STRING@"
!define PRODUCT_DISPLAY_VERSION "@CLEMENTINE_VERSION_DISPLAY@"
!define PRODUCT_DISPLAY_VERSION_SHORT "@CLEMENTINE_VERSION_DISPLAY@"
!define PRODUCT_WEB_SITE "http://www.clementine-player.org/"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
@ -48,7 +48,7 @@ SetCompressor /SOLID lzma
!insertmacro MUI_LANGUAGE "English"
Name "${PRODUCT_NAME}"
OutFile "${PRODUCT_NAME}Setup.exe"
OutFile "${PRODUCT_NAME}Setup-@CLEMENTINE_VERSION_RPM@.exe"
InstallDir "${PRODUCT_INSTALL_DIR}"
ShowInstDetails show
ShowUnInstDetails show

View File

@ -1,7 +1,7 @@
clementine ICON "clementine.ico"
1 VERSIONINFO
FILEVERSION ${CLEMENTINE_VERSION_MAJOR},${CLEMENTINE_VERSION_MINOR},${CLEMENTINE_VERSION_PATCH},0
PRODUCTVERSION ${CLEMENTINE_VERSION_MAJOR},${CLEMENTINE_VERSION_MINOR},${CLEMENTINE_VERSION_PATCH},0
FILEVERSION ${CLEMENTINE_VERSION_MAJOR},${CLEMENTINE_VERSION_MINOR},0
PRODUCTVERSION ${CLEMENTINE_VERSION_MAJOR},${CLEMENTINE_VERSION_MINOR},0
BEGIN
BLOCK "StringFileInfo"
BEGIN
@ -9,12 +9,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "Clementine"
VALUE "FileDescription", "Clementine music player"
VALUE "FileVersion", "${CLEMENTINE_VERSION_STRING}"
VALUE "FileVersion", "${CLEMENTINE_VERSION_DISPLAY}"
VALUE "InternalName", "clementine"
VALUE "LegalCopyright", "David Sansome"
VALUE "OriginalFilename", "clementine.exe"
VALUE "ProductName", "Clementine"
VALUE "ProductVersion", "${CLEMENTINE_VERSION_STRING}"
VALUE "ProductVersion", "${CLEMENTINE_VERSION_DISPLAY}"
END
END

View File

@ -954,7 +954,7 @@ if (APPLE)
DEPENDS clementine
)
add_custom_target(dmg
${CMAKE_COMMAND} -E remove -f ${PROJECT_BINARY_DIR}/clementine.dmg
${CMAKE_COMMAND} -E remove -f ${PROJECT_BINARY_DIR}/clementine-${CLEMENTINE_VERSION_RPM}.dmg
COMMAND macdeployqt clementine.app -no-plugins -dmg
DEPENDS clementine
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}

View File

@ -17,11 +17,8 @@
#ifndef CONFIG_H_IN
#define CONFIG_H_IN
#define CLEMENTINE_VERSION_MAJOR ${CLEMENTINE_VERSION_MAJOR}
#define CLEMENTINE_VERSION_MINOR ${CLEMENTINE_VERSION_MINOR}
#define CLEMENTINE_VERSION_PATCH ${CLEMENTINE_VERSION_PATCH}
#define CLEMENTINE_VERSION_STRING "${CLEMENTINE_VERSION_STRING}"
#define CLEMENTINE_VERSION_SHORT_STRING "${CLEMENTINE_VERSION_SHORT_STRING}"
#define CLEMENTINE_VERSION_DISPLAY "${CLEMENTINE_VERSION_DISPLAY}"
#define CLEMENTINE_VERSION "${CLEMENTINE_VERSION_DEB}"
#define CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}"

View File

@ -133,7 +133,7 @@ int main(int argc, char *argv[]) {
#endif
QCoreApplication::setApplicationName("Clementine");
QCoreApplication::setApplicationVersion(CLEMENTINE_VERSION_STRING);
QCoreApplication::setApplicationVersion(CLEMENTINE_VERSION_DISPLAY);
QCoreApplication::setOrganizationName("Clementine");
QCoreApplication::setOrganizationDomain("davidsansome.com");