diff --git a/CMakeLists.txt b/CMakeLists.txt index c27a8317b..cc0ef25c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,9 +18,6 @@ project(strawberry) cmake_minimum_required(VERSION 2.8.11) -#cmake_policy(SET CMP0011 OLD) - -#aux_source_directory(. SRC_LIST) include(CheckCXXCompilerFlag) include(CheckIncludeFiles) @@ -89,7 +86,6 @@ pkg_check_modules(GLIB REQUIRED glib-2.0) pkg_check_modules(GIO REQUIRED gio-2.0) pkg_check_modules(GOBJECT REQUIRED gobject-2.0) pkg_check_modules(CDIO libcdio) -pkg_check_modules(CHROMAPRINT REQUIRED libchromaprint) pkg_check_modules(GSTREAMER gstreamer-1.0) pkg_check_modules(GSTREAMER_BASE gstreamer-base-1.0) pkg_check_modules(GSTREAMER_APP gstreamer-app-1.0) @@ -99,12 +95,13 @@ pkg_check_modules(GSTREAMER_PBUTILS gstreamer-pbutils-1.0) pkg_check_modules(LIBXINE libxine) pkg_check_modules(LIBVLC libvlc) pkg_check_modules(PHONON phonon4qt5) +pkg_check_modules(TAGLIB REQUIRED taglib>=1.8) +pkg_check_modules(SQLITE REQUIRED sqlite3>=3.7) +pkg_check_modules(CHROMAPRINT REQUIRED libchromaprint) pkg_check_modules(LIBGPOD libgpod-1.0>=0.7.92) pkg_check_modules(LIBMTP libmtp>=1.0) pkg_check_modules(LIBPULSE libpulse) pkg_check_modules(LIBXML libxml-2.0) -pkg_check_modules(TAGLIB REQUIRED taglib>=1.8) -pkg_check_modules(SQLITE REQUIRED sqlite3>=3.7) pkg_check_modules(LIBGLU REQUIRED glu) pkg_check_modules(IMOBILEDEVICE libimobiledevice-1.0) pkg_check_modules(USBMUXD libusbmuxd) diff --git a/README.md b/README.md index bc41f21ac..b13a5db9f 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,13 @@ It's written in C++ and Qt5. The name is inspired by the band Strawbs. ### Features: * Play and organize music - * Edit tags on music files - * Album cover art from Lastfm, Musicbrainz, Discogs and Amazon * Native desktop notifications * Playlists in multiple formats - * Transfer music to iPod, iPhone, MTP or mass-storage USB player + * Edit tags on music files * Fetch tags from MusicBrainz + * Album cover art from Lastfm, Musicbrainz, Discogs and Amazon * Support for multiple backends + * Transfer music to iPod, iPhone, MTP or mass-storage USB player You can obtain and view the sourcecode on github at: https://github.com/jonaski/strawberry @@ -35,8 +35,8 @@ To build Strawberry from source you need the following installed on your system: * ALSA and libasound2 with development files * SQLite3 with development files -* libchromaprint with development files * TagLib 1.8 or higher with development files +* libchromaprint with development files * libglu with development files Either GStreamer, Xine or VLC engine is required, but only GStreamer is fully implemented so far. diff --git a/cmake/Summary.cmake b/cmake/Summary.cmake index eea579be8..06afcb33a 100644 --- a/cmake/Summary.cmake +++ b/cmake/Summary.cmake @@ -1,5 +1,3 @@ -cmake_policy(SET CMP0012 NEW) - set(summary_willbuild "") set(summary_willnotbuild "") diff --git a/cmake/Version.cmake b/cmake/Version.cmake index 3d75d0184..398c643b6 100644 --- a/cmake/Version.cmake +++ b/cmake/Version.cmake @@ -3,7 +3,7 @@ set(STRAWBERRY_VERSION_MINOR 1) set(STRAWBERRY_VERSION_PATCH 2) #set(STRAWBERRY_VERSION_PRERELEASE rc1) -set(INCLUDE_GIT_REVISION OFF) +set(INCLUDE_GIT_REVISION ON) set(majorminorpatch "${STRAWBERRY_VERSION_MAJOR}.${STRAWBERRY_VERSION_MINOR}.${STRAWBERRY_VERSION_PATCH}") @@ -36,26 +36,38 @@ if(NOT GIT_EXECUTABLE-NOTFOUND) ) # Get the latest abbreviated commit hash of the working branch execute_process( - COMMAND ${GIT_EXECUTABLE} log -1 --format=%h - RESULT_VARIABLE GIT_INFO_RESULT + COMMAND ${GIT_EXECUTABLE} describe --tags --always WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_COMMIT_HASH + RESULT_VARIABLE GIT_INFO_RESULT + OUTPUT_VARIABLE GIT_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) endif() if(${GIT_INFO_RESULT} EQUAL 0) - set(HAS_GET_REVISION ON) - set(GIT_REV "${GIT_COMMIT_HASH}") + set(HAS_GIT_REVISION ON) + string(REGEX REPLACE "^(.+)-([0-9]+)-(g[a-f0-9]+)$" "\\1;\\2;\\3" GIT_PARTS ${GIT_REVISION}) + + if(NOT GIT_PARTS) + message(FATAL_ERROR "Failed to parse git revision string '${GIT_REVISION}'") + endif(NOT GIT_PARTS) + + list(LENGTH GIT_PARTS GIT_PARTS_LENGTH) + if(GIT_PARTS_LENGTH EQUAL 3) + list(GET GIT_PARTS 0 GIT_TAGNAME) + list(GET GIT_PARTS 1 GIT_COMMITCOUNT) + list(GET GIT_PARTS 2 GIT_SHA1) + set(HAS_GIT_REVISION ON) + endif(GIT_PARTS_LENGTH EQUAL 3) endif(${GIT_INFO_RESULT} EQUAL 0) -if(INCLUDE_GIT_REVISION AND HAS_GET_REVISION) - set(STRAWBERRY_VERSION_DISPLAY "${STRAWBERRY_VERSION_DISPLAY} ${GIT_BRANCH} ${GIT_REV}") - set(STRAWBERRY_VERSION_PACKAGE "${STRAWBERRY_VERSION_PACKAGE}-${GIT_BRANCH}-${GIT_REV}") - set(STRAWBERRY_VERSION_RPM_V "${STRAWBERRY_VERSION_RPM_V}.${GIT_BRANCH}.${GIT_REV}") - set(STRAWBERRY_VERSION_RPM_R "1") -endif(INCLUDE_GIT_REVISION AND HAS_GET_REVISION) +if(INCLUDE_GIT_REVISION AND HAS_GIT_REVISION) + set(STRAWBERRY_VERSION_DISPLAY "${GIT_REVISION}") + set(STRAWBERRY_VERSION_PACKAGE "${GIT_REVISION}") + set(STRAWBERRY_VERSION_RPM_V "${GIT_TAGNAME}") + set(STRAWBERRY_VERSION_RPM_R "2.${GIT_COMMITCOUNT}.${GIT_SHA1}") +endif(INCLUDE_GIT_REVISION AND HAS_GIT_REVISION) message(STATUS "Strawberry Version:") message(STATUS "Display: ${STRAWBERRY_VERSION_DISPLAY}") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b256c623c..5996d3d7f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -68,7 +68,6 @@ include_directories(${CMAKE_SOURCE_DIR}/ext/libstrawberry-common) include_directories(${CMAKE_SOURCE_DIR}/ext/libstrawberry-tagreader) include_directories(${CMAKE_BINARY_DIR}/ext/libstrawberry-tagreader) -#cmake_policy(SET CMP0011 NEW) include(../cmake/AddEngine.cmake) include(../cmake/ParseArguments.cmake)