Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
fd89814845 | ||
|
61a379a7d7 | ||
|
031474d73b | ||
|
e2ae8d6e8b | ||
|
ba67e1d557 | ||
|
23b6087338 | ||
|
1921f42b9d |
13
.gitignore
vendored
@@ -1,24 +1,17 @@
|
||||
src/accounts/tomahawk
|
||||
*-build/*
|
||||
qtcreator-build/*
|
||||
build/*
|
||||
.directory
|
||||
*.a
|
||||
*.o
|
||||
._*
|
||||
*.user
|
||||
*.swp
|
||||
*.swo
|
||||
Makefile*
|
||||
moc_*
|
||||
*~
|
||||
/tomahawk
|
||||
thirdparty/qtweetlib/WARNING-twitter-api-keys
|
||||
.kdev4
|
||||
*.kdev4
|
||||
*.kate-swp
|
||||
tomahawk.kdev4
|
||||
clang/
|
||||
win/
|
||||
gcc/
|
||||
tags
|
||||
.DS_Store
|
||||
*.autosave
|
||||
Doxyfile
|
||||
|
9
.gitmodules
vendored
@@ -1,3 +1,6 @@
|
||||
[submodule "thirdparty/libcrashreporter-qt"]
|
||||
path = thirdparty/libcrashreporter-qt
|
||||
url = https://github.com/dschmidt/libcrashreporter-qt
|
||||
[submodule "thirdparty/jreen"]
|
||||
path = thirdparty/jreen
|
||||
url = git://github.com/euroelessar/jreen.git
|
||||
[submodule "thirdparty/qtweetlib/QTweetLib"]
|
||||
path = thirdparty/qtweetlib/QTweetLib
|
||||
url = git://github.com/minimoog/QTweetLib.git
|
||||
|
@@ -1,9 +0,0 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[tomahawk.tomahawk-master]
|
||||
file_filter = lang/tomahawk_<lang>.ts
|
||||
source_file = lang/tomahawk_en.ts
|
||||
source_lang = en
|
||||
type = QT
|
||||
|
16
AUTHORS
@@ -4,19 +4,13 @@ Tomahawk is primarily authored by:
|
||||
|
||||
Contributors include:
|
||||
|
||||
* Leo Franchi <lfranchi@tomahawk-player.org>
|
||||
* Dominik Schmidt <domme@tomahawk-player.org>
|
||||
* Jeff Mitchell <jeff@tomahawk-player.org>
|
||||
* J Herskowitz <j@tomahawk-player.org>
|
||||
* Leo Franchi <lfranchi@kde.org>
|
||||
* Dominik Schmidt <dev@dominik-schmidt.de>
|
||||
* Jeff Mitchell <mitchell@kde.org>
|
||||
* J Herskowitz <jherskow@gmail.com>
|
||||
* Alejandro Wainzinger <aikawarazuni@gmail.com>
|
||||
* Hugo Lindström <hugo@tomahawk-player.org>
|
||||
* Teo Mrnjavac <teo@kde.org>
|
||||
* Michael Zanetti <dreadhead@follefuder.org>
|
||||
* Christopher Reichert <christopher@tomahawk-player.org>
|
||||
* Uwe L. Korn <uwelk@xhochy.com>
|
||||
* Patrick von Reth <vonreth@kde.org>
|
||||
|
||||
Thanks to:
|
||||
|
||||
* Harald Sitter <sitter@kde.org>
|
||||
* Syd Lawrence <syd@tomahawk-player.org>
|
||||
* Steve Robertson
|
||||
|
571
CMakeLists.txt
@@ -1,17 +1,10 @@
|
||||
PROJECT( tomahawk )
|
||||
CMAKE_MINIMUM_REQUIRED( VERSION 2.8.6 )
|
||||
SET( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules" )
|
||||
CMAKE_POLICY(SET CMP0017 NEW)
|
||||
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
|
||||
SET( CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_SOURCE_DIR}/CMakeModules" )
|
||||
|
||||
IF ( CMAKE_VERSION VERSION_EQUAL 2.8.12 OR CMAKE_VERSION VERSION_GREATER 2.8.12 )
|
||||
CMAKE_POLICY(SET CMP0022 NEW)
|
||||
|
||||
# TODO:
|
||||
# Update to NEW and fix things up when we can depend on 2.8.12
|
||||
CMAKE_POLICY(SET CMP0023 OLD)
|
||||
ENDIF()
|
||||
|
||||
INCLUDE(CMakeDependentOption)
|
||||
IF( ${CMAKE_VERSION} VERSION_GREATER 2.8.3 )
|
||||
CMAKE_POLICY(SET CMP0017 NEW)
|
||||
ENDIF( ${CMAKE_VERSION} VERSION_GREATER 2.8.3 )
|
||||
|
||||
###
|
||||
### Tomahawk application info
|
||||
@@ -20,432 +13,136 @@ SET( TOMAHAWK_ORGANIZATION_NAME "Tomahawk" )
|
||||
SET( TOMAHAWK_ORGANIZATION_DOMAIN "tomahawk-player.org" )
|
||||
SET( TOMAHAWK_APPLICATION_NAME "Tomahawk" )
|
||||
SET( TOMAHAWK_DESCRIPTION_SUMMARY "The social media player" )
|
||||
IF(APPLE)
|
||||
SET( TOMAHAWK_TARGET_NAME "Tomahawk" )
|
||||
ELSE()
|
||||
SET( TOMAHAWK_TARGET_NAME "tomahawk" )
|
||||
ENDIF()
|
||||
|
||||
IF( WIN32 )
|
||||
SET( TOMAHAWK_SYSTEM "Windows" )
|
||||
ELSEIF( APPLE )
|
||||
SET( TOMAHAWK_SYSTEM "OS X" )
|
||||
ELSEIF( UNIX )
|
||||
SET( TOMAHAWK_SYSTEM "Linux")
|
||||
ELSE()
|
||||
SET( TOMAHAWK_SYSTEM "Uknown Platform, please let the Tomahawk team know, this actually happened" )
|
||||
ENDIF()
|
||||
|
||||
SET( TOMAHAWK_VERSION_MAJOR 0 )
|
||||
SET( TOMAHAWK_VERSION_MINOR 8 )
|
||||
SET( TOMAHAWK_VERSION_PATCH 99 )
|
||||
SET( TOMAHAWK_VERSION_RC 0 )
|
||||
SET( TOMAHAWK_VERSION_MINOR 1 )
|
||||
SET( TOMAHAWK_VERSION_PATCH 0 )
|
||||
|
||||
SET( TOMAHAWK_TRANSLATION_LANGUAGES ar bg bn_IN ca cs da de en el es es_419 fi fr hi_IN hu gl id it ja lt nl pl pt_BR pt_PT ro ru sq sv th tr uk vi zh_CN zh_TW )
|
||||
# SET( TOMAHAWK_VERSION_RC 0 )
|
||||
|
||||
# add_definitions is only in the scope of this directory and all directories
|
||||
# below it. Tomahawk Libraries and plugins that are built with Tomahawk are
|
||||
# not included in out-of-source build so we need to re-add_definitions there.
|
||||
macro(tomahawk_add_definitions DEFINITION)
|
||||
add_definitions( ${DEFINITION} )
|
||||
set( TOMAHAWK_DEFINITIONS "${TOMAHAWK_DEFINITIONS} ${DEFINITION}")
|
||||
endmacro()
|
||||
|
||||
macro(tomahawk_add_cxx_flags FLAGS)
|
||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS}")
|
||||
set( TOMAHAWK_CXX_FLAGS "${TOMAHAWK_CXX_FLAGS} ${FLAGS}")
|
||||
endmacro()
|
||||
|
||||
macro(tomahawk_add_c_flags FLAGS)
|
||||
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS}")
|
||||
set( TOMAHAWK_C_FLAGS "${TOMAHAWK_C_FLAGS} ${FLAGS}")
|
||||
endmacro()
|
||||
|
||||
# enforce proper symbol exporting on all platforms
|
||||
tomahawk_add_definitions( "-fvisibility=hidden" )
|
||||
# enforce using constBegin, constEnd for const-iterators
|
||||
tomahawk_add_definitions( "-DQT_STRICT_ITERATORS" )
|
||||
|
||||
# build options
|
||||
option(BUILD_RELEASE "Generate TOMAHAWK_VERSION without GIT info" OFF)
|
||||
if(BUILD_RELEASE)
|
||||
set(BUILD_NO_RELEASE OFF)
|
||||
else()
|
||||
set(BUILD_NO_RELEASE ON)
|
||||
endif()
|
||||
|
||||
option(BUILD_GUI "Build Tomahawk with GUI" ON)
|
||||
option(BUILD_TESTS "Build Tomahawk with unit tests" ${BUILD_NO_RELEASE})
|
||||
option(BUILD_TOOLS "Build Tomahawk helper tools" ${BUILD_NO_RELEASE})
|
||||
option(BUILD_HATCHET "Build the Hatchet plugin" ON)
|
||||
option(BUILD_WITH_QT4 "Build Tomahawk with Qt4 no matter if Qt5 was found" ON)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(CRASHREPORTER_ENABLED_BY_DEFAULT OFF)
|
||||
else()
|
||||
set(CRASHREPORTER_ENABLED_BY_DEFAULT ON)
|
||||
endif()
|
||||
option(WITH_CRASHREPORTER "Build with CrashReporter" ${CRASHREPORTER_ENABLED_BY_DEFAULT})
|
||||
option(WITH_BINARY_ATTICA "Enable support for downloading binary resolvers automatically" ON)
|
||||
option(LEGACY_KDE_INTEGRATION "Install tomahawk.protocol file, deprecated since 4.6.0" OFF)
|
||||
option(WITH_KDE4 "Build with support for KDE specific stuff" ON)
|
||||
|
||||
# build options for development purposes
|
||||
option(SANITIZE_ADDRESS "Enable Address Sanitizer for memory error detection" OFF)
|
||||
option(TOMAHAWK_FINEGRAINED_MESSAGES "Enable even more verbose logging (will hurt performance significantly" OFF)
|
||||
|
||||
CMAKE_DEPENDENT_OPTION(WITH_UPOWER "Build with support for UPower events" ON
|
||||
"UNIX;NOT APPLE" OFF)
|
||||
CMAKE_DEPENDENT_OPTION(WITH_GNOMESHORTCUTHANDLER "Build with shortcut handler for GNOME" ON
|
||||
"UNIX;NOT APPLE" OFF)
|
||||
|
||||
IF( CMAKE_SYSTEM_PROCESSOR MATCHES "arm" OR NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libcrashreporter-qt/CMakeLists.txt")
|
||||
message(STATUS "Build of crashreporter disabled.")
|
||||
SET(WITH_CRASHREPORTER OFF)
|
||||
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()
|
||||
|
||||
# generate version string
|
||||
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION_MAJOR}.${TOMAHAWK_VERSION_MINOR}.${TOMAHAWK_VERSION_PATCH} )
|
||||
|
||||
# base string used in release and unstable builds
|
||||
SET( TOMAHAWK_VERSION_TMP "${TOMAHAWK_VERSION_MAJOR}.${TOMAHAWK_VERSION_MINOR}.${TOMAHAWK_VERSION_PATCH}")
|
||||
SET( TOMAHAWK_VERSION_SHORT "${TOMAHAWK_VERSION_TMP}" )
|
||||
IF( ${TOMAHAWK_VERSION_TWEAK} GREATER 0)
|
||||
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}.${TOMAHAWK_VERSION_TWEAK} )
|
||||
ENDIF()
|
||||
IF( TOMAHAWK_VERSION_RC )
|
||||
SET( TOMAHAWK_VERSION_TMP "${TOMAHAWK_VERSION_TMP}rc${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()
|
||||
|
||||
# additional info for non-release builds
|
||||
IF( NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/" )
|
||||
INCLUDE( CMakeDateStamp )
|
||||
SET( TOMAHAWK_VERSION_DATE "${CMAKE_DATESTAMP_YEAR}${CMAKE_DATESTAMP_MONTH}${CMAKE_DATESTAMP_DAY}" )
|
||||
IF( TOMAHAWK_VERSION_DATE GREATER 0 )
|
||||
SET( TOMAHAWK_VERSION_TMP ${TOMAHAWK_VERSION_TMP}.${TOMAHAWK_VERSION_DATE} )
|
||||
ENDIF()
|
||||
|
||||
INCLUDE( CMakeVersionSource )
|
||||
IF( CMAKE_VERSION_SOURCE )
|
||||
SET( TOMAHAWK_VERSION_TMP ${TOMAHAWK_VERSION_TMP}-${CMAKE_VERSION_SOURCE} )
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# write Tomahawk version to cache
|
||||
SET(TOMAHAWK_VERSION "${TOMAHAWK_VERSION_TMP}" CACHE STRING "Tomahawk Version")
|
||||
|
||||
|
||||
# set paths
|
||||
SET( THIRDPARTY_DIR "${CMAKE_SOURCE_DIR}/thirdparty" )
|
||||
SET( THIRDPARTY_DIR ${CMAKE_SOURCE_DIR}/thirdparty )
|
||||
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
|
||||
SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
|
||||
SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
|
||||
|
||||
# make predefined install dirs available everywhere
|
||||
INCLUDE( GNUInstallDirs )
|
||||
|
||||
# installer creation
|
||||
INCLUDE( TomahawkCPack.cmake )
|
||||
INCLUDE( CPack.cmake )
|
||||
|
||||
# deps
|
||||
# Check if we need qtgui:
|
||||
IF( "${gui}" STREQUAL "no" )
|
||||
ADD_DEFINITIONS( -DENABLE_HEADLESS )
|
||||
MESSAGE( STATUS "Building in HEADLESS mode ***" )
|
||||
FIND_PACKAGE( Qt4 4.7.0 COMPONENTS QtCore QtXml QtNetwork REQUIRED )
|
||||
ELSE()
|
||||
MESSAGE( STATUS "Building full GUI version ***" )
|
||||
FIND_PACKAGE( Qt4 4.7.0 COMPONENTS QtGui QtCore QtXml QtNetwork REQUIRED )
|
||||
ENDIF()
|
||||
|
||||
#deps
|
||||
INCLUDE( MacroOptionalFindPackage )
|
||||
INCLUDE( MacroLogFeature )
|
||||
|
||||
message( STATUS "Building Tomahawk ${TOMAHAWK_VERSION} ***" )
|
||||
# required
|
||||
#While we distribute our own liblastfm2, don't need to look for it
|
||||
#macro_optional_find_package(LibLastFm 0.3.3)
|
||||
#macro_log_feature(LIBLASTFM_FOUND "LastFm" "Qt library for the Last.fm webservices" "https://github.com/mxcl/liblastfm" FALSE "" "liblastfm is needed for scrobbling tracks to Last.fm and fetching cover artwork")
|
||||
set(LIBLASTFM_FOUND true)
|
||||
|
||||
if( NOT BUILD_WITH_QT4 )
|
||||
find_package(Qt5Core QUIET)
|
||||
if( Qt5Core_DIR )
|
||||
# CMAKE 2.8.13+/3.0.0+ requires these for IMPORTed targets
|
||||
find_package(Qt5Concurrent REQUIRED)
|
||||
find_package(Qt5Svg REQUIRED)
|
||||
find_package(Qt5UiTools REQUIRED)
|
||||
find_package(Qt5WebKitWidgets REQUIRED)
|
||||
find_package(Qt5Widgets REQUIRED)
|
||||
find_package(Qt5Xml REQUIRED)
|
||||
find_package(Qt5X11Extras NO_MODULE)
|
||||
|
||||
if(Qt5X11Extras_FOUND)
|
||||
set(HAVE_X11 TRUE)
|
||||
else()
|
||||
set(HAVE_X11 FALSE)
|
||||
endif()
|
||||
|
||||
message(STATUS "Found Qt5! Be aware that Qt5-support is still experimental and not officially supported!")
|
||||
|
||||
if( UNIX AND NOT APPLE )
|
||||
# We need this to find the paths to qdbusxml2cpp and co
|
||||
find_package(Qt5DBus REQUIRED)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
find_package(Qt5MacExtras REQUIRED)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
find_package(Qt5WinExtras REQUIRED)
|
||||
endif()
|
||||
|
||||
macro(qt_wrap_ui)
|
||||
qt5_wrap_ui(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(qt_add_resources)
|
||||
qt5_add_resources(${ARGN})
|
||||
endmacro()
|
||||
|
||||
find_package(Qt5LinguistTools REQUIRED)
|
||||
macro(qt_add_translation)
|
||||
qt5_add_translation(${ARGN})
|
||||
endmacro()
|
||||
|
||||
if( UNIX AND NOT APPLE )
|
||||
macro(qt_add_dbus_interface)
|
||||
qt5_add_dbus_interface(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(qt_add_dbus_adaptor)
|
||||
qt5_add_dbus_adaptor(${ARGN})
|
||||
endmacro()
|
||||
endif()
|
||||
|
||||
macro(setup_qt)
|
||||
endmacro()
|
||||
|
||||
set(QT_RCC_EXECUTABLE "${Qt5Core_RCC_EXECUTABLE}")
|
||||
#FIXME: CrashReporter depends on deprecated QHttp
|
||||
set(WITH_KDE4 OFF)
|
||||
endif()
|
||||
endif()
|
||||
if( NOT Qt5Core_DIR )
|
||||
message(STATUS "Could not find Qt5, searching for Qt4 instead...")
|
||||
|
||||
set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork")
|
||||
if( BUILD_GUI )
|
||||
list(APPEND NEEDED_QT4_COMPONENTS "QtGui" "QtWebkit" "QtUiTools" "QtSvg")
|
||||
endif()
|
||||
if( BUILD_TESTS )
|
||||
list(APPEND NEEDED_QT4_COMPONENTS "QtTest")
|
||||
endif()
|
||||
|
||||
macro_optional_find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS} )
|
||||
macro_log_feature(QT4_FOUND "Qt" "A cross-platform application and UI framework" "http://qt-project.org" TRUE "" "If you see this, although libqt4-devel is installed, check whether the \n qtwebkit-devel package and whatever contains QtUiTools is installed too")
|
||||
|
||||
macro(qt5_use_modules)
|
||||
endmacro()
|
||||
|
||||
macro(qt_wrap_ui)
|
||||
qt4_wrap_ui(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(qt_add_resources)
|
||||
qt4_add_resources(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(qt_add_translation)
|
||||
qt4_add_translation(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(qt_add_dbus_interface)
|
||||
qt4_add_dbus_interface(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(qt_add_dbus_adaptor)
|
||||
qt4_add_dbus_adaptor(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(setup_qt)
|
||||
if( NOT BUILD_GUI )
|
||||
set(QT_DONT_USE_QTGUI TRUE)
|
||||
endif()
|
||||
if( UNIX AND NOT APPLE )
|
||||
set(QT_USE_QTDBUS TRUE)
|
||||
endif()
|
||||
set(QT_USE_QTSQL TRUE)
|
||||
set(QT_USE_QTNETWORK TRUE)
|
||||
set(QT_USE_QTXML TRUE)
|
||||
set(QT_USE_QTWEBKIT TRUE)
|
||||
|
||||
include( ${QT_USE_FILE} )
|
||||
endmacro()
|
||||
|
||||
# Qt5 C++11 Macros not defined within Qt4
|
||||
# TODO: Add C++11 support
|
||||
tomahawk_add_definitions( "-DQ_DECL_FINAL=" )
|
||||
tomahawk_add_definitions( "-DQ_DECL_OVERRIDE=" )
|
||||
endif()
|
||||
|
||||
if( Qt5Core_DIR )
|
||||
set( TOMAHAWK_QT5_TMP TRUE)
|
||||
else( Qt5Core_DIR )
|
||||
set( TOMAHAWK_QT5_TMP FALSE )
|
||||
endif( Qt5Core_DIR )
|
||||
set( TOMAHAWK_QT5 ${TOMAHAWK_QT5_TMP} CACHE BOOL "Build Tomahawk with Qt5")
|
||||
|
||||
|
||||
if( BUILD_GUI AND UNIX AND NOT APPLE )
|
||||
macro_optional_find_package( X11 )
|
||||
macro_log_feature(X11_FOUND "X11" "The Xorg libraries" "http://www.x.org/wiki/" TRUE "" "Xorg libraries are used by libqnetwm to bring windows to front reliably")
|
||||
endif()
|
||||
|
||||
include(CheckCXXCompilerFlag)
|
||||
check_cxx_compiler_flag( "-std=c++11" CXX11_FOUND )
|
||||
check_cxx_compiler_flag( "-std=c++0x" CXX0X_FOUND )
|
||||
check_cxx_compiler_flag( "-stdlib=libc++" LIBCPP_FOUND )
|
||||
if(CXX11_FOUND)
|
||||
tomahawk_add_cxx_flags( "-std=c++11" )
|
||||
elseif(CXX0X_FOUND)
|
||||
tomahawk_add_cxx_flags( "-std=c++0x" )
|
||||
find_package(Phonon REQUIRED)
|
||||
if(PHONON_VERSION STRLESS "4.5.0")
|
||||
message(FATAL_ERROR "Phonon version 4.5.0 or higher is required, you have version ${PHONON_VERSION}")
|
||||
else()
|
||||
message(STATUS "${CMAKE_CXX_COMPILER} does not support C++11, please use a
|
||||
different compiler")
|
||||
endif()
|
||||
if(LIBCPP_FOUND AND APPLE)
|
||||
tomahawk_add_cxx_flags( "-stdlib=libc++" )
|
||||
message(STATUS "Phonon found; ensure that phonon-vlc is at least 0.4")
|
||||
endif()
|
||||
|
||||
macro_optional_find_package(LibEchonest 1.1.7)
|
||||
macro_log_feature(LIBECHONEST_FOUND "Echonest" "Qt library for communicating with The Echo Nest" "http://projects.kde.org/libechonest" TRUE "" "libechonest 1.1.8 is needed for dynamic playlists and the infosystem")
|
||||
|
||||
macro_optional_find_package(Echonest 2.2.0)
|
||||
macro_log_feature(ECHONEST_FOUND "Echonest" "Qt library for communicating with The Echo Nest" "http://projects.kde.org/libechonest" TRUE "" "libechonest 2.2.0 is needed for dynamic playlists and the infosystem")
|
||||
macro_optional_find_package(CLucene 0.9.23)
|
||||
macro_log_feature(CLucene_FOUND "CLucene" "The open-source, C++ search engine" "http://clucene.sf.net" TRUE "" "CLucene is used for indexing the collection")
|
||||
|
||||
find_package(Boost REQUIRED COMPONENTS system)
|
||||
macro_log_feature(Boost_FOUND "Boost" "Provides free peer-reviewed portable C++ source libraries" "http://www.boost.org" TRUE "" "") #FIXME: give useful explanation
|
||||
macro_optional_find_package(QJSON)
|
||||
macro_log_feature(QJSON_FOUND "QJson" "Qt library that maps JSON data to QVariant objects" "http://qjson.sf.net" TRUE "" "libqjson is used for encoding communication between Tomahawk instances")
|
||||
|
||||
macro_optional_find_package(Lucene++ 3.0.0)
|
||||
macro_log_feature(LUCENEPP_FOUND "Lucene++" "The open-source, C++ search engine" "https://github.com/luceneplusplus/LucenePlusPlus/" TRUE "" "Lucene++ is used for indexing the collection")
|
||||
|
||||
if( NOT TOMAHAWK_QT5 )
|
||||
macro_optional_find_package(QJSON 0.8.1)
|
||||
macro_log_feature(QJSON_FOUND "QJson" "Qt library that maps JSON data to QVariant objects" "http://qjson.sf.net" TRUE "" "libqjson is used for encoding communication between Tomahawk instances")
|
||||
ENDIF()
|
||||
|
||||
macro_optional_find_package(Taglib 1.8.0)
|
||||
macro_optional_find_package(Taglib 1.6.0)
|
||||
macro_log_feature(TAGLIB_FOUND "TagLib" "Audio Meta-Data Library" "http://developer.kde.org/~wheeler/taglib.html" TRUE "" "taglib is needed for reading meta data from audio files")
|
||||
include( CheckTagLibFileName )
|
||||
check_taglib_filename( COMPLEX_TAGLIB_FILENAME )
|
||||
|
||||
macro_optional_find_package(Sparsehash)
|
||||
macro_log_feature(SPARSEHASH_FOUND "Sparsehash"
|
||||
"An extremely memory-efficient hash_map implementation."
|
||||
"https://code.google.com/p/sparsehash/" TRUE ""
|
||||
"Sparsehash is needed for reading metadata of mediastreams and fast
|
||||
forward/backward seeking in HTTP streams")
|
||||
|
||||
macro_optional_find_package(GnuTLS)
|
||||
macro_log_feature(GNUTLS_FOUND "GnuTLS"
|
||||
"GnuTLS is a secure communications library implementing the SSL, TLS and DTLS protocols and technologies around them."
|
||||
"http://gnutls.org/" TRUE ""
|
||||
"GnuTLS is needed for serving the Playdar/HTTP API via TLS")
|
||||
|
||||
if( TOMAHAWK_QT5 )
|
||||
macro_optional_find_package(Qca-qt5)
|
||||
if(Qca-qt5_DIR)
|
||||
set(QCA2_FOUND ON CACHE BOOL "QCA2 was found")
|
||||
set(QCA2_LIBRARIES "qca-qt5" CACHE STRING "QCA2 Qt5 target")
|
||||
endif()
|
||||
else()
|
||||
macro_optional_find_package(QCA2)
|
||||
endif()
|
||||
macro_log_feature(QCA2_FOUND "QCA2" "Provides encryption and signing functions necessary for some resolvers and accounts" "http://delta.affinix.com/qca/" TRUE "" "")
|
||||
|
||||
if( TOMAHAWK_QT5 )
|
||||
macro_optional_find_package(KF5Attica 1.0.0)
|
||||
set(LIBATTICA_FOUND ${KF5Attica_FOUND})
|
||||
else()
|
||||
macro_optional_find_package(LibAttica 0.4.0)
|
||||
endif()
|
||||
macro_log_feature(LIBATTICA_FOUND "libattica" "Provides support for installation of resolvers from the Tomahawk website" "http://download.kde.org/stable/attica/" TRUE "" "")
|
||||
|
||||
macro_optional_find_package(QuaZip)
|
||||
macro_log_feature(QUAZIP_FOUND "QuaZip" "Provides support for extracting downloaded resolvers automatically." "http://quazip.sourceforge.net/" TRUE "" "")
|
||||
|
||||
macro_optional_find_package(Jreen 1.0.5)
|
||||
macro_log_feature(JREEN_FOUND "Jreen" "Qt XMPP Library" "http://qutim.org/jreen / https://github.com/euroelessar/jreen" FALSE "" "Jreen is needed for the Jabber SIP plugin.\n")
|
||||
if( PC_JREEN_VERSION STREQUAL "1.1.0" )
|
||||
message(FATAL_ERROR "Jreen 1.1.0 has a very annoying bug that breaks accepting auth requests in Tomahawk. Please upgrade to 1.1.1 or downgrade to 1.0.5.")
|
||||
endif()
|
||||
|
||||
macro_optional_find_package(LibLastFm 1.0.0)
|
||||
macro_log_feature(LIBLASTFM_FOUND "liblastfm" "Qt library for the Last.fm webservices" "https://github.com/lastfm/liblastfm" TRUE "" "liblastfm is needed for scrobbling tracks to Last.fm and fetching cover artwork")
|
||||
|
||||
if( NOT APPLE )
|
||||
if( TOMAHAWK_QT5 )
|
||||
macro_optional_find_package(Qt5Keychain 0.1.0)
|
||||
else()
|
||||
macro_optional_find_package(QtKeychain 0.1.0)
|
||||
endif()
|
||||
macro_log_feature(QTKEYCHAIN_FOUND "QtKeychain" "Provides support for secure credentials storage" "https://github.com/frankosterfeld/qtkeychain" TRUE "" "")
|
||||
endif()
|
||||
|
||||
if( UNIX AND NOT APPLE )
|
||||
macro_optional_find_package(TelepathyQt 0.9.3)
|
||||
if ( TOMAHAWK_QT5 )
|
||||
macro_log_feature(TelepathyQt5_FOUND "Telepathy-Qt" "Telepathy-Qt is a Qt high-level binding for Telepathy, a D-Bus framework for unifying real time communication." FALSE "" "Telepathy-Qt is needed for sharing Jabber/GTalk accounts with Telepathy.\n")
|
||||
else ( TOMAHAWK_QT5)
|
||||
macro_log_feature(TelepathyQt4_FOUND "Telepathy-Qt" "Telepathy-Qt is a Qt high-level binding for Telepathy, a D-Bus framework for unifying real time communication." FALSE "" "Telepathy-Qt is needed for sharing Jabber/GTalk accounts with Telepathy.\n")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# we need pthreads too
|
||||
macro_optional_find_package(Threads)
|
||||
macro_log_feature(THREADS_FOUND "Threads" "Threading Library" "" TRUE "" "Platform specific library for threading")
|
||||
|
||||
### QtSparkle
|
||||
if( WIN32 )
|
||||
macro_optional_find_package(QtSparkle)
|
||||
macro_log_feature(QTSPARKLE_FOUND "qtsparkle" "Library for creating auto updaters written in Qt" "https://github.com/davidsansome/qtsparkle" FALSE "" "")
|
||||
endif( WIN32 )
|
||||
|
||||
if( WIN32 OR APPLE )
|
||||
if( TOMAHAWK_QT5 )
|
||||
macro_optional_find_package(LibsnoreQt5 QUIET)
|
||||
else()
|
||||
macro_optional_find_package(Libsnore QUIET)
|
||||
endif()
|
||||
macro_log_feature(LIBSNORE_FOUND "Libsnore" "Library for notifications" "https://github.com/TheOneRing/Snorenotify" FALSE "" "")
|
||||
endif()
|
||||
|
||||
find_package(LIBVLC REQUIRED 2.1.0)
|
||||
macro_log_feature(LIBVLC_FOUND "LibVLC" "Provides audio output" "https://www.videolan.org/vlc/" TRUE "" "")
|
||||
|
||||
set(QXTWEB_FOUND TRUE)
|
||||
set(QXTWEB_LIBRARIES qxtweb-standalone)
|
||||
set(QXTWEB_INCLUDE_DIRS ${THIRDPARTY_DIR}/qxt/qxtweb-standalone/web ${THIRDPARTY_DIR}/qxt/qxtweb-standalone/network ${THIRDPARTY_DIR}/qxt/qxtweb-standalone/core ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
### libportfwd
|
||||
set(LIBPORTFWD_INCLUDE_DIR ${THIRDPARTY_DIR}/libportfwd/include)
|
||||
set(LIBPORTFWD_LIBRARY tomahawk_portfwd)
|
||||
set(LIBPORTFWD_LIBRARIES ${LIBPORTFWD_LIBRARY})
|
||||
add_subdirectory(${THIRDPARTY_DIR}/libportfwd)
|
||||
|
||||
#### submodules start
|
||||
# automatically init submodules here, don't delete this code we may add submodules again
|
||||
|
||||
# this installs headers and such and should really be handled in a separate package by packagers
|
||||
IF( INTERNAL_JREEN )
|
||||
ADD_SUBDIRECTORY( ${THIRDPARTY_DIR}/jreen )
|
||||
SET( LIBJREEN_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/thirdparty/jreen/include )
|
||||
SET( LIBJREEN_LIBRARY jreen )
|
||||
SET( LIBJREEN_LIBRARIES ${LIBJREEN_LIBRARY} )
|
||||
SET( LIBJREEN_FOUND true )
|
||||
MESSAGE(STATUS "INTERNAL libjreen: ${LIBJREEN_INCLUDE_DIR}, ${LIBJREEN_LIBRARY}")
|
||||
ELSE( INTERNAL_JREEN )
|
||||
macro_optional_find_package(Jreen)
|
||||
ENDIF( INTERNAL_JREEN )
|
||||
macro_log_feature(LIBJREEN_FOUND "Jreen" "Qt XMPP Library" "http://gitorious.org/jreen/jreen" FALSE "" "Jreen is needed for the Jabber SIP plugin. \n\n Use -DINTERNAL_JREEN=ON to build the git submodule inside Tomahawk \n Be aware this installs a full jreen with headers and everything!\n")
|
||||
|
||||
# IF( FALSE )
|
||||
# IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.gitmodules)
|
||||
# EXECUTE_PROCESS(COMMAND git submodule init WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||
# EXECUTE_PROCESS(COMMAND git submodule update WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||
# ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.gitmodules)
|
||||
# ENDIF()
|
||||
# this installs headers and such and should really be handled in a separate package by packagers
|
||||
IF( INTERNAL_QTWEETLIB )
|
||||
ADD_SUBDIRECTORY( ${THIRDPARTY_DIR}/qtweetlib )
|
||||
# copy headers to build/QTweetLib so we can use proper includes inside the code
|
||||
FILE( COPY ${CMAKE_SOURCE_DIR}/thirdparty/qtweetlib/QTweetLib/src/ DESTINATION ${CMAKE_BINARY_DIR}/QTweetLib )
|
||||
SET( QTWEETLIB_INCLUDE_DIR ${CMAKE_BINARY_DIR} )
|
||||
SET( QTWEETLIB_LIBRARY tomahawk_qtweetlib )
|
||||
SET( QTWEETLIB_LIBRARIES ${QTWEETLIB_LIBRARY} )
|
||||
SET( QTWEETLIB_FOUND true )
|
||||
MESSAGE(STATUS "INTERNAL libQTweetLib: ${QTWEETLIB_INCLUDE_DIR}, ${QTWEETLIB_LIBRARY}")
|
||||
ELSE( INTERNAL_QTWEETLIB )
|
||||
macro_optional_find_package(QTweetLib)
|
||||
ENDIF( INTERNAL_QTWEETLIB )
|
||||
macro_log_feature(QTWEETLIB_FOUND "QTweetLib" "Qt Twitter Library" "https://github.com/minimoog/QTweetLib" FALSE "" "QTweetLib is needed for the Twitter SIP plugin. \n\n Use -DINTERNAL_QTWEETLIB=ON to build the git submodule inside Tomahawk \n")
|
||||
|
||||
#### submodules end
|
||||
### libportfwd
|
||||
SET( LIBPORTFWD_INCLUDE_DIR ${THIRDPARTY_DIR}/libportfwd/include )
|
||||
SET( LIBPORTFWD_LIBRARY tomahawk_portfwd )
|
||||
SET( LIBPORTFWD_LIBRARIES ${LIBPORTFWD_LIBRARY} )
|
||||
ADD_SUBDIRECTORY( ${THIRDPARTY_DIR}/libportfwd )
|
||||
|
||||
# we need pthreads too
|
||||
find_package(Threads)
|
||||
|
||||
if (WITH_KDE4)
|
||||
macro_optional_find_package(KDE4)
|
||||
macro_optional_find_package(KDE4Installed)
|
||||
endif(WITH_KDE4)
|
||||
macro_log_feature(KDE4_FOUND "KDE4" "Provides support for configuring Telepathy Accounts from inside Tomahawk" "https://www.kde.org" FALSE "" "")
|
||||
|
||||
IF( KDE4_FOUND )
|
||||
IF( CMAKE_C_FLAGS )
|
||||
# KDE4 adds and removes some compiler flags that we don't like
|
||||
# (only for gcc not for clang e.g.)
|
||||
STRING( REPLACE "-std=iso9899:1990" "" CLEAN_C_FLAGS ${CMAKE_C_FLAGS} )
|
||||
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions" )
|
||||
ENDIF()
|
||||
find_package(KDE4Installed)
|
||||
find_package(KDE4)
|
||||
IF(KDE4_FOUND)
|
||||
#KDE4 adds and removes some compiler flags that we don't like
|
||||
STRING( REPLACE "-std=iso9899:1990" "" CLEAN_C_FLAGS ${CMAKE_C_FLAGS} )
|
||||
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions" )
|
||||
ELSE()
|
||||
SET( CLEAN_C_FLAGS ${CMAKE_C_FLAGS} )
|
||||
ENDIF()
|
||||
|
||||
include( CheckTagLibFileName )
|
||||
check_taglib_filename( COMPLEX_TAGLIB_FILENAME )
|
||||
|
||||
IF( WIN32 )
|
||||
find_library(QTSPARKLE_LIBRARIES qtsparkle)
|
||||
ENDIF( WIN32 )
|
||||
|
||||
#show dep log
|
||||
macro_display_feature_log()
|
||||
|
||||
@@ -457,78 +154,18 @@ CONFIGURE_FILE(
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
IMMEDIATE @ONLY)
|
||||
|
||||
# KDE4 defines an uninstall target for us automatically (and at least with Qt4 Phonon does as well no matter if kdelibs was found)
|
||||
# IF( NOT KDE4_FOUND )
|
||||
# ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
|
||||
# ENDIF()
|
||||
# KDE4 defines an uninstall target for us automatically
|
||||
IF( NOT KDE4_FOUND )
|
||||
ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
|
||||
ENDIF()
|
||||
|
||||
IF( ( NOT APPLE ) AND ( NOT SANITIZE_ADDRESS ))
|
||||
IF( NOT APPLE )
|
||||
# Make linking as strict on linux as it is on osx. Then we don't break linking on mac so often
|
||||
#
|
||||
# On using Address Sanitizer, we cannot link to the ASAN lib, so
|
||||
# --no-undefined would break the build.
|
||||
SET( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" )
|
||||
SET( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined" )
|
||||
ENDIF()
|
||||
|
||||
IF ( SANITIZE_ADDRESS )
|
||||
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
|
||||
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
|
||||
ENDIF()
|
||||
|
||||
# Early configure these files as we need them later on
|
||||
configure_file(TomahawkUse.cmake.in "${PROJECT_BINARY_DIR}/TomahawkUse.cmake" @ONLY)
|
||||
file(COPY TomahawkAddPlugin.cmake DESTINATION "${PROJECT_BINARY_DIR}")
|
||||
file(COPY TomahawkAddLibrary.cmake DESTINATION "${PROJECT_BINARY_DIR}")
|
||||
|
||||
SET( TOMAHAWK_LIBRARIES tomahawklib )
|
||||
SET( TOMAHAWK_WIDGETS_LIBRARIES tomahawk-widgets )
|
||||
SET( TOMAHAWK_PLAYDARAPI_LIBRARIES tomahawk-playdarapi )
|
||||
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--no-undefined" )
|
||||
ENDIF( NOT APPLE )
|
||||
|
||||
ADD_SUBDIRECTORY( thirdparty )
|
||||
ADD_SUBDIRECTORY( src/libtomahawk )
|
||||
SET( TOMAHAWK_LIBRARIES tomahawklib )
|
||||
ADD_SUBDIRECTORY( src )
|
||||
ADD_SUBDIRECTORY( admin )
|
||||
|
||||
IF(BUILD_TESTS)
|
||||
enable_testing()
|
||||
ADD_SUBDIRECTORY( src/tests )
|
||||
ENDIF()
|
||||
|
||||
# Add all targets to the build-tree export set
|
||||
set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Tomahawk" CACHE PATH "Installation directory for CMake files")
|
||||
set(CMAKE_INSTALL_FULL_CMAKEDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}")
|
||||
export(TARGETS tomahawklib
|
||||
FILE "${PROJECT_BINARY_DIR}/TomahawkLibraryDepends.cmake")
|
||||
|
||||
# Export the package for use from the build-tree
|
||||
# (this registers the build-tree with a global CMake-registry)
|
||||
export(PACKAGE Tomahawk)
|
||||
|
||||
# Create a TomahawkBuildTreeSettings.cmake file for the use from the build tree
|
||||
configure_file(TomahawkBuildTreeSettings.cmake.in "${PROJECT_BINARY_DIR}/TomahawkBuildTreeSettings.cmake" @ONLY)
|
||||
|
||||
# Create the TomahawkConfig.cmake and TomahawkConfigVersion files
|
||||
file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_CMAKEDIR}" "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
|
||||
|
||||
configure_file(TomahawkConfig.cmake.in "${PROJECT_BINARY_DIR}/TomahawkConfig.cmake" @ONLY)
|
||||
configure_file(TomahawkConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/TomahawkConfigVersion.cmake" @ONLY)
|
||||
|
||||
# Install the cmake files
|
||||
install(
|
||||
FILES
|
||||
"${PROJECT_BINARY_DIR}/TomahawkConfig.cmake"
|
||||
"${PROJECT_BINARY_DIR}/TomahawkConfigVersion.cmake"
|
||||
"${PROJECT_BINARY_DIR}/TomahawkUse.cmake"
|
||||
"${PROJECT_BINARY_DIR}/TomahawkAddPlugin.cmake"
|
||||
"${PROJECT_BINARY_DIR}/TomahawkAddLibrary.cmake"
|
||||
DESTINATION
|
||||
"${CMAKE_INSTALL_CMAKEDIR}"
|
||||
)
|
||||
|
||||
# Install the export set for use with the install-tree
|
||||
install(
|
||||
EXPORT
|
||||
TomahawkLibraryDepends
|
||||
DESTINATION
|
||||
"${CMAKE_INSTALL_CMAKEDIR}"
|
||||
)
|
||||
|
@@ -1,5 +1,3 @@
|
||||
SET(WINDRES_EXECUTABLE ${CMAKE_RC_COMPILER})
|
||||
|
||||
# This macro is taken from kdelibs/cmake/modules/KDE4Macros.cmake.
|
||||
#
|
||||
# Copyright (c) 2006-2009 Alexander Neundorf, <neundorf@kde.org>
|
||||
@@ -12,8 +10,8 @@ SET(WINDRES_EXECUTABLE ${CMAKE_RC_COMPILER})
|
||||
|
||||
# adds application icon to target source list
|
||||
# for detailed documentation see the top of FindKDE4Internal.cmake
|
||||
macro (TOMAHAWK_ADD_APP_ICON appsources outfilename pattern)
|
||||
set (_outfilename ${CMAKE_CURRENT_BINARY_DIR}/${outfilename})
|
||||
macro (KDE4_ADD_APP_ICON appsources pattern)
|
||||
set (_outfilename ${CMAKE_CURRENT_BINARY_DIR}/${appsources})
|
||||
|
||||
if (WIN32)
|
||||
if(NOT WINCE)
|
||||
@@ -69,7 +67,7 @@ macro (TOMAHAWK_ADD_APP_ICON appsources outfilename pattern)
|
||||
message(STATUS "Unable to find the png2ico or windres utilities - application will not have an application icon!")
|
||||
endif(PNG2ICO_EXECUTABLE AND WINDRES_EXECUTABLE)
|
||||
endif(WIN32)
|
||||
if (APPLE)
|
||||
if (Q_WS_MAC)
|
||||
# first convert image to a tiff using the Mac OS X "sips" utility,
|
||||
# then use tiff2icns to convert to an icon
|
||||
find_program(SIPS_EXECUTABLE NAMES sips)
|
||||
@@ -86,9 +84,9 @@ macro (TOMAHAWK_ADD_APP_ICON appsources outfilename pattern)
|
||||
if (_icon)
|
||||
|
||||
# first, get the basename of our app icon
|
||||
add_custom_command(OUTPUT ${_outfilename}.icns ${_outfilename}.tiff
|
||||
COMMAND ${SIPS_EXECUTABLE} -s format tiff ${_icon} --out ${_outfilename}.tiff
|
||||
COMMAND ${TIFF2ICNS_EXECUTABLE} ${_outfilename}.tiff ${_outfilename}.icns
|
||||
add_custom_command(OUTPUT ${_outfilename}.icns ${outfilename}.tiff
|
||||
COMMAND ${SIPS_EXECUTABLE} -s format tiff ${_icon} --out ${outfilename}.tiff
|
||||
COMMAND ${TIFF2ICNS_EXECUTABLE} ${outfilename}.tiff ${_outfilename}.icns
|
||||
DEPENDS ${_icon}
|
||||
)
|
||||
|
||||
@@ -110,5 +108,5 @@ macro (TOMAHAWK_ADD_APP_ICON appsources outfilename pattern)
|
||||
else(SIPS_EXECUTABLE AND TIFF2ICNS_EXECUTABLE)
|
||||
message(STATUS "Unable to find the sips and tiff2icns utilities - application will not have an application icon!")
|
||||
endif(SIPS_EXECUTABLE AND TIFF2ICNS_EXECUTABLE)
|
||||
endif(APPLE)
|
||||
endmacro (TOMAHAWK_ADD_APP_ICON)
|
||||
endif(Q_WS_MAC)
|
||||
endmacro (KDE4_ADD_APP_ICON)
|
||||
|
@@ -1,23 +0,0 @@
|
||||
find_program(DATE_EXECUTABLE NAMES date)
|
||||
mark_as_advanced(DATE_EXECUTABLE)
|
||||
|
||||
if(DATE_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND ${DATE_EXECUTABLE} +%Y
|
||||
OUTPUT_VARIABLE CMAKE_DATESTAMP_YEAR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
execute_process(
|
||||
COMMAND ${DATE_EXECUTABLE} +%m
|
||||
OUTPUT_VARIABLE CMAKE_DATESTAMP_MONTH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
execute_process(
|
||||
COMMAND ${DATE_EXECUTABLE} +%d
|
||||
OUTPUT_VARIABLE CMAKE_DATESTAMP_DAY
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
endif()
|
@@ -5,21 +5,13 @@ if(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD)
|
||||
mark_as_advanced(GIT_EXECUTABLE)
|
||||
if(GIT_EXECUTABLE)
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=7 HEAD
|
||||
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(branch "")
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} name-rev HEAD
|
||||
OUTPUT_VARIABLE branch
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
string(REGEX REPLACE "HEAD " "" branch "${branch}")
|
||||
set(CMAKE_VERSION_SOURCE "git-${branch}-${head}")
|
||||
set(CMAKE_VERSION_SOURCE "g${head}")
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} update-index -q --refresh
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
|
@@ -1,22 +0,0 @@
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
114
CMakeModules/FindCLucene.cmake
Normal file
@@ -0,0 +1,114 @@
|
||||
#
|
||||
# This module looks for clucene (http://clucene.sf.net) support
|
||||
# It will define the following values
|
||||
#
|
||||
# CLUCENE_INCLUDE_DIR = where CLucene/StdHeader.h can be found
|
||||
# CLUCENE_LIBRARY_DIR = where CLucene/clucene-config.h can be found
|
||||
# CLUCENE_LIBRARIES = the libraries to link against CLucene
|
||||
# CLUCENE_VERSION = The CLucene version string
|
||||
# CLucene_FOUND = set to 1 if clucene is found
|
||||
#
|
||||
|
||||
INCLUDE(CheckSymbolExists)
|
||||
INCLUDE(FindLibraryWithDebug)
|
||||
|
||||
if(NOT CLUCENE_MIN_VERSION)
|
||||
set(CLUCENE_MIN_VERSION "0.9.23")
|
||||
endif(NOT CLUCENE_MIN_VERSION)
|
||||
|
||||
IF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
|
||||
INCLUDE(${PROJECT_CMAKE}/CLuceneConfig.cmake)
|
||||
ENDIF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
|
||||
|
||||
SET(TRIAL_LIBRARY_PATHS
|
||||
$ENV{CLUCENE_HOME}/lib${LIB_SUFFIX}
|
||||
${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
|
||||
/usr/local/lib${LIB_SUFFIX}
|
||||
/usr/lib${LIB_SUFFIX}
|
||||
/sw/lib${LIB_SUFFIX}
|
||||
/usr/pkg/lib${LIB_SUFFIX}
|
||||
/usr/lib64
|
||||
)
|
||||
SET(TRIAL_INCLUDE_PATHS
|
||||
$ENV{CLUCENE_HOME}/include
|
||||
${CMAKE_INSTALL_PREFIX}/include
|
||||
/usr/local/include
|
||||
/usr/include
|
||||
/sw/include
|
||||
/usr/pkg/include
|
||||
)
|
||||
FIND_LIBRARY_WITH_DEBUG(CLUCENE_CORE_LIBRARY
|
||||
WIN32_DEBUG_POSTFIX d
|
||||
NAMES clucene-core
|
||||
PATHS ${TRIAL_LIBRARY_PATHS})
|
||||
IF (CLUCENE_CORE_LIBRARY)
|
||||
MESSAGE(STATUS "Found CLucene core library: ${CLUCENE_CORE_LIBRARY}")
|
||||
ENDIF (CLUCENE_CORE_LIBRARY)
|
||||
FIND_LIBRARY_WITH_DEBUG(CLUCENE_SHARED_LIBRARY
|
||||
WIN32_DEBUG_POSTFIX d
|
||||
NAMES clucene-shared
|
||||
PATHS ${TRIAL_LIBRARY_PATHS})
|
||||
IF (CLUCENE_SHARED_LIBRARY)
|
||||
MESSAGE(STATUS "Found CLucene shared library: ${CLUCENE_SHARED_LIBRARY}")
|
||||
ENDIF (CLUCENE_SHARED_LIBRARY)
|
||||
|
||||
IF(CLUCENE_CORE_LIBRARY AND CLUCENE_SHARED_LIBRARY)
|
||||
SET(CLUCENE_LIBRARIES ${CLUCENE_CORE_LIBRARY} ${CLUCENE_SHARED_LIBRARY})
|
||||
ENDIF(CLUCENE_CORE_LIBRARY AND CLUCENE_SHARED_LIBRARY)
|
||||
|
||||
FIND_PATH(CLUCENE_INCLUDE_DIR
|
||||
NAMES CLucene.h
|
||||
PATHS ${TRIAL_INCLUDE_PATHS})
|
||||
|
||||
IF (CLUCENE_INCLUDE_DIR)
|
||||
MESSAGE(STATUS "Found CLucene include dir: ${CLUCENE_INCLUDE_DIR}")
|
||||
ENDIF (CLUCENE_INCLUDE_DIR)
|
||||
|
||||
IF(WIN32)
|
||||
SET(TRIAL_LIBRARY_PATHS ${CLUCENE_INCLUDE_DIR})
|
||||
ENDIF(WIN32)
|
||||
|
||||
SET(CLUCENE_GOOD_VERSION TRUE)
|
||||
|
||||
FIND_PATH(CLUCENE_LIBRARY_DIR
|
||||
NAMES CLuceneConfig.cmake/CLuceneConfig.cmake CLucene/CLuceneConfig.cmake
|
||||
PATHS ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} NO_DEFAULT_PATH)
|
||||
IF (CLUCENE_LIBRARY_DIR)
|
||||
MESSAGE(STATUS "Found CLucene library dir: ${CLUCENE_LIBRARY_DIR}")
|
||||
# include CLuceneConfig/CLuceneConfig.cmake
|
||||
IF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLuceneConfig.cmake/CLuceneConfig.cmake)
|
||||
INCLUDE(${CLUCENE_LIBRARY_DIR}/CLuceneConfig.cmake/CLuceneConfig.cmake)
|
||||
ENDIF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLuceneConfig.cmake/CLuceneConfig.cmake)
|
||||
# include CLucene/CLuceneConfig.cmake
|
||||
IF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLucene/CLuceneConfig.cmake)
|
||||
INCLUDE(${CLUCENE_LIBRARY_DIR}/CLucene/CLuceneConfig.cmake)
|
||||
ENDIF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLucene/CLuceneConfig.cmake)
|
||||
IF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}")
|
||||
MESSAGE(ERROR " CLucene version ${CLUCENE_VERSION} is less than the required minimum ${CLUCENE_MIN_VERSION}")
|
||||
SET(CLUCENE_GOOD_VERSION FALSE)
|
||||
ENDIF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}")
|
||||
IF (CLUCENE_VERSION STREQUAL "0.9.17")
|
||||
MESSAGE(ERROR "CLucene version 0.9.17 is not supported.")
|
||||
SET(CLUCENE_GOOD_VERSION FALSE)
|
||||
ENDIF (CLUCENE_VERSION STREQUAL "0.9.17")
|
||||
ENDIF (CLUCENE_LIBRARY_DIR)
|
||||
|
||||
IF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARIES AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
|
||||
SET(CLucene_FOUND TRUE)
|
||||
ENDIF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARIES AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
|
||||
|
||||
IF(CLucene_FOUND)
|
||||
IF(NOT CLucene_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found CLucene: ${CLUCENE_LIBRARIES} version ${CLUCENE_VERSION}")
|
||||
ENDIF(NOT CLucene_FIND_QUIETLY)
|
||||
ELSE(CLucene_FOUND)
|
||||
IF(CLucene_FIND_REQUIRED)
|
||||
MESSAGE(FATAL_ERROR "Could not find CLucene.")
|
||||
ENDIF(CLucene_FIND_REQUIRED)
|
||||
ENDIF(CLucene_FOUND)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
CLUCENE_INCLUDE_DIR
|
||||
CLUCENE_LIBRARY_DIR
|
||||
CLUCENE_LIBRARIES
|
||||
)
|
@@ -1,41 +0,0 @@
|
||||
# - Find libechonest
|
||||
# Find the libechonest includes and the libechonest libraries
|
||||
# This module defines
|
||||
# ECHONEST_INCLUDE_DIR, root echonest include dir. Include echonest includes with echonest/foo.h
|
||||
# ECHONEST_LIBRARIES, the path to libechonest
|
||||
# ECHONEST_FOUND, whether libechonest was found
|
||||
|
||||
FIND_PACKAGE(PkgConfig QUIET)
|
||||
|
||||
if( TOMAHAWK_QT5 )
|
||||
set(LIBECHONEST_SUFFIX "5")
|
||||
endif()
|
||||
|
||||
PKG_CHECK_MODULES(PC_ECHONEST QUIET libechonest${LIBECHONEST_SUFFIX})
|
||||
|
||||
FIND_PATH(ECHONEST_INCLUDE_DIR NAMES echonest${LIBECHONEST_SUFFIX}/Track.h
|
||||
HINTS
|
||||
${PC_ECHONEST_INCLUDEDIR}
|
||||
${PC_ECHONEST_INCLUDE_DIRS}
|
||||
${CMAKE_INSTALL_INCLUDEDIR}
|
||||
${KDE4_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
FIND_LIBRARY(ECHONEST_LIBRARIES NAMES echonest${LIBECHONEST_SUFFIX}
|
||||
HINTS
|
||||
${PC_ECHONEST_LIBDIR}
|
||||
${PC_ECHONEST_LIBRARY_DIRS}
|
||||
${CMAKE_INSTALL_LIBDIR}
|
||||
${KDE4_LIB_DIR}
|
||||
)
|
||||
|
||||
IF(ECHONEST_LIBRARIES AND ECHONEST_INCLUDE_DIR AND NOT PC_ECHONEST_VERSION)
|
||||
MESSAGE(WARNING "You don't have pkg-config and so the libechonest version check does not work!")
|
||||
ENDIF()
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Echonest
|
||||
REQUIRED_VARS ECHONEST_LIBRARIES ECHONEST_INCLUDE_DIR
|
||||
VERSION_VAR PC_ECHONEST_VERSION)
|
||||
|
||||
MARK_AS_ADVANCED(ECHONEST_INCLUDE_DIR ECHONEST_LIBRARIES)
|
23
CMakeModules/FindGloox.cmake
Normal file
@@ -0,0 +1,23 @@
|
||||
# - Try to find GLOOX
|
||||
# Find GLOOX headers, libraries and the answer to all questions.
|
||||
#
|
||||
# GLOOX_FOUND True if gloox got found
|
||||
# GLOOX_INCLUDE_DIR Location of gloox headers
|
||||
# GLOOX_LIBRARIES List of libaries to use gloox
|
||||
#
|
||||
# Copyright (c) 2009 Nigmatullin Ruslan <euroelessar@gmail.com>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the New
|
||||
# BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
#
|
||||
|
||||
FIND_PATH( GLOOX_INCLUDE_DIR "gloox/gloox.h" )
|
||||
FIND_LIBRARY( GLOOX_LIBRARIES gloox )
|
||||
|
||||
if( GLOOX_LIBRARIES AND GLOOX_INCLUDE_DIR )
|
||||
message( STATUS "Found gloox: ${GLOOX_LIBRARIES}" )
|
||||
set( GLOOX_FOUND 1 )
|
||||
else( GLOOX_LIBRARIES AND GLOOX_INCLUDE_DIR )
|
||||
message( STATUS "Could NOT find gloox" )
|
||||
endif( GLOOX_LIBRARIES AND GLOOX_INCLUDE_DIR )
|
@@ -5,40 +5,40 @@
|
||||
# LIBJREEN_LIBRARY, the path to libjreen
|
||||
# LIBJREEN_FOUND, whether libjreen was found
|
||||
|
||||
FIND_PACKAGE(PkgConfig QUIET)
|
||||
if( TOMAHAWK_QT5 )
|
||||
set(JREEN_LIB_SUFFIX "-qt5")
|
||||
set(JREEN_INCLUDE_SUFFIX ${JREEN_LIB_SUFFIX})
|
||||
else()
|
||||
set(JREEN_INCLUDE_SUFFIX "-qt4")
|
||||
endif()
|
||||
PKG_CHECK_MODULES(PC_JREEN QUIET libjreen${JREEN_LIB_SUFFIX})
|
||||
|
||||
FIND_PATH(JREEN_INCLUDE_DIR NAMES jreen/jreen.h
|
||||
HINTS
|
||||
${PC_JREEN_INCLUDEDIR}
|
||||
${PC_JREEN_INCLUDE_DIRS}
|
||||
${CMAKE_INSTALL_INCLUDEDIR}
|
||||
${KDE4_INCLUDE_DIR}
|
||||
PATH_SUFFIXES
|
||||
jreen${JREEN_INCLUDE_SUFFIX}
|
||||
|
||||
find_path(LIBJREEN_INCLUDE_DIR NAMES jreen/jreen.h
|
||||
HINTS
|
||||
~/usr/include
|
||||
/opt/local/include
|
||||
/usr/include
|
||||
/usr/local/include
|
||||
/opt/kde4/include
|
||||
${CMAKE_INSTALL_PREFIX}/include
|
||||
${KDE4_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
FIND_LIBRARY(JREEN_LIBRARIES NAMES jreen${JREEN_LIB_SUFFIX}
|
||||
HINTS
|
||||
${PC_JREEN_LIBDIR}
|
||||
${PC_JREEN_LIBRARY_DIRS}
|
||||
${CMAKE_INSTALL_LIBDIR}
|
||||
${KDE4_LIB_DIR}
|
||||
find_library( LIBJREEN_LIBRARY NAMES jreen
|
||||
PATHS
|
||||
~/usr/lib
|
||||
/opt/local/lib
|
||||
/usr/lib
|
||||
/usr/lib64
|
||||
/usr/local/lib
|
||||
/opt/kde4/lib
|
||||
${CMAKE_INSTALL_PREFIX}/lib
|
||||
${CMAKE_INSTALL_PREFIX}/lib64
|
||||
${KDE4_LIB_DIR}
|
||||
)
|
||||
|
||||
IF(JREEN_LIBRARIES AND JREEN_INCLUDE_DIR AND NOT PC_JREEN_VERSION)
|
||||
MESSAGE(WARNING "You don't have pkg-config and so the Jreen version check does not work!")
|
||||
ENDIF()
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Jreen
|
||||
REQUIRED_VARS JREEN_LIBRARIES JREEN_INCLUDE_DIR)
|
||||
if(LIBJREEN_INCLUDE_DIR AND LIBJREEN_LIBRARY)
|
||||
set(LIBJREEN_FOUND TRUE)
|
||||
message(STATUS "Found libjreen: ${LIBJREEN_INCLUDE_DIR}, ${LIBJREEN_LIBRARY}")
|
||||
else(LIBJREEN_INCLUDE_DIR AND LIBJREEN_LIBRARY)
|
||||
set(LIBJREEN_FOUND FALSE)
|
||||
if (LIBJREEN_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "Could NOT find required package libjreen")
|
||||
endif(LIBJREEN_FIND_REQUIRED)
|
||||
endif(LIBJREEN_INCLUDE_DIR AND LIBJREEN_LIBRARY)
|
||||
|
||||
MARK_AS_ADVANCED(JREEN_INCLUDE_DIR JREEN_LIBRARIES)
|
||||
mark_as_advanced(LIBJREEN_INCLUDE_DIR LIBJREEN_LIBRARY)
|
||||
|
@@ -1,39 +0,0 @@
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(PC_LIBVLC QUIET libvlc)
|
||||
set(LIBVLC_DEFINITIONS ${PC_LIBVLC_CFLAGS_OTHER})
|
||||
|
||||
find_path(LIBVLC_INCLUDE_DIR vlc/vlc.h
|
||||
HINTS
|
||||
${PC_LIBVLC_INCLUDEDIR}
|
||||
${PC_LIBVLC_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
find_library(LIBVLC_LIBRARY NAMES vlc libvlc
|
||||
HINTS
|
||||
${PC_LIBVLC_LIBDIR}
|
||||
${PC_LIBVLC_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
find_library(LIBVLCCORE_LIBRARY NAMES vlccore libvlccore
|
||||
HINTS
|
||||
${PC_LIBVLC_LIBDIR}
|
||||
${PC_LIBVLC_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
set(LIBVLC_VERSION ${PC_LIBVLC_VERSION})
|
||||
|
||||
include(CheckCXXSourceCompiles)
|
||||
check_cxx_source_compiles("
|
||||
#include <vlc/libvlc.h>
|
||||
#include <vlc/libvlc_media.h>
|
||||
int main(int argc, char *argv[]) {
|
||||
libvlc_meta_t meta = libvlc_meta_AlbumArtist;
|
||||
}"
|
||||
HAVE_VLC_ALBUMARTIST)
|
||||
|
||||
find_package_handle_standard_args(LibVLC
|
||||
REQUIRED_VARS LIBVLC_LIBRARY LIBVLCCORE_LIBRARY LIBVLC_INCLUDE_DIR
|
||||
VERSION_VAR LIBVLC_VERSION
|
||||
)
|
||||
|
||||
|
@@ -1,63 +0,0 @@
|
||||
# Try to find the Attica library
|
||||
# Once done this will define
|
||||
#
|
||||
# LIBATTICA_FOUND Indicates that Attica was found
|
||||
# LIBATTICA_LIBRARIES Libraries needed to use Attica
|
||||
# LIBATTICA_LIBRARY_DIRS Paths needed for linking against Attica
|
||||
# LIBATTICA_INCLUDE_DIR Path needed for finding Attica include files
|
||||
#
|
||||
# The minimum required version of LibAttica can be specified using the
|
||||
# standard syntax, e.g. find_package(LibAttica 0.20)
|
||||
|
||||
# Copyright (c) 2009 Frederik Gladhorn <gladhorn@kde.org>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
|
||||
# Support LIBATTICA_MIN_VERSION for compatibility:
|
||||
IF(NOT LibAttica_FIND_VERSION)
|
||||
SET(LibAttica_FIND_VERSION "${LIBATTICA_MIN_VERSION}")
|
||||
ENDIF(NOT LibAttica_FIND_VERSION)
|
||||
|
||||
# the minimum version of LibAttica we require
|
||||
IF(NOT LibAttica_FIND_VERSION)
|
||||
SET(LibAttica_FIND_VERSION "0.1.0")
|
||||
ENDIF(NOT LibAttica_FIND_VERSION)
|
||||
|
||||
|
||||
IF (NOT WIN32)
|
||||
# use pkg-config to get the directories and then use these values
|
||||
# in the FIND_PATH() and FIND_LIBRARY() calls
|
||||
FIND_PACKAGE(PkgConfig)
|
||||
PKG_CHECK_MODULES(PC_LIBATTICA QUIET libattica)
|
||||
SET(LIBATTICA_DEFINITIONS ${PC_ATTICA_CFLAGS_OTHER})
|
||||
ENDIF (NOT WIN32)
|
||||
|
||||
FIND_PATH(LIBATTICA_INCLUDE_DIR attica/provider.h
|
||||
HINTS
|
||||
${PC_LIBATTICA_INCLUDEDIR}
|
||||
${PC_LIBATTICA_INCLUDE_DIRS}
|
||||
PATH_SUFFIXES attica
|
||||
)
|
||||
|
||||
# Store the version number in the cache, so we don't have to search everytime:
|
||||
IF(LIBATTICA_INCLUDE_DIR AND NOT LIBATTICA_VERSION)
|
||||
FILE(READ ${LIBATTICA_INCLUDE_DIR}/attica/version.h LIBATTICA_VERSION_CONTENT)
|
||||
STRING (REGEX MATCH "LIBATTICA_VERSION_STRING \".*\"\n" LIBATTICA_VERSION_MATCH "${LIBATTICA_VERSION_CONTENT}")
|
||||
IF(LIBATTICA_VERSION_MATCH)
|
||||
STRING(REGEX REPLACE "LIBATTICA_VERSION_STRING \"(.*)\"\n" "\\1" _LIBATTICA_VERSION ${LIBATTICA_VERSION_MATCH})
|
||||
ENDIF(LIBATTICA_VERSION_MATCH)
|
||||
SET(LIBATTICA_VERSION "${_LIBATTICA_VERSION}" CACHE STRING "Version number of LibAttica" FORCE)
|
||||
ENDIF(LIBATTICA_INCLUDE_DIR AND NOT LIBATTICA_VERSION)
|
||||
|
||||
|
||||
FIND_LIBRARY(LIBATTICA_LIBRARIES NAMES attica libattica
|
||||
HINTS
|
||||
${PC_LIBATTICA_LIBDIR}
|
||||
${PC_LIBATTICA_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibAttica REQUIRED_VARS LIBATTICA_LIBRARIES LIBATTICA_INCLUDE_DIR
|
||||
VERSION_VAR LIBATTICA_VERSION)
|
||||
|
||||
MARK_AS_ADVANCED(LIBATTICA_INCLUDE_DIR LIBATTICA_LIBRARIES)
|
42
CMakeModules/FindLibEchonest.cmake
Normal file
@@ -0,0 +1,42 @@
|
||||
# - Find libechonest
|
||||
# Find the libechonest includes and the libechonest libraries
|
||||
# This module defines
|
||||
# LIBECHONEST_INCLUDE_DIR, root echonest include dir. Include echonest includes with echonest/foo.h
|
||||
# LIBECHONEST_LIBRARY, the path to libechonest
|
||||
# LIBECHONEST_FOUND, whether libechonest was found
|
||||
|
||||
|
||||
find_path(LIBECHONEST_INCLUDE_DIR NAMES echonest_export.h
|
||||
HINTS
|
||||
~/usr/include
|
||||
/opt/local/include
|
||||
/usr/include
|
||||
/usr/local/include
|
||||
/opt/kde4/include
|
||||
${KDE4_INCLUDE_DIR}
|
||||
PATH_SUFFIXES echonest
|
||||
)
|
||||
|
||||
find_library( LIBECHONEST_LIBRARY NAMES echonest
|
||||
PATHS
|
||||
~/usr/lib
|
||||
/opt/local/lib
|
||||
/usr/lib
|
||||
/usr/lib64
|
||||
/usr/local/lib
|
||||
/opt/kde4/lib
|
||||
${KDE4_LIB_DIR}
|
||||
)
|
||||
|
||||
|
||||
if(LIBECHONEST_INCLUDE_DIR AND LIBECHONEST_LIBRARY)
|
||||
set(LIBECHONEST_FOUND TRUE)
|
||||
message(STATUS "Found libechonest: ${LIBECHONEST_INCLUDE_DIR}, ${LIBECHONEST_LIBRARY}")
|
||||
else(LIBECHONEST_INCLUDE_DIR AND LIBECHONEST_LIBRARY)
|
||||
set(LIBECHONEST_FOUND FALSE)
|
||||
if (LIBECHONEST_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "Could NOT find required package libechonest")
|
||||
endif(LIBECHONEST_FIND_REQUIRED)
|
||||
endif(LIBECHONEST_INCLUDE_DIR AND LIBECHONEST_LIBRARY)
|
||||
|
||||
mark_as_advanced(LIBECHONEST_INCLUDE_DIR LIBECHONEST_LIBRARY)
|
@@ -1,33 +1,42 @@
|
||||
# - Try to find LibLastFm
|
||||
#
|
||||
# LIBLASTFM_FOUND - system has liblastfm
|
||||
# LIBLASTFM_INCLUDE_DIRS - the liblastfm include directories
|
||||
# LIBLASTFM_LIBRARIES - link these to use liblastfm
|
||||
#
|
||||
# (c) Dominik Schmidt <dev@dominik-schmidt.de>
|
||||
#
|
||||
# - Find LibLastFM
|
||||
# Find the liblastfm includes and the liblastfm libraries
|
||||
# This module defines
|
||||
# LIBLASTFM_INCLUDE_DIR, root lastfm include dir
|
||||
# LIBLASTFM_LIBRARY, the path to liblastfm
|
||||
# LIBLASTFM_FOUND, whether liblastfm was found
|
||||
|
||||
if( TOMAHAWK_QT5 )
|
||||
set(LASTFM_LIB_SUFFIX "5")
|
||||
endif()
|
||||
|
||||
# Include dir
|
||||
find_path(LIBLASTFM_INCLUDE_DIR
|
||||
# Track.h doesn't exist in liblastfm-0.3.1, was called Track back then
|
||||
NAMES lastfm${LASTFM_LIB_SUFFIX}/Track.h
|
||||
PATHS ${KDE4_INCLUDE_DIR}
|
||||
find_path(LIBLASTFM_INCLUDE_DIR NAMES Audioscrobbler
|
||||
HINTS
|
||||
~/usr/include
|
||||
/opt/local/include
|
||||
/usr/local/include
|
||||
/usr/include
|
||||
/opt/kde4/include
|
||||
${KDE4_INCLUDE_DIR}
|
||||
PATH_SUFFIXES lastfm
|
||||
)
|
||||
|
||||
# Finally the library itself
|
||||
find_library(LIBLASTFM_LIBRARY
|
||||
NAMES lastfm${LASTFM_LIB_SUFFIX}
|
||||
PATHS ${KDE4_LIB_DIR}
|
||||
find_library( LIBLASTFM_LIBRARY NAMES lastfm
|
||||
PATHS
|
||||
~/usr/lib
|
||||
/opt/local/lib
|
||||
/usr/local/lib
|
||||
/usr/lib
|
||||
/usr/lib64
|
||||
/opt/kde4/lib
|
||||
${KDE4_LIB_DIR}
|
||||
)
|
||||
|
||||
set(LIBLASTFM_LIBRARIES ${LIBLASTFM_LIBRARY})
|
||||
set(LIBLASTFM_INCLUDE_DIRS ${LIBLASTFM_INCLUDE_DIR})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(LibLastFm DEFAULT_MSG LIBLASTFM_LIBRARIES LIBLASTFM_INCLUDE_DIRS)
|
||||
if(LIBLASTFM_INCLUDE_DIR AND LIBLASTFM_LIBRARY)
|
||||
set(LIBLASTFM_FOUND TRUE)
|
||||
message(STATUS "Found liblastfm: ${LIBLASTFM_INCLUDE_DIR}, ${LIBLASTFM_LIBRARY}")
|
||||
else(LIBLASTFM_INCLUDE_DIR AND LIBLASTFM_LIBRARY)
|
||||
set(LIBLASTFM_FOUND FALSE)
|
||||
if (LIBLASTFM_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "Could NOT find required package LibLastFm")
|
||||
endif(LIBLASTFM_FIND_REQUIRED)
|
||||
endif(LIBLASTFM_INCLUDE_DIR AND LIBLASTFM_LIBRARY)
|
||||
|
||||
mark_as_advanced(LIBLASTFM_LIBRARIES LIBLASTFM_INCLUDE_DIRS)
|
||||
mark_as_advanced(LIBLASTFM_INCLUDE_DIR LIBLASTFM_LIBRARY)
|
||||
|
@@ -1,103 +0,0 @@
|
||||
#
|
||||
# This module looks for lucene++ support
|
||||
# It will define the following values
|
||||
#
|
||||
# LUCENEPP_INCLUDE_DIRS = LUCENEPP_INCLUDE_DIR + LUCENEPP_LIBRARY_DIR
|
||||
# LUCENEPP_INCLUDE_DIR = where lucene++/Lucene.h can be found
|
||||
# LUCENEPP_LIBRARY_DIR = where liblucene++.so can be found
|
||||
# LUCENEPP_LIBRARIES = the libraries to link against lucene++
|
||||
# LUCENEPP_VERSION = The lucene++ version string
|
||||
# LUCENEPP_FOUND = set to 1 if lucene++ is found
|
||||
#
|
||||
|
||||
INCLUDE(CheckSymbolExists)
|
||||
INCLUDE(FindLibraryWithDebug)
|
||||
|
||||
IF(LUCENEPP_FIND_VERSION)
|
||||
SET(LUCENEPP_MIN_VERSION ${LUCENEPP_FIND_VERSION})
|
||||
ELSEIF()
|
||||
SET(LUCENEPP_MIN_VERSION "3.0.0")
|
||||
ENDIF(LUCENEPP_FIND_VERSION)
|
||||
|
||||
SET(TRIAL_LIBRARY_PATHS
|
||||
$ENV{LUCENEPP_HOME}/lib${LIB_SUFFIX}
|
||||
${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
|
||||
${CMAKE_INSTALL_PREFIX}/lib
|
||||
/usr/local/lib${LIB_SUFFIX}
|
||||
/usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE}
|
||||
/usr/lib${LIB_SUFFIX}
|
||||
/sw/lib${LIB_SUFFIX}
|
||||
/usr/pkg/lib${LIB_SUFFIX}
|
||||
/usr/lib64
|
||||
/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}
|
||||
)
|
||||
SET(TRIAL_INCLUDE_PATHS
|
||||
$ENV{LUCENEPP_HOME}/include
|
||||
${CMAKE_INSTALL_PREFIX}/include
|
||||
/usr/local/include
|
||||
/usr/include
|
||||
/sw/include
|
||||
/usr/pkg/include
|
||||
)
|
||||
FIND_LIBRARY_WITH_DEBUG(LUCENEPP_CORE_LIBRARY
|
||||
WIN32_DEBUG_POSTFIX d
|
||||
NAMES lucene++
|
||||
PATHS ${TRIAL_LIBRARY_PATHS})
|
||||
IF (LUCENEPP_CORE_LIBRARY)
|
||||
MESSAGE(STATUS "Found Lucene++ core library: ${LUCENEPP_CORE_LIBRARY}")
|
||||
ENDIF (LUCENEPP_CORE_LIBRARY)
|
||||
FIND_LIBRARY_WITH_DEBUG(LUCENEPP_SHARED_LIBRARY
|
||||
WIN32_DEBUG_POSTFIX d
|
||||
NAMES lucene++-contrib
|
||||
PATHS ${TRIAL_LIBRARY_PATHS})
|
||||
IF (LUCENEPP_SHARED_LIBRARY)
|
||||
MESSAGE(STATUS "Found Lucene++ contrib library: ${LUCENEPP_SHARED_LIBRARY}")
|
||||
ENDIF (LUCENEPP_SHARED_LIBRARY)
|
||||
|
||||
IF(LUCENEPP_CORE_LIBRARY AND LUCENEPP_SHARED_LIBRARY)
|
||||
SET(LUCENEPP_LIBRARIES ${LUCENEPP_CORE_LIBRARY} ${LUCENEPP_SHARED_LIBRARY} ${Boost_SYSTEM_LIBRARY})
|
||||
ENDIF(LUCENEPP_CORE_LIBRARY AND LUCENEPP_SHARED_LIBRARY)
|
||||
|
||||
FIND_PATH(LUCENEPP_INCLUDE_DIR
|
||||
NAMES lucene++/Lucene.h
|
||||
PATHS ${TRIAL_INCLUDE_PATHS})
|
||||
|
||||
IF (LUCENEPP_INCLUDE_DIR)
|
||||
MESSAGE(STATUS "Found Lucene++ include dir: ${LUCENEPP_INCLUDE_DIR}")
|
||||
ENDIF (LUCENEPP_INCLUDE_DIR)
|
||||
|
||||
SET(LUCENEPP_GOOD_VERSION TRUE)
|
||||
|
||||
FIND_PATH(LUCENEPP_LIBRARY_DIR
|
||||
NAMES liblucene++.dylib liblucene++.so liblucene++.dll.a lucene++
|
||||
PATHS ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} NO_DEFAULT_PATH)
|
||||
IF (LUCENEPP_LIBRARY_DIR)
|
||||
MESSAGE(STATUS "Found Lucene++ library dir: ${LUCENEPP_LIBRARY_DIR}")
|
||||
|
||||
IF (LUCENEPP_VERSION STRLESS "${LUCENEPP_MIN_VERSION}")
|
||||
MESSAGE(ERROR " Lucene++ version ${LUCENEPP_VERSION} is less than the required minimum ${LUCENEPP_MIN_VERSION}")
|
||||
SET(LUCENEPP_GOOD_VERSION FALSE)
|
||||
ENDIF (LUCENEPP_VERSION STRLESS "${LUCENEPP_MIN_VERSION}")
|
||||
ENDIF (LUCENEPP_LIBRARY_DIR)
|
||||
|
||||
IF(LUCENEPP_INCLUDE_DIR AND LUCENEPP_LIBRARIES AND LUCENEPP_LIBRARY_DIR AND LUCENEPP_GOOD_VERSION)
|
||||
SET(LUCENEPP_FOUND TRUE)
|
||||
SET(LUCENEPP_INCLUDE_DIRS ${LUCENEPP_LIBRARY_DIR} ${LUCENEPP_INCLUDE_DIR})
|
||||
ENDIF(LUCENEPP_INCLUDE_DIR AND LUCENEPP_LIBRARIES AND LUCENEPP_LIBRARY_DIR AND LUCENEPP_GOOD_VERSION)
|
||||
|
||||
IF(LUCENEPP_FOUND)
|
||||
IF(NOT LUCENEPP_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found Lucene++: ${LUCENEPP_LIBRARIES} version ${LUCENEPP_VERSION}")
|
||||
ENDIF(NOT LUCENEPP_FIND_QUIETLY)
|
||||
ELSE(LUCENEPP_FOUND)
|
||||
IF(LUCENEPP_FIND_REQUIRED)
|
||||
MESSAGE(FATAL_ERROR "Could not find Lucene++.")
|
||||
ENDIF(LUCENEPP_FIND_REQUIRED)
|
||||
ENDIF(LUCENEPP_FOUND)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
LUCENEPP_INCLUDE_DIRS
|
||||
LUCENEPP_INCLUDE_DIR
|
||||
LUCENEPP_LIBRARY_DIR
|
||||
LUCENEPP_LIBRARIES
|
||||
)
|
71
CMakeModules/FindPhonon.cmake
Normal file
@@ -0,0 +1,71 @@
|
||||
# Find libphonon
|
||||
# Once done this will define
|
||||
#
|
||||
# PHONON_FOUND - system has Phonon Library
|
||||
# PHONON_INCLUDES - the Phonon include directory
|
||||
# PHONON_LIBS - link these to use Phonon
|
||||
# PHONON_VERSION - the version of the Phonon Library
|
||||
|
||||
# Copyright (c) 2008, Matthias Kretz <kretz@kde.org>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
macro(_phonon_find_version)
|
||||
set(_phonon_namespace_header_file "${PHONON_INCLUDE_DIR}/phonon/phononnamespace.h")
|
||||
if (APPLE AND EXISTS "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
|
||||
set(_phonon_namespace_header_file "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
|
||||
endif (APPLE AND EXISTS "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
|
||||
file(READ ${_phonon_namespace_header_file} _phonon_header LIMIT 5000 OFFSET 1000)
|
||||
string(REGEX MATCH "define PHONON_VERSION_STR \"(4\\.[0-9]+\\.[0-9a-z]+)\"" _phonon_version_match "${_phonon_header}")
|
||||
set(PHONON_VERSION "${CMAKE_MATCH_1}")
|
||||
message(STATUS "Phonon Version: ${PHONON_VERSION}")
|
||||
endmacro(_phonon_find_version)
|
||||
|
||||
if(PHONON_FOUND)
|
||||
# Already found, nothing more to do except figuring out the version
|
||||
_phonon_find_version()
|
||||
else(PHONON_FOUND)
|
||||
if(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
|
||||
set(PHONON_FIND_QUIETLY TRUE)
|
||||
endif(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
|
||||
|
||||
# As discussed on kde-buildsystem: first look at CMAKE_PREFIX_PATH, then at the suggested PATHS (kde4 install dir)
|
||||
find_library(PHONON_LIBRARY NAMES phonon phonon4 PATHS ${KDE4_LIB_INSTALL_DIR} ${QT_LIBRARY_DIR})
|
||||
# then at the default system locations (CMAKE_SYSTEM_PREFIX_PATH, i.e. /usr etc.)
|
||||
find_library(PHONON_LIBRARY NAMES phonon phonon4)
|
||||
|
||||
find_path(PHONON_INCLUDE_DIR NAMES phonon/phonon_export.h PATHS ${KDE4_INCLUDE_INSTALL_DIR} ${QT_INCLUDE_DIR} ${INCLUDE_INSTALL_DIR} ${QT_LIBRARY_DIR})
|
||||
find_path(PHONON_INCLUDE_DIR NAMES phonon/phonon_export.h)
|
||||
|
||||
if(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
|
||||
set(PHONON_LIBS ${phonon_LIB_DEPENDS} ${PHONON_LIBRARY})
|
||||
set(PHONON_INCLUDES ${PHONON_INCLUDE_DIR}/KDE ${PHONON_INCLUDE_DIR})
|
||||
set(PHONON_FOUND TRUE)
|
||||
_phonon_find_version()
|
||||
else(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
|
||||
set(PHONON_FOUND FALSE)
|
||||
endif(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
|
||||
|
||||
if(PHONON_FOUND)
|
||||
if(NOT PHONON_FIND_QUIETLY)
|
||||
message(STATUS "Found Phonon: ${PHONON_LIBRARY}")
|
||||
message(STATUS "Found Phonon Includes: ${PHONON_INCLUDES}")
|
||||
endif(NOT PHONON_FIND_QUIETLY)
|
||||
else(PHONON_FOUND)
|
||||
if(Phonon_FIND_REQUIRED)
|
||||
if(NOT PHONON_INCLUDE_DIR)
|
||||
message(STATUS "Phonon includes NOT found!")
|
||||
endif(NOT PHONON_INCLUDE_DIR)
|
||||
if(NOT PHONON_LIBRARY)
|
||||
message(STATUS "Phonon library NOT found!")
|
||||
endif(NOT PHONON_LIBRARY)
|
||||
message(FATAL_ERROR "Phonon library or includes NOT found!")
|
||||
else(Phonon_FIND_REQUIRED)
|
||||
message(STATUS "Unable to find Phonon")
|
||||
endif(Phonon_FIND_REQUIRED)
|
||||
endif(PHONON_FOUND)
|
||||
|
||||
|
||||
mark_as_advanced(PHONON_INCLUDE_DIR PHONON_LIBRARY PHONON_INCLUDES)
|
||||
endif(PHONON_FOUND)
|
@@ -1,50 +0,0 @@
|
||||
# - Try to find QCA2 (Qt Cryptography Architecture 2)
|
||||
# Once done this will define
|
||||
#
|
||||
# QCA2_FOUND - system has QCA2
|
||||
# QCA2_INCLUDE_DIR - the QCA2 include directory
|
||||
# QCA2_LIBRARIES - the libraries needed to use QCA2
|
||||
# QCA2_DEFINITIONS - Compiler switches required for using QCA2
|
||||
#
|
||||
# use pkg-config to get the directories and then use these values
|
||||
# in the FIND_PATH() and FIND_LIBRARY() calls
|
||||
|
||||
# Copyright (c) 2006, Michael Larouche, <michael.larouche@kdemail.net>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
include(FindLibraryWithDebug)
|
||||
|
||||
if (QCA2_INCLUDE_DIR AND QCA2_LIBRARIES)
|
||||
|
||||
# in cache already
|
||||
set(QCA2_FOUND TRUE)
|
||||
|
||||
else (QCA2_INCLUDE_DIR AND QCA2_LIBRARIES)
|
||||
|
||||
|
||||
if (NOT WIN32)
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_QCA2 qca2)
|
||||
set(QCA2_DEFINITIONS ${PC_QCA2_CFLAGS_OTHER})
|
||||
endif (NOT WIN32)
|
||||
|
||||
find_library_with_debug(QCA2_LIBRARIES
|
||||
WIN32_DEBUG_POSTFIX d
|
||||
NAMES qca
|
||||
HINTS ${PC_QCA2_LIBDIR} ${PC_QCA2_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
find_path(QCA2_INCLUDE_DIR qca.h
|
||||
HINTS ${PC_QCA2_INCLUDEDIR} ${PC_QCA2_INCLUDE_DIRS}
|
||||
PATH_SUFFIXES QtCrypto
|
||||
PATHS /usr/local/lib/qca.framework/Headers/
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(QCA2 DEFAULT_MSG QCA2_LIBRARIES QCA2_INCLUDE_DIR)
|
||||
|
||||
mark_as_advanced(QCA2_INCLUDE_DIR QCA2_LIBRARIES)
|
||||
|
||||
endif (QCA2_INCLUDE_DIR AND QCA2_LIBRARIES)
|
@@ -6,24 +6,45 @@
|
||||
# QJSON_INCLUDE_DIR - the include path of the qjson library
|
||||
#
|
||||
|
||||
find_library (QJSON_LIBRARIES
|
||||
if (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES)
|
||||
|
||||
# Already in cache
|
||||
set (QJSON_FOUND TRUE)
|
||||
|
||||
else (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES)
|
||||
|
||||
if (NOT WIN32)
|
||||
# use pkg-config to get the values of QJSON_INCLUDE_DIRS
|
||||
# and QJSON_LIBRARY_DIRS to add as hints to the find commands.
|
||||
include (FindPkgConfig)
|
||||
pkg_check_modules (QJSON REQUIRED QJson>=0.5)
|
||||
endif (NOT WIN32)
|
||||
|
||||
find_library (QJSON_LIBRARIES
|
||||
NAMES
|
||||
qjson
|
||||
PATHS
|
||||
${QJSON_LIBRARY_DIRS}
|
||||
${LIB_INSTALL_DIR}
|
||||
${KDE4_LIB_DIR}
|
||||
)
|
||||
)
|
||||
|
||||
find_path (QJSON_INCLUDE_DIR
|
||||
find_path (QJSON_INCLUDE_DIR
|
||||
NAMES
|
||||
qjson/parser.h
|
||||
parser.h
|
||||
PATH_SUFFIXES
|
||||
qjson
|
||||
PATHS
|
||||
${QJSON_INCLUDE_DIRS}
|
||||
${INCLUDE_INSTALL_DIR}
|
||||
${KDE4_INCLUDE_DIR}
|
||||
)
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(QJSON DEFAULT_MSG QJSON_LIBRARIES QJSON_INCLUDE_DIR)
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(QJSON DEFAULT_MSG QJSON_LIBRARIES QJSON_INCLUDE_DIR)
|
||||
|
||||
if ( UNIX AND NOT APPLE )
|
||||
set ( QJSON_LIBRARIES "${QJSON_LIBRARIES} ${QJSON_LDFLAGS}" CACHE INTERNAL "")
|
||||
endif ()
|
||||
|
||||
endif (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES)
|
||||
|
31
CMakeModules/FindQTweetLib.cmake
Normal file
@@ -0,0 +1,31 @@
|
||||
# - Try to find QTweetLib
|
||||
#
|
||||
# QTWEETLIB_FOUND - system has QTweetLib
|
||||
# QTWEETLIB_INCLUDE_DIRS - the QTweetLib include directories
|
||||
# QTWEETLIB_LIBRARIES - link these to use QTweetLib
|
||||
#
|
||||
# (c) Dominik Schmidt <dev@dominik-schmidt.de>
|
||||
#
|
||||
|
||||
# Dependencies
|
||||
find_package(Qt4 REQUIRED)
|
||||
|
||||
# Include dir
|
||||
find_path(QTWEETLIB_INCLUDE_DIR
|
||||
NAMES QTweetLib/qtweetlib_global.h
|
||||
PATHS ${KDE4_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
# Finally the library itself
|
||||
find_library(QTWEETLIB_LIBRARY
|
||||
NAMES QTweetLib
|
||||
PATHS ${KDE4_LIB_DIR}
|
||||
)
|
||||
|
||||
SET( QTWEETLIB_LIBRARIES ${QTWEETLIB_LIBRARY} ${QJSON_LIBRARIES} )
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(QTweetLib DEFAULT_MSG QTWEETLIB_LIBRARY QTWEETLIB_INCLUDE_DIR)
|
||||
|
||||
MARK_AS_ADVANCED(QTWEETLIB_LIBRARIES QTWEETLIB_INCLUDE_DIR)
|
||||
|
@@ -1,30 +0,0 @@
|
||||
# - Find qtsparkle
|
||||
# Find the qtsparkle includes and the qtsparkle libraries
|
||||
# This module defines
|
||||
# QTSPARKLE_INCLUDE_DIR, root qtsparkle include dir. Include qtsparkle includes with qtsparkle/foo.h
|
||||
# QTSPARKLE_LIBRARY, the path to qtsparkle
|
||||
# QTSPARKLE_FOUND, whether qtsparkle was found
|
||||
|
||||
if( TOMAHAWK_QT5 )
|
||||
set(QTSPARKLE_SUFFIX "-qt5")
|
||||
else()
|
||||
set(QTSPARKLE_SUFFIX "")
|
||||
endif()
|
||||
|
||||
FIND_PATH(QTSPARKLE_INCLUDE_DIR NAMES qtsparkle${QTSPARKLE_SUFFIX}/Updater
|
||||
HINTS
|
||||
${CMAKE_INSTALL_INCLUDEDIR}
|
||||
${KDE4_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
FIND_LIBRARY(QTSPARKLE_LIBRARIES NAMES qtsparkle${QTSPARKLE_SUFFIX}
|
||||
HINTS
|
||||
${CMAKE_INSTALL_LIBDIR}
|
||||
${KDE4_LIB_DIR}
|
||||
)
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(QtSparkle
|
||||
REQUIRED_VARS QTSPARKLE_LIBRARIES QTSPARKLE_INCLUDE_DIR)
|
||||
|
||||
MARK_AS_ADVANCED(QTSPARKLE_INCLUDE_DIR QTSPARKLE_LIBRARIES)
|
@@ -1,43 +0,0 @@
|
||||
# QUAZIP_FOUND - QuaZip library was found
|
||||
# QUAZIP_INCLUDE_DIR - Path to QuaZip include dir
|
||||
# QUAZIP_INCLUDE_DIRS - Path to QuaZip and zlib include dir (combined from QUAZIP_INCLUDE_DIR + ZLIB_INCLUDE_DIR)
|
||||
# QUAZIP_LIBRARIES - List of QuaZip libraries
|
||||
# QUAZIP_ZLIB_INCLUDE_DIR - The include dir of zlib headers
|
||||
|
||||
|
||||
IF (QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRARIES)
|
||||
# in cache already
|
||||
SET(QUAZIP_FOUND TRUE)
|
||||
ELSE (QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRARIES)
|
||||
IF (Qt5Core_FOUND)
|
||||
set(QUAZIP_LIB_VERSION_SUFFIX 5)
|
||||
ENDIF()
|
||||
IF (WIN32)
|
||||
FIND_PATH(QUAZIP_LIBRARY_DIR
|
||||
WIN32_DEBUG_POSTFIX d
|
||||
NAMES libquazip${QUAZIP_LIB_VERSION_SUFFIX}.dll
|
||||
HINTS "C:/Programme/" "C:/Program Files"
|
||||
PATH_SUFFIXES QuaZip/lib
|
||||
)
|
||||
FIND_LIBRARY(QUAZIP_LIBRARIES NAMES libquazip${QUAZIP_LIB_VERSION_SUFFIX}.dll HINTS ${QUAZIP_LIBRARY_DIR})
|
||||
FIND_PATH(QUAZIP_INCLUDE_DIR NAMES quazip.h HINTS ${QUAZIP_LIBRARY_DIR}/../ PATH_SUFFIXES include/quazip${QUAZIP_LIB_VERSION_SUFFIX})
|
||||
FIND_PATH(QUAZIP_ZLIB_INCLUDE_DIR NAMES zlib.h)
|
||||
ELSE(WIN32)
|
||||
FIND_PACKAGE(PkgConfig)
|
||||
# pkg_check_modules(PC_QCA2 QUIET qca2)
|
||||
pkg_check_modules(PC_QUAZIP quazip)
|
||||
FIND_LIBRARY(QUAZIP_LIBRARIES
|
||||
WIN32_DEBUG_POSTFIX d
|
||||
NAMES quazip${QUAZIP_LIB_VERSION_SUFFIX}
|
||||
HINTS /usr/lib /usr/lib64
|
||||
)
|
||||
FIND_PATH(QUAZIP_INCLUDE_DIR quazip.h
|
||||
HINTS /usr/include /usr/local/include
|
||||
PATH_SUFFIXES quazip${QUAZIP_LIB_VERSION_SUFFIX}
|
||||
)
|
||||
FIND_PATH(QUAZIP_ZLIB_INCLUDE_DIR zlib.h HINTS /usr/include /usr/local/include)
|
||||
ENDIF (WIN32)
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
SET(QUAZIP_INCLUDE_DIRS ${QUAZIP_INCLUDE_DIR} ${QUAZIP_ZLIB_INCLUDE_DIR})
|
||||
find_package_handle_standard_args(QUAZIP DEFAULT_MSG QUAZIP_LIBRARIES QUAZIP_INCLUDE_DIR QUAZIP_ZLIB_INCLUDE_DIR QUAZIP_INCLUDE_DIRS)
|
||||
ENDIF (QUAZIP_INCLUDE_DIRS AND QUAZIP_LIBRARIES)
|
@@ -1,25 +0,0 @@
|
||||
# - Find google-sparsehash
|
||||
# Find the google-sparsehash includes
|
||||
# This module defines
|
||||
# SPARSEHASH_INCLUDE_DIR, root jreen include dir.
|
||||
# SPARSEHASH_FOUND, whether libjreen was found
|
||||
|
||||
FIND_PACKAGE(PkgConfig QUIET)
|
||||
PKG_CHECK_MODULES(PC_SPARSEHASH QUIET libsparsehash)
|
||||
|
||||
FIND_PATH(SPARSEHASH_INCLUDE_DIR NAMES google/sparsetable
|
||||
HINTS
|
||||
${PC_SPARSEHASH_INCLUDEDIR}
|
||||
${PC_SPARSEHASH_INCLUDE_DIRS}
|
||||
${CMAKE_INSTALL_INCLUDEDIR}
|
||||
)
|
||||
|
||||
IF(SPARSEHASH_INCLUDE_DIR AND NOT PC_SPARSEHASH_VERSION)
|
||||
MESSAGE(WARNING "You don't have pkg-config and so the google-sparsehash version check does not work!")
|
||||
ENDIF()
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Sparsehash
|
||||
REQUIRED_VARS SPARSEHASH_INCLUDE_DIR)
|
||||
|
||||
MARK_AS_ADVANCED(SPARSEHASH_INCLUDE_DIR)
|
@@ -56,7 +56,7 @@ ELSE()
|
||||
include(FindLibraryWithDebug)
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_path(TAGLIB_INCLUDES
|
||||
find_path(TAGLIB_CFLAGS
|
||||
NAMES
|
||||
tag.h
|
||||
PATH_SUFFIXES taglib
|
||||
|
@@ -1,27 +0,0 @@
|
||||
# Copyright (c) 2013, Teo Mrnjavac <teo@kde.org>
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
if( NOT BUILD_WITH_QT4 )
|
||||
find_package(TelepathyQt5 NO_MODULE)
|
||||
set(TelepathyQt_FOUND ${TelepathyQt5_FOUND})
|
||||
set(TELEPATHY_QT_VERSION ${TELEPATHY_QT5_VERSION})
|
||||
set(TELEPATHY_QT_INSTALL_DIR ${TELEPATHY_QT5_INSTALL_DIR})
|
||||
set(TELEPATHY_QT_INCLUDE_DIR ${TELEPATHY_QT5_INCLUDE_DIR})
|
||||
set(TELEPATHY_QT_LIB_DIR ${TELEPATHY_QT5_LIB_DIR})
|
||||
set(TELEPATHY_QT_SHARE_DIR ${TELEPATHY_QT5_SHARE_DIR})
|
||||
set(TELEPATHY_QT_LIBRARIES ${TELEPATHY_QT5_LIBRARIES})
|
||||
else()
|
||||
find_package(TelepathyQt4 NO_MODULE)
|
||||
set(TelepathyQt_FOUND ${TelepathyQt4_FOUND})
|
||||
set(TELEPATHY_QT_VERSION ${TELEPATHY_QT4_VERSION})
|
||||
set(TELEPATHY_QT_INSTALL_DIR ${TELEPATHY_QT4_INSTALL_DIR})
|
||||
set(TELEPATHY_QT_INCLUDE_DIR ${TELEPATHY_QT4_INCLUDE_DIR})
|
||||
set(TELEPATHY_QT_LIB_DIR ${TELEPATHY_QT4_LIB_DIR})
|
||||
set(TELEPATHY_QT_SHARE_DIR ${TELEPATHY_QT4_SHARE_DIR})
|
||||
set(TELEPATHY_QT_LIBRARIES ${TELEPATHY_QT4_LIBRARIES})
|
||||
endif()
|
||||
|
||||
set(TELEPATHY_QT_FOUND ${TelepathyQt_FOUND})
|
||||
|
||||
find_package_handle_standard_args(TelepathyQt DEFAULT_MSG TELEPATHY_QT_INSTALL_DIR )
|
@@ -1,182 +0,0 @@
|
||||
# - Define GNU standard installation directories
|
||||
# Provides install directory variables as defined for GNU software:
|
||||
# http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
|
||||
# Inclusion of this module defines the following variables:
|
||||
# CMAKE_INSTALL_<dir> - destination for files of a given type
|
||||
# CMAKE_INSTALL_FULL_<dir> - corresponding absolute path
|
||||
# where <dir> is one of:
|
||||
# BINDIR - user executables (bin)
|
||||
# SBINDIR - system admin executables (sbin)
|
||||
# LIBEXECDIR - program executables (libexec)
|
||||
# SYSCONFDIR - read-only single-machine data (etc)
|
||||
# SHAREDSTATEDIR - modifiable architecture-independent data (com)
|
||||
# LOCALSTATEDIR - modifiable single-machine data (var)
|
||||
# LIBDIR - object code libraries (lib or lib64)
|
||||
# INCLUDEDIR - C header files (include)
|
||||
# OLDINCLUDEDIR - C header files for non-gcc (/usr/include)
|
||||
# DATAROOTDIR - read-only architecture-independent data root (share)
|
||||
# DATADIR - read-only architecture-independent data (DATAROOTDIR)
|
||||
# INFODIR - info documentation (DATAROOTDIR/info)
|
||||
# LOCALEDIR - locale-dependent data (DATAROOTDIR/locale)
|
||||
# MANDIR - man documentation (DATAROOTDIR/man)
|
||||
# DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME)
|
||||
# Each CMAKE_INSTALL_<dir> value may be passed to the DESTINATION options of
|
||||
# install() commands for the corresponding file type. If the includer does
|
||||
# not define a value the above-shown default will be used and the value will
|
||||
# appear in the cache for editing by the user.
|
||||
# Each CMAKE_INSTALL_FULL_<dir> value contains an absolute path constructed
|
||||
# from the corresponding destination by prepending (if necessary) the value
|
||||
# of CMAKE_INSTALL_PREFIX.
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2011 Nikita Krupen'ko <krnekit@gmail.com>
|
||||
# Copyright 2011 Kitware, Inc.
|
||||
#
|
||||
# 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.
|
||||
#=============================================================================
|
||||
# (To distribute this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
# Installation directories
|
||||
#
|
||||
if(NOT DEFINED CMAKE_INSTALL_BINDIR)
|
||||
set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_SBINDIR)
|
||||
set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR)
|
||||
set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
|
||||
set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR)
|
||||
set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR)
|
||||
set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
||||
set(_LIBDIR_DEFAULT "lib")
|
||||
# Override this default 'lib' with 'lib64' iff:
|
||||
# - we are on Linux system but NOT cross-compiling
|
||||
# - we are NOT on debian
|
||||
# - we are on a 64 bits system
|
||||
# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
|
||||
# Note that the future of multi-arch handling may be even
|
||||
# more complicated than that: http://wiki.debian.org/Multiarch
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux"
|
||||
AND NOT CMAKE_CROSSCOMPILING
|
||||
AND NOT EXISTS "/etc/debian_version")
|
||||
if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
|
||||
message(AUTHOR_WARNING
|
||||
"Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. "
|
||||
"Please enable at least one language before including GNUInstallDirs.")
|
||||
else()
|
||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
set(_LIBDIR_DEFAULT "lib64")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
|
||||
set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR)
|
||||
set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR)
|
||||
set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)")
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Values whose defaults are relative to DATAROOTDIR. Store empty values in
|
||||
# the cache and store the defaults in local variables if the cache values are
|
||||
# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
|
||||
|
||||
if(NOT CMAKE_INSTALL_DATADIR)
|
||||
set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)")
|
||||
set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_INSTALL_INFODIR)
|
||||
set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)")
|
||||
set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_INSTALL_LOCALEDIR)
|
||||
set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)")
|
||||
set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_INSTALL_MANDIR)
|
||||
set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)")
|
||||
set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_INSTALL_DOCDIR)
|
||||
set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
|
||||
set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}")
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
mark_as_advanced(
|
||||
CMAKE_INSTALL_BINDIR
|
||||
CMAKE_INSTALL_SBINDIR
|
||||
CMAKE_INSTALL_LIBEXECDIR
|
||||
CMAKE_INSTALL_SYSCONFDIR
|
||||
CMAKE_INSTALL_SHAREDSTATEDIR
|
||||
CMAKE_INSTALL_LOCALSTATEDIR
|
||||
CMAKE_INSTALL_LIBDIR
|
||||
CMAKE_INSTALL_INCLUDEDIR
|
||||
CMAKE_INSTALL_OLDINCLUDEDIR
|
||||
CMAKE_INSTALL_DATAROOTDIR
|
||||
CMAKE_INSTALL_DATADIR
|
||||
CMAKE_INSTALL_INFODIR
|
||||
CMAKE_INSTALL_LOCALEDIR
|
||||
CMAKE_INSTALL_MANDIR
|
||||
CMAKE_INSTALL_DOCDIR
|
||||
)
|
||||
|
||||
# Result directories
|
||||
#
|
||||
foreach(dir
|
||||
BINDIR
|
||||
SBINDIR
|
||||
LIBEXECDIR
|
||||
SYSCONFDIR
|
||||
SHAREDSTATEDIR
|
||||
LOCALSTATEDIR
|
||||
LIBDIR
|
||||
INCLUDEDIR
|
||||
OLDINCLUDEDIR
|
||||
DATAROOTDIR
|
||||
DATADIR
|
||||
INFODIR
|
||||
LOCALEDIR
|
||||
MANDIR
|
||||
DOCDIR
|
||||
)
|
||||
if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}})
|
||||
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}")
|
||||
else()
|
||||
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}")
|
||||
endif()
|
||||
endforeach()
|
@@ -21,26 +21,19 @@
|
||||
!define MING_BIN "${MING_PATH}/bin"
|
||||
!define MING_LIB "${MING_PATH}/lib"
|
||||
!define BUILD_PATH "@CMAKE_BINARY_DIR@"
|
||||
!define SOURCE_PATH "@CMAKE_SOURCE_DIR@"
|
||||
!define QT_DLL_PATH "${MING_BIN}"
|
||||
!define SQLITE_DLL_PATH "${MING_LIB}/qt5/plugins/sqldrivers"
|
||||
!define IMAGEFORMATS_DLL_PATH "${MING_LIB}/qt5/plugins/imageformats"
|
||||
|
||||
|
||||
; We use official release plugins
|
||||
; mingw32-vlc from obs misses a lot and has even broken ones probably
|
||||
!define VLC_PATH "${SOURCE_PATH}\admin\win\vlc\" ; SIC! ^
|
||||
!define VLC_BIN "${VLC_PATH}"
|
||||
!define VLC_PLUGIN_PATH "${VLC_BIN}\plugins"
|
||||
|
||||
!define NSI_PATH "${SOURCE_PATH}/admin/win/nsi"
|
||||
|
||||
;define app id needed for Windows 8 notifications
|
||||
!define AppUserModelId org.tomahawk-player.Tomahawk
|
||||
!define SQLITE_DLL_PATH "${MING_LIB}/qt4/plugins/sqldrivers"
|
||||
!define IMAGEFORMATS_DLL_PATH "${MING_LIB}/qt4/plugins/imageformats"
|
||||
!define VLC_PLUGIN_PATH "${MING_LIB}\vlc\plugins"
|
||||
!define NSI_PATH "@CMAKE_SOURCE_DIR@/admin/win/nsi"
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Installer version
|
||||
; Increment installer revision number as part of this script.
|
||||
;-----------------------------------------------------------------------------
|
||||
!define /file REVISION_LAST ${NSI_PATH}/revision.txt
|
||||
!define /math REVISION ${REVISION_LAST} + 1
|
||||
!delfile revision.txt
|
||||
!appendfile revision.txt ${REVISION}
|
||||
|
||||
!define VER_MAJOR "@CPACK_PACKAGE_VERSION_MAJOR@"
|
||||
!define VER_MINOR "@CPACK_PACKAGE_VERSION_MINOR@"
|
||||
@@ -50,7 +43,7 @@
|
||||
;-----------------------------------------------------------------------------
|
||||
; Installer build timestamp.
|
||||
;-----------------------------------------------------------------------------
|
||||
!define /date BUILD_TIME "built on %Y/%m/%d at %I:%M %p"
|
||||
!define /date BUILD_TIME "built on %Y/%m/%d at %I:%M %p (rev. ${REVISION})"
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Initial installer setup and definitions.
|
||||
@@ -97,7 +90,7 @@ ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
|
||||
!define MUI_ICON ${NSI_PATH}\installer.ico
|
||||
!define MUI_UNICON ${NSI_PATH}\installer.ico
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP ${NSI_PATH}\welcome.bmp
|
||||
!define MUI_WELCOMEPAGE_TITLE "@CPACK_PACKAGE_NAME@ ${VERSION} Setup$\r$\nInstaller"
|
||||
!define MUI_WELCOMEPAGE_TITLE "@CPACK_PACKAGE_NAME@ ${VERSION} Setup$\r$\nInstaller Build Revision ${REVISION}"
|
||||
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation.$\r$\n$\r$\n$_CLICK"
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP ${NSI_PATH}\page_header.bmp
|
||||
@@ -207,7 +200,10 @@ Function PageReinstall
|
||||
IntCmp $R0 ${VER_MINOR} build_check new_version older_version
|
||||
build_check:
|
||||
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionBuild"
|
||||
IntCmp $R0 ${VER_BUILD} same_version new_version older_version
|
||||
IntCmp $R0 ${VER_BUILD} revision_check new_version older_version
|
||||
revision_check:
|
||||
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionRevision"
|
||||
IntCmp $R0 ${REVISION} same_version new_version older_version
|
||||
|
||||
new_version:
|
||||
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" "An older version of Tomahawk is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
|
||||
@@ -277,27 +273,21 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
|
||||
;Main executable.
|
||||
File "${INSTALL_PATH}\bin\tomahawk.exe"
|
||||
|
||||
File "${INSTALL_PATH}\bin\tomahawk_crash_reporter.exe"
|
||||
|
||||
File "${INSTALL_PATH}\bin\libtomahawk.dll"
|
||||
File "${INSTALL_PATH}\bin\libtomahawk-widgets.dll"
|
||||
File "${INSTALL_PATH}\bin\libtomahawk-playdarapi.dll"
|
||||
|
||||
; plugins
|
||||
File "${INSTALL_PATH}\lib\libtomahawk_*_*.dll"
|
||||
File "${INSTALL_PATH}\bin\libqxtweb-standalone.dll"
|
||||
File "${INSTALL_PATH}\bin\libtomahawk_portfwd.dll"
|
||||
File "${INSTALL_PATH}\bin\libtomahawk_lastfm2.dll"
|
||||
File "${INSTALL_PATH}\bin\libtomahawklib.dll"
|
||||
File "${INSTALL_PATH}\lib\libtomahawk_sip*.dll"
|
||||
!endif
|
||||
!ifndef INSTALL_PATH
|
||||
;Main executable.
|
||||
File "${BUILD_PATH}\tomahawk.exe"
|
||||
|
||||
File "${BUILD_PATH}\tomahawk_crash_reporter.exe"
|
||||
|
||||
File "${BUILD_PATH}\libtomahawk.dll"
|
||||
File "${BUILD_PATH}\libtomahawk-widgets.dll"
|
||||
File "${BUILD_PATH}\libtomahawk-playdarapi.dll"
|
||||
|
||||
; plugins
|
||||
File "${BUILD_PATH}\libtomahawk_*_*.dll"
|
||||
File "${BUILD_PATH}\libtomahawklib.dll"
|
||||
File "${BUILD_PATH}\libqxtweb-standalone.dll"
|
||||
File "${BUILD_PATH}\libtomahawk_portfwd.dll"
|
||||
File "${BUILD_PATH}\libtomahawk_lastfm2.dll"
|
||||
File "${BUILD_PATH}\libtomahawk_sip*.dll"
|
||||
!endif
|
||||
|
||||
;License & release notes.
|
||||
@@ -305,123 +295,81 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
|
||||
File /oname=NOTES.txt ${NSI_PATH}\RELEASE_NOTES.txt
|
||||
|
||||
;QT stuff:
|
||||
File "${QT_DLL_PATH}\Qt5Network.dll"
|
||||
File "${QT_DLL_PATH}\Qt5Qml.dll"
|
||||
File "${QT_DLL_PATH}\Qt5Sql.dll"
|
||||
File "${QT_DLL_PATH}\Qt5Xml.dll"
|
||||
File "${QT_DLL_PATH}\Qt5Core.dll"
|
||||
File "${QT_DLL_PATH}\Qt5OpenGL.dll"
|
||||
File "${QT_DLL_PATH}\Qt5Quick.dll"
|
||||
File "${QT_DLL_PATH}\Qt5Svg.dll"
|
||||
File "${QT_DLL_PATH}\Qt5Widgets.dll"
|
||||
File "${QT_DLL_PATH}\Qt5Gui.dll"
|
||||
File "${QT_DLL_PATH}\Qt5PrintSupport.dll"
|
||||
File "${QT_DLL_PATH}\Qt5Sensors.dll"
|
||||
File "${QT_DLL_PATH}\Qt5WebKit.dll"
|
||||
File "${QT_DLL_PATH}\Qt5WinExtras.dll"
|
||||
File "${QT_DLL_PATH}\Qt5WebKit.dll"
|
||||
File "${QT_DLL_PATH}\Qt5WebKitWidgets.dll"
|
||||
File "${QT_DLL_PATH}\Qt5Multimedia.dll"
|
||||
File "${QT_DLL_PATH}\Qt5MultimediaWidgets.dll"
|
||||
|
||||
|
||||
;Qt deps
|
||||
File "${QT_DLL_PATH}\libpcre16-0.dll"
|
||||
File "${QT_DLL_PATH}\libxml2-2.dll"
|
||||
File "${QT_DLL_PATH}\libxslt-1.dll"
|
||||
File "${QT_DLL_PATH}\libEGL.dll"
|
||||
File "${QT_DLL_PATH}\libGLESv2.dll"
|
||||
File "${QT_DLL_PATH}\libwebp-4.dll"
|
||||
|
||||
;Boost fnord
|
||||
File "${QT_DLL_PATH}\icuuc53.dll"
|
||||
File "${QT_DLL_PATH}\icudata53.dll"
|
||||
File "${QT_DLL_PATH}\icui18n53.dll"
|
||||
File "${QT_DLL_PATH}\QtCore4.dll"
|
||||
File "${QT_DLL_PATH}\QtGui4.dll"
|
||||
File "${QT_DLL_PATH}\QtNetwork4.dll"
|
||||
File "${QT_DLL_PATH}\QtSql4.dll"
|
||||
File "${QT_DLL_PATH}\QtXml4.dll"
|
||||
File "${QT_DLL_PATH}\QtWebKit4.dll"
|
||||
|
||||
;SQLite driver
|
||||
SetOutPath "$INSTDIR\sqldrivers"
|
||||
File "${SQLITE_DLL_PATH}\qsqlite.dll"
|
||||
SetOutPath "$INSTDIR"
|
||||
File "${MING_BIN}\libsqlite3-0.dll"
|
||||
|
||||
;Qt platform plugins
|
||||
SetOutPath "$INSTDIR\platforms"
|
||||
File "${MING_LIB}/qt5/plugins/platforms/qwindows.dll"
|
||||
File "${SQLITE_DLL_PATH}\qsqlite4.dll"
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
;Image plugins
|
||||
SetOutPath "$INSTDIR\imageformats"
|
||||
File "${IMAGEFORMATS_DLL_PATH}\qgif.dll"
|
||||
File "${IMAGEFORMATS_DLL_PATH}\qjpeg.dll"
|
||||
File "${IMAGEFORMATS_DLL_PATH}\qsvg.dll"
|
||||
File "${IMAGEFORMATS_DLL_PATH}\qgif4.dll"
|
||||
File "${IMAGEFORMATS_DLL_PATH}\qjpeg4.dll"
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
;Cygwin/c++ stuff
|
||||
;File "${MING_BIN}\cygmad-0.dll"
|
||||
;File "${MING_BIN}\libgcc_s_dw2-1.dll"
|
||||
;File "${MING_BIN}\mingwm10.dll"
|
||||
File "${MING_BIN}\libgcc_s_sjlj-1.dll"
|
||||
File "${MING_BIN}\libstdc++-6.dll"
|
||||
|
||||
;Phonon stuff
|
||||
|
||||
;Fix the phonon build to not use Dbus
|
||||
File "${QT_DLL_PATH}\QtDbus4.dll"
|
||||
File "${MING_BIN}\libdbus-1-3.dll"
|
||||
File "${MING_BIN}\dbus-daemon.exe"
|
||||
|
||||
File "${MING_BIN}\libphonon.dll"
|
||||
SetOutPath "$INSTDIR\phonon_backend"
|
||||
File "${MING_BIN}\phonon_backend\phonon_vlc.dll"
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
;VLC
|
||||
File "${VLC_BIN}\libvlc.dll"
|
||||
File "${VLC_BIN}\libvlccore.dll"
|
||||
;SetOutPath "$INSTDIR\phonon_backend"
|
||||
File "${MING_BIN}\libvlc.dll"
|
||||
File "${MING_BIN}\libvlccore.dll"
|
||||
SetOutPath "$INSTDIR\plugins"
|
||||
File /r "${VLC_PLUGIN_PATH}\*.dll"
|
||||
SetOutPath "$INSTDIR"
|
||||
File "${MING_BIN}\libmad-0.dll" ; MP3
|
||||
File "${MING_BIN}\libFLAC-8.dll" ; FLAC
|
||||
File "${MING_BIN}\libogg-0.dll" ; OGG, FLAC
|
||||
File "${MING_BIN}\libvorbis-0.dll" ; OGG
|
||||
File "${MING_BIN}\libvorbisenc-2.dll" ; OGG
|
||||
|
||||
|
||||
|
||||
; Other
|
||||
File "${MING_BIN}\libqjson.dll"
|
||||
File "${MING_BIN}\libtag.dll"
|
||||
File "${MING_BIN}\libpng16-16.dll"
|
||||
File "${MING_BIN}\libpng15-15.dll"
|
||||
File "${MING_BIN}\libjpeg-8.dll"
|
||||
File "${MING_BIN}\zlib1.dll"
|
||||
|
||||
File "${MING_BIN}\libechonest5.dll"
|
||||
File "${MING_BIN}\liblastfm5.dll"
|
||||
File "${MING_BIN}\libquazip5.dll"
|
||||
File "${MING_BIN}\libqt5keychain.dll"
|
||||
|
||||
; GnuTLS
|
||||
File "${MING_BIN}\libgnutls-28.dll"
|
||||
File "${MING_BIN}\libtasn1-6.dll"
|
||||
File "${MING_BIN}\libgmp-10.dll"
|
||||
File "${MING_BIN}\libhogweed-2-4.dll"
|
||||
File "${MING_BIN}\libintl-8.dll"
|
||||
File "${MING_BIN}\libnettle-4-6.dll"
|
||||
File "${MING_BIN}\libp11-kit-0.dll"
|
||||
File "${MING_BIN}\libffi-6.dll"
|
||||
|
||||
; Snorenotify
|
||||
File "${MING_BIN}\SnoreToast.exe"
|
||||
File "${MING_BIN}\libsnore-qt5.dll"
|
||||
File "${MING_LIB}\libsnore-qt5\libsnore_backend_growl.dll"
|
||||
File "${MING_LIB}\libsnore-qt5\libsnore_backend_snarl.dll"
|
||||
File "${MING_LIB}\libsnore-qt5\libsnore_backend_snore.dll"
|
||||
File "${MING_LIB}\libsnore-qt5\libsnore_backend_snoretoast.dll"
|
||||
|
||||
; Snoregrowl
|
||||
File "${MING_BIN}\libsnoregrowl++.dll"
|
||||
File "${MING_BIN}\libsnoregrowl.dll"
|
||||
File "${MING_BIN}\libechonest.dll"
|
||||
File "${MING_BIN}\libQTweetLib.dll"
|
||||
|
||||
; Jabber
|
||||
File "${MING_BIN}\libjreen-qt5.dll"
|
||||
File "${MING_BIN}\libidn-11.dll"
|
||||
File "${MING_BIN}\libgsasl-7.dll"
|
||||
File "${MING_BIN}\libqca-qt5.dll"
|
||||
File "${MING_BIN}\libjreen.dll"
|
||||
File "${MING_BIN}\libqca.dll"
|
||||
SetOutPath "$INSTDIR\crypto"
|
||||
File "${MING_LIB}\qca-qt5\crypto\libqca-ossl.dll"
|
||||
File "${MING_LIB}\qt4\plugins\crypto\libqca-ossl.dll"
|
||||
SetOutPath "$INSTDIR"
|
||||
File "${MING_BIN}\libssl-10.dll"
|
||||
File "${MING_BIN}\libcrypto-10.dll"
|
||||
File "${MING_BIN}\libssl-8.dll"
|
||||
File "${MING_BIN}\libcrypto-8.dll"
|
||||
|
||||
; LucenePlusPlus
|
||||
File "${MING_BIN}\liblucene++.dll"
|
||||
File "${MING_BIN}\libboost_system-mt.dll"
|
||||
File "${MING_BIN}\libboost_filesystem-mt.dll"
|
||||
File "${MING_BIN}\libboost_iostreams-mt.dll"
|
||||
File "${MING_BIN}\libboost_regex-mt.dll"
|
||||
File "${MING_BIN}\libboost_thread-mt.dll"
|
||||
File "${MING_BIN}\libbz2-1.dll"
|
||||
File "${MING_LIB}\libclucene-core.dll"
|
||||
File "${MING_LIB}\libclucene-shared.dll"
|
||||
|
||||
File "${MING_BIN}\libqtsparkle-qt5.dll"
|
||||
File "${MING_BIN}\libKF5Attica.dll"
|
||||
File "${MING_BIN}\libqtsparkle.dll"
|
||||
SectionEnd
|
||||
|
||||
SectionGroup "Shortcuts"
|
||||
@@ -437,7 +385,6 @@ SectionGroup "Shortcuts"
|
||||
CreateDirectory "$SMPROGRAMS\Tomahawk"
|
||||
CreateShortCut "$SMPROGRAMS\Tomahawk\LICENSE.lnk" "$INSTDIR\LICENSE.txt"
|
||||
CreateShortCut "$SMPROGRAMS\Tomahawk\Tomahawk.lnk" "$INSTDIR\tomahawk.exe"
|
||||
WinShell::SetLnkAUMI "$SMPROGRAMS\Tomahawk\Tomahawk.lnk" "${AppUserModelId}"
|
||||
CreateShortCut "$SMPROGRAMS\Tomahawk\Release notes.lnk" "$INSTDIR\NOTES.txt"
|
||||
CreateShortCut "$SMPROGRAMS\Tomahawk\Uninstall.lnk" "$INSTDIR\uninstall.exe"
|
||||
SetShellVarContext current
|
||||
@@ -512,78 +459,11 @@ Section -post
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "NoRepair" "1"
|
||||
|
||||
; Register tomahawk:// protocol handler
|
||||
WriteRegStr HKCR "tomahawk" "" "URL:Tomahawk Protocol"
|
||||
WriteRegStr HKCR "tomahawk" "URL Protocol" ""
|
||||
WriteRegStr HKCR "tomahawk" "" "URL: Tomahawk Protocol"
|
||||
WriteRegStr HKCR "tomahawk\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR "tomahawk\shell" "" "open"
|
||||
WriteRegStr HKCR "tomahawk\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
; Register file associations
|
||||
WriteRegStr HKCR ".mp3" "" "MPEG Audio Layer 3"
|
||||
WriteRegStr HKCR ".mp3\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".mp3\shell" "" "open"
|
||||
WriteRegStr HKCR ".mp3\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".oga" "" "Ogg Audio File"
|
||||
WriteRegStr HKCR ".oga\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".oga\shell" "" "open"
|
||||
WriteRegStr HKCR ".oga\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".ogg" "" "Ogg Audio File"
|
||||
WriteRegStr HKCR ".ogg\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".ogg\shell" "" "open"
|
||||
WriteRegStr HKCR ".ogg\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".opus" "" "OPUS File"
|
||||
WriteRegStr HKCR ".opus\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".opus\shell" "" "open"
|
||||
WriteRegStr HKCR ".opus\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".mp4" "" "AAC File"
|
||||
WriteRegStr HKCR ".mp4\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".mp4\shell" "" "open"
|
||||
WriteRegStr HKCR ".mp4\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".aac" "" "AAC File"
|
||||
WriteRegStr HKCR ".aac\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".aac\shell" "" "open"
|
||||
WriteRegStr HKCR ".aac\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".m4a" "" "AAC File"
|
||||
WriteRegStr HKCR ".m4a\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".m4a\shell" "" "open"
|
||||
WriteRegStr HKCR ".m4a\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".mpc" "" "Musepack Audio File"
|
||||
WriteRegStr HKCR ".mpc\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".mpc\shell" "" "open"
|
||||
WriteRegStr HKCR ".mpc\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".wma" "" "Windows Media Audio"
|
||||
WriteRegStr HKCR ".wma\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".wma\shell" "" "open"
|
||||
WriteRegStr HKCR ".wma\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".aiff" "" "AIFF File"
|
||||
WriteRegStr HKCR ".aiff\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".aiff\shell" "" "open"
|
||||
WriteRegStr HKCR ".aiff\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".aif" "" "AIFF File"
|
||||
WriteRegStr HKCR ".aif\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".aif\shell" "" "open"
|
||||
WriteRegStr HKCR ".aif\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".wv" "" "WavePack Audio File"
|
||||
WriteRegStr HKCR ".wv\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".wv\shell" "" "open"
|
||||
WriteRegStr HKCR ".wv\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
WriteRegStr HKCR ".flac" "" "FLAC Audio File"
|
||||
WriteRegStr HKCR ".flac\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR ".flac\shell" "" "open"
|
||||
WriteRegStr HKCR ".flac\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint "Finsihed."
|
||||
SectionEnd
|
||||
@@ -643,15 +523,11 @@ Section Uninstall
|
||||
DeleteRegValue HKLM "Software\Tomahawk" ""
|
||||
DeleteRegKey HKLM "Software\Tomahawk"
|
||||
|
||||
;DeleteRegKey HKCR "Software\Tomahawk"
|
||||
;DeleteRegKey HKCR "Software\TomahawkSpotify"
|
||||
DeleteRegKey HKCR "tomahawk"
|
||||
|
||||
;Start menu shortcuts.
|
||||
!ifdef OPTION_SECTION_SC_START_MENU
|
||||
SetShellVarContext all
|
||||
WinShell::UninstAppUserModelId "${AppUserModelId}"
|
||||
WinShell::UninstShortcut "$SMPROGRAMS\Tomahawk\Tomahawk.lnk"
|
||||
RMDir /r "$SMPROGRAMS\Tomahawk"
|
||||
SetShellVarContext current
|
||||
!endif
|
||||
|
21
CMakeModules/kwsysDateStamp.cmake
Normal file
@@ -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)
|
53
CPack.cmake
Normal file
@@ -0,0 +1,53 @@
|
||||
INCLUDE( InstallRequiredSystemLibraries )
|
||||
|
||||
SET( CPACK_PACKAGE_CONTACT "Dominik Schmidt <domme@tomahawk-player.org>" )
|
||||
|
||||
SET( CPACK_PACKAGE_FILE_NAME tomahawk-${TOMAHAWK_VERSION} ) # Package file name without extension. Also a directory of installer cmake-2.5.0-Linux-i686
|
||||
|
||||
# CPACK_GENERATOR CPack generator to be used STGZ;TGZ;TZ
|
||||
# CPACK_INCLUDE_TOPLEVEL_DIRECTORY Controls whether CPack adds a top-level directory, usually of the form ProjectName-Version-OS, to the top of package tree. 0 to disable, 1 to enable
|
||||
# CPACK_INSTALL_CMAKE_PROJECTS List of four values: Build directory, Project Name, Project Component, Directory in the package /home/andy/vtk/CMake-bin;CMake;ALL;/
|
||||
SET( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README" ) # File used as a description of a project /path/to/project/ReadMe.txt
|
||||
SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY ${TOMAHAWK_DESCRIPTION_SUMMARY} ) # Description summary of a project
|
||||
# CPACK_PACKAGE_EXECUTABLES List of pairs of executables and labels. Used by the NSIS generator to create Start Menu shortcuts. ccmake;CMake
|
||||
SET( CPACK_PACKAGE_INSTALL_DIRECTORY ${TOMAHAWK_APPLICATION_NAME} ) # Installation directory on the target system -> C:\Program Files\fellody
|
||||
SET( CPACK_PACKAGE_INSTALL_REGISTRY_KEY ${TOMAHAWK_APPLICATION_NAME} ) # Registry key used when installing this project CMake 2.5.0
|
||||
SET( CPACK_PACKAGE_NAME ${TOMAHAWK_APPLICATION_NAME} ) # Package name, defaults to the project name
|
||||
SET( CPACK_PACKAGE_VENDOR ${TOMAHAWK_ORGANIZATION_NAME} ) # Package vendor name
|
||||
SET( CPACK_PACKAGE_VERSION_MAJOR ${TOMAHAWK_VERSION_MAJOR} )
|
||||
SET( CPACK_PACKAGE_VERSION_MINOR ${TOMAHAWK_VERSION_MINOR} )
|
||||
SET( CPACK_PACKAGE_VERSION_PATCH ${TOMAHAWK_VERSION_PATCH} )
|
||||
|
||||
# CPACK_SOURCE_GENERATOR List of generators used for the source package TGZ;TZ
|
||||
|
||||
SET( CPACK_SOURCE_GENERATOR TGZ )
|
||||
SET( CPACK_SOURCE_IGNORE_FILES "/\\\\.git/" ".*~$" ".kate-swp$" "/build_dir/" "/clang/" "/gcc/" "/build/" "/win/" ) # Pattern of files in the source tree that won't be packaged
|
||||
SET( CPACK_SOURCE_PACKAGE_FILE_NAME tomahawk-${TOMAHAWK_VERSION} ) # Name of the source package
|
||||
# CPACK_SOURCE_STRIP_FILES List of files in the source tree that will be stripped. Starting with CMake 2.6.0 CPACK_SOURCE_STRIP_FILES will be a boolean variable which enables stripping of all files (a list of files evaluates to TRUE in CMake, so this change is compatible).
|
||||
# CPACK_STRIP_FILES List of files to be stripped. Starting with CMake 2.6.0 CPACK_STRIP_FILES will be a boolean variable which enables stripping of all files (a list of files evaluates to TRUE in CMake, so this change is compatible). bin/ccmake;bin/cmake;bin/cpack;bin/ctest
|
||||
# CPACK_SYSTEM_NAME System name, defaults to the value of ${CMAKE_SYSTEM_NAME}. Linux-i686
|
||||
|
||||
# Advanced settings
|
||||
# CPACK_CMAKE_GENERATOR What CMake generator should be used if the project is CMake project. Defaults to the value of CMAKE_GENERATOR. Unix Makefiles
|
||||
SET( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt" ) # License file for the project, used by the STGZ, NSIS, and PackageMaker generators. /home/andy/vtk/CMake/Copyright.txt
|
||||
# CPACK_RESOURCE_FILE_README ReadMe file for the project, used by PackageMaker generator. /home/andy/vtk/CMake/Templates/CPack.GenericDescription.txt
|
||||
# CPACK_RESOURCE_FILE_WELCOME Welcome file for the project, used by PackageMaker generator. /home/andy/vtk/CMake/Templates/CPack.GenericWelcome.txt
|
||||
SET( CPACK_PACKAGE_VERSION ${TOMAHAWK_VERSION} )
|
||||
|
||||
SET( CPACK_TOPLEVEL_TAG "narf" ) # Directory for the installed files. - needed to provide anything to avoid an error# CPACK_INSTALL_COMMANDS Extra commands to install components.
|
||||
# CPACK_INSTALL_DIRECTORIES Extra directories to install.
|
||||
# CPACK_MONOLITHIC_INSTALL When set disables the component-based installer.
|
||||
# CPACK_PACKAGING_INSTALL_PREFIX Sets the default root that the generated package installs into, '/usr' is the default for the debian and redhat generators /usr/local
|
||||
|
||||
##
|
||||
# INSTALL DEPS
|
||||
##
|
||||
|
||||
|
||||
|
||||
# Set the options file that needs to be included inside CMakeCPackOptions.cmake
|
||||
#SET(QT_DIALOG_CPACK_OPTIONS_FILE ${CMake_BINARY_DIR}/Source/QtDialog/QtDialogCPack.cmake)
|
||||
configure_file("${CMAKE_SOURCE_DIR}/CPackOptions.cmake.in"
|
||||
"${CMAKE_BINARY_DIR}/CPackOptions.cmake" @ONLY)
|
||||
set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CPackOptions.cmake") # File included at cpack time, once per generator after setting CPACK_GENERATOR to the actual generator being used; allows per-generator setting of CPACK_* variables at cpack time. ${PROJECT_BINARY_DIR}/CPackOptions.cmake
|
||||
include(CPack)
|
@@ -3,10 +3,6 @@
|
||||
# in this file.
|
||||
|
||||
if(CPACK_GENERATOR MATCHES "NSIS")
|
||||
if( NOT EXISTS "@CMAKE_SOURCE_DIR@/admin/win/vlc/")
|
||||
MESSAGE(FATAL_ERROR "\n You don't have vlc in your admin/win/ dir. \n Please change into that dir and execute 'sh update-vlc.sh'" )
|
||||
endif()
|
||||
|
||||
#SET(CPACK_NSIS_INSTALL_ROOT "@CPACK_NSIS_INSTALL_ROOT@")
|
||||
|
||||
# set the install/unistall icon used for the installer itself
|
||||
|
477
ChangeLog
@@ -1,476 +1,22 @@
|
||||
Version 0.9.0:
|
||||
* Resolved playback issues by switching to a new audio engine.
|
||||
|
||||
Version 0.8.3:
|
||||
* Support for compilation albums.
|
||||
|
||||
Version 0.8.2:
|
||||
* Show error message if saving tags failed.
|
||||
* Fixed painting issue on search page.
|
||||
* (OS X & Windows) Fixed crash during collection scan.
|
||||
|
||||
Version 0.8.1:
|
||||
* Disabled sorting for stations.
|
||||
* Fixed drag & drop behavior in combination with certain resolvers.
|
||||
* Fixed infinite scanning recursion.
|
||||
* Prevented adding dupes to the collection when scanning.
|
||||
* When playing an artist or album, don't give up when the first track
|
||||
in list isn't playable.
|
||||
* Fixed importing M3U playlists.
|
||||
* Sort album grids by artist name.
|
||||
* Fixed painting issue on 'More Albums' grid.
|
||||
* Fixed crash when editing/saving track tags.
|
||||
|
||||
Version 0.8.0:
|
||||
* Redesigned - Shiny new interface. Simplified. New icons.
|
||||
* Added Friend Feed.
|
||||
* Now Playing notifications (OS X & Windows) - support for OS-level
|
||||
notification systems (e.g. Notification Center) with fallback to its own
|
||||
native notification system.
|
||||
* Many actions now available in context menu - including Favorite and Send
|
||||
to a Friend.
|
||||
* Drag and drop support for iTunes, Deezer, Beats Music, Rdio, Spotify,
|
||||
SoundCloud links (into Tomahawk) for playlists/tracks/artists/album urls.
|
||||
* Support for clicking source icon for currently playing track in audio
|
||||
controls to take user to associated page on source's site.
|
||||
* Added Hatchet plug-in.
|
||||
* Added Google Play Music and Beats Music support.
|
||||
* Add links to Support site, Bug Reports and Translations to Help menu.
|
||||
* Add "What's New" page to display on first launch (or until dismissed).
|
||||
Also available from Help menu.
|
||||
* Changed label from "Resolvers" and "Services" to more generic "Plug-Ins".
|
||||
* Clarified some labels, help text and status messages.
|
||||
* Changed icon color a bit.
|
||||
* Added "Acoustic" and "Electric" songtypes to Stations options.
|
||||
* Removed some stale Chart sources.
|
||||
* Playback Queue now saves its state across sessions.
|
||||
* Queue now moved to sidebar.
|
||||
* Added "Inbox" feature, showing incoming song recommendations. Dropping
|
||||
a track on a user in the sidebar sends a recommendation to them.
|
||||
* You will now be asked whether you want to trust invalid SSL certificates.
|
||||
* Improved connecting between Tomahawk peers and support multiple IPs
|
||||
(including IPv6).
|
||||
* Removed Top Loved from sidebar.
|
||||
* Removed Spotify playlist syncing (will return in future versions).
|
||||
* HTTP(S) streaming is now done by Tomahawk instead of the Phonon backend
|
||||
(fixed HTTPS streaming on MacOS).
|
||||
* Heavily reduced memory footprint during and after indexing the database.
|
||||
* Retina display and DPI scaling fixes.
|
||||
* New Collection views. Re-added support for tracklist view of Collection.
|
||||
* Added Telepathy support.
|
||||
* Plugin refactoring (and .AXE resolver binaries).
|
||||
* Removed Twitter due to change in Twitter's API.
|
||||
* Removed auto-playlists.
|
||||
* Improved error messages.
|
||||
* Added basic remote control API.
|
||||
* Add support for Opus codec (requires TagLib 1.9).
|
||||
* Support rtmp:// streams.
|
||||
* Support custom headers in CustomUrlHandler.
|
||||
* Fuzzy search indices for JS Resolvers.
|
||||
* Add metadata retrieval of HTTP(S) streams in JavaScript resolvers.
|
||||
|
||||
Version 0.7.0:
|
||||
* JavaScript Resolvers can now expose collections.
|
||||
* Introduced bundle system for JavaScript Resolvers, called "axes".
|
||||
* Fixed playback-loop caused by duplicate tracks in a playlist.
|
||||
* Improved peer handling and removed connection support through Twitter.
|
||||
* Taking an account offline now also disconnects associated peers.
|
||||
* Improved spotify protocol handling.
|
||||
* Added "Append to Playlist" context menu item.
|
||||
* User-friendlier collection handling: added info-buttons for artists and
|
||||
albums. Double-clicking an item expands it now.
|
||||
* Charts only load on-demand now.
|
||||
* Fixed Diagnostics information not correctly updating.
|
||||
* Fixed issue with hidden sidebar and panels.
|
||||
* Fixed issues with some color schemes.
|
||||
* Fixed playing files with special characters in the filename.
|
||||
* Improved stability.
|
||||
* Added translations for Catalan, Czech, Galician, Greek, Italian and
|
||||
Chinese.
|
||||
* (Windows) Smoother and more responsive audio playback.
|
||||
* (Linux) Fixed grid issues with GTK-styles.
|
||||
|
||||
Version 0.6.1:
|
||||
* Improved stability.
|
||||
* Improved UPnP detection and port-forwarding.
|
||||
* Fixed scrolling behaviour of grid-views.
|
||||
* Lots of small design tweaks and fixes.
|
||||
|
||||
Version 0.6.0:
|
||||
* Improved icon theme with vector graphics.
|
||||
* Higher resolution artist and album images.
|
||||
* You can now click artists, albums and tracks mentioned in artists'
|
||||
biographies.
|
||||
* New AudioControl logic - only enable Prev/Skip buttons if available.
|
||||
* Added more options to right-click/context menus.
|
||||
* Resolver source icon in Audiocontrols now supports being a link-back URL
|
||||
to original source.
|
||||
* Make friends' currently playing song (in sidebar) clickable.
|
||||
* Improve MusicBrainz plugin to use normalized artist names and avoid
|
||||
duplicate tracks.
|
||||
* Access Control queries now stay on the bottom of the job view, removing
|
||||
the tendency to jump away from the mouse.
|
||||
* Improved random mode, preventing songs from being played in too rapid
|
||||
succession.
|
||||
* You can now choose between various view modes for your playlists.
|
||||
* Nicer layout for the Artist, Album & Track pages.
|
||||
* Follow HTTP redirects when fetching Playlists.
|
||||
* Main menu can now be hidden and instead be shown as a toolbar button.
|
||||
* Connectivity controls in the toolbar.
|
||||
* Cleaned up settings dialog.
|
||||
* Ability to sync Spotify Starred Tracks with Tomahawk's Loved Tracks.
|
||||
* Remove YouTube resolver from plug-in directory on request of YouTube.
|
||||
* Fixed iTunes m3u playlist support.
|
||||
* Support dropping of new Soundcloud user, track, set & likes URLs.
|
||||
* Added HotNewHipHop as available chart.
|
||||
* Added iTunes as available source for New Releases.
|
||||
* Updates and additions to translations including: Japanese, Bulgarian,
|
||||
Finnish, Russian, Arabic, Chinese, Swedish, Czech and more.
|
||||
* (Windows) Added thumb buttons to Windows 7's taskbar.
|
||||
* (Linux) Allow disabling of playback notifications.
|
||||
|
||||
Version 0.5.5:
|
||||
* Changed the Spotify config dialog to indicate when the user
|
||||
is logged in.
|
||||
* Fixed bug where the wrong avatar could be shown for a user.
|
||||
* Fixed shortcuts not working in the global search field on OS X.
|
||||
* Fixed The Echo Nest stations.
|
||||
* Code-signed executable on OS X for GateKeeper.
|
||||
* Fixed logging in to Spotify when pressing return in the config dialog.
|
||||
* Fixed queue not auto-collapsing when playing the last track.
|
||||
* Fixed bug where album listings would fail to show up.
|
||||
* Improved stability.
|
||||
* Fixed bug where it was not possible to drop a mixture of resolved
|
||||
and unresolved tracks onto a playlist.
|
||||
|
||||
Version 0.5.4:
|
||||
* Improved stability.
|
||||
* Added support for Spotify album lookups.
|
||||
* Fixed not always updating the database index after scanning.
|
||||
* Fixed connection issue between Tomahawk peers.
|
||||
|
||||
Version 0.5.3:
|
||||
* Fixed broken artist names when importing Last.fm playback history.
|
||||
* Fixed crash when filtering collections.
|
||||
|
||||
Version 0.5.2:
|
||||
* Fixed a crash when invalid results are coming back from a resolver or
|
||||
are found in a playlist.
|
||||
|
||||
Version 0.5.1:
|
||||
* Fixed a few issues with automatic downloading and launching
|
||||
of the Spotify account.
|
||||
* Show an error message when not able to resolve a requested song.
|
||||
* Fixed a few crash and freeze issues.
|
||||
* Better detection of local networks for the Local Network connector.
|
||||
* Don't prompt for access permission for your own accounts.
|
||||
* (OS X) Fixed not being able to connect to Last.fm.
|
||||
|
||||
Version 0.5.0:
|
||||
* SOCKS5 proxy support improvements for resolvers and more.
|
||||
* Initial Access Control support, allowing users to define who is able to
|
||||
access and stream from their collection.
|
||||
* Priortize resolution of a track on double-click.
|
||||
* Spotify Resolver can now be easily installed on-demand from the settings.
|
||||
* You can now sync selected playlists (and updates) with Spotify.
|
||||
* Support .aiff (AIFF mimetype) files.
|
||||
* Cleaned up Diagnostics window.
|
||||
* You can tell Tomahawk to stop playback after a certain track finished.
|
||||
* Double-clicking a playlist name (in the sidebar) will start the playlist.
|
||||
* You can now import your entire Last.fm playback history into Tomahawk.
|
||||
* Fixed sorting of related artists.
|
||||
* Support for multimedia keys (Play, Pause, Next etc.) on Windows & Linux.
|
||||
* When listening privately scrobbling to Last.fm and Adium is now disabled.
|
||||
* Added a toolbar with page back / forward buttons and the global search.
|
||||
* New grid-like view with direct playback controls.
|
||||
* You can now browse new releases (by genre).
|
||||
* Added social sharing widget, which allows you to tweet about a song.
|
||||
* Added a track page showing a song's similar tracks and statistics.
|
||||
* Separate Loved Tracks and Recently Played views per source.
|
||||
* Combine an artist's albums into a single aggregated view.
|
||||
* Added translations for Arabic, French, Bulgarian, Spanish and more.
|
||||
* Fixed XSPF auto-updating.
|
||||
* New Tomahawk logo and icon.
|
||||
|
||||
Version 0.4.2:
|
||||
* Fix ZeroConf protocol showing IP addresses instead of host names.
|
||||
* Updated translations for various languages.
|
||||
* Resuming playback restores correct volume settings.
|
||||
* Reduced CPU usage during playback.
|
||||
* Fixed not starting up due to case sensitivity issue on OS X.
|
||||
* Fixed volume issue (too quiet) on Windows.
|
||||
|
||||
Version 0.4.1:
|
||||
* Fixed various crashes.
|
||||
* Fixed issues with auto-updating XSPF playlists.
|
||||
* Double-clicking a playlist starts playing it.
|
||||
* Resolvers can now return disc number and album position for results.
|
||||
* Fixed sorting playlists by track number.
|
||||
* Fixed issues with changing proxy.
|
||||
* Fixed Twitter authentication issues.
|
||||
* Fixed Grooveshark support on Windows.
|
||||
|
||||
Version 0.4.0:
|
||||
* Added visual notification for database indexing job.
|
||||
* Fixed icons not appearing in resolvers list.
|
||||
* Fixed various UI glitches and stray error messages in stations.
|
||||
* Fixed bug where album page would resolve bottom-to-top.
|
||||
* Fixed bug where Footnotes would not update when changing selected album.
|
||||
* Fixed dragging albums and artists from charts, album, and artist views.
|
||||
* Fixed bug where filter text would be one step behind filter value.
|
||||
* Fixed bug where resolvers would enable themselves after auto-updating.
|
||||
* Fixed occasional crash when dropping tracks onto New Station item.
|
||||
* Added jump-to-current-track support for search results page.
|
||||
* Fixed non-resolving tracks when dragging from album view.
|
||||
* Fixed fetching album covers for albums with special characters.
|
||||
* Show errors and continue gracefully when resolved audio is not available.
|
||||
* Fixed various crashes on exit.
|
||||
* Added basic command-line options for playback control.
|
||||
* Bumped up web api timeouts to allow web clients to finish resolving.
|
||||
* Added filename suggestion when exporting a playlist.
|
||||
* Cleaned up highlighting of artist names in album view.
|
||||
* Cleaned up alignment of playlist items.
|
||||
* Fixed potential crash when searching.
|
||||
* Added support for disc number.
|
||||
* Added SoundCloudWall.com charts.
|
||||
* Added ability to "lock on" to a user when listening along, to skip along.
|
||||
* Fixed bug where loved tracks would be refreshed much too often.
|
||||
* Fixed some font size issues.
|
||||
* Sped up Tomahawk startup by moving chart loading into a separate thread.
|
||||
* Added support for parsing Grooveshark and Tinysong tracks and playlists.
|
||||
* Reorganized sidebar to follow more logical item groupings.
|
||||
* Added artist and album results to global searches.
|
||||
* Fixed style and contrast issues when using GTK styles.
|
||||
* Fixed paths to artwork when using MPRIS2 interface.
|
||||
* Fixed out of sync Show/Hide menu items on OS X when hidden with cmd-h.
|
||||
* Fixed /Volumes directory not showing up on OS X.
|
||||
* Fixed startup crash on OS X.
|
||||
|
||||
Version 0.3.3:
|
||||
* Automatically load Super Collection tracks when no official release
|
||||
information is available.
|
||||
* Fixed stations not fetching new tracks under certain circumstances.
|
||||
* Fixed Footnotes not always updating when selecting a new track.
|
||||
* Added support for ow.ly, fb.me, itun.es and tinyurl.com URL shorteners.
|
||||
* Fixed playback issues with non-latin filenames on Windows.
|
||||
* Fixed tomahawk:// protocol not working properly on Windows.
|
||||
* Fixed dupe menu entry appearing on OS X.
|
||||
* Fixed invisible sidebar items on Linux.
|
||||
|
||||
Version 0.3.2:
|
||||
* Improved syncing process, it's faster and more reliable now.
|
||||
* Fixed UPnP issues.
|
||||
* Fixed not updating collections and views after a collection changes.
|
||||
* Fixed not showing a source's proper name at all times.
|
||||
* Improved music scanner reliability.
|
||||
* Fixed various labels not being painted in the right color when selected.
|
||||
* Support .oga (ogg mimetype) files.
|
||||
* Fixed stuck Now Playing indicator icon.
|
||||
* Fixed sidebar width of settings dialog on Windows.
|
||||
* Fixed not always showing delete icon on hovered temporary pages.
|
||||
* Fixed inability to select externally mounted drives.
|
||||
* Fixed bug where speaker would be stuck next to a playlist.
|
||||
* Fixed bug where first startup would show a loading spinner in the
|
||||
Dashboard's "Recent Additions" forever.
|
||||
* Automatically upgrade resolvers when an update is found.
|
||||
* Fixed last played track of a friend never expiring.
|
||||
* Fixed parsing of rdio tracks.
|
||||
* Changed steering mechanism in stations to be user-friendlier.
|
||||
* Fixed loading biographies of artist names with special characters.
|
||||
* Fixed behaviour of dropping Spotify playlists on the sidebar.
|
||||
* Fixed hard to read source-name in the audio control area on OS X.
|
||||
* Fixed crashes when playing Grooveshark tracks.
|
||||
* Fixed bug where clicking the latch button would flicker and unlatch.
|
||||
* Fixed Jabber accounts not connecting properly when proxy is in use.
|
||||
|
||||
Version 0.3.1:
|
||||
* Fixed not resolving to local files.
|
||||
* Fixed shutdown crash on Windows.
|
||||
* Support more widget types in Javascript resolver configs.
|
||||
* Fixed bug where red headphone would be visible on My Collection
|
||||
when listened along to source went offline.
|
||||
* Draw author name as well as avatar in recently played playlists.
|
||||
* Fixed Tomahawk integration in Unity.
|
||||
* Fixed incorrect item selected in source tree when deleting temporary
|
||||
pages.
|
||||
* Fixed currently played label disappearing after 10 minutes regardless
|
||||
of length of track.
|
||||
* Fixed crash on Sparkle upgrade on OS X.
|
||||
|
||||
Version 0.3.0:
|
||||
* Make artist names in the album view clickable.
|
||||
* Don't start playing if a tomahawk:// link was clicked while Tomahawk
|
||||
is paused.
|
||||
* Make artist name clickable in header of Album pages.
|
||||
* Added a drop shadow to cover images, and put placeholder in jewel case.
|
||||
* Added shuffle and repeat support to tree view.
|
||||
* Draw a speaker next to the currently playing playlist.
|
||||
* Refresh station previews whenever a filter is changed.
|
||||
* Support and show official releases on album and track pages.
|
||||
* Filter out duplicates from station previews and upcoming tracks.
|
||||
* Added YouTube resolver.
|
||||
* Fixed bug where going offline then online would not re-connect to many
|
||||
peers.
|
||||
* Added support for auto-updating live XSPF playlists.
|
||||
* Don't show an age of 41 years for tracks that have no age information.
|
||||
* Show config UI for resolvers that have them as soon as you add them.
|
||||
* Add support for Echo Nest Personal Catalogs and User Radio. Synchronize
|
||||
your catalog with The Echo Nest and enable personal recommendations
|
||||
from you and your friends.
|
||||
* Added support for Grooveshark resolver (requires Grooveshark Anywhere).
|
||||
* Fixed re-resolving when resolvers or sources go off- / online.
|
||||
* Correctly sort recently played tracks on the Dashboard.
|
||||
* Show a Lion full-screen toggle button if running on Lion.
|
||||
* Show a list of users who are currently listening along to you.
|
||||
* Show headphone icon in source item to allow users to listen along; paint
|
||||
headphones red on a source if you are currently listening along to it.
|
||||
* Added new job status view in the bottom of the source list that displays
|
||||
current jobs such as resolving, parsing playlists, and loading from
|
||||
database.
|
||||
* Parse and convert a Spotify playlist URL when dropped anywhere on the
|
||||
sidebar.
|
||||
* Convert resolvers to use asynchronous calls to avoid blocking Tomahawk's
|
||||
UI, greatly increasing responsiveness of Tomahawk while resolving.
|
||||
* Fixed no playlists overlay not disappearing when playlists were added.
|
||||
* Add support for parsing itunes track, artist and album links.
|
||||
* Fixed crash when syncing playlists with peers.
|
||||
* Add support for browsing, downloading and rating resolvers from within
|
||||
Tomahawk directly.
|
||||
* Support multi-folder selection and scanning.
|
||||
* Fixed handling of special characters in tomahawk:// links
|
||||
* Improve sidebar performance by caching pixmaps and shrinking them.
|
||||
* Send updated playlists to peers when tracks are moved/copied.
|
||||
* Remove splitter handles in sidebar.
|
||||
* Fixed Tomahawk preventing system shutdown / logout.
|
||||
* Ignore leading 'The' when sorting artists.
|
||||
* Added Charts page, which shows various sources' top hits & artists.
|
||||
* The Collection tree-views can now be filtered.
|
||||
* Fixed crash when pressing enter in an empty playlist.
|
||||
* Moved the song queue to the bottom of the sidebar.
|
||||
* Added Footnotes, a contextual view that you can slide it.
|
||||
* Show recently added playlists in dashboard rather than recently opened
|
||||
playlists.
|
||||
* Fixed seek slider and give it some smooth animation between ticks.
|
||||
* Fixed Twitter issue where it would repeatedly send DMs to friends.
|
||||
* Add a new drag and drop menu when dropping items onto playlists,
|
||||
allowing users to drop the dragged tracks, the whole album, or
|
||||
the whole artists's tracks.
|
||||
* Bring Tomahawk window to the front when clicking a Tomahawk link.
|
||||
* Fixed crash in source list when initially syncing with remote sources.
|
||||
* Open temporary artist, album, and search playlists as temporary items
|
||||
in the sidebar.
|
||||
* Fixed sorting of playlists and items in the artist view.
|
||||
* Allow dragging and dropping albums and artists to playlists.
|
||||
* Added MPRIS 2.1 support.
|
||||
|
||||
Version 0.2.3:
|
||||
* Fixed opening Rdio and Spotify links.
|
||||
* Fixed potential crash in sidebar during syncing of sources.
|
||||
* When Listening Along, the last song a peer plays is no longer duplicated.
|
||||
* Fixed an issue where the Twitter plugin could get out of sync if the
|
||||
database was cleared, leading to eventual crashes when re-connecting.
|
||||
* Fixed duplicate albums showing up on Dashboard.
|
||||
* Automatically sort search results by score.
|
||||
* Fixed stations being stuck not fetching more songs.
|
||||
* Fixed issue where artist bio could be referring to a different artist.
|
||||
* Opening a "tomahawk" URL (or other URL with Tomahawk) brings the Tomahawk
|
||||
window to the foreground.
|
||||
|
||||
Version 0.2.2:
|
||||
* Fixed crash pressing previous and next when playing a song from the Queue.
|
||||
* Fixed issue where wrench for newly added resolvers would not show up.
|
||||
* Fixed sidebar statistics not updating after collection scan finished.
|
||||
* Fixed omitting a few tracks in the Collection tree-view.
|
||||
* Fixed sidebar & track sorting issues.
|
||||
* Seek- & volume sliders now directly jump to the position you clicked on.
|
||||
* Added ability to drag artists and albums within Tomahawk.
|
||||
* (OS X) Fixed Ogg Vorbis support.
|
||||
|
||||
Version 0.2.1:
|
||||
* Fixed crashing trying to play an unavailable track.
|
||||
* Fixed a crash caused by using Javascript resolvers.
|
||||
* Fixed searching with Javascript resolvers.
|
||||
|
||||
Version 0.2.0:
|
||||
* Re-resolve queries when their resolved-to source goes offline.
|
||||
* Cleanup formatting of Preference/Configure and Diagnostics windows.
|
||||
* Add selection indicator on album art.
|
||||
* Fix inability to create Echonest playlists based solely on style or mood.
|
||||
* Created new Artist & Album page, showing various related information.
|
||||
* Update playlists in dashboard to keep them in sync.
|
||||
* Support Rdio track URLs and ability to drop them onto Tomahawk.
|
||||
* Change "Recently Played" page to "Dashboard".
|
||||
* Prioritize resolving newer queries to make GUI more responsive.
|
||||
* Automatically expand local collection node in sidebar on launch.
|
||||
* Display spinner animation while searching for tracks.
|
||||
* Let Tomahawk-headless users trigger a rescan with --filescan.
|
||||
* Include Stations and Automatic Playlists in "New Stations and Playlists".
|
||||
* Always keep current page and sidebar selection in sync.
|
||||
* New icon theme and many design tweaks.
|
||||
* Fixed bug where drop indicator wouldn't show below the last track of a
|
||||
playlist.
|
||||
* Added support for "playing" Spotify track URLs (and t.co and bit.ly
|
||||
shortened track URLs) and ability to drag/drop them into Tomahawk.
|
||||
* Added support for JSPF playlists (XSPF via JSON).
|
||||
* Scroll per pixel to making scrolling feel more natural.
|
||||
* Filter out duplicate tracks in Collection tree view.
|
||||
* Spotify resolver now honors SOCKS5 proxy settings.
|
||||
* Made "show offline sources" menu option a toggle instead of two separate
|
||||
entries.
|
||||
* Properly decode escaped characters coming from HTTP API.
|
||||
* Handle/display resolver file paths becoming invalid in Preferences.
|
||||
* Fixed track skipping-on-pause bug when using Gstreamer backend.
|
||||
* Fixed a few crashes that could occur when fetching data from Last.fm.
|
||||
* Made Twitter dialog more readable/understandable.
|
||||
* Fixed streaming from https:// links.
|
||||
* Implement new Javascript resolver API and ability to present config
|
||||
dialogs for resolvers.
|
||||
* Show when a track was played in the Recently Played tracks history.
|
||||
* Added context menus for Artists and Albums.
|
||||
* Fixed playlist bugs that would cause track to stop playing when dropping
|
||||
or moving items in the same playlist.
|
||||
* Set volume to 75% on startup.
|
||||
* Added "listen along" feature (and ability to "catch up").
|
||||
* Added "love" feature - also "loves" track on Last.fm.
|
||||
* Twitter checks for updates less often now, saving user API calls from
|
||||
running out when using multiple clients.
|
||||
* Added score column and score bars to indicate resolver match certainty.
|
||||
* Added "New Additions" page for each source.
|
||||
* Improved tomahawk:// link handling. Added support for http://toma.hk/.
|
||||
* Fixed sorting by file size.
|
||||
* Improved the way Adium status is updated with now-playing information.
|
||||
* Re-resolve tracks when a resolver is added/removed/enabled/disabled.
|
||||
* Added global search function that searches all available sources.
|
||||
* Collection scanner can now run automatically, watching files and dirs for
|
||||
changes.
|
||||
* Added Pipeline status view.
|
||||
* Allow seeking in songs - if supported by audio backend.
|
||||
* Added ability to make a copy of a peer's playlist.
|
||||
* Shuffle and Repeat settings are stored on a playlist by playlist basis.
|
||||
* (Linux) Desktop notifications for now playing.
|
||||
* (OS X) Removed "test login" button from Last.fm settings.
|
||||
* (OS X) Added MediaKey support.
|
||||
* (OS X) Don't quit on window close to conform to best practices.
|
||||
|
||||
Version 0.1.0:
|
||||
* Fixed stations so they resolve against all available sources instead of
|
||||
only local and friend's collections.
|
||||
* Add a Song seed for stations and automatic playlists, and allow dragging
|
||||
of any tracks to the New Stations entry to create a pre-seeded station.
|
||||
* Add a Song seed for stations and automatic playlists, and allow dragging of
|
||||
any tracks to the New Stations entry to create a pre-seeded station.
|
||||
* Added auto-completion for artists while filling in a station or automatic
|
||||
playlist.
|
||||
* SOCKS5 proxy support. Noproxy hosts are also supported but no wildcard
|
||||
support (yet).
|
||||
* Support loading of - and exporting to - .xspf playlists.
|
||||
* Added Tomahawk:// protocol support and share links for many things
|
||||
including tracks, playlists, and stations.
|
||||
* Support loading of - and exporting to - .xspf playlists
|
||||
* Added Tomahawk:// protocol support and share links for many things including
|
||||
tracks, playlists, and stations.
|
||||
* Autoload automatically detected resolvers on startup.
|
||||
* Fix issue where track resolving spinner never stopped if tracks were
|
||||
removed from playlist while resolving.
|
||||
* Twitter & Jabber profile pictures are shown.
|
||||
* Fix issues with stations where multiple tracks could be added at once.
|
||||
* Allow multiple accounts of the same type.
|
||||
* Add new Google account type, a thin wrapper around a Jabber plugin.
|
||||
* Add new Google account type that is a thin wrapper around a Jabber plugin.
|
||||
* Overhaul the settings dialog interface.
|
||||
* Resolvers can now be enabled and disabled, and some can be configured
|
||||
directly in Tomahawk, for example the new Spotify resolver.
|
||||
@@ -478,21 +24,21 @@ Version 0.1.0:
|
||||
as a node under the Super Collection.
|
||||
* Fix massive speed bottleneck on startup in the case of many recently
|
||||
played playlists.
|
||||
* Removed filter and song view from Super Collection, coming back in the
|
||||
next release.
|
||||
* Removed filter and song view from Super Collection, coming back in the next
|
||||
release.
|
||||
* Browse and play collections in our snappy tree-mode, which also shows
|
||||
images for artists and albums.
|
||||
* Fixed crash that could occur when playing a track from a browser.
|
||||
* Fixed a crash caused by sources going on or offline.
|
||||
* Huge optimizations in the resolving pipeline.
|
||||
* Improved the handling of automatic status messages for Google Talk.
|
||||
* Improved the handling of automatic status messages for Google Talk
|
||||
* Switch to Phonon sound system, allowing us to support a wide variety
|
||||
of audio formats.
|
||||
* UI tweaks and cleanup.
|
||||
* (OS X) Open configuration dialogs as sliding sheets.
|
||||
* (OS X) Increase our available file watches to the maximum that the system
|
||||
reports.
|
||||
* (OS X) Added 'Window' menu with zoom/minimize actions.
|
||||
* (OS X) Added 'Window' menu with zoom/minimize actions
|
||||
|
||||
Version 0.0.3:
|
||||
* Show spinner while resolving playlists.
|
||||
@@ -511,9 +57,8 @@ Version 0.0.3:
|
||||
* Faster painting of playlists with lots of unresolved tracks.
|
||||
* Prefer local results when results' score is equal.
|
||||
* (Windows) The tomahawk:// protocol handler works on Windows now.
|
||||
* (Windows) Fixed launching Tomahawk from Windows installer with admin privileges.
|
||||
* (Windows) Prevent launching a second instance on Windows.
|
||||
* (Windows) Fixed launching Tomahawk from Windows installer with admin
|
||||
privileges.
|
||||
|
||||
Version 0.0.2:
|
||||
* Don't reconnect to Jabber if the settings dialog is closed successfully
|
||||
|
78
PACKAGING.md
@@ -1,78 +0,0 @@
|
||||
# Packaging Tomahawk
|
||||
|
||||
General distribution agnostic packaging documentation for Linux.
|
||||
|
||||
## Stay up to date!
|
||||
|
||||
We will try to keep this document up to date, but we also let our packagers know if our dependencies get important updates - especially if they fix crashes or add new features - or if we add completely new ones. Last but not least, of course we want to let you know about new releases of Tomahawk!
|
||||
|
||||
If you want to be notified too subscribe to our [Google Group](https://groups.google.com/forum/#!forum/tomahawk-packagers).
|
||||
|
||||
## CMake build options
|
||||
|
||||
CMake build options are prefixed with ```-D``` and get their value passed after an ```=```.
|
||||
You could for example specify the build type like this ```-DCMAKE_BUILD_TYPE=RelWithDebInfo```.
|
||||
This document contains only options relevant to packaging, to have a complete overview you should check our CMake scripts yourself. Looking at it the other way round, this also means that you should read everything in here really carefully.
|
||||
|
||||
|
||||
##### ```CMAKE_BUILD_TYPE```
|
||||
|
||||
Make sure to specify the build type as ```Release``` or even better ```RelWithDebInfo``` if your distribution supports debug packages. If you do not do this, your users might see asserts (that look like crashes to them) which are only really useful to developers.
|
||||
|
||||
##### ```CMAKE_INSTALL_LIBDIR``` (PATH)
|
||||
|
||||
You can specify the path where Tomahawk install the libs. This is very helpful to support multilib on linux machines.
|
||||
|
||||
##### ```CMAKE_SKIP_RPATH``` (boolean) (default: OFF)
|
||||
|
||||
Build without using rpath prevents from overriding of the normal library search path, possibly interfering with local policy and causing problems for multilib, among other issues.
|
||||
|
||||
##### ```BUILD_RELEASE``` (boolean) (default: OFF)
|
||||
|
||||
If you're not using our tarballs you can turn this on to suppress putting Git revision hashes into the version string. This also disables building tools and tests by default (although you can do that manually) it's more future-proof to simply pass ```-DBUILD_RELEASE=ON``` because we might make use of it in later releases.
|
||||
|
||||
##### ```BUILD_TOOLS``` (boolean) (default: OFF, when BUILD_RELEASE=ON)
|
||||
|
||||
Tomahawk provides some tools that help highlight where crashes (of course we only crash in theory!) come from. To make them really useful, we need debug symbols to be available. If your distribution supports/allows it, you could put them into the -debug package.
|
||||
|
||||
##### ```BUILD_HATCHET``` (boolean) (default: ON)
|
||||
|
||||
Build the account plugin for Hatchet (http://hatchet.is). Requires [websocketpp](https://github.com/zaphoyd/websocketpp).
|
||||
|
||||
##### ```BUILD_WITH_QT4``` (boolean) (default: ON)
|
||||
|
||||
This enforces CMake to link against Qt4 regardless of whether Qt5 was found or not. Currently Qt4 is still our main development target, so this is still recommended. If you feel adventurous or are preparing Qt5 repositories for your distribution, feel free to give ```-DBUILD_WITH_QT4=OFF``` a shot.
|
||||
|
||||
##### ```WITH_CRASHREPORTER``` (boolean) (default: ON)
|
||||
|
||||
The crash reporter is built by default if libcrashreporter-qt is available in ```thirdparty/libcrashreporter-qt/``` (for example via git submodule). Usually distributions don't allow packagers to upload debug symbols to the Tomahawk HQ so to give crash reports more meaning for us, that's why we have no standardised submit process in place yet. If you can do that in your distribution, please get in touch with us!
|
||||
|
||||
##### ```WITH_KDE``` (boolean) (default: ON)
|
||||
|
||||
The KDE Telepathy plugin to configure Telepathy accounts from our Telepathy plugin can be disabled, if for some reason KDE is available in your build environment but you don't need this plugin.
|
||||
|
||||
##### ```WITH_UPOWER``` (boolean) (default on Linux: ON)
|
||||
|
||||
Build with support for UPower events.
|
||||
|
||||
##### ```WITH_GNOMESHORTCUTHANDLER``` (boolean) (default on Linux: ON)
|
||||
|
||||
Build with shortcut handler for GNOME.
|
||||
|
||||
#### Runtime dependencies
|
||||
|
||||
##### QSql
|
||||
|
||||
If your distribution splits the QSqlite plugin for QSql into a separate package, make it a requirement of Tomahawk - otherwise it might fail to start.
|
||||
|
||||
##### XMPP / jreen
|
||||
|
||||
Either jreen or (at least) Tomahawk's package should require the qca-ossl plugin, otherwise there will be no GTalk/Jabber support.
|
||||
|
||||
### Icon caches
|
||||
|
||||
In openSUSE there are macros for updating icon caches in KDE and GNOME (```%desktop_database_post[un]``` ```%icon_theme_cache_post[un]```) after [un]installation, check if your distribution offers the same.
|
||||
|
||||
### Firewall
|
||||
|
||||
Tomahawk offers P2P functionality, if your distribution offers a default firewall, it's nice to support a default profile for the standard Tomahawk P2P-port (50210). (cf. [openSUSE integration](https://build.opensuse.org/package/view_file/KDE:Extra/tomahawk/tomahawk.SuSEfirewall2?expand=1))
|
44
README
Normal file
@@ -0,0 +1,44 @@
|
||||
Compiling Tomahawk
|
||||
------------------
|
||||
|
||||
$ mkdir build && cd build
|
||||
$ cmake ..
|
||||
$ make
|
||||
|
||||
Start the application on Linux:
|
||||
$ ./tomahawk
|
||||
Start the application on OS X:
|
||||
$ open tomahawk.app
|
||||
|
||||
|
||||
Detailed building instructions for Ubuntu
|
||||
-----------------------------------------
|
||||
See: http://wiki.tomahawk-player.org/mediawiki/index.php/Building_Ubuntu_Binary_on_Maverick_(10.10)
|
||||
|
||||
Detailed building instructions for OS X
|
||||
---------------------------------------
|
||||
See: http://wiki.tomahawk-player.org/mediawiki/index.php/Building_OS_X_Application_Bundle_on_Snow_Leopard_(10.6)
|
||||
|
||||
Doxygen Documentation
|
||||
---------------------
|
||||
See: http://dev.tomahawk-player.org/api/classes.html
|
||||
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
CMake 2.8.0 http://www.cmake.org/
|
||||
Qt 4.7.0 http://qt.nokia.com/
|
||||
QJson 0.7.1 http://qjson.sourceforge.net/
|
||||
SQLite 3.6.22 http://www.sqlite.org/
|
||||
TagLib 1.6.2 http://developer.kde.org/~wheeler/taglib.html
|
||||
Boost 1.3x http://www.boost.org/
|
||||
CLucene 0.9.23 (0.9.21 will fail) http://clucene.sourceforge.net/download.shtml
|
||||
libechonest 1.1.8 http://projects.kde.org/projects/playground/libs/libechonest/
|
||||
|
||||
Third party libraries that we ship with our source:
|
||||
|
||||
MiniUPnP http://miniupnp.free.fr/
|
||||
liblastfm 0.4.0 http://github.com/jonocole/liblastfm/
|
||||
|
||||
Enjoy!
|
145
README.md
@@ -1,145 +0,0 @@
|
||||
# WHAT TOMAHAWK IS
|
||||
|
||||
Tomahawk is a free multi-source and cross-platform music player. An application that can play not only your local files, but also stream from services like Spotify, Beats, SoundCloud, Google Music, YouTube and many others. You can even connect with your friends' Tomahawks, share your musical gems or listen along with them. Let the music play!
|
||||
|
||||

|
||||
|
||||
## HOW TOMAHAWK WORKS
|
||||
|
||||
Tomahawk is basically a **player for music metadata**. At its core it decouples the metadata about a song from the source and reassembles it for each user based on their individual music accessibility and rights.
|
||||
In short, given the name of a song and artist, Tomahawk will find the right source, for the right user at the right time. This fundamentally different approach to music enables a range of new music consumption and sharing experiences previously not possible.
|
||||
|
||||
## MUSIC SOURCES
|
||||
|
||||
* Local music library (MP3, Ogg, FLAC and many other formats)
|
||||
* Networked music libraries (other connected computers)
|
||||
|
||||
### Subscription Music Services
|
||||
|
||||
* Spotify
|
||||
* Beats Music
|
||||
* Google Play Music (on-demand streaming and music locker)
|
||||
* Grooveshark
|
||||
* Rdio (Android only)
|
||||
* Deezer (Android only)
|
||||
|
||||
### Free Streaming/Music Promotion Platforms
|
||||
|
||||
* Soundcloud
|
||||
* Bandcamp
|
||||
* Last.fm
|
||||
* Jamendo
|
||||
* Official.fm
|
||||
|
||||
### Network/Cloud storage
|
||||
|
||||
* Ampache
|
||||
* Owncloud
|
||||
* Subsonic
|
||||
* Beets
|
||||
|
||||
Third party-developed resolvers have also been written for services like YouTube, Qobuz and others. We've also heard of digital music distributors writing their own for their internal CMSes to help them navigate and preview their content. That's cool.
|
||||
|
||||
Packaged binary resolvers (.axes) are available: [here](http://teom.org/axes).
|
||||
|
||||
Source code (and examples) can be found in our [Resolver repository](https://github.com/tomahawk-player/tomahawk-resolvers).
|
||||
|
||||
## DOWNLOAD TOMAHAWK
|
||||
|
||||
You can download one of our nightly or stable builds:
|
||||
|
||||
| *BUILD* | MAC / OSX | WINDOWS | LINUX |
|
||||
|:-------:|:---------:|:-------:|:-----:|
|
||||
|**NIGHTLY** | [**latest**](http://download.tomahawk-player.org/nightly/mac/Tomahawk-latest.dmg) | [**latest**](http://download.tomahawk-player.org/nightly/windows/tomahawk-latest.exe) | [**latest**](https://launchpad.net/~tomahawk/+archive/ubuntu/nightly) (Ubuntu) |
|
||||
|**STABLE** | [**0.8**](http://download.tomahawk-player.org/Tomahawk-0.8.0.dmg) | [**0.8**](http://download.tomahawk-player.org/tomahawk-0.8.0.exe) | [**0.8**](http://www.tomahawk-player.org/#page-about) (various distros) |
|
||||
|
||||
## BUILD TOMAHAWK
|
||||
|
||||
... or you can compile it yourself:
|
||||
|
||||
$ mkdir build && cd build
|
||||
$ cmake ..
|
||||
$ make
|
||||
|
||||
### Detailed Build Instructions
|
||||
|
||||
| Linux: | [Arch](http://wiki.tomahawk-player.org/index.php/Building_ArchLinux_package) **-** [Debian](http://wiki.tomahawk-player.org/index.php/Building_on_Debian) **-** [Fedora](http://wiki.tomahawk-player.org/index.php/Building_on_Fedora) **-** [openSUSE](http://wiki.tomahawk-player.org/index.php/Building_on_openSUSE) **-** [Ubuntu](http://wiki.tomahawk-player.org/index.php/Building_on_Ubuntu) |
|
||||
|------:|:------|
|
||||
| **Windows**: | [**Windows**](http://wiki.tomahawk-player.org/index.php/Building_Windows_Binary) |
|
||||
| **Mac**: | [**OS X**](http://wiki.tomahawk-player.org/index.php/Building_OS_X_Application_Bundle) |
|
||||
|
||||
### Dependencies
|
||||
|
||||
Required dependencies:
|
||||
|
||||
* [CMake 2.8.6](http://www.cmake.org/)
|
||||
* [Qt 4.7.0](http://qt-project.org/)
|
||||
* [VLC 2.1.0](https://videolan.org/vlc/)
|
||||
* [QJson 0.8.1](http://qjson.sourceforge.net/)
|
||||
* [SQLite 3.6.22](http://www.sqlite.org/)
|
||||
* [TagLib 1.8](http://developer.kde.org/~wheeler/taglib.html)
|
||||
* [Boost 1.3](http://www.boost.org/)
|
||||
* [Lucene++ 3.0.6](https://github.com/luceneplusplus/LucenePlusPlus/)
|
||||
* [libechonest 2.2.0](http://projects.kde.org/projects/playground/libs/libechonest/)
|
||||
* [Attica 0.4.0](http://ftp.kde.org/stable/attica/)
|
||||
* [QuaZip 0.4.3](http://quazip.sourceforge.net/)
|
||||
* [liblastfm 1.0.1](https://github.com/lastfm/liblastfm/)
|
||||
* [QtKeychain 0.1](https://github.com/frankosterfeld/qtkeychain/)
|
||||
* [Sparsehash](https://code.google.com/p/sparsehash/)
|
||||
* [GnuTLS](http://gnutls.org/)
|
||||
|
||||
The following dependencies are optional (but *recommended*):
|
||||
|
||||
* [Jreen 1.0.5](http://qutim.org/jreen/) (1.1.0 will fail, 1.1.1 is fine)
|
||||
* [Snorenotify](https://github.com/Snorenotify/Snorenotify/)
|
||||
|
||||
Third party libraries that we ship with our source:
|
||||
|
||||
* [MiniUPnP 1.6](http://miniupnp.free.fr/)
|
||||
* [Qocoa](https://github.com/mikemcquaid/Qocoa/)
|
||||
* [libqnetwm](https://code.google.com/p/libqnetwm/)
|
||||
* [libqxt](http://libqxt.org/) (QxtWeb module)
|
||||
* [SPMediaKeyTap](https://github.com/nevyn/SPMediaKeyTap/)
|
||||
* [kdSingleApplicationGuard](http://www.kdab.com/)
|
||||
|
||||
## SUPPORT TOMAHAWK
|
||||
|
||||
* [Bug / Issue Tracker](https://bugs.tomahawk-player.org/secure/Dashboard.jspa)
|
||||
* [Translations](https://www.transifex.com/projects/p/tomahawk/)
|
||||
* [Donations](https://flattr.com/thing/169312/Tomahawk)
|
||||
|
||||
## GET HELP
|
||||
|
||||
* [Support & Feedback](https://tomahawk.uservoice.com)
|
||||
* Chat with us in IRC: **#tomahawk** on Freenode, and [Scrollback.io](https://scrollback.io/tomahawk)
|
||||
* [Twitter](https://twitter.com/tomahawk)
|
||||
* [Facebook](https://facebook.com/tomahawkplayer)
|
||||
* [Developer API Documentation](http://dev.tomahawk-player.org/api/classes.html)
|
||||
|
||||
## SCREENSHOTS
|
||||
|
||||
BROWSE FRIENDS' MUSIC & LISTEN ALONG
|
||||
|
||||

|
||||
|
||||
INBOX - RECEIVED & FORWARDING
|
||||
|
||||

|
||||
|
||||
CHARTS - BILLBOARD'S TASTEMAKER ALBUMS
|
||||
|
||||

|
||||
|
||||
FRIEND FEED
|
||||
|
||||

|
||||
|
||||
DYNAMIC (AUTO-UPDATING) PLAYLIST
|
||||
|
||||

|
||||
|
||||
PLUG-INS / RESOLVER SETTINGS
|
||||
|
||||

|
||||
|
||||
##Enjoy!
|
@@ -1,115 +0,0 @@
|
||||
include( CMakeParseArguments )
|
||||
|
||||
function(tomahawk_add_library)
|
||||
# parse arguments (name needs to be saved before passing ARGN into the macro)
|
||||
set(NAME ${ARGV0})
|
||||
set(options NO_INSTALL NO_VERSION)
|
||||
set(oneValueArgs NAME TYPE EXPORT_MACRO TARGET TARGET_TYPE EXPORT VERSION SOVERSION INSTALL_BINDIR)
|
||||
set(multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS QT5_MODULES)
|
||||
cmake_parse_arguments(LIBRARY "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
set(LIBRARY_NAME ${NAME})
|
||||
|
||||
|
||||
# message("*** Arguments for ${LIBRARY_NAME}")
|
||||
# message("Sources: ${LIBRARY_SOURCES}")
|
||||
# message("Link libraries: ${LIBRARY_LINK_LIBRARIES}")
|
||||
# message("UI: ${LIBRARY_UI}")
|
||||
# message("TARGET_TYPE: ${LIBRARY_TARGET_TYPE}")
|
||||
# message("EXPORT_MACRO: ${LIBRARY_EXPORT_MACRO}")
|
||||
# message("NO_INSTALL: ${LIBRARY_NO_INSTALL}")
|
||||
|
||||
set(target ${LIBRARY_NAME})
|
||||
|
||||
# qt stuff
|
||||
include_directories(${CMAKE_CURRENT_LIST_DIR})
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
if(LIBRARY_UI)
|
||||
qt_wrap_ui(LIBRARY_UI_SOURCES ${LIBRARY_UI})
|
||||
list(APPEND LIBRARY_SOURCES ${LIBRARY_UI_SOURCES})
|
||||
endif()
|
||||
|
||||
# add resources from current dir
|
||||
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/resources.qrc")
|
||||
qt_add_resources(LIBRARY_RC_SOURCES "resources.qrc")
|
||||
list(APPEND LIBRARY_SOURCES ${LIBRARY_RC_SOURCES})
|
||||
unset(LIBRARY_RC_SOURCES)
|
||||
endif()
|
||||
|
||||
# add target
|
||||
if(LIBRARY_TARGET_TYPE STREQUAL "STATIC")
|
||||
add_library(${target} STATIC ${LIBRARY_SOURCES})
|
||||
elseif(LIBRARY_TARGET_TYPE STREQUAL "MODULE")
|
||||
add_library(${target} MODULE ${LIBRARY_SOURCES})
|
||||
else() # default
|
||||
add_library(${target} SHARED ${LIBRARY_SOURCES})
|
||||
endif()
|
||||
|
||||
# HACK: add qt modules - every lib should define its own set of modules
|
||||
qt5_use_modules(${target} Core Network Widgets Sql Xml ${LIBRARY_QT5_MODULES})
|
||||
|
||||
# definitions - can this be moved into set_target_properties below?
|
||||
add_definitions(${QT_DEFINITIONS})
|
||||
set_target_properties(${target} PROPERTIES AUTOMOC TRUE)
|
||||
|
||||
if(LIBRARY_EXPORT_MACRO)
|
||||
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${LIBRARY_EXPORT_MACRO})
|
||||
endif()
|
||||
|
||||
if(LIBRARY_COMPILE_DEFINITIONS)
|
||||
# Dear CMake, i hate you! Sincerely, domme
|
||||
# At least in CMake 2.8.8, you CANNOT set more than one COMPILE_DEFINITIONS value
|
||||
# only takes the first one if called multiple times or bails out with wrong number of arguments
|
||||
# when passing in a list, thus i redefine the export macro here in hope it won't mess up other targets
|
||||
# Dear domme,
|
||||
# "The COMPILE_DEFINITIONS property may be set to a semicolon-separated list"
|
||||
# Sincerely, CMake Documentation
|
||||
add_definitions( "-D${LIBRARY_EXPORT_MACRO}" )
|
||||
|
||||
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${LIBRARY_COMPILE_DEFINITIONS})
|
||||
endif()
|
||||
|
||||
# add link targets
|
||||
target_link_libraries(${target} ${TOMAHAWK_LIBRARIES})
|
||||
if(LIBRARY_LINK_LIBRARIES)
|
||||
target_link_libraries(${target} ${LIBRARY_LINK_LIBRARIES})
|
||||
endif()
|
||||
if(LIBRARY_LINK_PRIVATE_LIBRARIES)
|
||||
target_link_libraries(${target} LINK_PRIVATE ${LIBRARY_LINK_PRIVATE_LIBRARIES})
|
||||
endif()
|
||||
|
||||
# add soversion
|
||||
if(NOT LIBRARY_NO_VERSION)
|
||||
set_target_properties(${target} PROPERTIES VERSION ${LIBRARY_VERSION})
|
||||
|
||||
if(NOT LIBRARY_SOVERSION)
|
||||
set(LIBRARY_SOVERSION ${LIBRARY_VERSION})
|
||||
endif()
|
||||
|
||||
set_target_properties(${target} PROPERTIES SOVERSION ${LIBRARY_SOVERSION})
|
||||
endif()
|
||||
|
||||
|
||||
if(NOT LIBRARY_INSTALL_BINDIR)
|
||||
set(LIBRARY_INSTALL_BINDIR "${CMAKE_INSTALL_BINDIR}")
|
||||
endif()
|
||||
|
||||
# make installation optional, maybe useful for dummy plugins one day
|
||||
if(NOT LIBRARY_NO_INSTALL)
|
||||
include(GNUInstallDirs)
|
||||
if(NOT LIBRARY_EXPORT)
|
||||
install( TARGETS ${target}
|
||||
RUNTIME DESTINATION ${LIBRARY_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
)
|
||||
else()
|
||||
install( TARGETS ${target}
|
||||
EXPORT ${LIBRARY_EXPORT}
|
||||
RUNTIME DESTINATION ${LIBRARY_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
@@ -1,55 +0,0 @@
|
||||
include( CMakeParseArguments )
|
||||
include( ${TOMAHAWK_CMAKE_DIR}/TomahawkAddLibrary.cmake )
|
||||
|
||||
function(tomahawk_add_plugin)
|
||||
# parse arguments (name needs to be saved before passing ARGN into the macro)
|
||||
set(NAME ${ARGV0})
|
||||
set(options NO_INSTALL SHARED_LIB)
|
||||
set(oneValueArgs NAME TYPE EXPORT_MACRO)
|
||||
set(multiValueArgs SOURCES UI LINK_LIBRARIES COMPILE_DEFINITIONS)
|
||||
cmake_parse_arguments(PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
set(PLUGIN_NAME ${NAME})
|
||||
|
||||
# message("*** Arguments for ${PLUGIN_NAME}")
|
||||
# message("Sources: ${PLUGIN_SOURCES}")
|
||||
# message("Link libraries: ${PLUGIN_LINK_LIBRARIES}")
|
||||
# message("UI: ${PLUGIN_UI}")
|
||||
# message("TYPE: ${PLUGIN_TYPE}")
|
||||
# message("EXPORT_MACRO: ${PLUGIN_EXPORT_MACRO}")
|
||||
# message("NO_INSTALL: ${PLUGIN_NO_INSTALL}")
|
||||
|
||||
# create target name once for convenience
|
||||
set(target "tomahawk_${PLUGIN_TYPE}_${PLUGIN_NAME}")
|
||||
|
||||
# determine target type
|
||||
if(NOT ${PLUGIN_SHARED_LIB})
|
||||
set(target_type "MODULE")
|
||||
else()
|
||||
set(target_type "SHARED")
|
||||
endif()
|
||||
|
||||
list(APPEND tomahawk_add_library_args
|
||||
"${target}"
|
||||
"EXPORT_MACRO" "${PLUGIN_EXPORT_MACRO}"
|
||||
"TARGET_TYPE" "${target_type}"
|
||||
"SOURCES" "${PLUGIN_SOURCES}"
|
||||
)
|
||||
|
||||
if(PLUGIN_UI)
|
||||
list(APPEND tomahawk_add_library_args "UI" "${PLUGIN_UI}")
|
||||
endif()
|
||||
|
||||
if(PLUGIN_LINK_LIBRARIES)
|
||||
list(APPEND tomahawk_add_library_args "LINK_LIBRARIES" "${PLUGIN_LINK_LIBRARIES}")
|
||||
endif()
|
||||
|
||||
if(PLUGIN_COMPILE_DEFINITIONS)
|
||||
list(APPEND tomahawk_add_library_args "COMPILE_DEFINITIONS" ${PLUGIN_COMPILE_DEFINITIONS})
|
||||
endif()
|
||||
|
||||
list(APPEND tomahawk_add_library_args "NO_VERSION")
|
||||
|
||||
list(APPEND tomahawk_add_library_args "INSTALL_BINDIR" "${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
tomahawk_add_library(${tomahawk_add_library_args})
|
||||
endfunction()
|
@@ -1,4 +0,0 @@
|
||||
set(TOMAHAWK_INCLUDE_DIRS
|
||||
"@PROJECT_SOURCE_DIR@/src/libtomahawk"
|
||||
"@PROJECT_BINARY_DIR@/src/libtomahawk"
|
||||
)
|
@@ -1,53 +0,0 @@
|
||||
INCLUDE( InstallRequiredSystemLibraries )
|
||||
|
||||
SET( CPACK_PACKAGE_CONTACT "Dominik Schmidt <domme@tomahawk-player.org>" )
|
||||
|
||||
SET( CPACK_PACKAGE_FILE_NAME tomahawk-${TOMAHAWK_VERSION} ) # Package file name without extension. Also a directory of installer cmake-2.5.0-Linux-i686
|
||||
|
||||
# CPACK_GENERATOR CPack generator to be used STGZ;TGZ;TZ
|
||||
# CPACK_INCLUDE_TOPLEVEL_DIRECTORY Controls whether CPack adds a top-level directory, usually of the form ProjectName-Version-OS, to the top of package tree. 0 to disable, 1 to enable
|
||||
# CPACK_INSTALL_CMAKE_PROJECTS List of four values: Build directory, Project Name, Project Component, Directory in the package /home/andy/vtk/CMake-bin;CMake;ALL;/
|
||||
SET( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md" ) # File used as a description of a project /path/to/project/ReadMe.txt
|
||||
SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY ${TOMAHAWK_DESCRIPTION_SUMMARY} ) # Description summary of a project
|
||||
# CPACK_PACKAGE_EXECUTABLES List of pairs of executables and labels. Used by the NSIS generator to create Start Menu shortcuts. ccmake;CMake
|
||||
SET( CPACK_PACKAGE_INSTALL_DIRECTORY ${TOMAHAWK_APPLICATION_NAME} ) # Installation directory on the target system -> C:\Program Files\fellody
|
||||
SET( CPACK_PACKAGE_INSTALL_REGISTRY_KEY ${TOMAHAWK_APPLICATION_NAME} ) # Registry key used when installing this project CMake 2.5.0
|
||||
SET( CPACK_PACKAGE_NAME ${TOMAHAWK_APPLICATION_NAME} ) # Package name, defaults to the project name
|
||||
SET( CPACK_PACKAGE_VENDOR ${TOMAHAWK_ORGANIZATION_NAME} ) # Package vendor name
|
||||
SET( CPACK_PACKAGE_VERSION_MAJOR ${TOMAHAWK_VERSION_MAJOR} )
|
||||
SET( CPACK_PACKAGE_VERSION_MINOR ${TOMAHAWK_VERSION_MINOR} )
|
||||
SET( CPACK_PACKAGE_VERSION_PATCH ${TOMAHAWK_VERSION_PATCH} )
|
||||
|
||||
# CPACK_SOURCE_GENERATOR List of generators used for the source package TGZ;TZ
|
||||
|
||||
SET( CPACK_SOURCE_GENERATOR TGZ )
|
||||
SET( CPACK_SOURCE_IGNORE_FILES "/\\\\.git/" ".*~$" ".kate-swp$" "/build_dir/" "/clang/" "/gcc/" "/build/" "/win/" ) # Pattern of files in the source tree that won't be packaged
|
||||
SET( CPACK_SOURCE_PACKAGE_FILE_NAME tomahawk-${TOMAHAWK_VERSION} ) # Name of the source package
|
||||
# CPACK_SOURCE_STRIP_FILES List of files in the source tree that will be stripped. Starting with CMake 2.6.0 CPACK_SOURCE_STRIP_FILES will be a boolean variable which enables stripping of all files (a list of files evaluates to TRUE in CMake, so this change is compatible).
|
||||
# CPACK_STRIP_FILES List of files to be stripped. Starting with CMake 2.6.0 CPACK_STRIP_FILES will be a boolean variable which enables stripping of all files (a list of files evaluates to TRUE in CMake, so this change is compatible). bin/ccmake;bin/cmake;bin/cpack;bin/ctest
|
||||
# CPACK_SYSTEM_NAME System name, defaults to the value of ${CMAKE_SYSTEM_NAME}. Linux-i686
|
||||
|
||||
# Advanced settings
|
||||
# CPACK_CMAKE_GENERATOR What CMake generator should be used if the project is CMake project. Defaults to the value of CMAKE_GENERATOR. Unix Makefiles
|
||||
SET( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt" ) # License file for the project, used by the STGZ, NSIS, and PackageMaker generators. /home/andy/vtk/CMake/Copyright.txt
|
||||
# CPACK_RESOURCE_FILE_README ReadMe file for the project, used by PackageMaker generator. /home/andy/vtk/CMake/Templates/CPack.GenericDescription.txt
|
||||
# CPACK_RESOURCE_FILE_WELCOME Welcome file for the project, used by PackageMaker generator. /home/andy/vtk/CMake/Templates/CPack.GenericWelcome.txt
|
||||
SET( CPACK_PACKAGE_VERSION ${TOMAHAWK_VERSION} )
|
||||
|
||||
SET( CPACK_TOPLEVEL_TAG "narf" ) # Directory for the installed files. - needed to provide anything to avoid an error# CPACK_INSTALL_COMMANDS Extra commands to install components.
|
||||
# CPACK_INSTALL_DIRECTORIES Extra directories to install.
|
||||
# CPACK_MONOLITHIC_INSTALL When set disables the component-based installer.
|
||||
# CPACK_PACKAGING_INSTALL_PREFIX Sets the default root that the generated package installs into, '/usr' is the default for the debian and redhat generators /usr/local
|
||||
|
||||
##
|
||||
# INSTALL DEPS
|
||||
##
|
||||
|
||||
|
||||
|
||||
# Set the options file that needs to be included inside CMakeCPackOptions.cmake
|
||||
#SET(QT_DIALOG_CPACK_OPTIONS_FILE ${CMake_BINARY_DIR}/Source/QtDialog/QtDialogCPack.cmake)
|
||||
configure_file("${CMAKE_SOURCE_DIR}/CPackOptions.cmake.in"
|
||||
"${CMAKE_BINARY_DIR}/CPackOptions.cmake" @ONLY)
|
||||
set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CPackOptions.cmake") # File included at cpack time, once per generator after setting CPACK_GENERATOR to the actual generator being used; allows per-generator setting of CPACK_* variables at cpack time. ${PROJECT_BINARY_DIR}/CPackOptions.cmake
|
||||
include(CPack)
|
@@ -1,24 +0,0 @@
|
||||
# - Config file for the Tomahawk package
|
||||
# It defines the following variables
|
||||
# TOMAHAWK_INCLUDE_DIRS - include directories for Tomahawk
|
||||
# TOMAHAWK_LIBRARIES - libraries to link against
|
||||
# TOMAHAWK_EXECUTABLE - the bar executable
|
||||
|
||||
# Compute paths
|
||||
get_filename_component(TOMAHAWK_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
if(EXISTS "${TOMAHAWK_CMAKE_DIR}/CMakeCache.txt")
|
||||
# In build tree
|
||||
include("${TOMAHAWK_CMAKE_DIR}/TomahawkBuildTreeSettings.cmake")
|
||||
else()
|
||||
set(TOMAHAWK_INCLUDE_DIRS "${TOMAHAWK_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@/libtomahawk")
|
||||
endif()
|
||||
|
||||
# Our library dependencies (contains definitions for IMPORTED targets)
|
||||
include("${TOMAHAWK_CMAKE_DIR}/TomahawkLibraryDepends.cmake")
|
||||
|
||||
# These are IMPORTED targets created by TomahawkLibraryDepends.cmake
|
||||
set(TOMAHAWK_LIBRARIES tomahawklib)
|
||||
set(TOMAHAWK_USE_FILE "${TOMAHAWK_CMAKE_DIR}/TomahawkUse.cmake")
|
||||
set(TOMAHAWK_DEFINITIONS "@TOMAHAWK_DEFINITIONS@")
|
||||
set(TOMAHAWK_CXX_FLAGS "@TOMAHAWK_CXX_FLAGS@")
|
||||
set(TOMAHAWK_C_FLAGS "@TOMAHAWK_C_FLAGS@")
|
@@ -1,12 +0,0 @@
|
||||
set(PACKAGE_VERSION "@TOMAHAWK_VERSION@")
|
||||
|
||||
# Check whether the requested PACKAGE_FIND_VERSION is compatible
|
||||
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
|
||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
else()
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
|
||||
set(PACKAGE_VERSION_EXACT TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
@@ -1,112 +0,0 @@
|
||||
#FIXME: this duplicates top level cmakelists: how can we reduce code duplication?
|
||||
|
||||
set( TOMAHAWK_QT5 @TOMAHAWK_QT5@ )
|
||||
|
||||
if(TOMAHAWK_QT5)
|
||||
message(STATUS "Found Qt5! Be aware that Qt5-support is still experimental and not officially supported!")
|
||||
|
||||
# CMAKE 2.8.13+/3.0.0+ requires these for IMPORTed targets
|
||||
find_package(Qt5Core REQUIRED)
|
||||
find_package(Qt5Concurrent REQUIRED)
|
||||
find_package(Qt5Svg REQUIRED)
|
||||
find_package(Qt5UiTools REQUIRED)
|
||||
find_package(Qt5WebKitWidgets REQUIRED)
|
||||
find_package(Qt5Widgets REQUIRED)
|
||||
find_package(Qt5Xml REQUIRED)
|
||||
find_package(Qt5Sql REQUIRED)
|
||||
|
||||
macro(qt_wrap_ui)
|
||||
qt5_wrap_ui(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(qt_add_resources)
|
||||
qt5_add_resources(${ARGN})
|
||||
endmacro()
|
||||
|
||||
find_package(Qt5LinguistTools REQUIRED)
|
||||
macro(qt_add_translation)
|
||||
qt5_add_translation(${ARGN})
|
||||
endmacro()
|
||||
|
||||
if( UNIX AND NOT APPLE )
|
||||
# We need this to find the paths to qdbusxml2cpp and co
|
||||
find_package(Qt5DBus REQUIRED)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
find_package(Qt5MacExtras REQUIRED)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
find_package(Qt5WinExtras REQUIRED)
|
||||
endif()
|
||||
|
||||
macro(qt_wrap_ui)
|
||||
qt5_wrap_ui(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(qt_add_resources)
|
||||
qt5_add_resources(${ARGN})
|
||||
endmacro()
|
||||
|
||||
find_package(Qt5LinguistTools REQUIRED)
|
||||
macro(qt_add_translation)
|
||||
qt5_add_translation(${ARGN})
|
||||
endmacro()
|
||||
|
||||
if( UNIX AND NOT APPLE )
|
||||
macro(qt_add_dbus_interface)
|
||||
qt5_add_dbus_interface(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(qt_add_dbus_adaptor)
|
||||
qt5_add_dbus_adaptor(${ARGN})
|
||||
endmacro()
|
||||
endif()
|
||||
|
||||
macro(setup_qt)
|
||||
endmacro()
|
||||
|
||||
set(QT_RCC_EXECUTABLE "${Qt5Core_RCC_EXECUTABLE}")
|
||||
#FIXME: CrashReporter depends on deprecated QHttp
|
||||
set(WITH_KDE4 OFF)
|
||||
|
||||
else(TOMAHAWK_QT5)
|
||||
find_package(Qt4 COMPONENTS QtNetwork QtCore QtGui QtSql REQUIRED)
|
||||
include( ${QT_USE_FILE} )
|
||||
|
||||
set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork")
|
||||
if(BUILD_GUI OR NOT DEFINED BUILD_GUI)
|
||||
list(APPEND NEEDED_QT4_COMPONENTS "QtGui" "QtWebkit" "QtUiTools" "QtSvg")
|
||||
endif()
|
||||
|
||||
find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS})
|
||||
include( ${QT_USE_FILE} )
|
||||
|
||||
macro(qt5_use_modules)
|
||||
endmacro()
|
||||
|
||||
macro(qt_wrap_ui)
|
||||
qt4_wrap_ui(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(qt_add_resources)
|
||||
qt4_add_resources(${ARGN})
|
||||
endmacro()
|
||||
|
||||
macro(qt_add_translation)
|
||||
qt4_add_translation(${ARGN})
|
||||
endmacro()
|
||||
endif(TOMAHAWK_QT5)
|
||||
|
||||
|
||||
if(NOT TOMAHAWK_CMAKE_DIR)
|
||||
set(TOMAHAWK_CMAKE_DIR ${CMAKE_CURRENT_LIST_DIR})
|
||||
endif()
|
||||
|
||||
include( "${TOMAHAWK_CMAKE_DIR}/TomahawkAddLibrary.cmake" )
|
||||
include( "${TOMAHAWK_CMAKE_DIR}/TomahawkAddPlugin.cmake" )
|
||||
|
||||
add_definitions( ${TOMAHAWK_DEFINITIONS} )
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TOMAHAWK_CXX_FLAGS}")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TOMAHAWK_C_FLAGS}")
|
@@ -1,3 +1,3 @@
|
||||
IF(WIN32)
|
||||
INSTALL(DIRECTORY win DESTINATION share/tomahawk/admin )
|
||||
ENDIF(WIN32)
|
||||
ENDIF(WIN32)
|
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
DUMPID=`head -n1 $1 | cut -f4 -d' '`
|
||||
mkdir -p $2/$DUMPID
|
||||
cp $1 $2/$DUMPID/
|
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
@@ -23,214 +23,40 @@
|
||||
<key>CFBundleName</key>
|
||||
<string>Tomahawk</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.7.0</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<true />
|
||||
<key>SUFeedURL</key>
|
||||
<string>http://download.tomahawk-player.org/sparkle/update.php</string>
|
||||
<key>SUPublicDSAKeyFile</key>
|
||||
<string>sparkle_pub.pem</string>
|
||||
<key>SUEnableSystemProfiling</key>
|
||||
<true/>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>Tomahawk URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>tomahawk</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>xspf</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>Generic.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>application/xspf+xml</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>XSPF Playlist</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>jspf</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>Generic.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>application/jspf</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>JSPF Playlist</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>mp3</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>mp3.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>audio/mpeg</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>MPEG Audio Layer 3</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>oga</string>
|
||||
<string>ogg</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>ogg.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>audio/ogg</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Ogg Audio File</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>opus</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>ogg.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>audio/opus</string>
|
||||
<string>application/opus</string>
|
||||
<string>audio/ogg; codecs=opus</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>OPUS file</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>aac</string>
|
||||
<string>mp4</string>
|
||||
<string>m4a</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>audio.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>audio/aac</string>
|
||||
<string>audio/mp4</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>AAC file</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>mpc</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>audio.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>audio/x-musepack</string>
|
||||
<string>audio/mpc</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Musepack Audio File</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>wma</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>audio.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>audio/x-ms-wma</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Windows Media Audio</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>flac</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>audio.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>audio/flac</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>FLAC Audio File</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>aiff</string>
|
||||
<string>aif</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>audio.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>audio/aiff</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>AIFF File</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>wv</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>audio.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>audio/x-wavpack</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>WavePack Audio File</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
</array>
|
||||
<string>10.5.0</string>
|
||||
<key>SUFeedURL</key>
|
||||
<string>http://download.tomahawk-player.org/sparkle</string>
|
||||
<key>SUPublicDSAKeyFile</key>
|
||||
<string>sparkle_pub.pem</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>Tomahawk URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>tomahawk</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>xspf</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>Generic.icns</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>application/xspf+xml</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>XSPF Playlist</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
64
admin/mac/add-Qt-to-bundle.sh
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/bin/sh
|
||||
# author: max@last.fm
|
||||
# usage: Run from inside the bundle root directory, eg. Last.fm.app
|
||||
# The first parameter should be the QtFrameworks to copy.
|
||||
# Remaining parameters are plugins to copy, directories and files are
|
||||
# valid.
|
||||
# eg: add-Qt-to-bundle.sh 'QtCore QtGui QtXml' \
|
||||
# imageformats \
|
||||
# sqldrivers/libsqlite.dylib
|
||||
################################################################################
|
||||
|
||||
QT_FRAMEWORKS_DIR="$QTDIR/lib"
|
||||
QT_PLUGINS_DIR="$QTDIR/plugins"
|
||||
|
||||
if [[ ! -d "$QTDIR/lib/QtCore.framework" ]]
|
||||
then
|
||||
# this dir is the location of install for the official Trolltech dmg
|
||||
if [[ -d /Library/Frameworks/QtCore.framework ]]
|
||||
then
|
||||
QT_FRAMEWORKS_DIR=/Library/Frameworks
|
||||
QT_PLUGINS_DIR=/Developer/Applications/Qt/plugins
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Plugins go to: $QT_PLUGINS_DIR"
|
||||
|
||||
if [ -z $QTDIR ]
|
||||
then
|
||||
echo QTDIR must be set, or install the official Qt dmg
|
||||
exit 1
|
||||
fi
|
||||
################################################################################
|
||||
|
||||
|
||||
#first frameworks
|
||||
mkdir -p Contents/Frameworks
|
||||
for x in $1
|
||||
do
|
||||
echo "C $x"
|
||||
cp -R $QT_FRAMEWORKS_DIR/$x.framework Contents/Frameworks/
|
||||
chmod -R u+rw Contents/Frameworks/
|
||||
done
|
||||
|
||||
#plugins
|
||||
shift
|
||||
mkdir -p Contents/MacOS
|
||||
mkdir -p Contents/MacOS/sqldrivers
|
||||
mkdir -p Contents/MacOS/imageformats
|
||||
mkdir -p Contents/MacOS/phonon_backend
|
||||
mkdir -p Contents/MacOS/crypto
|
||||
|
||||
cp -R $QT_PLUGINS_DIR/sqldrivers/libqsqlite.dylib Contents/MacOS/sqldrivers/
|
||||
cp -R $QT_PLUGINS_DIR/imageformats/libqgif.dylib Contents/MacOS/imageformats/
|
||||
cp -R $QT_PLUGINS_DIR/imageformats/libqjpeg.dylib Contents/MacOS/imageformats/
|
||||
cp -R $QT_PLUGINS_DIR/imageformats/libqico.dylib Contents/MacOS/imageformats/
|
||||
cp -R $QT_PLUGINS_DIR/imageformats/libqmng.dylib Contents/MacOS/imageformats/
|
||||
#cp -R $QT_PLUGINS_DIR/imageformats/libqsvg.dylib Contents/MacOS/imageformats/
|
||||
#cp -R $QT_PLUGINS_DIR/imageformats/libqtiff.dylib Contents/MacOS/imageformats/
|
||||
cp -R $QT_PLUGINS_DIR/crypto/libqca-ossl.dylib Contents/MacOS/crypto/
|
||||
cp -R $QT_PLUGINS_DIR/phonon_backend/phonon_vlc.so Contents/MacOS/phonon_backend/
|
||||
|
||||
#cleanup
|
||||
find Contents/Frameworks -name Headers -o -name \*.prl -o -name \*_debug | xargs rm -rf
|
||||
find Contents -name \*_debug -o -name \*_debug.dylib | xargs rm
|
16
admin/mac/add-spotify.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
# author: lfranchi@kde.org
|
||||
# usage: Run from inside the bundle root directory, eg. Tomahawk.app
|
||||
# The first parameter should be the spotify resolver binary to copy.
|
||||
# eg: add-spotify.sh /path/to/spotify_tomahawkresolver
|
||||
################################################################################
|
||||
|
||||
mkdir -p Contents/Frameworks
|
||||
cp -R /Library/Frameworks/libspotify.framework Contents/Frameworks
|
||||
|
||||
install_name_tool -change /usr/local/Cellar/qt/4.7.3/lib/QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore $1
|
||||
install_name_tool -change /usr/local/Cellar/qt/4.7.3/lib/QtNetwork.framework/Versions/4/QtNetwork @executable_path/../Frameworks/QtNetwork.framework/Versions/4/QtNetwork $1
|
||||
install_name_tool -change libqjson.0.dylib @executable_path/libqjson.0.7.1.dylib $1
|
||||
install_name_tool -change /usr/local/Cellar/qjson/0.7.1/lib/libqjson.0.7.1.dylib @executable_path/libqjson.0.7.1.dylib $1
|
||||
mkdir -p Contents/MacOS
|
||||
cp $1 Contents/MacOS/
|
@@ -1,11 +1,9 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Usage: ./admin/mac/build-release-osx.sh VERSION CERT_SIGNER [--no-clean]
|
||||
# Usage: ./admin/mac/build-release-osx.sh [--no-clean]
|
||||
#
|
||||
################################################################################
|
||||
|
||||
set -e
|
||||
|
||||
|
||||
function header {
|
||||
echo -e "\033[0;34m==>\033[0;0;1m $1 \033[0;0m"
|
||||
@@ -18,43 +16,77 @@ function die {
|
||||
}
|
||||
################################################################################
|
||||
|
||||
if [ -z "$2" ]
|
||||
if [ -z $1 ]
|
||||
then
|
||||
echo This script expects the version number and cert-signer as parameters, e.g. "1.0.0 John Doe"
|
||||
echo This script expects the version number as a parameter, e.g. 1.0.0
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ROOT=`pwd`
|
||||
VERSION=$1
|
||||
CERT_SIGNER=$2
|
||||
|
||||
QTDIR=`which qmake`
|
||||
LINKDIR=`readlink $QTDIR`
|
||||
QTDIR=`dirname $QTDIR`
|
||||
QTDIR=$QTDIR/`dirname $LINKDIR`
|
||||
QTDIR=`dirname $QTDIR`
|
||||
test -L "$QTDIR" && QTDIR=`readlink $QTDIR`
|
||||
|
||||
echo "Goes here: $QTDIR"
|
||||
|
||||
export QMAKESPEC='macx-g++'
|
||||
export QTDIR
|
||||
export VERSION
|
||||
export QTVERSION='4.7.3'
|
||||
################################################################################
|
||||
|
||||
header "Fixing and copying libraries"
|
||||
$ROOT/../admin/mac/macdeploy.py Tomahawk.app quiet
|
||||
|
||||
cd Tomahawk.app
|
||||
CLEAN='1'
|
||||
BUILD='1'
|
||||
NOTQUICK='1'
|
||||
CREATEDMG='1'
|
||||
VERSION=$1
|
||||
|
||||
cp $ROOT/../admin/mac/qt.conf Contents/Resources/qt.conf
|
||||
header "Adding Qt to app bundle"
|
||||
cd tomahawk.app
|
||||
$ROOT/../admin/mac/add-Qt-to-bundle.sh \
|
||||
'QtCore QtGui QtXml QtNetwork QtSql QtXmlPatterns QtWebKit phonon'
|
||||
# 'QtCore QtGui QtXml QtNetwork QtSql QtXmlPatterns QtWebKit QtDbus phonon'
|
||||
|
||||
# header "Copying Sparkle framework"
|
||||
# cp -R /Library/Frameworks/Sparkle.framework Contents/Frameworks
|
||||
header "Renaming files"
|
||||
mv Contents/Resources/tomahawkSources.icns Contents/Resources/Tomahawk.icns
|
||||
mv Contents/MacOS/tomahawk Contents/MacOS/Tomahawk
|
||||
# cp $ROOT/../admin/mac/Info.plist Contents/Info.plist
|
||||
|
||||
header "Copying VLC plugins into bundle"
|
||||
mkdir -p Contents/plugins
|
||||
cp -R /usr/local/Cellar/vlc-git/HEAD/lib/vlc/plugins/ Contents/plugins
|
||||
rm -rf Contents/plugins/video_* Contents/plugins/gui Contents/plugins/*/libold* Contents/plugins/*/libvcd* Contents/plugins/*/libdvd* \
|
||||
Contents/plugins/*/liblibass* Contents/plugins/*/libx264* Contents/plugins/*/libschroe* Contents/plugins/*/liblibmpeg2* \
|
||||
Contents/plugins/*/libstream_out_* Contents/plugins/*/libmjpeg_plugin* Contents/plugins/*/libh264_plugin* Contents/plugins/*/libzvbi_plugin* Contents/plugins/*/lib*sub*
|
||||
|
||||
header "Running install_name_tool"
|
||||
$ROOT/../admin/mac/deposx.sh
|
||||
|
||||
header "Copying Sparkle pubkey & framework, and qt.conf"
|
||||
cp $ROOT/../admin/mac/sparkle_pub.pem Contents/Resources
|
||||
cp -R /Library/Frameworks/Sparkle.framework Contents/Frameworks
|
||||
cp $ROOT/../admin/mac/qt.conf Contents/Resources
|
||||
|
||||
header "Adding spotify resolver to bundle if spotify_tomahawkresolver found in $ROOT"
|
||||
if [ -e $ROOT/spotify_tomahawkresolver ]
|
||||
then
|
||||
header "Found, so adding spotify resolver."ac
|
||||
$ROOT/../admin/mac/add-spotify.sh $ROOT/spotify_tomahawkresolver
|
||||
fi
|
||||
|
||||
header "Creating DMG"
|
||||
cd ..
|
||||
|
||||
header "Signing bundle"
|
||||
# codesign -s "Developer ID Application: $CERT_SIGNER" -f -v ./Tomahawk.app
|
||||
|
||||
if [ -f ~/sign_step.sh ];
|
||||
then
|
||||
~/sign_step.sh "$CERT_SIGNER" "Tomahawk.app" || true
|
||||
fi
|
||||
|
||||
mv tomahawk.app Tomahawk.app
|
||||
$ROOT/../admin/mac/create-dmg.sh Tomahawk.app
|
||||
mv Tomahawk.dmg Tomahawk-$VERSION.dmg
|
||||
|
||||
|
||||
header "Creating signed Sparkle update"
|
||||
$ROOT/../admin/mac/sign_bundle.rb $VERSION ~/tomahawk_sparkle_privkey.pem
|
||||
mv Tomahawk.app tomahawk.app
|
||||
|
||||
header "Done!"
|
||||
|
169
admin/mac/deposx.sh
Executable file
@@ -0,0 +1,169 @@
|
||||
#!/bin/sh
|
||||
# author: max@last.fm, chris@last.fm
|
||||
################################################################################
|
||||
|
||||
|
||||
if [ -z $QTDIR ]
|
||||
then
|
||||
echo QTDIR must be set
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z $QTVERSION ]
|
||||
then
|
||||
echo QTVERSION must be set
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd ..
|
||||
ORIGROOT=`pwd`
|
||||
cd -
|
||||
|
||||
cd Contents
|
||||
|
||||
QTLIBS=`ls Frameworks | cut -d. -f1`
|
||||
LIBS=`cd MacOS && ls -fR1 | grep dylib`
|
||||
PLUGINFOLDERS=`ls plugins | cut -d. -f1`
|
||||
|
||||
################################################################################
|
||||
|
||||
|
||||
function import_lib
|
||||
{
|
||||
echo "L \`$1'"
|
||||
cp -R -L $1 MacOS/`basename $1`
|
||||
chmod u+rw MacOS/`basename $1`
|
||||
deplib_change MacOS/`basename $1`
|
||||
deposx_change MacOS/`basename $1`
|
||||
}
|
||||
|
||||
function deposx_change
|
||||
{
|
||||
echo "D \`$1'"
|
||||
echo $QTDIR
|
||||
|
||||
for y in $QTLIBS
|
||||
do
|
||||
install_name_tool -change $QTDIR/lib/$y.framework/Versions/4/$y \
|
||||
@executable_path/../Frameworks/$y.framework/Versions/4/$y \
|
||||
"$1"
|
||||
|
||||
install_name_tool -change /usr/local/Cellar/qt/$QTVERSION/lib/$y.framework/Versions/4/$y \
|
||||
@executable_path/../Frameworks/$y.framework/Versions/4/$y \
|
||||
"$1"
|
||||
|
||||
install_name_tool -change /usr/X11/lib/libpng12.0.dylib \
|
||||
@executable_path/libpng12.0.dylib \
|
||||
"$1"
|
||||
done
|
||||
|
||||
for y in $LIBS
|
||||
do
|
||||
install_name_tool -change $y \
|
||||
@executable_path/$y \
|
||||
"$1"
|
||||
done
|
||||
}
|
||||
|
||||
function deplib_change
|
||||
{
|
||||
install_name_tool -change /usr/local/Cellar/qjson/0.7.1/lib/libqjson.0.7.1.dylib @executable_path/libqjson.0.7.1.dylib $1
|
||||
install_name_tool -change /usr/local/lib/libechonest.1.1.dylib @executable_path/libechonest.1.1.dylib $1
|
||||
install_name_tool -change /usr/local/lib/libclucene-core.1.dylib @executable_path/libclucene-core.1.dylib $1
|
||||
install_name_tool -change /usr/local/lib/libclucene-shared.1.dylib @executable_path/libclucene-shared.1.dylib $1
|
||||
install_name_tool -change /usr/local/Cellar/taglib/1.7/lib/libtag.1.7.0.dylib @executable_path/libtag.1.7.0.dylib $1
|
||||
# install_name_tool -change /usr/local/Cellar/gloox/1.0/lib/libgloox.8.dylib @executable_path/libgloox.8.dylib $1
|
||||
# install_name_tool -change /usr/local/Cellar/libogg/1.2.0/lib/libogg.0.dylib @executable_path/libogg.0.dylib $1
|
||||
# install_name_tool -change /usr/local/Cellar/libvorbis/1.3.1/lib/libvorbis.0.dylib @executable_path/libvorbis.0.dylib $1
|
||||
# install_name_tool -change /usr/local/Cellar/libvorbis/1.3.1/lib/libvorbisfile.3.dylib @executable_path/libvorbisfile.3.dylib $1
|
||||
# install_name_tool -change /usr/local/Cellar/mad/0.15.1b/lib/libmad.0.dylib @executable_path/libmad.0.dylib $1
|
||||
# install_name_tool -change /usr/local/Cellar/flac/1.2.1/lib/libFLAC++.6.dylib @executable_path/libFLAC++.6.dylib $1
|
||||
# install_name_tool -change /usr/local/Cellar/flac/1.2.1/lib/libFLAC.8.dylib @executable_path/libFLAC.8.dylib $1
|
||||
install_name_tool -change /usr/local/Cellar/kde-phonon/4.5.0/lib/libphonon.4.dylib @executable_path/libphonon.4.dylib $1
|
||||
install_name_tool -change /usr/local/Cellar/kde-phonon/4.5.0/lib/libphonon.4.5.0.dylib @executable_path/libphonon.4.dylib $1
|
||||
|
||||
install_name_tool -change $ORIGROOT/libtomahawklib.dylib @executable_path/libtomahawklib.dylib $1
|
||||
install_name_tool -change $ORIGROOT/libtomahawk_sipjabber.dylib @executable_path/libtomahawk_sipjabber.dylib $1
|
||||
install_name_tool -change $ORIGROOT/libtomahawk_sipgoogle.dylib @executable_path/libtomahawk_sipgoogle.dylib $1
|
||||
install_name_tool -change $ORIGROOT/libtomahawk_siptwitter.dylib @executable_path/libtomahawk_siptwitter.dylib $1
|
||||
install_name_tool -change $ORIGROOT/libtomahawk_sipzeroconf.dylib @executable_path/libtomahawk_sipzeroconf.dylib $1
|
||||
install_name_tool -change $ORIGROOT/libtomahawk_qtweetlib.dylib @executable_path/libtomahawk_qtweetlib.dylib $1
|
||||
install_name_tool -change $ORIGROOT/libtomahawk_portfwd.dylib @executable_path/libtomahawk_portfwd.dylib $1
|
||||
install_name_tool -change $ORIGROOT/libjreen.dylib @executable_path/libjreen.dylib $1
|
||||
install_name_tool -change /usr/local/Cellar/jreen/HEAD/lib/libjreen.dylib @executable_path/libjreen.dylib $1
|
||||
install_name_tool -change /usr/local/Cellar/qca/2.0.2/lib/qca.framework/Versions/2/qca @executable_path/../Frameworks/qca.framework/Versions/2/qca $1
|
||||
install_name_tool -change /usr/local/Cellar/gettext/0.18.1.1/lib/libintl.8.dylib @executable_path/libintl.8.dylib $1
|
||||
install_name_tool -change /usr/local/Cellar/vlc-git/HEAD/lib/libvlc.5.dylib @executable_path/libvlc.5.dylib $1
|
||||
install_name_tool -change /usr/local/Cellar/vlc-git/HEAD/lib/libvlccore.4.dylib @executable_path/libvlccore.4.dylib $1
|
||||
|
||||
install_name_tool -change libqjson.0.dylib @executable_path/libqjson.0.7.1.dylib $1
|
||||
install_name_tool -change libechonest.1.1.dylib @executable_path/libechonest.1.1.dylib $1
|
||||
install_name_tool -change libclucene-core.1.dylib @executable_path/libclucene-core.1.dylib $1
|
||||
install_name_tool -change libclucene-shared.1.dylib @executable_path/libclucene-shared.1.dylib $1
|
||||
}
|
||||
|
||||
################################################################################
|
||||
|
||||
|
||||
# first all libraries and executables
|
||||
find MacOS -type f -a -perm -100 | while read x
|
||||
do
|
||||
echo $x
|
||||
y=$(file "$x" | grep 'Mach-O')
|
||||
deposx_change "$x"
|
||||
deplib_change "$x"
|
||||
done
|
||||
|
||||
import_lib /usr/local/Cellar/qjson/0.7.1/lib/libqjson.0.7.1.dylib
|
||||
import_lib /usr/local/Cellar/taglib/1.7/lib/libtag.1.7.0.dylib
|
||||
#import_lib /usr/local/Cellar/gloox/1.0/lib/libgloox.8.dylib
|
||||
#import_lib /usr/local/Cellar/libogg/1.2.0/lib/libogg.0.dylib
|
||||
#import_lib /usr/local/Cellar/libvorbis/1.3.1/lib/libvorbis.0.dylib
|
||||
#import_lib /usr/local/Cellar/libvorbis/1.3.1/lib/libvorbisfile.3.dylib
|
||||
#import_lib /usr/local/Cellar/mad/0.15.1b/lib/libmad.0.dylib
|
||||
#import_lib /usr/local/Cellar/flac/1.2.1/lib/libFLAC++.6.dylib
|
||||
#import_lib /usr/local/Cellar/flac/1.2.1/lib/libFLAC.8.dylib
|
||||
import_lib /usr/local/lib/libechonest.1.1.dylib
|
||||
import_lib /usr/local/lib/libclucene-core.1.dylib
|
||||
import_lib /usr/local/lib/libclucene-shared.1.dylib
|
||||
import_lib /usr/local/Cellar/kde-phonon/4.5.0/lib/libphonon.4.dylib
|
||||
import_lib /usr/local/Cellar/vlc-git/HEAD/lib/libvlc.5.dylib
|
||||
import_lib /usr/local/Cellar/vlc-git/HEAD/lib/libvlccore.4.dylib
|
||||
import_lib /usr/local/Cellar/gettext/0.18.1.1/lib/libintl.8.dylib
|
||||
import_lib /usr/X11/lib/libpng12.0.dylib
|
||||
|
||||
import_lib $ORIGROOT/libjreen.dylib
|
||||
import_lib $ORIGROOT/libtomahawklib.dylib
|
||||
import_lib $ORIGROOT/libtomahawk_sipjabber.dylib
|
||||
import_lib $ORIGROOT/libtomahawk_sipgoogle.dylib
|
||||
import_lib $ORIGROOT/libtomahawk_siptwitter.dylib
|
||||
import_lib $ORIGROOT/libtomahawk_sipzeroconf.dylib
|
||||
import_lib $ORIGROOT/libtomahawk_qtweetlib.dylib
|
||||
import_lib $ORIGROOT/libtomahawk_portfwd.dylib
|
||||
|
||||
cp -R /usr/local/Cellar/qca/2.0.2/lib/qca.framework Frameworks/
|
||||
chmod 644 Frameworks/qca.framework/Versions/2/qca
|
||||
deplib_change Frameworks/qca.framework/Versions/2/qca
|
||||
deposx_change Frameworks/qca.framework/Versions/2/qca
|
||||
|
||||
# now Qt
|
||||
for x in $QTLIBS
|
||||
do
|
||||
echo `pwd`
|
||||
# ls -l Frameworks/$x.framework/Versions/4/$x
|
||||
deposx_change Frameworks/$x.framework/Versions/4/$x
|
||||
install_name_tool -id @executable_path/../Frameworks/$x.framework/Versions/4/$x \
|
||||
Frameworks/$x.framework/Versions/4/$x
|
||||
deplib_change "Frameworks/$x.framework/Versions/4/$x"
|
||||
done
|
||||
|
||||
# now VLC plugins
|
||||
for x in plugins/$PLUGINFOLDERS
|
||||
do
|
||||
for plugin in `ls plugins/$x | cut -f1`
|
||||
do
|
||||
echo "Fixing VLC plugin: $plugin"
|
||||
chmod 644 plugins/$x/$plugin
|
||||
deplib_change plugins/$x/$plugin
|
||||
done
|
||||
done
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 99 KiB |
@@ -1,599 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
# This file is part of Tomahawk.
|
||||
# It was inspired in large part by the macdeploy script in Clementine.
|
||||
#
|
||||
# Clementine is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Clementine is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Clementine. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import commands
|
||||
import sys
|
||||
import glob
|
||||
|
||||
FRAMEWORK_SEARCH_PATH=[
|
||||
'/Library/Frameworks',
|
||||
os.path.join(os.environ['HOME'], 'Library/Frameworks')
|
||||
]
|
||||
|
||||
LIBRARY_SEARCH_PATH=['/usr/local/lib', '/usr/local/Cellar/gettext/0.19.2/lib', '.']
|
||||
|
||||
VLC_PLUGINS=[
|
||||
'access/libattachment_plugin.dylib',
|
||||
#'access/libaccess_avio_plugin.dylib',
|
||||
#'access/libaccess_fake_plugin.dylib',
|
||||
'access/libftp_plugin.dylib',
|
||||
'access/libhttp_plugin.dylib',
|
||||
'access/libimem_plugin.dylib',
|
||||
#'access/libaccess_mmap_plugin.dylib',
|
||||
'access/libaccess_mms_plugin.dylib',
|
||||
'access/libaccess_realrtsp_plugin.dylib',
|
||||
'access/libtcp_plugin.dylib',
|
||||
'access/libudp_plugin.dylib',
|
||||
'access/libcdda_plugin.dylib',
|
||||
'access/libfilesystem_plugin.dylib',
|
||||
'access/libqtcapture_plugin.dylib',
|
||||
'access/librtp_plugin.dylib',
|
||||
'access/libzip_plugin.dylib',
|
||||
'access_output/libaccess_output_dummy_plugin.dylib',
|
||||
'access_output/libaccess_output_file_plugin.dylib',
|
||||
'access_output/libaccess_output_http_plugin.dylib',
|
||||
'access_output/libaccess_output_shout_plugin.dylib',
|
||||
'access_output/libaccess_output_udp_plugin.dylib',
|
||||
'audio_filter/liba52tofloat32_plugin.dylib',
|
||||
'audio_filter/liba52tospdif_plugin.dylib',
|
||||
'audio_filter/libaudio_format_plugin.dylib',
|
||||
'audio_filter/libaudiobargraph_a_plugin.dylib',
|
||||
'audio_filter/libchorus_flanger_plugin.dylib',
|
||||
#'libconverter_fixed_plugin.dylib',
|
||||
'audio_filter/libdolby_surround_decoder_plugin.dylib',
|
||||
'audio_filter/libdtstofloat32_plugin.dylib',
|
||||
'audio_filter/libdtstospdif_plugin.dylib',
|
||||
'audio_filter/libequalizer_plugin.dylib',
|
||||
'audio_filter/libheadphone_channel_mixer_plugin.dylib',
|
||||
'audio_filter/libmono_plugin.dylib',
|
||||
'audio_filter/libmpgatofixed32_plugin.dylib',
|
||||
'audio_filter/libnormvol_plugin.dylib',
|
||||
'audio_filter/libparam_eq_plugin.dylib',
|
||||
'audio_filter/libscaletempo_plugin.dylib',
|
||||
'audio_filter/libsimple_channel_mixer_plugin.dylib',
|
||||
'audio_filter/libspatializer_plugin.dylib',
|
||||
'audio_filter/libtrivial_channel_mixer_plugin.dylib',
|
||||
'audio_filter/libugly_resampler_plugin.dylib',
|
||||
'audio_mixer/libfloat_mixer_plugin.dylib',
|
||||
#'libspdif_mixer_plugin.dylib',
|
||||
#'libtrivial_mixer_plugin.dylib',
|
||||
#'libaout_file_plugin.dylib',
|
||||
'audio_output/libauhal_plugin.dylib',
|
||||
'codec/liba52_plugin.dylib',
|
||||
'codec/libadpcm_plugin.dylib',
|
||||
'codec/libaes3_plugin.dylib',
|
||||
'codec/libaraw_plugin.dylib',
|
||||
'codec/libavcodec_plugin.dylib',
|
||||
'codec/libcc_plugin.dylib',
|
||||
'codec/libcdg_plugin.dylib',
|
||||
'codec/libdts_plugin.dylib',
|
||||
'codec/libfaad_plugin.dylib',
|
||||
#'libfake_plugin.dylib',
|
||||
'codec/libflac_plugin.dylib',
|
||||
#'libfluidsynth_plugin.dylib',
|
||||
#'libinvmem_plugin.dylib',
|
||||
'codec/liblpcm_plugin.dylib',
|
||||
'codec/libmpeg_audio_plugin.dylib',
|
||||
'codec/libpng_plugin.dylib',
|
||||
'codec/librawvideo_plugin.dylib',
|
||||
'codec/libspeex_plugin.dylib',
|
||||
'codec/libspudec_plugin.dylib',
|
||||
'codec/libtheora_plugin.dylib',
|
||||
'codec/libtwolame_plugin.dylib',
|
||||
'codec/libvorbis_plugin.dylib',
|
||||
#'control/libgestures_plugin.dylib',
|
||||
#'libhotkeys_plugin.dylib',
|
||||
#'libmotion_plugin.dylib',
|
||||
#'libnetsync_plugin.dylib',
|
||||
#'libsignals_plugin.dylib',
|
||||
'demux/libaiff_plugin.dylib',
|
||||
'demux/libasf_plugin.dylib',
|
||||
'demux/libau_plugin.dylib',
|
||||
#'libavformat_plugin.dylib',
|
||||
'demux/libavi_plugin.dylib',
|
||||
'demux/libdemux_cdg_plugin.dylib',
|
||||
'demux/libdemuxdump_plugin.dylib',
|
||||
'demux/libdiracsys_plugin.dylib',
|
||||
'demux/libes_plugin.dylib',
|
||||
'demux/libflacsys_plugin.dylib',
|
||||
'access/liblive555_plugin.dylib',
|
||||
'demux/libmkv_plugin.dylib',
|
||||
'demux/libmod_plugin.dylib',
|
||||
'demux/libmp4_plugin.dylib',
|
||||
'demux/libmpc_plugin.dylib',
|
||||
'demux/libmpgv_plugin.dylib',
|
||||
'demux/libnsc_plugin.dylib',
|
||||
'demux/libnsv_plugin.dylib',
|
||||
'demux/libnuv_plugin.dylib',
|
||||
'demux/libogg_plugin.dylib',
|
||||
'demux/libplaylist_plugin.dylib',
|
||||
'demux/libps_plugin.dylib',
|
||||
'demux/libpva_plugin.dylib',
|
||||
'demux/librawaud_plugin.dylib',
|
||||
'demux/librawdv_plugin.dylib',
|
||||
'demux/librawvid_plugin.dylib',
|
||||
'demux/libreal_plugin.dylib',
|
||||
'demux/libsmf_plugin.dylib',
|
||||
'demux/libts_plugin.dylib',
|
||||
'demux/libtta_plugin.dylib',
|
||||
'demux/libty_plugin.dylib',
|
||||
'demux/libvc1_plugin.dylib',
|
||||
'demux/libvoc_plugin.dylib',
|
||||
'demux/libwav_plugin.dylib',
|
||||
'demux/libxa_plugin.dylib',
|
||||
'meta_engine/libfolder_plugin.dylib',
|
||||
'meta_engine/libtaglib_plugin.dylib',
|
||||
#'libaudioscrobbler_plugin.dylib',
|
||||
'control/libdummy_plugin.dylib',
|
||||
'misc/libexport_plugin.dylib',
|
||||
#'libfreetype_plugin.dylib',
|
||||
#'libgnutls_plugin.dylib',
|
||||
'misc/liblogger_plugin.dylib',
|
||||
'lua/liblua_plugin.dylib',
|
||||
#'libosd_parser_plugin.dylib',
|
||||
#'libquartztext_plugin.dylib',
|
||||
#'libstats_plugin.dylib',
|
||||
'misc/libvod_rtsp_plugin.dylib',
|
||||
'misc/libxml_plugin.dylib',
|
||||
#'libxtag_plugin.dylib',
|
||||
'video_chroma/libi420_rgb_mmx_plugin.dylib',
|
||||
'video_chroma/libi420_yuy2_mmx_plugin.dylib',
|
||||
'video_chroma/libi422_yuy2_mmx_plugin.dylib',
|
||||
#'libmemcpymmx_plugin.dylib',
|
||||
#'libmemcpymmxext_plugin.dylib',
|
||||
'mux/libmux_asf_plugin.dylib',
|
||||
'mux/libmux_avi_plugin.dylib',
|
||||
'mux/libmux_dummy_plugin.dylib',
|
||||
'mux/libmux_mp4_plugin.dylib',
|
||||
'mux/libmux_mpjpeg_plugin.dylib',
|
||||
'mux/libmux_ogg_plugin.dylib',
|
||||
'mux/libmux_ps_plugin.dylib',
|
||||
'mux/libmux_ts_plugin.dylib',
|
||||
'mux/libmux_wav_plugin.dylib',
|
||||
'packetizer/libpacketizer_copy_plugin.dylib',
|
||||
'packetizer/libpacketizer_dirac_plugin.dylib',
|
||||
'packetizer/libpacketizer_flac_plugin.dylib',
|
||||
'packetizer/libpacketizer_h264_plugin.dylib',
|
||||
'packetizer/libpacketizer_mlp_plugin.dylib',
|
||||
'packetizer/libpacketizer_mpeg4audio_plugin.dylib',
|
||||
'packetizer/libpacketizer_mpeg4video_plugin.dylib',
|
||||
'packetizer/libpacketizer_mpegvideo_plugin.dylib',
|
||||
'packetizer/libpacketizer_vc1_plugin.dylib',
|
||||
'video_chroma/libi420_rgb_sse2_plugin.dylib',
|
||||
'video_chroma/libi420_yuy2_sse2_plugin.dylib',
|
||||
'video_chroma/libi422_yuy2_sse2_plugin.dylib',
|
||||
'stream_filter/libdecomp_plugin.dylib',
|
||||
#'access/libstream_filter_rar_plugin.dylib',
|
||||
'stream_filter/librecord_plugin.dylib',
|
||||
#'libvisual_plugin.dylib',
|
||||
]
|
||||
|
||||
VLC_SEARCH_PATH=[
|
||||
'/usr/local/lib/vlc/plugins/',
|
||||
]
|
||||
|
||||
QT_PLUGINS = [
|
||||
# 'crypto/libqca-ossl.dylib',
|
||||
'platforms/libqcocoa.dylib',
|
||||
'sqldrivers/libqsqlite.dylib',
|
||||
'imageformats/libqgif.dylib',
|
||||
'imageformats/libqico.dylib',
|
||||
'imageformats/libqjpeg.dylib',
|
||||
'imageformats/libqsvg.dylib',
|
||||
'imageformats/libqmng.dylib',
|
||||
]
|
||||
|
||||
SNORE_PLUGINS = [
|
||||
# 'libsnore_backend_growl.so',
|
||||
# 'libsnore_backend_osxnotificationcenter.so',
|
||||
]
|
||||
|
||||
TOMAHAWK_PLUGINS = [
|
||||
'libtomahawk_account_xmpp.dylib',
|
||||
'libtomahawk_account_google.so',
|
||||
'libtomahawk_account_zeroconf.so',
|
||||
# 'libtomahawk_account_hatchet.so',
|
||||
'libtomahawk_infoplugin_adium.so',
|
||||
'libtomahawk_infoplugin_charts.so',
|
||||
'libtomahawk_infoplugin_discogs.so',
|
||||
'libtomahawk_infoplugin_echonest.so',
|
||||
'libtomahawk_infoplugin_hypem.so',
|
||||
'libtomahawk_infoplugin_musicbrainz.so',
|
||||
'libtomahawk_infoplugin_musixmatch.so',
|
||||
'libtomahawk_infoplugin_newreleases.so',
|
||||
'libtomahawk_infoplugin_rovi.so',
|
||||
# 'libtomahawk_infoplugin_snorenotify.so',
|
||||
'libtomahawk_infoplugin_spotify.so',
|
||||
'libtomahawk_viewpage_dashboard.so',
|
||||
# 'libtomahawk_viewpage_networkactivity.so',
|
||||
'libtomahawk_viewpage_charts.so',
|
||||
'libtomahawk_viewpage_newreleases.so',
|
||||
'libtomahawk_viewpage_whatsnew_0_8.so',
|
||||
]
|
||||
|
||||
QT_PLUGINS_SEARCH_PATH=[
|
||||
'/usr/local/Cellar/qt5/5.4.0/plugins',
|
||||
]
|
||||
|
||||
SNORE_PLUGINS_SEARCH_PATH=[
|
||||
'/usr/local/Cellar/snorenotify/HEAD/lib/libsnore',
|
||||
]
|
||||
|
||||
class Error(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class CouldNotFindQtPluginErrorFindFrameworkError(Error):
|
||||
pass
|
||||
|
||||
|
||||
class InstallNameToolError(Error):
|
||||
pass
|
||||
|
||||
|
||||
class CouldNotFindQtPluginError(Error):
|
||||
pass
|
||||
|
||||
|
||||
class CouldNotFindSnorePluginError(Error):
|
||||
pass
|
||||
|
||||
|
||||
class CouldNotFindVLCPluginError(Error):
|
||||
pass
|
||||
|
||||
|
||||
class CouldNotFindScriptPluginError(Error):
|
||||
pass
|
||||
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
print 'Usage: %s <bundle.app>' % sys.argv[0]
|
||||
|
||||
bundle_dir = sys.argv[1]
|
||||
bundle_name = os.path.basename(bundle_dir).split('.')[0]
|
||||
|
||||
commands = []
|
||||
framework_paths = []
|
||||
|
||||
binary_dir = os.path.join(bundle_dir, 'Contents', 'MacOS')
|
||||
frameworks_dir = os.path.join(bundle_dir, 'Contents', 'Frameworks')
|
||||
commands.append(['mkdir', '-p', frameworks_dir])
|
||||
vlcplugins_dir = os.path.join(frameworks_dir, 'vlc', 'plugins')
|
||||
commands.append(['mkdir', '-p', vlcplugins_dir])
|
||||
snoreplugins_dir = os.path.join(binary_dir, 'libsnore')
|
||||
commands.append(['mkdir', '-p', snoreplugins_dir])
|
||||
resources_dir = os.path.join(bundle_dir, 'Contents', 'Resources')
|
||||
commands.append(['mkdir', '-p', resources_dir])
|
||||
plugins_dir = os.path.join(bundle_dir, 'Contents', 'qt-plugins')
|
||||
binary = os.path.join(bundle_dir, 'Contents', 'MacOS', bundle_name)
|
||||
|
||||
fixed_libraries = []
|
||||
fixed_frameworks = []
|
||||
|
||||
def GetBrokenLibraries(binary):
|
||||
#print "Checking libs for binary: %s" % binary
|
||||
output = subprocess.Popen(['otool', '-L', binary], stdout=subprocess.PIPE).communicate()[0]
|
||||
broken_libs = {
|
||||
'frameworks': [],
|
||||
'libs': []}
|
||||
for line in [x.split(' ')[0].lstrip() for x in output.split('\n')[1:]]:
|
||||
#print "Checking line: %s" % line
|
||||
if not line: # skip empty lines
|
||||
continue
|
||||
if os.path.basename(binary) == os.path.basename(line):
|
||||
#print "mnope %s-%s" % (os.path.basename(binary), os.path.basename(line))
|
||||
continue
|
||||
if re.match(r'^\s*/System/', line):
|
||||
continue # System framework
|
||||
elif re.match(r'^\s*/usr/lib/', line):
|
||||
#print "unix style system lib"
|
||||
continue # unix style system library
|
||||
elif re.match(r'Breakpad', line):
|
||||
continue # Manually added by cmake.
|
||||
elif re.match(r'^\s*@executable_path', line) or re.match(r'^\s*@loader_path', line):
|
||||
# Potentially already fixed library
|
||||
if '.framework' in line:
|
||||
relative_path = os.path.join(*line.split('/')[3:])
|
||||
if not os.path.exists(os.path.join(frameworks_dir, relative_path)):
|
||||
broken_libs['frameworks'].append(relative_path)
|
||||
else:
|
||||
relative_path = os.path.join(*line.split('/')[1:])
|
||||
#print "RELPATH %s %s" % (relative_path, os.path.join(binary_dir, relative_path))
|
||||
if not os.path.exists(os.path.join(binary_dir, relative_path)):
|
||||
broken_libs['libs'].append(relative_path)
|
||||
elif re.search(r'\w+\.framework', line):
|
||||
broken_libs['frameworks'].append(line)
|
||||
else:
|
||||
broken_libs['libs'].append(line)
|
||||
|
||||
return broken_libs
|
||||
|
||||
def FindFramework(path):
|
||||
for search_path in FRAMEWORK_SEARCH_PATH:
|
||||
abs_path = os.path.join(search_path, path)
|
||||
if os.path.exists(abs_path):
|
||||
return abs_path
|
||||
|
||||
raise CouldNotFindFrameworkError(path)
|
||||
|
||||
def FindLibrary(path):
|
||||
if os.path.exists(path):
|
||||
return path
|
||||
for search_path in LIBRARY_SEARCH_PATH:
|
||||
abs_path = os.path.join(search_path, path)
|
||||
if os.path.exists(abs_path):
|
||||
return abs_path
|
||||
else: # try harder---look for lib name in library folders
|
||||
newpath = os.path.join(search_path,os.path.basename(path))
|
||||
if os.path.exists(newpath):
|
||||
return newpath
|
||||
|
||||
return ""
|
||||
#raise CouldNotFindFrameworkError(path)
|
||||
|
||||
def FixAllLibraries(broken_libs):
|
||||
for framework in broken_libs['frameworks']:
|
||||
FixFramework(framework)
|
||||
for lib in broken_libs['libs']:
|
||||
FixLibrary(lib)
|
||||
|
||||
def FixFramework(path):
|
||||
if path in fixed_libraries:
|
||||
return
|
||||
else:
|
||||
fixed_libraries.append(path)
|
||||
abs_path = FindFramework(path)
|
||||
broken_libs = GetBrokenLibraries(abs_path)
|
||||
FixAllLibraries(broken_libs)
|
||||
|
||||
new_path = CopyFramework(abs_path)
|
||||
id = os.sep.join(new_path.split(os.sep)[3:])
|
||||
FixFrameworkId(new_path, id)
|
||||
for framework in broken_libs['frameworks']:
|
||||
FixFrameworkInstallPath(framework, new_path)
|
||||
for library in broken_libs['libs']:
|
||||
FixLibraryInstallPath(library, new_path)
|
||||
|
||||
def FixLibrary(path):
|
||||
if path in fixed_libraries or FindSystemLibrary(os.path.basename(path)) is not None:
|
||||
return
|
||||
else:
|
||||
fixed_libraries.append(path)
|
||||
abs_path = FindLibrary(path)
|
||||
if abs_path == "":
|
||||
print "Could not resolve %s, not fixing!" % path
|
||||
return
|
||||
broken_libs = GetBrokenLibraries(abs_path)
|
||||
FixAllLibraries(broken_libs)
|
||||
|
||||
new_path = CopyLibrary(abs_path)
|
||||
FixLibraryId(new_path)
|
||||
for framework in broken_libs['frameworks']:
|
||||
FixFrameworkInstallPath(framework, new_path)
|
||||
for library in broken_libs['libs']:
|
||||
FixLibraryInstallPath(library, new_path)
|
||||
|
||||
def FixVLCPlugin(abs_path):
|
||||
broken_libs = GetBrokenLibraries(abs_path)
|
||||
FixAllLibraries(broken_libs)
|
||||
|
||||
#print "Copying plugin....%s %s %s" % (plugins_dir, subdir, os.path.join(abs_path.split('/')[-2:]))
|
||||
new_path = os.path.join(vlcplugins_dir, os.path.basename(abs_path))
|
||||
args = ['mkdir', '-p', os.path.dirname(new_path)]
|
||||
commands.append(args)
|
||||
args = ['ditto', '--arch=i386', '--arch=x86_64', abs_path, new_path]
|
||||
commands.append(args)
|
||||
args = ['chmod', 'u+w', new_path]
|
||||
commands.append(args)
|
||||
for framework in broken_libs['frameworks']:
|
||||
FixFrameworkInstallPath(framework, new_path)
|
||||
for library in broken_libs['libs']:
|
||||
FixLibraryInstallPath(library, new_path)
|
||||
|
||||
def FixPlugin(abs_path, subdir):
|
||||
broken_libs = GetBrokenLibraries(abs_path)
|
||||
FixAllLibraries(broken_libs)
|
||||
|
||||
new_path = CopyPlugin(abs_path, subdir)
|
||||
for framework in broken_libs['frameworks']:
|
||||
FixFrameworkInstallPath(framework, new_path)
|
||||
for library in broken_libs['libs']:
|
||||
FixLibraryInstallPath(library, new_path)
|
||||
|
||||
def FixBinary(path):
|
||||
broken_libs = GetBrokenLibraries(path)
|
||||
FixAllLibraries(broken_libs)
|
||||
for framework in broken_libs['frameworks']:
|
||||
FixFrameworkInstallPath(framework, path)
|
||||
for library in broken_libs['libs']:
|
||||
FixLibraryInstallPath(library, path)
|
||||
|
||||
def CopyLibrary(path):
|
||||
new_path = os.path.join(frameworks_dir, os.path.basename(path))
|
||||
args = ['ditto', '--arch=i386', '--arch=x86_64', path, new_path]
|
||||
commands.append(args)
|
||||
args = ['chmod', 'u+w', new_path]
|
||||
commands.append(args)
|
||||
return new_path
|
||||
|
||||
def CopyPlugin(path, subdir):
|
||||
new_path = os.path.join(plugins_dir, subdir, os.path.basename(path))
|
||||
args = ['mkdir', '-p', os.path.dirname(new_path)]
|
||||
commands.append(args)
|
||||
args = ['ditto', '--arch=i386', '--arch=x86_64', path, new_path]
|
||||
commands.append(args)
|
||||
args = ['chmod', 'u+w', new_path]
|
||||
commands.append(args)
|
||||
return new_path
|
||||
|
||||
def CopyFramework(path):
|
||||
parts = path.split(os.sep)
|
||||
for i, part in enumerate(parts):
|
||||
if re.match(r'\w+\.framework', part):
|
||||
full_path = os.path.join(frameworks_dir, *parts[i:-1])
|
||||
framework_name = part.split(".framework")[0]
|
||||
break
|
||||
|
||||
if full_path in framework_paths:
|
||||
return os.path.join(full_path, parts[-1])
|
||||
|
||||
framework_paths.append(full_path)
|
||||
|
||||
args = ['mkdir', '-p', full_path]
|
||||
commands.append(args)
|
||||
args = ['ditto', '--arch=i386', '--arch=x86_64', path, full_path]
|
||||
commands.append(args)
|
||||
args = ['chmod', 'u+w', os.path.join(full_path, parts[-1])]
|
||||
commands.append(args)
|
||||
|
||||
menu_nib = os.path.join(os.path.split(path)[0], 'Resources', 'qt_menu.nib')
|
||||
if os.path.exists(menu_nib):
|
||||
args = ['cp', '-rf', menu_nib, resources_dir]
|
||||
commands.append(args)
|
||||
|
||||
# Fix framework structure for signing
|
||||
path_base_dir = os.path.join(os.path.split(path)[0], '..', '..')
|
||||
path_versions_dir = os.path.join(path_base_dir, 'Versions')
|
||||
|
||||
if not os.path.exists(os.path.join(full_path, 'Versions', 'Current')):
|
||||
framework_base_dir = os.path.join(full_path, '..', '..')
|
||||
framework_versions_dir = os.path.join(framework_base_dir, 'Versions')
|
||||
|
||||
versionParts = glob.glob(path_versions_dir+'/*')[0].split(os.sep)
|
||||
args = ['ln', '-s', versionParts[-1], framework_versions_dir+'/Current']
|
||||
commands.append(args)
|
||||
|
||||
args = ['ln', '-s', 'Versions/Current/'+framework_name, framework_base_dir+'/'+framework_name]
|
||||
commands.append(args)
|
||||
|
||||
args = ['ln', '-s', 'Versions/Current/Resources', framework_base_dir+'/Resources']
|
||||
commands.append(args)
|
||||
|
||||
# Copy Contents/Info.plist to Resources/Info.plist if Resources/Info.plist does not exist
|
||||
# If Contents/Info.plist doesn't exist either, error out. If we actually see this, we can copy QtCore's Info.plist
|
||||
info_plist_in_resources = os.path.join(os.path.split(path)[0], '..', '..', 'Resources', 'Info.plist')
|
||||
if os.path.exists(info_plist_in_resources):
|
||||
info_plist_in_contents = os.path.join(os.path.split(path)[0], '..', '..', 'Resources', 'Info.plist')
|
||||
framework_resources_dir = os.path.join(framework_versions_dir, versionParts[-1], 'Resources')
|
||||
args = ['mkdir', '-p', framework_resources_dir]
|
||||
commands.append(args)
|
||||
if os.path.exists(info_plist_in_contents):
|
||||
args = ['cp', '-rf', info_plist_in_contents, framework_resources_dir]
|
||||
commands.append(args)
|
||||
args = ['chmod', '+rw', os.path.join(framework_resources_dir, 'Info.plist')]
|
||||
commands.append(args)
|
||||
else:
|
||||
print "%s: Framework does not contain an Info.plist file in Resources/ folder." % (path)
|
||||
sys.exit(-1)
|
||||
|
||||
return os.path.join(full_path, parts[-1])
|
||||
|
||||
def FixId(path, library_name):
|
||||
id = '@executable_path/../Frameworks/%s' % library_name
|
||||
args = ['install_name_tool', '-id', id, path]
|
||||
commands.append(args)
|
||||
|
||||
def FixLibraryId(path):
|
||||
library_name = os.path.basename(path)
|
||||
FixId(path, library_name)
|
||||
|
||||
def FixFrameworkId(path, id):
|
||||
FixId(path, id)
|
||||
|
||||
def FixInstallPath(library_path, library, new_path):
|
||||
args = ['install_name_tool', '-change', library_path, new_path, library]
|
||||
commands.append(args)
|
||||
|
||||
def FindSystemLibrary(library_name):
|
||||
for path in ['/lib', '/usr/lib']:
|
||||
full_path = os.path.join(path, library_name)
|
||||
if os.path.exists(full_path):
|
||||
return full_path
|
||||
return None
|
||||
|
||||
def FixLibraryInstallPath(library_path, library):
|
||||
system_library = FindSystemLibrary(os.path.basename(library_path))
|
||||
if system_library is None:
|
||||
new_path = '@executable_path/../Frameworks/%s' % os.path.basename(library_path)
|
||||
FixInstallPath(library_path, library, new_path)
|
||||
else:
|
||||
FixInstallPath(library_path, library, system_library)
|
||||
|
||||
def FixFrameworkInstallPath(library_path, library):
|
||||
parts = library_path.split(os.sep)
|
||||
for i, part in enumerate(parts):
|
||||
if re.match(r'\w+\.framework', part):
|
||||
full_path = os.path.join(*parts[i:])
|
||||
break
|
||||
new_path = '@executable_path/../Frameworks/%s' % full_path
|
||||
FixInstallPath(library_path, library, new_path)
|
||||
|
||||
def FindQtPlugin(name):
|
||||
for path in QT_PLUGINS_SEARCH_PATH:
|
||||
if os.path.exists(path):
|
||||
if os.path.exists(os.path.join(path, name)):
|
||||
return os.path.join(path, name)
|
||||
raise CouldNotFindQtPluginError(name)
|
||||
|
||||
def FindSnorePlugin(name):
|
||||
for path in SNORE_PLUGINS_SEARCH_PATH:
|
||||
if os.path.exists(path):
|
||||
if os.path.exists(os.path.join(path, name)):
|
||||
return os.path.join(path, name)
|
||||
raise CouldNotFindSnorePluginError(name)
|
||||
|
||||
def FindVLCPlugin(name):
|
||||
for path in VLC_SEARCH_PATH:
|
||||
if os.path.exists(path):
|
||||
if os.path.exists(os.path.join(path, name)):
|
||||
return os.path.join(path, name)
|
||||
raise CouldNotFindVLCPluginError(name)
|
||||
|
||||
FixBinary(binary)
|
||||
|
||||
for plugin in VLC_PLUGINS:
|
||||
FixVLCPlugin(FindVLCPlugin(plugin))
|
||||
|
||||
for plugin in TOMAHAWK_PLUGINS:
|
||||
FixPlugin(plugin, '../MacOS')
|
||||
|
||||
for plugin in SNORE_PLUGINS:
|
||||
FixPlugin(FindSnorePlugin(plugin), '../MacOS/libsnore')
|
||||
|
||||
try:
|
||||
FixPlugin('tomahawk_crash_reporter', '../MacOS')
|
||||
except:
|
||||
print 'Failed to find tomahawk_crash_reporter'
|
||||
|
||||
for plugin in QT_PLUGINS:
|
||||
FixPlugin(FindQtPlugin(plugin), os.path.dirname(plugin))
|
||||
|
||||
if len(sys.argv) <= 2:
|
||||
print 'Would run %d commands:' % len(commands)
|
||||
for command in commands:
|
||||
print ' '.join(command)
|
||||
|
||||
print 'OK?'
|
||||
raw_input()
|
||||
|
||||
for command in commands:
|
||||
p = subprocess.Popen(command)
|
||||
os.waitpid(p.pid, 0)
|
@@ -1,2 +1,2 @@
|
||||
[Paths]
|
||||
Plugins = qt-plugins
|
||||
Plugins = plugins
|
||||
|
@@ -3,19 +3,9 @@ Type=Application
|
||||
Version=1.0
|
||||
Name=Tomahawk
|
||||
GenericName=Music Player
|
||||
GenericName[de]=Musik Player
|
||||
GenericName[fi]=Musiikkisoitin
|
||||
GenericName[pl]=Odtwarzacz Muzyki
|
||||
GenericName[ro]=Redare muzică
|
||||
GenericName[se]=Musikspelare
|
||||
TryExec=tomahawk
|
||||
Exec=tomahawk %u
|
||||
Comment=Tomahawk — Multi Source Music Player
|
||||
Comment[fi]=Tomahawk – sosiaalinen musiikkisoitin
|
||||
Comment[pl]=Tomahawk – Społecznościowy Odtwarzacz Muzyki
|
||||
Comment[ro]=Tomahawk – Redare muzică în mod social
|
||||
Comment[se]=Tomahawk — Den Sociala Musikspelaren
|
||||
Exec=tomahawk
|
||||
Comment=Tomahawk - Social Music Player
|
||||
Icon=tomahawk
|
||||
Terminal=false
|
||||
Categories=Qt;AudioVideo;Audio;Player;
|
||||
MimeType=x-scheme-handler/tomahawk;x-scheme-handler/spotify;audio/aac;audio/mp4;audio/mpeg;audio/mpegurl;audio/vorbis;audio/x-flac;audio/x-mp3;audio/x-mpegurl;audio/x-ms-wma;audio/x-musepack;audio/x-oggflac;audio/opus;application/opus;audio/x-vorbis;application/x-ogm-audio;audio/x-vorbis+ogg;audio/ogg;application/xspf+xml;application/jspf;
|
||||
|
@@ -1,38 +1,20 @@
|
||||
SET(MINGW_PREFIX "i686-w64-mingw32")
|
||||
|
||||
# this one is important
|
||||
SET(CMAKE_SYSTEM_NAME Windows)
|
||||
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER ${MINGW_PREFIX}-gcc)
|
||||
SET(CMAKE_CXX_COMPILER ${MINGW_PREFIX}-g++)
|
||||
SET(CMAKE_RC_COMPILER /usr/bin/${MINGW_PREFIX}-windres CACHE FILEPATH "windres")
|
||||
SET(CMAKE_AR /usr/bin/${MINGW_PREFIX}-ar CACHE FILEPATH "ar")
|
||||
|
||||
SET(CMAKE_C_COMPILER ccache i686-w64-mingw32-gcc)
|
||||
SET(CMAKE_CXX_COMPILER ccache i686-w64-mingw32-g++)
|
||||
|
||||
# where is the target environment containing libraries
|
||||
SET(CMAKE_FIND_ROOT_PATH /usr/${MINGW_PREFIX}/sys-root/mingw)
|
||||
SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32/sys-root/mingw)
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
# windres executable for application icon support
|
||||
SET(WINDRES_EXECUTABLE /usr/bin/i686-w64-mingw32-windres)
|
||||
|
||||
## configure qt variables
|
||||
# generic
|
||||
SET(QMAKESPEC win32-g++-cross)
|
||||
|
||||
# dirs
|
||||
SET(QT_LIBRARY_DIR /usr/${MINGW_PREFIX}/bin)
|
||||
SET(QT_PLUGINS_DIR ${CMAKE_FIND_ROOT_PATH}/lib/qt4/plugins)
|
||||
SET(QT_MKSPECS_DIR ${CMAKE_FIND_ROOT_PATH}/share/qt4/mkspecs)
|
||||
SET(QT_QT_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/include)
|
||||
|
||||
SET(QT_QMAKE_EXECUTABLE /usr/bin/${MINGW_PREFIX}-qmake CACHE FILEPATH "qmake" )
|
||||
SET(QT_MOC_EXECUTABLE /usr/bin/${MINGW_PREFIX}-moc CACHE FILEPATH "moc")
|
||||
SET(QT_RCC_EXECUTABLE /usr/bin/${MINGW_PREFIX}-rcc CACHE FILEPATH "rcc")
|
||||
SET(QT_UIC_EXECUTABLE /usr/bin/${MINGW_PREFIX}-uic CACHE FILEPATH "uic")
|
||||
SET(QT_LRELEASE_EXECUTABLE /usr/bin/${MINGW_PREFIX}-lrelease CACHE FILEPATH "lrelease")
|
||||
|
||||
# phonon -_-
|
||||
SET(Automoc4_DIR "/usr/lib64/automoc4/")
|
||||
# libs with broken find modules
|
||||
SET(TAGLIB_FOUND true)
|
||||
SET(TAGLIB_LIBRARIES ${CMAKE_FIND_ROOT_PATH}/lib/libtag.dll.a)
|
||||
SET(TAGLIB_INCLUDES ${CMAKE_FIND_ROOT_PATH}/include/taglib)
|
||||
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 25 KiB |
1
admin/win/nsi/revision.txt
Normal file
@@ -0,0 +1 @@
|
||||
127
|
668
admin/win/nsi/tomahawk.nsi
Normal file
@@ -0,0 +1,668 @@
|
||||
;Tomahawk installer script.
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Some installer script options (comment-out options not required)
|
||||
;-----------------------------------------------------------------------------
|
||||
;!define OPTION_LICENSE_AGREEMENT
|
||||
!define OPTION_UAC_PLUGIN_ENHANCED
|
||||
!define OPTION_SECTION_SC_START_MENU
|
||||
!define OPTION_SECTION_SC_DESKTOP
|
||||
!define OPTION_SECTION_SC_QUICK_LAUNCH
|
||||
!define OPTION_FINISHPAGE
|
||||
!define OPTION_FINISHPAGE_LAUNCHER
|
||||
!define OPTION_FINISHPAGE_RELEASE_NOTES
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Some paths.
|
||||
;-----------------------------------------------------------------------------
|
||||
!ifndef MING_PATH
|
||||
!define MING_PATH "/usr/i686-w64-mingw32/sys-root/mingw"
|
||||
!endif
|
||||
!define MING_BIN "${MING_PATH}/bin"
|
||||
!define MING_LIB "${MING_PATH}/lib"
|
||||
!define ROOT_PATH "..\..\.." ; assuming the script is in ROOT/admin/win/nsi
|
||||
!define BUILD_PATH "${ROOT_PATH}\build"
|
||||
!define QT_DLL_PATH "${MING_BIN}"
|
||||
!define SQLITE_DLL_PATH "${MING_LIB}/qt4/plugins/sqldrivers"
|
||||
!define IMAGEFORMATS_DLL_PATH "${MING_LIB}/qt4/plugins/imageformats"
|
||||
!define VLC_PLUGIN_PATH "${MING_LIB}\vlc\plugins"
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Increment installer revision number as part of this script.
|
||||
;-----------------------------------------------------------------------------
|
||||
!define /file REVISION_LAST revision.txt
|
||||
!define /math REVISION ${REVISION_LAST} + 1
|
||||
!delfile revision.txt
|
||||
!appendfile revision.txt ${REVISION}
|
||||
|
||||
!ifndef VER_MAJOR && VER_MINOR && VER_BUILD
|
||||
!define VER_MAJOR "0"
|
||||
!define VER_MINOR "2"
|
||||
!define VER_BUILD "0prealpha"
|
||||
!endif
|
||||
|
||||
!define VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_BUILD}"
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Installer build timestamp.
|
||||
;-----------------------------------------------------------------------------
|
||||
!define /date BUILD_TIME "built on %Y/%m/%d at %I:%M %p (rev. ${REVISION})"
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Initial installer setup and definitions.
|
||||
;-----------------------------------------------------------------------------
|
||||
Name "Tomahawk"
|
||||
Caption "Tomahawk Installer"
|
||||
BrandingText "Tomahawk ${VERSION} -- ${BUILD_TIME}"
|
||||
OutFile "${ROOT_PATH}\build\tomahawk-${VERSION}.exe"
|
||||
InstallDir "$PROGRAMFILES\Tomahawk"
|
||||
InstallDirRegKey HKCU "Software\Tomahawk" ""
|
||||
InstType Standard
|
||||
InstType Full
|
||||
InstType Minimal
|
||||
CRCCheck On
|
||||
SetCompressor /SOLID lzma
|
||||
RequestExecutionLevel user ;Now using the UAC plugin.
|
||||
ReserveFile tomahawk.ini
|
||||
ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Include some required header files.
|
||||
;-----------------------------------------------------------------------------
|
||||
!include LogicLib.nsh ;Used by APPDATA uninstaller.
|
||||
!include nsDialogs.nsh ;Used by APPDATA uninstaller.
|
||||
!include MUI2.nsh ;Used by APPDATA uninstaller.
|
||||
!include InstallOptions.nsh ;Required by MUI2 to support old MUI_INSTALLOPTIONS.
|
||||
!include Memento.nsh ;Remember user selections.
|
||||
!include WinVer.nsh ;Windows version detection.
|
||||
!include WordFunc.nsh ;Used by VersionCompare macro function.
|
||||
!include UAC.nsh ;Used by the UAC elevation to install as user or admin.
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Memento selections stored in registry.
|
||||
;-----------------------------------------------------------------------------
|
||||
!define MEMENTO_REGISTRY_ROOT HKLM
|
||||
!define MEMENTO_REGISTRY_KEY Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Modern User Interface (MUI) defintions and setup.
|
||||
;-----------------------------------------------------------------------------
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_ICON installer.ico
|
||||
!define MUI_UNICON installer.ico
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP welcome.bmp
|
||||
!define MUI_WELCOMEPAGE_TITLE "Tomahawk ${VERSION} Setup$\r$\nInstaller Build Revision ${REVISION}"
|
||||
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation.$\r$\n$\r$\n$_CLICK"
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP page_header.bmp
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!define MUI_FINISHPAGE_TITLE "Tomahawk Install Completed"
|
||||
!define MUI_FINISHPAGE_LINK "Click here to visit the Tomahawk website."
|
||||
!define MUI_FINISHPAGE_LINK_LOCATION "http://tomahawk-player.org/"
|
||||
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
|
||||
!ifdef OPTION_FINISHPAGE_RELEASE_NOTES
|
||||
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
|
||||
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\NOTES.txt"
|
||||
!define MUI_FINISHPAGE_SHOWREADME_TEXT "Show release notes"
|
||||
!endif
|
||||
!ifdef OPTION_FINISHPAGE_LAUNCHER
|
||||
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
||||
!define MUI_FINISHPAGE_RUN
|
||||
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchTomahawk"
|
||||
!endif
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Page macros.
|
||||
;-----------------------------------------------------------------------------
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!ifdef OPTION_LICENSE_AGREEMENT
|
||||
!insertmacro MUI_PAGE_LICENSE "LICENSE.txt"
|
||||
!endif
|
||||
Page custom PageReinstall PageLeaveReinstall
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
!ifdef OPTION_FINISHPAGE
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
!endif
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
UninstPage custom un.UnPageUserAppData un.UnPageUserAppDataLeave
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Other MUI macros.
|
||||
;-----------------------------------------------------------------------------
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
|
||||
##############################################################################
|
||||
# #
|
||||
# FINISH PAGE LAUNCHER FUNCTIONS #
|
||||
# #
|
||||
##############################################################################
|
||||
|
||||
Function LaunchTomahawk
|
||||
${UAC.CallFunctionAsUser} LaunchTomahawkAsUser
|
||||
FunctionEnd
|
||||
|
||||
Function LaunchTomahawkAsUser
|
||||
Exec "$INSTDIR\tomahawk.exe"
|
||||
FunctionEnd
|
||||
|
||||
##############################################################################
|
||||
# #
|
||||
# PROCESS HANDLING FUNCTIONS AND MACROS #
|
||||
# #
|
||||
##############################################################################
|
||||
|
||||
!macro CheckForProcess processName gotoWhenFound gotoWhenNotFound
|
||||
Processes::FindProcess ${processName}
|
||||
StrCmp $R0 "0" ${gotoWhenNotFound} ${gotoWhenFound}
|
||||
!macroend
|
||||
|
||||
!macro ConfirmEndProcess processName
|
||||
MessageBox MB_YESNO|MB_ICONEXCLAMATION \
|
||||
"Found ${processName} process(s) which need to be stopped.$\nDo you want the installer to stop these for you?" \
|
||||
IDYES process_${processName}_kill IDNO process_${processName}_ended
|
||||
process_${processName}_kill:
|
||||
DetailPrint "Killing ${processName} processes."
|
||||
Processes::KillProcess ${processName}
|
||||
Sleep 1500
|
||||
StrCmp $R0 "1" process_${processName}_ended
|
||||
DetailPrint "Process to kill not found!"
|
||||
process_${processName}_ended:
|
||||
!macroend
|
||||
|
||||
!macro CheckAndConfirmEndProcess processName
|
||||
!insertmacro CheckForProcess ${processName} 0 no_process_${processName}_to_end
|
||||
!insertmacro ConfirmEndProcess ${processName}
|
||||
no_process_${processName}_to_end:
|
||||
!macroend
|
||||
|
||||
Function EnsureTomahawkShutdown
|
||||
!insertmacro CheckAndConfirmEndProcess "tomahawk.exe"
|
||||
FunctionEnd
|
||||
|
||||
##############################################################################
|
||||
# #
|
||||
# RE-INSTALLER FUNCTIONS #
|
||||
# #
|
||||
##############################################################################
|
||||
|
||||
Function PageReinstall
|
||||
ReadRegStr $R0 HKLM "Software\Tomahawk" ""
|
||||
StrCmp $R0 "" 0 +2
|
||||
Abort
|
||||
|
||||
;Detect version
|
||||
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionMajor"
|
||||
IntCmp $R0 ${VER_MAJOR} minor_check new_version older_version
|
||||
minor_check:
|
||||
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionMinor"
|
||||
IntCmp $R0 ${VER_MINOR} build_check new_version older_version
|
||||
build_check:
|
||||
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionBuild"
|
||||
IntCmp $R0 ${VER_BUILD} revision_check new_version older_version
|
||||
revision_check:
|
||||
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionRevision"
|
||||
IntCmp $R0 ${REVISION} same_version new_version older_version
|
||||
|
||||
new_version:
|
||||
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 1" "Text" "An older version of Tomahawk is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
|
||||
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 2" "Text" "Uninstall before installing"
|
||||
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 3" "Text" "Do not uninstall"
|
||||
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose how you want to install Tomahawk."
|
||||
StrCpy $R0 "1"
|
||||
Goto reinst_start
|
||||
|
||||
older_version:
|
||||
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 1" "Text" "A newer version of Tomahawk is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
|
||||
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 2" "Text" "Uninstall before installing"
|
||||
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 3" "Text" "Do not uninstall"
|
||||
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose how you want to install Tomahawk."
|
||||
StrCpy $R0 "1"
|
||||
Goto reinst_start
|
||||
|
||||
same_version:
|
||||
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 1" "Text" "Tomahawk ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
|
||||
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 2" "Text" "Add/Reinstall components"
|
||||
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 3" "Text" "Uninstall Tomahawk"
|
||||
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose the maintenance option to perform."
|
||||
StrCpy $R0 "2"
|
||||
|
||||
reinst_start:
|
||||
!insertmacro INSTALLOPTIONS_DISPLAY "tomahawk.ini"
|
||||
FunctionEnd
|
||||
|
||||
Function PageLeaveReinstall
|
||||
!insertmacro INSTALLOPTIONS_READ $R1 "tomahawk.ini" "Field 2" "State"
|
||||
StrCmp $R0 "1" 0 +2
|
||||
StrCmp $R1 "1" reinst_uninstall reinst_done
|
||||
StrCmp $R0 "2" 0 +3
|
||||
StrCmp $R1 "1" reinst_done reinst_uninstall
|
||||
reinst_uninstall:
|
||||
ReadRegStr $R1 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "UninstallString"
|
||||
HideWindow
|
||||
ClearErrors
|
||||
ExecWait '$R1 _?=$INSTDIR'
|
||||
IfErrors no_remove_uninstaller
|
||||
IfFileExists "$INSTDIR\tomahawk.exe" no_remove_uninstaller
|
||||
Delete $R1
|
||||
RMDir $INSTDIR
|
||||
no_remove_uninstaller:
|
||||
StrCmp $R0 "2" 0 +3
|
||||
UAC::Unload
|
||||
Quit
|
||||
BringToFront
|
||||
reinst_done:
|
||||
FunctionEnd
|
||||
|
||||
##############################################################################
|
||||
# #
|
||||
# INSTALLER SECTIONS #
|
||||
# #
|
||||
##############################################################################
|
||||
|
||||
Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
|
||||
SectionIn 1 2 3 RO
|
||||
SetDetailsPrint listonly
|
||||
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint "Installing Tomahawk Player essentials."
|
||||
SetDetailsPrint listonly
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
!ifdef INSTALL_PATH
|
||||
;Main executable.
|
||||
File "${INSTALL_PATH}\bin\tomahawk.exe"
|
||||
|
||||
File "${INSTALL_PATH}\bin\libqxtweb-standalone.dll"
|
||||
File "${INSTALL_PATH}\bin\libtomahawk_portfwd.dll"
|
||||
File "${INSTALL_PATH}\bin\libtomahawk_lastfm2.dll"
|
||||
File "${INSTALL_PATH}\bin\libtomahawklib.dll"
|
||||
File "${INSTALL_PATH}\lib\libtomahawk_sip*.dll"
|
||||
!endif
|
||||
!ifndef INSTALL_PATH
|
||||
;Main executable.
|
||||
File "${BUILD_PATH}\tomahawk.exe"
|
||||
|
||||
File "${BUILD_PATH}\libtomahawklib.dll"
|
||||
File "${BUILD_PATH}\libqxtweb-standalone.dll"
|
||||
File "${BUILD_PATH}\libtomahawk_portfwd.dll"
|
||||
File "${BUILD_PATH}\libtomahawk_lastfm2.dll"
|
||||
File "${BUILD_PATH}\libtomahawk_sip*.dll"
|
||||
!endif
|
||||
|
||||
;License & release notes & icon (for Growl).
|
||||
File "${ROOT_PATH}\LICENSE.txt"
|
||||
File /oname=NOTES.txt RELEASE_NOTES.txt
|
||||
File "${ROOT_PATH}\data\icons\tomahawk-icon-128x128.png"
|
||||
|
||||
;QT stuff:
|
||||
File "${QT_DLL_PATH}\QtCore4.dll"
|
||||
File "${QT_DLL_PATH}\QtGui4.dll"
|
||||
File "${QT_DLL_PATH}\QtNetwork4.dll"
|
||||
File "${QT_DLL_PATH}\QtSql4.dll"
|
||||
File "${QT_DLL_PATH}\QtXml4.dll"
|
||||
File "${QT_DLL_PATH}\QtWebKit4.dll"
|
||||
|
||||
;SQLite driver
|
||||
SetOutPath "$INSTDIR\sqldrivers"
|
||||
File "${SQLITE_DLL_PATH}\qsqlite4.dll"
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
;Image plugins
|
||||
SetOutPath "$INSTDIR\imageformats"
|
||||
File "${IMAGEFORMATS_DLL_PATH}\qgif4.dll"
|
||||
File "${IMAGEFORMATS_DLL_PATH}\qjpeg4.dll"
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
;Cygwin/c++ stuff
|
||||
;File "${MING_BIN}\cygmad-0.dll"
|
||||
;File "${MING_BIN}\libgcc_s_dw2-1.dll"
|
||||
;File "${MING_BIN}\mingwm10.dll"
|
||||
File "${MING_BIN}\libgcc_s_sjlj-1.dll"
|
||||
File "${MING_BIN}\libstdc++-6.dll"
|
||||
|
||||
;Phonon stuff
|
||||
|
||||
;Fix the phonon build to not use Dbus
|
||||
File "${QT_DLL_PATH}\QtDbus4.dll"
|
||||
File "${MING_BIN}\libdbus-1-3.dll"
|
||||
File "${MING_BIN}\dbus-daemon.exe"
|
||||
|
||||
File "${MING_BIN}\libphonon.dll"
|
||||
SetOutPath "$INSTDIR\phonon_backend"
|
||||
File "${MING_BIN}\phonon_backend\phonon_vlc.dll"
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
;VLC
|
||||
;SetOutPath "$INSTDIR\phonon_backend"
|
||||
File "${MING_BIN}\libvlc.dll"
|
||||
File "${MING_BIN}\libvlccore.dll"
|
||||
SetOutPath "$INSTDIR\plugins"
|
||||
File /r "${VLC_PLUGIN_PATH}\*.dll"
|
||||
SetOutPath "$INSTDIR"
|
||||
File "${MING_BIN}\libmad-0.dll" ; MP3
|
||||
File "${MING_BIN}\libFLAC-8.dll" ; FLAC
|
||||
File "${MING_BIN}\libogg-0.dll" ; OGG, FLAC
|
||||
File "${MING_BIN}\libvorbis-0.dll" ; OGG
|
||||
File "${MING_BIN}\libvorbisenc-2.dll" ; OGG
|
||||
|
||||
|
||||
|
||||
; Other
|
||||
File "${MING_BIN}\libqjson.dll"
|
||||
File "${MING_BIN}\libtag.dll"
|
||||
File "${MING_BIN}\libpng15-15.dll"
|
||||
File "${MING_BIN}\libjpeg-8.dll"
|
||||
File "${MING_BIN}\zlib1.dll"
|
||||
|
||||
File "${MING_BIN}\libechonest.dll"
|
||||
File "${MING_BIN}\libQTweetLib.dll"
|
||||
|
||||
; Jabber
|
||||
File "${MING_BIN}\libjreen.dll"
|
||||
File "${MING_BIN}\libqca.dll"
|
||||
SetOutPath "$INSTDIR\crypto"
|
||||
File "${MING_LIB}\qt4\plugins\crypto\libqca-ossl.dll"
|
||||
SetOutPath "$INSTDIR"
|
||||
File "${MING_BIN}\libssl-8.dll"
|
||||
File "${MING_BIN}\libcrypto-8.dll"
|
||||
|
||||
File "${MING_LIB}\libclucene-core.dll"
|
||||
File "${MING_LIB}\libclucene-shared.dll"
|
||||
|
||||
File "${MING_BIN}\libqtsparkle.dll"
|
||||
SectionEnd
|
||||
|
||||
SectionGroup "Shortcuts"
|
||||
|
||||
!ifdef OPTION_SECTION_SC_START_MENU
|
||||
${MementoSection} "Start Menu Program Group" SEC_START_MENU
|
||||
SectionIn 1 2
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint "Adding shortcuts for the Tomahawk program group to the Start Menu."
|
||||
SetDetailsPrint listonly
|
||||
SetShellVarContext all
|
||||
RMDir /r "$SMPROGRAMS\Tomahawk"
|
||||
CreateDirectory "$SMPROGRAMS\Tomahawk"
|
||||
CreateShortCut "$SMPROGRAMS\Tomahawk\LICENSE.lnk" "$INSTDIR\LICENSE.txt"
|
||||
CreateShortCut "$SMPROGRAMS\Tomahawk\Tomahawk.lnk" "$INSTDIR\tomahawk.exe"
|
||||
CreateShortCut "$SMPROGRAMS\Tomahawk\Release notes.lnk" "$INSTDIR\NOTES.txt"
|
||||
CreateShortCut "$SMPROGRAMS\Tomahawk\Uninstall.lnk" "$INSTDIR\uninstall.exe"
|
||||
SetShellVarContext current
|
||||
${MementoSectionEnd}
|
||||
!endif
|
||||
|
||||
!ifdef OPTION_SECTION_SC_DESKTOP
|
||||
${MementoSection} "Desktop Shortcut" SEC_DESKTOP
|
||||
SectionIn 1 2
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint "Creating Desktop Shortcuts"
|
||||
SetDetailsPrint listonly
|
||||
CreateShortCut "$DESKTOP\Tomahawk.lnk" "$INSTDIR\tomahawk.exe"
|
||||
${MementoSectionEnd}
|
||||
!endif
|
||||
|
||||
!ifdef OPTION_SECTION_SC_QUICK_LAUNCH
|
||||
${MementoSection} "Quick Launch Shortcut" SEC_QUICK_LAUNCH
|
||||
SectionIn 1 2
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint "Creating Quick Launch Shortcut"
|
||||
SetDetailsPrint listonly
|
||||
CreateShortCut "$QUICKLAUNCH\Tomahawk.lnk" "$INSTDIR\tomahawk.exe"
|
||||
${MementoSectionEnd}
|
||||
!endif
|
||||
|
||||
SectionGroupEnd
|
||||
|
||||
${MementoSectionDone}
|
||||
|
||||
; Installer section descriptions
|
||||
;--------------------------------
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_TOMAHAWK_PLAYER} "Tomahawk player essentials."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_START_MENU} "Tomahawk program group."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_DESKTOP} "Desktop shortcut for Tomahawk."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_QUICK_LAUNCH} "Quick Launch shortcut for Tomahawk."
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
Section -post
|
||||
|
||||
;Uninstaller file.
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint "Writing Uninstaller"
|
||||
SetDetailsPrint listonly
|
||||
WriteUninstaller $INSTDIR\uninstall.exe
|
||||
|
||||
;Registry keys required for installer version handling and uninstaller.
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint "Writing Installer Registry Keys"
|
||||
SetDetailsPrint listonly
|
||||
|
||||
;Version numbers used to detect existing installation version for comparisson.
|
||||
WriteRegStr HKLM "Software\Tomahawk" "" $INSTDIR
|
||||
WriteRegDWORD HKLM "Software\Tomahawk" "VersionMajor" "${VER_MAJOR}"
|
||||
WriteRegDWORD HKLM "Software\Tomahawk" "VersionMinor" "${VER_MINOR}"
|
||||
WriteRegDWORD HKLM "Software\Tomahawk" "VersionRevision" "${REVISION}"
|
||||
WriteRegDWORD HKLM "Software\Tomahawk" "VersionBuild" "${VER_BUILD}"
|
||||
|
||||
;Add or Remove Programs entry.
|
||||
WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "UninstallString" '"$INSTDIR\Uninstall.exe"'
|
||||
WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "InstallLocation" "$INSTDIR"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "DisplayName" "Tomahawk"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "Publisher" "Tomahawk-player.org"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "DisplayIcon" "$INSTDIR\Uninstall.exe,0"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "DisplayVersion" "${VERSION}"
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "VersionMajor" "${VER_MAJOR}"
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "VersionMinor" "${VER_MINOR}.${REVISION}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "URLInfoAbout" "http://tomahawk-player.org/"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "HelpLink" "http://tomahawk-player.org/"
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "NoModify" "1"
|
||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "NoRepair" "1"
|
||||
|
||||
; Register tomahawk:// protocol handler
|
||||
WriteRegStr HKCR "tomahawk" "" "URL: Tomahawk Protocol"
|
||||
WriteRegStr HKCR "tomahawk\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
|
||||
WriteRegStr HKCR "tomahawk\shell" "" "open"
|
||||
WriteRegStr HKCR "tomahawk\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
|
||||
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint "Finsihed."
|
||||
SectionEnd
|
||||
|
||||
##############################################################################
|
||||
# #
|
||||
# UNINSTALLER SECTION #
|
||||
# #
|
||||
##############################################################################
|
||||
|
||||
Var UnPageUserAppDataDialog
|
||||
Var UnPageUserAppDataCheckbox
|
||||
Var UnPageUserAppDataCheckbox_State
|
||||
Var UnPageUserAppDataEditBox
|
||||
|
||||
Function un.UnPageUserAppData
|
||||
!insertmacro MUI_HEADER_TEXT "Uninstall Tomahawk" "Remove Tomahawk's data folder from your computer."
|
||||
nsDialogs::Create /NOUNLOAD 1018
|
||||
Pop $UnPageUserAppDataDialog
|
||||
|
||||
${If} $UnPageUserAppDataDialog == error
|
||||
Abort
|
||||
${EndIf}
|
||||
|
||||
${NSD_CreateLabel} 0 0 100% 12u "Do you want to delete Tomahawk's data folder?"
|
||||
Pop $0
|
||||
|
||||
${NSD_CreateText} 0 13u 100% 12u "$LOCALAPPDATA\Tomahawk"
|
||||
Pop $UnPageUserAppDataEditBox
|
||||
SendMessage $UnPageUserAppDataEditBox ${EM_SETREADONLY} 1 0
|
||||
|
||||
${NSD_CreateLabel} 0 46u 100% 24u "Leave unchecked to keep the data folder for later use or check to delete the data folder."
|
||||
Pop $0
|
||||
|
||||
${NSD_CreateCheckbox} 0 71u 100% 8u "Yes, delete this data folder."
|
||||
Pop $UnPageUserAppDataCheckbox
|
||||
|
||||
nsDialogs::Show
|
||||
FunctionEnd
|
||||
|
||||
Function un.UnPageUserAppDataLeave
|
||||
${NSD_GetState} $UnPageUserAppDataCheckbox $UnPageUserAppDataCheckbox_State
|
||||
FunctionEnd
|
||||
|
||||
Section Uninstall
|
||||
IfFileExists "$INSTDIR\tomahawk.exe" tomahawk_installed
|
||||
MessageBox MB_YESNO "It does not appear that Tomahawk is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES tomahawk_installed
|
||||
Abort "Uninstall aborted by user"
|
||||
tomahawk_installed:
|
||||
|
||||
;Delete registry keys.
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk"
|
||||
DeleteRegValue HKLM "Software\Tomahawk" "VersionBuild"
|
||||
DeleteRegValue HKLM "Software\Tomahawk" "VersionMajor"
|
||||
DeleteRegValue HKLM "Software\Tomahawk" "VersionMinor"
|
||||
DeleteRegValue HKLM "Software\Tomahawk" "VersionRevision"
|
||||
DeleteRegValue HKLM "Software\Tomahawk" ""
|
||||
DeleteRegKey HKLM "Software\Tomahawk"
|
||||
|
||||
DeleteRegKey HKCR "tomahawk"
|
||||
|
||||
;Start menu shortcuts.
|
||||
!ifdef OPTION_SECTION_SC_START_MENU
|
||||
SetShellVarContext all
|
||||
RMDir /r "$SMPROGRAMS\Tomahawk"
|
||||
SetShellVarContext current
|
||||
!endif
|
||||
|
||||
;Desktop shortcut.
|
||||
!ifdef OPTION_SECTION_SC_DESKTOP
|
||||
IfFileExists "$DESKTOP\Tomahawk.lnk" 0 +2
|
||||
Delete "$DESKTOP\Tomahawk.lnk"
|
||||
!endif
|
||||
|
||||
;Quick Launch shortcut.
|
||||
!ifdef OPTION_SECTION_SC_QUICK_LAUNCH
|
||||
IfFileExists "$QUICKLAUNCH\Tomahawk.lnk" 0 +2
|
||||
Delete "$QUICKLAUNCH\Tomahawk.lnk"
|
||||
!endif
|
||||
|
||||
;Remove all the Program Files.
|
||||
RMDir /r $INSTDIR
|
||||
|
||||
;Uninstall User Data if option is checked, otherwise skip.
|
||||
${If} $UnPageUserAppDataCheckbox_State == ${BST_CHECKED}
|
||||
RMDir /r "$LOCALAPPDATA\Tomahawk"
|
||||
${EndIf}
|
||||
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint "Finsihed."
|
||||
SectionEnd
|
||||
|
||||
##############################################################################
|
||||
# #
|
||||
# NSIS Installer Event Handler Functions #
|
||||
# #
|
||||
##############################################################################
|
||||
|
||||
Function .onInit
|
||||
!insertmacro INSTALLOPTIONS_EXTRACT "tomahawk.ini"
|
||||
|
||||
;Remove Quick Launch option from Windows 7, as no longer applicable - usually.
|
||||
${IfNot} ${AtMostWinVista}
|
||||
SectionSetText ${SEC_QUICK_LAUNCH} "Quick Launch Shortcut (N/A)"
|
||||
SectionSetFlags ${SEC_QUICK_LAUNCH} ${SF_RO}
|
||||
SectionSetInstTypes ${SEC_QUICK_LAUNCH} 0
|
||||
${EndIf}
|
||||
|
||||
${MementoSectionRestore}
|
||||
|
||||
UAC_Elevate:
|
||||
UAC::RunElevated
|
||||
StrCmp 1223 $0 UAC_ElevationAborted ; UAC dialog aborted by user?
|
||||
StrCmp 0 $0 0 UAC_Err ; Error?
|
||||
StrCmp 1 $1 0 UAC_Success ;Are we the real deal or just the wrapper?
|
||||
Quit
|
||||
|
||||
UAC_Err:
|
||||
MessageBox MB_ICONSTOP "Unable to elevate, error $0"
|
||||
Abort
|
||||
|
||||
UAC_ElevationAborted:
|
||||
Abort
|
||||
|
||||
UAC_Success:
|
||||
StrCmp 1 $3 +4 ;Admin?
|
||||
StrCmp 3 $1 0 UAC_ElevationAborted ;Try again?
|
||||
MessageBox MB_ICONSTOP "This installer requires admin access, try again"
|
||||
goto UAC_Elevate
|
||||
|
||||
;Prevent multiple instances.
|
||||
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "tomahawkInstaller") i .r1 ?e'
|
||||
Pop $R0
|
||||
StrCmp $R0 0 +3
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running."
|
||||
Abort
|
||||
|
||||
;Use available InstallLocation when possible. This is useful in the uninstaller
|
||||
;via re-install, which would otherwise use a default location - a bug.
|
||||
ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tomahawk" "InstallLocation"
|
||||
StrCmp $R0 "" SkipSetInstDir
|
||||
StrCpy $INSTDIR $R0
|
||||
SkipSetInstDir:
|
||||
|
||||
;Shutdown Tomahawk in case Add/Remove re-installer option used.
|
||||
Call EnsureTomahawkShutdown
|
||||
FunctionEnd
|
||||
|
||||
Function .onInstSuccess
|
||||
${MementoSectionSave}
|
||||
UAC::Unload ;Must call unload!
|
||||
FunctionEnd
|
||||
|
||||
Function .onInstFailed
|
||||
UAC::Unload ;Must call unload!
|
||||
FunctionEnd
|
||||
|
||||
##############################################################################
|
||||
# #
|
||||
# NSIS Uninstaller Event Handler Functions #
|
||||
# #
|
||||
##############################################################################
|
||||
|
||||
Function un.onInit
|
||||
UAC_Elevate:
|
||||
UAC::RunElevated
|
||||
StrCmp 1223 $0 UAC_ElevationAborted ; UAC dialog aborted by user?
|
||||
StrCmp 0 $0 0 UAC_Err ; Error?
|
||||
StrCmp 1 $1 0 UAC_Success ;Are we the real deal or just the wrapper?
|
||||
Quit
|
||||
|
||||
UAC_Err:
|
||||
MessageBox MB_ICONSTOP "Unable to elevate, error $0"
|
||||
Abort
|
||||
|
||||
UAC_ElevationAborted:
|
||||
Abort
|
||||
|
||||
UAC_Success:
|
||||
StrCmp 1 $3 +4 ;Admin?
|
||||
StrCmp 3 $1 0 UAC_ElevationAborted ;Try again?
|
||||
MessageBox MB_ICONSTOP "This uninstaller requires admin access, try again"
|
||||
goto UAC_Elevate
|
||||
|
||||
;Prevent multiple instances.
|
||||
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "tomahawkUninstaller") i .r1 ?e'
|
||||
Pop $R0
|
||||
StrCmp $R0 0 +3
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "This uninstaller is already running."
|
||||
Abort
|
||||
FunctionEnd
|
||||
|
||||
Function un.onUnInstSuccess
|
||||
UAC::Unload ;Must call unload!
|
||||
FunctionEnd
|
||||
|
||||
Function un.onUnInstFailed
|
||||
UAC::Unload ;Must call unload!
|
||||
FunctionEnd
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
@@ -1,84 +1,20 @@
|
||||
#!/bin/bash
|
||||
echo "Remove old vlc dir..."
|
||||
#rm -vf vlc-*.7z
|
||||
rm -rf vlc/
|
||||
|
||||
if [ "$1" = "-c" ] ; then
|
||||
echo "Continuing last download.."
|
||||
rm -rvf vlc/
|
||||
else
|
||||
echo "Update archive..."
|
||||
fi
|
||||
|
||||
rm -rvf vlc/
|
||||
|
||||
|
||||
echo "Download phonon archive..."
|
||||
# wget -c "http://downloads.sourceforge.net/project/vlc/1.1.9/win32/vlc-1.1.9-win32.7z?r=http%3A%2F%2Fwww.videolan.org%2Fvlc%2Fdownload-windows.html&ts=1306272584&use_mirror=leaseweb"
|
||||
# wget -c "http://download.tomahawk-player.org/tomahawk-vlc-0.1.zip"
|
||||
# wget -c http://people.videolan.org/~jb/phonon/phonon-vlc-last.7z
|
||||
# wget -c http://people.videolan.org/~jb/phonon/phonon_phonon-vlc_20111128.7z
|
||||
wget -c http://download.tomahawk-player.org/test/vlc.tar.bz2
|
||||
echo "Download specified binary..."
|
||||
#wget -c "http://downloads.sourceforge.net/project/vlc/1.1.9/win32/vlc-1.1.9-win32.7z?r=http%3A%2F%2Fwww.videolan.org%2Fvlc%2Fdownload-windows.html&ts=1306272584&use_mirror=leaseweb"
|
||||
wget -c "http://nightlies.videolan.org/build/win32/trunk-20110524-1321/vlc-1.2.0-git-20110524-1321-win32.7z"
|
||||
|
||||
echo "Extract binary..."
|
||||
# 7z x phonon*.7z
|
||||
# mv -v vlc-*/ vlc/
|
||||
# unzip tomahawk-vlc-0.1.zip
|
||||
tar xvjf vlc.tar.bz2
|
||||
|
||||
# echo "Download phonon_vlc_no_video.dll..."
|
||||
# wget -c http://people.videolan.org/~jb/phonon/phonon_vlc_no_video.dll
|
||||
# cp -v phonon_vlc_no_video.dll prefix/bin/phonon_backend/phonon_vlc.dll
|
||||
|
||||
# echo "Strip unneeded plugins from vlc/plugins..."
|
||||
# cd prefix/bin/plugins
|
||||
# rm -rvf libold* libvcd* libdvd* liblibass* libx264* libschroe* liblibmpeg2* \
|
||||
# libstream_out_* libmjpeg_plugin* libh264_plugin* libzvbi_plugin* lib*sub* \
|
||||
# *qt4* *skins2* libaccess_bd_plugin.dll \
|
||||
# libaudiobargraph_* libball_plugin.dll \
|
||||
# libdirac_plugin.dll \
|
||||
# libgnutls_plugin.dll \
|
||||
# libcaca_plugin.dll \
|
||||
# libfreetype_plugin.dll \
|
||||
# libaccess_output_shout_plugin.dll \
|
||||
# libremoteosd_plugin.dll \
|
||||
# libsdl_image_plugin.dll \
|
||||
# libvout_sdl_plugin.dll \
|
||||
# libpng_plugin.dll \
|
||||
# libgoom_plugin.dll \
|
||||
# libatmo_plugin.dll \
|
||||
# libmux_ts_plugin.dll \
|
||||
# libkate_plugin.dll \
|
||||
# libtaglib_plugin.dll
|
||||
|
||||
|
||||
# this is for vlc-2.x
|
||||
cd vlc/plugins
|
||||
rm -rvf \
|
||||
video_*/ \
|
||||
gui/ \
|
||||
**/libold* \
|
||||
**/libvcd* \
|
||||
**/libdvd* \
|
||||
**/liblibass* \
|
||||
**/libx264* \
|
||||
**/libschroe* \
|
||||
**/liblibmpeg2* \
|
||||
**/libstream_out_* \
|
||||
**/libmjpeg_plugin* \
|
||||
**/libh264_plugin* \
|
||||
**/libzvbi_plugin* \
|
||||
**/lib*sub* \
|
||||
services_discovery/ \
|
||||
visualization/ \
|
||||
control/ \
|
||||
**/libi420* \
|
||||
**/libi422* \
|
||||
mux/ \
|
||||
stream_filter/ \
|
||||
**/libtheora_plugin* \
|
||||
**/liblibbluray_plugin* \
|
||||
**/libdtv_plugin* \
|
||||
**/*.dll.a \
|
||||
**/*.la \
|
||||
misc/liblogger_plugin*
|
||||
7z x vlc-*.7z
|
||||
mv -v vlc-*/ vlc/
|
||||
|
||||
echo "Strip unneeded plugins from vlc/plugins..."
|
||||
cd vlc/plugins/
|
||||
rm -rvf video_*/ gui/ */libold* */libvcd* */libdvd* */liblibass* */libx264* */libschroe* */liblibmpeg2* \
|
||||
*/libstream_out_* */libmjpeg_plugin* */libh264_plugin* */libzvbi_plugin* */lib*sub*
|
||||
|
||||
echo "Downloaded and stripped VLC"
|
||||
|
||||
|
@@ -1,92 +0,0 @@
|
||||
Copyright (c) 2009-2011 by Accademia di Belle Arti di Urbino and students of MA course of Visual design. Some rights reserved.
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
BIN
data/icons/audio-x-generic-16x16.png
Normal file
After Width: | Height: | Size: 643 B |
BIN
data/icons/audio-x-generic-22x22.png
Normal file
After Width: | Height: | Size: 856 B |
BIN
data/icons/audio-x-generic-32x32.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 110 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.9 KiB |
@@ -1,14 +1,302 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
|
||||
<title>tomahawk-icon-512x512</title>
|
||||
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
|
||||
<defs></defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
|
||||
<g id="Oval-1-+-Shape" sketch:type="MSLayerGroup" transform="translate(18.000000, 19.000000)">
|
||||
<g id="Oval-1" transform="translate(0.927734, 0.927734)" fill-opacity="0.9" fill="#FFFFFF" sketch:type="MSShapeGroup">
|
||||
<path d="M236.572266,473.144531 C367.227527,473.144531 473.144531,367.227527 473.144531,236.572266 C473.144531,105.917005 367.227527,0 236.572266,0 C105.917005,0 0,105.917005 0,236.572266 C0,367.227527 105.917005,473.144531 236.572266,473.144531 Z"></path>
|
||||
</g>
|
||||
<path d="M237.385542,0 C106.48012,0 -1.70530257e-13,106.48012 -1.70530257e-13,237.356928 C-1.70530257e-13,368.239458 106.48012,474.713855 237.385542,474.713855 C368.262349,474.713855 474.748193,368.239458 474.748193,237.356928 C474.74247,106.48012 368.262349,0 237.385542,0 L237.385542,0 Z M336.706325,394.261446 L336.706325,123.946386 L285.51506,123.946386 L280.07259,123.946386 L280.07259,215.672892 L152.234639,125.211145 C150.191566,123.774699 147.50753,123.58012 145.241265,124.684639 C142.975,125.875 141.567169,128.221386 141.567169,130.710843 L141.567169,342.761145 C141.567169,345.250602 142.975,347.574096 145.241265,348.73012 C146.208434,349.285241 147.284337,349.508434 148.337349,349.508434 C149.687952,349.508434 151.095783,349.062048 152.234639,348.289458 L280.07259,257.833434 L280.07259,418.137349 C266.343373,421.393675 252.081928,423.219277 237.385542,423.219277 C134.882831,423.219277 51.5231928,339.836747 51.5231928,237.362651 C51.5231928,134.888554 134.877108,51.5289157 237.385542,51.5289157 C339.859639,51.5289157 423.247892,134.882831 423.247892,237.362651 C423.242169,303.336145 388.647289,361.274699 336.706325,394.261446 L336.706325,394.261446 Z" id="Shape" fill="#FF004C" sketch:type="MSShapeGroup"></path>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="841.89px" height="595.28px" viewBox="0 0 841.89 595.28" enable-background="new 0 0 841.89 595.28" xml:space="preserve">
|
||||
<path fill="#010101" d="M543.773,253.359c0-49.962-19.305-86.572-54.194-104.54C477.838,71.133,405.027,13.418,316.568,13.418
|
||||
c-86.917,0-159.483,56.481-172.605,132.58c-38.049,16.818-59.889,55.24-59.889,107.361c0,27.029,7.186,51.825,20.321,71.748
|
||||
c-1.816,1.566-3.444,3.283-4.768,5.24c0,0,2.582,2.36,3.689,3.374c-4.262,2.123-8.22,4.322-11.555,6.669
|
||||
c0,0,3.022,7.355,5.898,14.352c-11.991,9.687-21.314,18.92-27.553,27.51c0,0,1.612,1.789,2.011,2.224
|
||||
c-12.355,9.158-22.133,18.206-28.528,27.021c0,0,6.925,7.351,12.408,13.167c-17.824,28.759-43.348,74.85-43.348,102.987
|
||||
c0,3.281,0.346,6.318,1.093,9.054c1.764,6.442,5.752,11.437,11.229,14.058c15.255,7.311,39.648-6.364,72.589-40.434
|
||||
c-0.828,8.288-1.457,16.663-1.457,24.737c0,16.804,2.266,32.07,8.77,41.249c4.886,6.895,10.898,9.07,15.084,9.683
|
||||
c6.721,0.989,26.375,3.796,57.992-61.296c2.678,0.705,5.421,1.179,8.235,1.179c8.798,0,17.067-3.425,23.287-9.639
|
||||
c4.286-4.288,7.133-9.584,8.562-15.313c7.516-2.129,14.555-6.702,20.779-13.191c19.563,24.861,44.78,37.643,75.38,37.643
|
||||
c7.318,0,14.474-0.755,21.281-2.243c0.392-0.075,2.555-0.622,2.555-0.622l0.62-0.167c23.05-5.824,42.463-20.41,58-43.254
|
||||
c7.2,9.231,15.733,15.994,24.849,19.458c1.139,6.658,4.224,12.806,9.1,17.69c6.22,6.214,14.488,9.639,23.288,9.639
|
||||
c8.798,0,17.065-3.425,23.285-9.639c6.221-6.228,9.649-14.494,9.649-23.292s-3.429-17.066-9.649-23.294
|
||||
c-2.988-2.988-6.476-5.296-10.248-6.923c0.277-2.947,0.613-5.848,0.613-9.007c0-10.031-1.4-20.982-4.192-31.9
|
||||
c-1.196-4.672-2.757-8.745-4.511-12.567c2.838-6.467,4.805-13.268,4.805-20.426c0-7.317-1.74-14.422-4.706-21.011
|
||||
C509.263,358.346,543.773,313.068,543.773,253.359z M451.232,150.998c-33.395-54.619-88.048-93.359-134.569-85.472
|
||||
c-49.024-7.864-102.777,30.64-135.326,85.018c-2.648,0.208-5.278,0.497-7.875,0.88c8.694-54.414,69.429-111.108,143.107-111.108
|
||||
c74.113,0,135.141,57.197,143.269,112.08C457.013,151.799,454.137,151.348,451.232,150.998z"/>
|
||||
<path fill="#010101" stroke="#FFFFFF" stroke-width="4.8437" d="M110.937,367.38c-72.03,93.07-97.843,163.348-81.865,170.997
|
||||
c15.97,7.654,74.912-46.056,139.701-143.288c45.751-68.648,60.797-94.429,45.68-95.922l20.614-43.357l-10.685-6.644l-33.912,33.371
|
||||
C179.323,272.615,166.073,296.146,110.937,367.38z"/>
|
||||
<path fill="#010101" stroke="#FFFFFF" stroke-width="4.8437" d="M140.932,379.755c-39.099,113.042-39.738,189.89-20.813,192.654
|
||||
c18.912,2.787,59.039-67.616,89.306-182.6c21.381-81.178,27.255-111.03,11.438-108.001l5.133-48.806l-13.207-3.354l-22.194,42.936
|
||||
C175.736,266.142,170.865,293.244,140.932,379.755z"/>
|
||||
<circle fill="none" stroke="#010101" stroke-width="4.8437" cx="410.28" cy="388.831" r="37.801"/>
|
||||
<path fill="#ED2224" stroke="#010101" stroke-width="4.8437" d="M475.237,157.792c-7.115-73.197-76.231-130.645-160.495-130.645
|
||||
c-83.402,0-152.009,56.27-160.306,128.393c-39.809,13.607-58.455,52.219-58.455,97.818c0,56.947,34.681,103.109,89.925,103.109
|
||||
c35.784,0,67.089-19.432,84.771-48.551c14.01,3.533,28.778,5.463,44.066,5.463c13.16,0,25.932-1.438,38.173-4.077
|
||||
c17.966,28.357,49.108,47.165,84.604,47.165c55.665,0,90.696-46.162,90.696-103.109
|
||||
C528.216,210.073,512.208,173.073,475.237,157.792z M314.742,274.908c-10.501,0-20.723-0.878-30.584-2.506
|
||||
c1.125-6.177,1.778-12.527,1.778-19.043c0-56.941-44.786-103.104-100.03-103.104c-4.858,0-9.597,0.478-14.271,1.169
|
||||
c8.694-54.414,69.43-111.108,143.107-111.108c74.113,0,135.142,57.197,143.268,112.08c-6.617-1.398-13.471-2.141-20.49-2.141
|
||||
c-55.675,0-100.801,46.163-100.801,103.104c0,6.852,0.687,13.536,1.931,20.013C330.872,274.364,322.888,274.908,314.742,274.908z"/>
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-55.6953" y1="95.2363" x2="39.7773" y2="95.2363" gradientTransform="matrix(-0.3782 -0.8348 1.083 -0.4907 70.5233 338.0542)">
|
||||
<stop offset="0" style="stop-color:#010101"/>
|
||||
<stop offset="0.2606" style="stop-color:#3E221C"/>
|
||||
<stop offset="0.7732" style="stop-color:#B03126"/>
|
||||
<stop offset="1" style="stop-color:#ED2224"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_1_)" d="M153.69,260.35c31.322-14.19,65.739-18.887,77.129,6.254c11.391,25.14-4.763,57.027-36.091,71.213
|
||||
c-31.323,14.194-65.948,5.312-77.338-19.829C106,292.849,122.366,274.543,153.69,260.35z"/>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-180.8516" y1="181.2642" x2="-85.3789" y2="181.2642" gradientTransform="matrix(-0.9008 -0.3607 0.555 -1.386 252.7537 479.2919)">
|
||||
<stop offset="0" style="stop-color:#B11F24"/>
|
||||
<stop offset="0.1017" style="stop-color:#B62024"/>
|
||||
<stop offset="1" style="stop-color:#ED2224"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_2_)" d="M427.738,265.165c16.043-40.085,41.342-74.985,68.473-64.122
|
||||
c27.122,10.86,36.111,52.165,20.056,92.248c-16.053,40.089-51.062,63.772-78.189,52.911
|
||||
C410.95,335.343,411.683,305.253,427.738,265.165z"/>
|
||||
<path fill="#010101" stroke="#010101" stroke-width="4.8437" d="M448.219,425.226c7.776,30.397,3.982,62.358-14.521,62.358
|
||||
c-16.301,0-34.904-17.333-42.675-47.733c-7.777-30.4,4.243-75.016,14.521-62.365C423.583,399.707,440.442,394.825,448.219,425.226z"
|
||||
/>
|
||||
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="217.0322" y1="557.499" x2="165.1699" y2="467.6709" gradientTransform="matrix(0.9868 0.0515 0.0515 0.7987 -5.5217 21.3475)">
|
||||
<stop offset="0" style="stop-color:#5B3E1D"/>
|
||||
<stop offset="0.1121" style="stop-color:#42301B"/>
|
||||
<stop offset="0.2377" style="stop-color:#2E2316"/>
|
||||
<stop offset="0.3753" style="stop-color:#1D1710"/>
|
||||
<stop offset="0.5292" style="stop-color:#0E0C08"/>
|
||||
<stop offset="0.7122" style="stop-color:#030302"/>
|
||||
<stop offset="1" style="stop-color:#000000"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_3_)" stroke="#010101" stroke-width="4.8437" d="M184.076,437.859c-6.111,23.875,1.745,46.508,17.54,50.549
|
||||
c15.79,4.039,33.552-12.045,39.658-35.924c6.101-23.881-9.153-57.129-24.947-61.17C200.537,387.275,190.178,413.973,184.076,437.859
|
||||
z"/>
|
||||
<path fill="#010101" stroke="#010101" stroke-width="4.8437" d="M314.837,65.525c72.755-12.333,165.503,89.311,165.503,187.528
|
||||
c0,98.215-74.305,162.834-165.707,162.834"/>
|
||||
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="194.4072" y1="374.3564" x2="358.2427" y2="90.5851">
|
||||
<stop offset="0" style="stop-color:#000000"/>
|
||||
<stop offset="1" style="stop-color:#5B3E1D"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_4_)" stroke="#010101" stroke-width="4.8437" d="M314.634,415.888c-91.402,0-165.297-64.619-165.297-162.834
|
||||
c0-98.218,88.615-199.862,165.5-187.528"/>
|
||||
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="297.3164" y1="139.4717" x2="418.2684" y2="-70.0234" gradientTransform="matrix(-0.6092 0.7802 -0.4118 -0.3216 476.7253 -96.4624)">
|
||||
<stop offset="0" style="stop-color:#8B654B"/>
|
||||
<stop offset="1" style="stop-color:#000000"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_5_)" d="M169.611,266.578c-27.578-21.539-16.863-81.354,23.935-133.604
|
||||
c40.802-52.245,93.808-72.894,126.21-59.689c26.67,10.864,14.474,85.434-26.328,137.681
|
||||
C252.63,263.215,197.193,288.112,169.611,266.578z"/>
|
||||
<circle fill="#010101" cx="214.367" cy="388.831" r="34.682"/>
|
||||
<g>
|
||||
<path fill="#F4DFED" d="M131.831,427.709c-23.973,79.733-18.741,132.267-9.011,135.459c10.855,3.563,43.561-47.223,60.839-128.324
|
||||
c12.189-57.265,11.727-83.75,0.009-81.625l3.505-31.111l-8.901-2.432l-14.271,32.445
|
||||
C152.554,347.564,150.184,366.689,131.831,427.709z"/>
|
||||
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="148.1519" y1="319.6758" x2="148.1518" y2="563.168">
|
||||
<stop offset="0" style="stop-color:#571A54"/>
|
||||
<stop offset="0.2641" style="stop-color:#7C5378"/>
|
||||
<stop offset="0.528" style="stop-color:#A78AA3"/>
|
||||
<stop offset="0.7459" style="stop-color:#CDBCCB"/>
|
||||
<stop offset="0.9095" style="stop-color:#EAE1E8"/>
|
||||
<stop offset="1" style="stop-color:#F9F3F8"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_6_)" d="M146.41,479.117l-22.914,19.186l35.325-65.182l4.683-17.371c0,0,3.098-26.758-24.228,14.713
|
||||
c16.962-56.432,32.317-62.998,32.317-62.998l11.404-46.658l-4.725-1.131l-14.702,30.23c-11.429-4.588-13.859,14.521-32.392,75.485
|
||||
c-24.224,79.655-20.501,124.085-8.358,137.776L146.41,479.117z"/>
|
||||
|
||||
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="75.7998" y1="402.9658" x2="43.9086" y2="490.7602" gradientTransform="matrix(0.9399 -0.3414 0.3414 0.9399 -44.7892 56.207)">
|
||||
<stop offset="0" style="stop-color:#802986"/>
|
||||
<stop offset="0.2641" style="stop-color:#9D66A2"/>
|
||||
<stop offset="0.528" style="stop-color:#BE9BC2"/>
|
||||
<stop offset="0.7459" style="stop-color:#DBC8DE"/>
|
||||
<stop offset="0.9095" style="stop-color:#F0E6F1"/>
|
||||
<stop offset="1" style="stop-color:#F9F3F8"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_7_)" d="M147.332,501.478l31.839-92.4c0,0,6.608,60.692-7.474,93.405
|
||||
c1.438-44.878-2.328-36.951-9.176-25.254C159.71,482.03,147.332,501.478,147.332,501.478z"/>
|
||||
|
||||
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="100.2559" y1="370.0205" x2="67.8228" y2="459.3065" gradientTransform="matrix(0.9399 -0.3414 0.3414 0.9399 -44.7892 56.207)">
|
||||
<stop offset="0" style="stop-color:#802986"/>
|
||||
<stop offset="0.2641" style="stop-color:#9D66A2"/>
|
||||
<stop offset="0.528" style="stop-color:#BE9BC2"/>
|
||||
<stop offset="0.7459" style="stop-color:#DBC8DE"/>
|
||||
<stop offset="0.9095" style="stop-color:#F0E6F1"/>
|
||||
<stop offset="1" style="stop-color:#F9F3F8"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_8_)" d="M156.286,463.716l38.825-93.952c0,0,2.251,62.278-11.831,94.991
|
||||
c-0.298-44.249-5.388-28.089-8.538-23.508C165.662,454.416,156.286,463.716,156.286,463.716z"/>
|
||||
|
||||
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="19.1768" y1="337.1123" x2="-32.4432" y2="389.2988" gradientTransform="matrix(0.711 -0.7032 0.7032 0.711 -56.5767 131.5096)">
|
||||
<stop offset="0" style="stop-color:#571A54"/>
|
||||
<stop offset="0.2641" style="stop-color:#7C5378"/>
|
||||
<stop offset="0.528" style="stop-color:#A78AA3"/>
|
||||
<stop offset="0.7459" style="stop-color:#CDBCCB"/>
|
||||
<stop offset="0.9095" style="stop-color:#EAE1E8"/>
|
||||
<stop offset="1" style="stop-color:#F9F3F8"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_9_)" d="M180.916,431.115l9.787-73.404c0,0,18.589,43.111,16.428,71.425
|
||||
c-11.773-30.423-13.671-21.048-17.578-14.96C187.396,417.538,180.916,431.115,180.916,431.115z"/>
|
||||
<path fill="#1E3D73" d="M174.914,335.556L158.76,362.31l-23.24,76.647c0,0,1.211-8.173,1.788-15.883l-18.783,50.773
|
||||
c0,0,8.386-31.226,3.609-28.382c-4.777,2.84,4.225-21.91-23.102,13.729c5.316-18.514,20.495-39.508,33.324-54.9
|
||||
c-2.172,0.474-7.1,4.788-18.387,18.374c4.38-15.232,14.957-32.934,25.358-47.898c-1.159-2.683-5.151-3.889-21.234,5.221
|
||||
C134.366,356.719,174.914,335.556,174.914,335.556z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#F4DFED" d="M94.453,401.163c-49.752,66.752-62.779,117.913-54.719,124.242c8.987,7.059,57.064-29.51,100.989-99.844
|
||||
c31.011-49.657,39.62-74.709,27.879-76.714l13.916-28.052l-7.539-5.319L150.496,341.1
|
||||
C141.291,332.911,132.531,350.072,94.453,401.163z"/>
|
||||
<path fill="#656B84" d="M90.603,454.464L62.515,464.67l55.456-49.201l10.331-14.731c0,0,12.047-24.096-27.794,5.558
|
||||
c35.211-47.255,51.89-48.182,51.89-48.182l26.641-39.956l-4.058-2.681l-24.133,23.399c-9.177-8.222-17.989,8.911-56.224,59.885
|
||||
c-49.96,66.6-61.634,109.635-54.889,126.645L90.603,454.464z"/>
|
||||
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="106.2383" y1="485.0312" x2="121.9901" y2="395.6984">
|
||||
<stop offset="0" style="stop-color:#571A54"/>
|
||||
<stop offset="0.2641" style="stop-color:#7C5378"/>
|
||||
<stop offset="0.528" style="stop-color:#A78AA3"/>
|
||||
<stop offset="0.7459" style="stop-color:#CDBCCB"/>
|
||||
<stop offset="0.9095" style="stop-color:#EAE1E8"/>
|
||||
<stop offset="1" style="stop-color:#F9F3F8"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_10_)" d="M83.829,475.791l61.474-75.981c0,0-14.507,59.304-38.916,85.248
|
||||
c16.678-41.696,12.058-33.368,0-26.873C101.491,460.821,83.829,475.791,83.829,475.791z"/>
|
||||
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="130.9844" y1="453.7012" x2="146.8758" y2="363.5764">
|
||||
<stop offset="0" style="stop-color:#571A54"/>
|
||||
<stop offset="0.2641" style="stop-color:#7C5378"/>
|
||||
<stop offset="0.528" style="stop-color:#A78AA3"/>
|
||||
<stop offset="0.7459" style="stop-color:#CDBCCB"/>
|
||||
<stop offset="0.9095" style="stop-color:#EAE1E8"/>
|
||||
<stop offset="1" style="stop-color:#F9F3F8"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_11_)" d="M105.143,443.356l68.564-75.05c0,0-19.143,59.297-43.551,85.248
|
||||
c14.824-41.701,10.567-27.993,0-25.023C124.802,430.041,105.143,443.356,105.143,443.356z"/>
|
||||
<path fill="#656B84" d="M139.423,421.124l34.26-65.654c0,0,2.748,46.867-8.945,72.74c-0.676-32.615-3.041-28.432-11.413-20.06
|
||||
C150.5,410.974,139.423,421.124,139.423,421.124z"/>
|
||||
<path fill="#656B84" d="M166.408,329.256l-24.322,19.63l-48.011,64.112c0,0,3.931-7.274,7.104-14.322l-34.994,41.313
|
||||
c0,0,18.552-26.484,13.089-25.448c-5.464,1.04,11.451-19.148-26.399,5.019c11.313-15.587,32.751-30.137,50.064-40.227
|
||||
c-2.205-0.298-8.316,2.077-23.552,10.989c9.313-12.818,25.302-25.842,40.183-36.357c-0.175-2.919-3.515-5.416-21.74-2.346
|
||||
C121.065,335.3,166.408,329.256,166.408,329.256z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#D9AF82" enable-background="new " d="M315.05,115.063c-50.514,0-83.218,15.021-109.641,64.839
|
||||
c-2.502,4.713-0.232,14.337-2.796,19.152c-13.845,26.007-37.089,48.236-37.089,71.707c0,34.337,19.1,65.637,42.505,89.297
|
||||
c12.185,71.644,34.7,151.593,104.339,151.593"/>
|
||||
<path fill="#010101" d="M203.271,178.766c-1.519,2.855-1.59,6.774-1.656,10.562c-0.062,3.283-0.123,6.677-1.14,8.588
|
||||
c-4.537,8.519-10.146,16.707-15.577,24.624c-11.21,16.353-21.797,31.798-21.797,48.221c0,30.307,15.166,62.382,42.666,90.413
|
||||
c12.578,73.606,36.115,150.477,106.6,150.477v-1.546c-67.084,0-89.722-78.554-101.95-150.453l-0.127-0.748l-0.54-0.549
|
||||
c-26.957-27.255-41.805-58.361-41.805-87.594c0-14.923,10.174-29.766,20.949-45.482c5.501-8.027,11.192-16.327,15.857-25.087
|
||||
c1.56-2.935,1.636-6.92,1.707-10.773c0.057-3.221,0.118-6.551,1.088-8.381c24.256-45.734,54.398-65.974,107.503-65.974v-2.422
|
||||
C259.849,112.641,228.506,131.181,203.271,178.766z"/>
|
||||
</g>
|
||||
<path fill="#8B654B" d="M312.368,511.65c72.045,0,92.163-79.949,104.338-151.593c23.405-23.66,42.512-54.96,42.512-89.297
|
||||
c0-37.004-22.588-49.51-38.609-77.154c-5.681-9.798-1.496-24.634-8.084-33.382c-26.905-35.728-53.772-45.162-97.475-45.162"/>
|
||||
<ellipse fill="#D9AF82" cx="313.792" cy="343.947" rx="21.906" ry="68.144"/>
|
||||
<path fill="#8B654B" d="M342.916,373.454c0,7.813-14.98,12.535-27.275,12.535c-12.293,0-27.808-4.735-27.808-12.549
|
||||
c3.43-3.43,15.246,4.886,27.544,4.886C334.789,378.326,342.916,312.495,342.916,373.454z"/>
|
||||
<path fill="#D9AF82" d="M335.697,435.217c0,37.637-9.81,68.831-21.91,68.831c-12.096,0-21.901-31.194-21.901-68.831
|
||||
c0-37.639,9.882-50.259,21.977-50.259C325.962,384.958,335.697,397.578,335.697,435.217z"/>
|
||||
<path opacity="0.36" fill="#8A644B" d="M328.365,281.605c-1.826,24.681-14.186-7.573-34.757,20.974
|
||||
c-8.672,12.026-23.23,10.877-38.845,10.877c-39.61,0-66.544-26.03-67.859-38.868c-2.517-24.557,29.024-39.586,71.464-39.586
|
||||
C297.028,235.002,329.255,269.622,328.365,281.605z"/>
|
||||
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="214.7554" y1="341.0537" x2="290.4385" y2="341.0537">
|
||||
<stop offset="0" style="stop-color:#D9AF82"/>
|
||||
<stop offset="0.0786" style="stop-color:#DFB791"/>
|
||||
<stop offset="0.2053" style="stop-color:#E7C1A5"/>
|
||||
<stop offset="0.345" style="stop-color:#EDC9B5"/>
|
||||
<stop offset="0.5023" style="stop-color:#F1CFC0"/>
|
||||
<stop offset="0.6917" style="stop-color:#F4D3C7"/>
|
||||
<stop offset="1" style="stop-color:#F5D4C9"/>
|
||||
</linearGradient>
|
||||
<path opacity="0.36" fill="url(#SVGID_12_)" d="M272.246,361.529c-28.722,19.46-56.346-24.299-57.491-43.314
|
||||
c15.913,13.821,62.032,18.457,75.683-2.517L272.246,361.529z"/>
|
||||
<path opacity="0.36" fill="#8A644B" d="M313.706,461.213c-38.167,0-61.231-13.681-61.231-31.63c0-6.048,15.651-24.078,37.32-49.365
|
||||
c5.952-3.699,7.464,10.038,14.958,4.731C331.61,392.044,328.318,461.213,313.706,461.213z"/>
|
||||
<g>
|
||||
<path fill="#8A644B" d="M260.464,472.116c8.339,23.94,32.817,36.466,52.688,36.466v-4.845
|
||||
C294.99,503.737,268.056,493.921,260.464,472.116L260.464,472.116z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#8A644B" d="M180.954,271.658c0,21.359,5.388,36.679,27.099,48.222c0.587,1.121,7.021,13.387,7.021,13.387
|
||||
c8.916,16.375,19.02,34.94,19.02,54.406h4.844c0-20.699-10.416-39.839-19.612-56.725l-7.586-14.455l-0.709-0.426
|
||||
C190.509,305.4,180.954,291.289,180.954,271.658L180.954,271.658z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#010101" d="M208.814,230.649l-0.104-0.97c-3.108-15.25-3.226-33.651-0.312-49.217l-4.764-0.889
|
||||
C200.613,195.722,205.583,214.815,208.814,230.649z"/>
|
||||
</g>
|
||||
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="191.0591" y1="310.5205" x2="451.5771" y2="310.5205">
|
||||
<stop offset="0" style="stop-color:#5B3E1D"/>
|
||||
<stop offset="1" style="stop-color:#010101"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_13_)" d="M423.943,199.054c-3.983-11.059-0.737-20.853-8.061-31.231
|
||||
c-19.885-28.185-51.072-56.27-108.998-52.618l5.212,140.363c0,0-122.733-25.589-121.021,15.935c0.227,5.387,40.188,2.88,63.46,4.428
|
||||
c-26.092,4.566-32.185,5.898-32.185,8.838c0,6.206,21.863,0.683,25.108,2.467c4.976,2.739-43.139,7.052-34.351,8.757
|
||||
c10.057,1.951,44.474,3.086,57.444,3.086c28.929,0,41.077-25.412,41.077-4.485c7.346,27.893,14.739,59.24,13.972,69.882
|
||||
c-1.475,20.662-19.62,20.188-19.62,20.188l5.089,24.285c-8.557,0.439-6.245-1.324-13.85-0.549
|
||||
c-14.427,0-32.354,13.032-32.354,16.054l39.989,0.435c0,0-29.081,13.771-22.975,22.928c4.763,7.143,20.316,13.378,31.091,13.424
|
||||
c0,0,3.273,8.55,3.273,22.352c0,13.811-4.035,22.565-4.035,22.565c46.171,0,67.49-49.036,80.324-118.446
|
||||
c6.083-32.876,20.018-58.106,36.034-71.657c15.742-13.321,23.008-26.641,23.008-52.071
|
||||
C451.577,249.847,443.574,230.354,423.943,199.054z"/>
|
||||
<path fill="#D9AF82" d="M325.395,252.416l-13.297,4.328c0,0-65.848-96.356-46.493-121.312
|
||||
c12.682-16.357,24.611-18.136,40.046-19.238c13.519-0.965,21.294,16.525,27.302,24.271
|
||||
C350.375,162.927,325.395,252.416,325.395,252.416z"/>
|
||||
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="260.7119" y1="113.4033" x2="349.5527" y2="113.4033" gradientTransform="matrix(0.676 0.6564 -0.9247 0.9523 168.3961 -132.5865)">
|
||||
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||
<stop offset="0.0769" style="stop-color:#F4E9DD"/>
|
||||
<stop offset="0.1814" style="stop-color:#EBD6BF"/>
|
||||
<stop offset="0.2951" style="stop-color:#E5C7A8"/>
|
||||
<stop offset="0.419" style="stop-color:#DFBC96"/>
|
||||
<stop offset="0.5585" style="stop-color:#DCB58B"/>
|
||||
<stop offset="0.7265" style="stop-color:#DAB084"/>
|
||||
<stop offset="1" style="stop-color:#D9AF82"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_14_)" d="M305.253,199.27c-26.745,27.542-70.168,41.961-81.283,24.357
|
||||
c-14.513-22.972-12.896-47.545,13.854-75.082c26.74-27.547,64.922-33.847,85.28-14.081
|
||||
C343.464,154.233,332.003,171.726,305.253,199.27z"/>
|
||||
<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="241.0796" y1="401.8057" x2="241.0796" y2="318.2148">
|
||||
<stop offset="0" style="stop-color:#D9AF82"/>
|
||||
<stop offset="0.1127" style="stop-color:#BD936E"/>
|
||||
<stop offset="0.2679" style="stop-color:#A57C5E"/>
|
||||
<stop offset="0.4437" style="stop-color:#966E53"/>
|
||||
<stop offset="0.6554" style="stop-color:#8D664D"/>
|
||||
<stop offset="1" style="stop-color:#8A644B"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_15_)" d="M272.246,361.529c0,46.274-35.419,42.799-45.106,36.896c0-45.751-17.227-80.21-17.227-80.21
|
||||
S249.882,354.221,272.246,361.529z"/>
|
||||
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="175.4648" y1="345.0176" x2="128.5757" y2="362.0838" gradientTransform="matrix(-1 0 0 1 538.9277 0)">
|
||||
<stop offset="0" style="stop-color:#382815"/>
|
||||
<stop offset="0.4081" style="stop-color:#553E2B"/>
|
||||
<stop offset="1" style="stop-color:#8B654B"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_16_)" d="M359.338,356.35c0,46.27,21.504,44.032,31.073,44.032c7.488-45.135,35.671-81.515,35.671-81.515
|
||||
S381.703,349.045,359.338,356.35z"/>
|
||||
<path fill="none" stroke="#010101" stroke-width="4.8437" d="M173.934,294.978"/>
|
||||
<g>
|
||||
<path fill="#010101" d="M311.507,115.089c53.106,0,83.247,20.214,107.503,65.948c0.904,1.702,0.904,4.883,0.904,7.96
|
||||
c-0.005,4.146-0.005,8.432,2.029,11.419c16.157,23.757,31.933,48.809,31.933,70.969c0,32.381-12.818,62.458-37.074,86.969
|
||||
l-0.541,0.549l-0.128,0.748c-12.222,71.899-36.672,150.453-103.765,150.453v1.517c70.499,0,95.847-76.845,108.416-150.456
|
||||
c24.801-25.335,37.935-56.354,37.935-89.78c0-23.537-16.19-49.311-32.774-73.694c-1.153-1.698-1.192-5.061-1.192-8.37
|
||||
c0-0.109,0.004-0.537,0.004-0.646c0-3.567-0.041-7.221-1.469-9.91c-25.237-47.585-56.579-66.125-111.78-66.125V115.089z"/>
|
||||
</g>
|
||||
<polygon fill="#010101" points="339.974,84.79 334.59,115.675 300.608,113.719 312.435,66.413 "/>
|
||||
<circle fill="#010101" stroke="#010101" stroke-width="4.8437" cx="452.06" cy="492.948" r="19.204"/>
|
||||
<g>
|
||||
<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="109.1782" y1="336.3027" x2="170.7935" y2="336.3027">
|
||||
<stop offset="0" style="stop-color:#571A54"/>
|
||||
<stop offset="0.2641" style="stop-color:#7C5378"/>
|
||||
<stop offset="0.528" style="stop-color:#A78AA3"/>
|
||||
<stop offset="0.7459" style="stop-color:#CDBCCB"/>
|
||||
<stop offset="0.9095" style="stop-color:#EAE1E8"/>
|
||||
<stop offset="1" style="stop-color:#F9F3F8"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_17_)" d="M109.178,338.034c9.592-7.823,34.696,4.862,34.833,4.862l26.782-8.396
|
||||
C170.211,334.501,120.246,321.648,109.178,338.034z"/>
|
||||
</g>
|
||||
<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="-102.0645" y1="221.0444" x2="-84.4219" y2="221.0444" gradientTransform="matrix(-0.0113 -0.7169 1.2476 -0.0198 36.6184 302.7065)">
|
||||
<stop offset="0" style="stop-color:#D9AF82"/>
|
||||
<stop offset="0.0786" style="stop-color:#DFB791"/>
|
||||
<stop offset="0.2053" style="stop-color:#E7C1A5"/>
|
||||
<stop offset="0.345" style="stop-color:#EDC9B5"/>
|
||||
<stop offset="0.5023" style="stop-color:#F1CFC0"/>
|
||||
<stop offset="0.6917" style="stop-color:#F4D3C7"/>
|
||||
<stop offset="1" style="stop-color:#F5D4C9"/>
|
||||
</linearGradient>
|
||||
<path opacity="0.36" fill="url(#SVGID_18_)" d="M313.352,358.852c6.074-0.1,11.045,2.653,11.102,6.149
|
||||
c0.058,3.49-4.829,6.399-10.907,6.498c-6.078,0.101-11.045-2.657-11.107-6.153C302.388,361.854,307.269,358.946,313.352,358.852z"/>
|
||||
<path fill="#483218" d="M397.109,309.378c15.699-3.759,26.445-18.402,20.099-27.063c-38.74,19.354-75.295,11.369-85.531,9.147
|
||||
C368.014,309.492,371.117,315.595,397.109,309.378z"/>
|
||||
<path fill="#B4B4B4" d="M310.92,73.714c-38.372,0-93.118,22.758-117.549,74.944c-6.089,12.999-6.656,32.87,0.638,45.014
|
||||
c0,0,18.604-81.43,108.231-86.494"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 5.0 KiB |
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="63px" height="63px" viewBox="0 0 63 63" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
|
||||
<title>Slice 1</title>
|
||||
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
|
||||
<defs>
|
||||
<radialGradient cx="50%" cy="0%" fx="50%" fy="0%" r="50%" id="radialGradient-1">
|
||||
<stop stop-color="#000000" offset="0%"></stop>
|
||||
<stop stop-color="#FFFFFF" offset="100%"></stop>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
|
||||
<path d="M39.4882425,50.1164605 L31,62 L22.2995024,49.8193034 C9.95141137,46.556924 1,36.9024496 1,25.5 C1,11.4167382 14.6553143,0 31.5,0 C48.3446857,0 62,11.4167382 62,25.5 C62,37.2723466 52.4583986,47.1814694 39.4882425,50.1164605 Z" id="Triangle-1" fill="#000000" sketch:type="MSShapeGroup"></path>
|
||||
<path d="M4.5,62 L56.5,62" id="Line" stroke="url(#radialGradient-1)" stroke-width="2" stroke-linecap="square" sketch:type="MSShapeGroup"></path>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="63px" height="63px" viewBox="0 0 63 63" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
|
||||
<title>Slice 1</title>
|
||||
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
|
||||
<defs>
|
||||
<radialGradient cx="50%" cy="0%" fx="50%" fy="0%" r="50%" id="radialGradient-1">
|
||||
<stop stop-color="#000000" offset="0%"></stop>
|
||||
<stop stop-color="#FFFFFF" offset="100%"></stop>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
|
||||
<path d="M39.4882425,50.1164605 L31,62 L22.2995024,49.8193034 C9.95141137,46.556924 1,36.9024496 1,25.5 C1,11.4167382 14.6553143,0 31.5,0 C48.3446857,0 62,11.4167382 62,25.5 C62,37.2723466 52.4583986,47.1814694 39.4882425,50.1164605 Z" id="Triangle-1" fill="#D6D6D6" sketch:type="MSShapeGroup"></path>
|
||||
<path d="M4.5,62 L56.5,62" id="Line" stroke="url(#radialGradient-1)" stroke-width="2" stroke-linecap="square" sketch:type="MSShapeGroup"></path>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="63px" height="63px" viewBox="0 0 63 63" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
|
||||
<title>Slice 1</title>
|
||||
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
|
||||
<defs>
|
||||
<radialGradient cx="50%" cy="0%" fx="50%" fy="0%" r="50%" id="radialGradient-1">
|
||||
<stop stop-color="#000000" offset="0%"></stop>
|
||||
<stop stop-color="#FFFFFF" offset="100%"></stop>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
|
||||
<path d="M39.4882425,50.1164605 L31,62 L22.2995024,49.8193034 C9.95141137,46.556924 1,36.9024496 1,25.5 C1,11.4167382 14.6553143,0 31.5,0 C48.3446857,0 62,11.4167382 62,25.5 C62,37.2723466 52.4583986,47.1814694 39.4882425,50.1164605 Z" id="Triangle-1" fill="#198DE7" sketch:type="MSShapeGroup"></path>
|
||||
<path d="M4.5,62 L56.5,62" id="Line" stroke="url(#radialGradient-1)" stroke-width="2" stroke-linecap="square" sketch:type="MSShapeGroup"></path>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.2 KiB |
BIN
data/images/account-settings.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
@@ -1,77 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
|
||||
<title>Slice 1</title>
|
||||
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
|
||||
<defs></defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
|
||||
<g id="icon_Connect1" sketch:type="MSLayerGroup">
|
||||
<g id="Layer_2"></g>
|
||||
<g id="Layer_3"></g>
|
||||
<g id="Layer_4"></g>
|
||||
<g id="Layer_5"></g>
|
||||
<g id="Layer_6"></g>
|
||||
<g id="Layer_8"></g>
|
||||
<g id="Layer_9"></g>
|
||||
<g id="Layer_10"></g>
|
||||
<g id="Layer_11"></g>
|
||||
<g id="Layer_12"></g>
|
||||
<g id="Layer_13"></g>
|
||||
<g id="Layer_14"></g>
|
||||
<g id="Layer_15"></g>
|
||||
<g id="Layer_16"></g>
|
||||
<g id="Layer_17"></g>
|
||||
<g id="Layer_18"></g>
|
||||
<g id="Layer_19"></g>
|
||||
<g id="Layer_20"></g>
|
||||
<g id="Layer_21"></g>
|
||||
<g id="Layer_24"></g>
|
||||
<g id="Layer_25"></g>
|
||||
<g id="Layer_26"></g>
|
||||
<g id="Layer_27"></g>
|
||||
<g id="Layer_28"></g>
|
||||
<g id="Layer_29"></g>
|
||||
<g id="Layer_47"></g>
|
||||
<g id="Layer_30"></g>
|
||||
<g id="Layer_31"></g>
|
||||
<g id="Layer_32"></g>
|
||||
<g id="Layer_33"></g>
|
||||
<g id="Layer_34"></g>
|
||||
<g id="Layer_35"></g>
|
||||
<g id="Layer_36"></g>
|
||||
<g id="Layer_37"></g>
|
||||
<g id="Layer_38"></g>
|
||||
<g id="Layer_39"></g>
|
||||
<g id="Layer_40"></g>
|
||||
<g id="Layer_41"></g>
|
||||
<g id="Layer_42"></g>
|
||||
<g id="Layer_43"></g>
|
||||
<g id="Layer_44"></g>
|
||||
<g id="Layer_45"></g>
|
||||
<g id="Layer_46"></g>
|
||||
<g id="Layer_48"></g>
|
||||
<g id="Layer_49"></g>
|
||||
<g id="Layer_51"></g>
|
||||
<g id="Layer_52"></g>
|
||||
<g id="Layer_53"></g>
|
||||
<g id="Layer_54" fill="#000000" sketch:type="MSShapeGroup">
|
||||
<g id="Group">
|
||||
<path d="M36,32.25 C35.25,33 34.5,33.375 34.125,34.125 C31.875,36 30,38.25 28.125,40.125 C25.125,37.5 22.5,34.5 19.875,31.875 L21.375,30.375 L27.75,24 C28.5,23.25 28.5,22.125 27.75,21.375 C27.375,20.625 26.25,20.625 25.5,21.375 C25.125,21.75 24.75,22.125 24.375,22.125 L16.875,29.625 C16.125,28.5 15.375,27.75 14.25,26.625 C12,29.25 9.375,31.5 7.5,34.125 C5.625,36.375 5.25,39 5.625,42 C5.625,44.25 6.75,46.5 7.875,48.375 L0.375,55.875 L4.125,59.625 L11.625,52.125 C16.125,54.75 20.625,55.125 25.5,52.5 C28.875,50.625 30.75,47.625 33.75,45 C32.625,44.25 31.875,43.125 30.75,42.375 L34.125,39 C35.625,37.5 37.125,36 39,34.5 C39.75,33.75 40.125,32.625 39.375,31.875 C37.875,31.5 36.75,31.5 36,32.25 L36,32.25 Z" id="Shape"></path>
|
||||
<path d="M60,3.75 L56.25,0 L48.75,7.5 C48.375,7.5 48.375,7.125 48,7.125 C43.5,4.875 38.625,4.5 34.125,7.5 C31.5,9.375 29.25,12 27,14.25 L45.75,33 C47.625,31.125 49.5,29.625 51.375,27.375 C53.625,24.75 54.75,21.375 54.375,18 C54.375,15.75 53.625,13.5 52.125,11.625 L60,3.75 L60,3.75 Z" id="Shape"></path>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Layer_55"></g>
|
||||
<g id="Layer_56"></g>
|
||||
<g id="Layer_57"></g>
|
||||
<g id="Layer_58"></g>
|
||||
<g id="Layer_59"></g>
|
||||
<g id="Layer_60"></g>
|
||||
<g id="Layer_61"></g>
|
||||
<g id="Layer_62"></g>
|
||||
<g id="Layer_63"></g>
|
||||
<g id="Layer_64"></g>
|
||||
<g id="Layer_65"></g>
|
||||
<g id="Layer_66"></g>
|
||||
<g id="Layer_50"></g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.8 KiB |
BIN
data/images/add.png
Normal file
After Width: | Height: | Size: 1.9 MiB |
@@ -1,82 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="68px" height="68px" viewBox="0 0 68 68" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
|
||||
<title>Slice 1</title>
|
||||
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
|
||||
<defs></defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
|
||||
<g id="list-remove" sketch:type="MSLayerGroup" transform="translate(34.500000, 33.500000) rotate(-45.000000) translate(-34.500000, -33.500000) translate(6.000000, 5.000000)">
|
||||
<g id="Page-1">
|
||||
<g id="list-remove">
|
||||
<g id="Page-1">
|
||||
<g id="icon_Cross">
|
||||
<g id="Layer_2"></g>
|
||||
<g id="Layer_3"></g>
|
||||
<g id="Layer_4"></g>
|
||||
<g id="Layer_5"></g>
|
||||
<g id="Layer_6"></g>
|
||||
<g id="Layer_8"></g>
|
||||
<g id="Layer_9"></g>
|
||||
<g id="Layer_10"></g>
|
||||
<g id="Layer_11"></g>
|
||||
<g id="Layer_12"></g>
|
||||
<g id="Layer_13"></g>
|
||||
<g id="Layer_14"></g>
|
||||
<g id="Layer_15"></g>
|
||||
<g id="Layer_16"></g>
|
||||
<g id="Layer_17"></g>
|
||||
<g id="Layer_18"></g>
|
||||
<g id="Layer_19"></g>
|
||||
<g id="Layer_20"></g>
|
||||
<g id="Layer_21"></g>
|
||||
<g id="Layer_24"></g>
|
||||
<g id="Layer_25"></g>
|
||||
<g id="Layer_26"></g>
|
||||
<g id="Layer_27"></g>
|
||||
<g id="Layer_28"></g>
|
||||
<g id="Layer_29"></g>
|
||||
<g id="Layer_47"></g>
|
||||
<g id="Layer_30"></g>
|
||||
<g id="Layer_31"></g>
|
||||
<g id="Layer_32"></g>
|
||||
<g id="Layer_33"></g>
|
||||
<g id="Layer_34"></g>
|
||||
<g id="Layer_35"></g>
|
||||
<g id="Layer_36"></g>
|
||||
<g id="Layer_37"></g>
|
||||
<g id="Layer_38"></g>
|
||||
<g id="Layer_39"></g>
|
||||
<g id="Layer_40"></g>
|
||||
<g id="Layer_41"></g>
|
||||
<g id="Layer_42"></g>
|
||||
<g id="Layer_43"></g>
|
||||
<g id="Layer_44" fill="#000000" sketch:type="MSShapeGroup">
|
||||
<path d="M56.6666667,9.33333333 L47.3333333,0 L28,18.6666667 L9.33333333,0 L0,9.33333333 L18.6666667,28 L0,47.3333333 L9.33333333,56.6666667 L28,38 L47.3333333,56.6666667 L56.6666667,47.3333333 L38,28 L56.6666667,9.33333333 L56.6666667,9.33333333 Z" id="Shape"></path>
|
||||
</g>
|
||||
<g id="Layer_45"></g>
|
||||
<g id="Layer_46"></g>
|
||||
<g id="Layer_48"></g>
|
||||
<g id="Layer_49"></g>
|
||||
<g id="Layer_51"></g>
|
||||
<g id="Layer_52"></g>
|
||||
<g id="Layer_53"></g>
|
||||
<g id="Layer_54"></g>
|
||||
<g id="Layer_55"></g>
|
||||
<g id="Layer_56"></g>
|
||||
<g id="Layer_57"></g>
|
||||
<g id="Layer_58"></g>
|
||||
<g id="Layer_59"></g>
|
||||
<g id="Layer_60"></g>
|
||||
<g id="Layer_61"></g>
|
||||
<g id="Layer_62"></g>
|
||||
<g id="Layer_63"></g>
|
||||
<g id="Layer_64"></g>
|
||||
<g id="Layer_65"></g>
|
||||
<g id="Layer_66"></g>
|
||||
<g id="Layer_50"></g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 4.3 KiB |
BIN
data/images/advanced-settings.png
Normal file
After Width: | Height: | Size: 7.3 KiB |