1
project(Amarok)
2
3
cmake_minimum_required(VERSION 2.4.5)
4
5
6
#We depend on kde4.1 now.. I believe this is the easiest way to do it.
7
set(KDE_MIN_VERSION "4.1.0")
8
find_package( KDE4 REQUIRED )
9
include (KDE4Defaults)
10
include (MacroLibrary)
11
12
include(CheckTypeSize)
13
include(MacroBoolTo01)
14
include(MacroLogFeature)
15
16
macro_log_feature( KDE4_FOUND "kdelibs" "The toolkit Amarok uses to build" "http://www.kde.org" TRUE "4.1.0" "" )
17
18
set( CMAKE_MODULE_PATH    ${CMAKE_MODULE_PATH}
19
                          ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules )
20
21
#this line has to be before add_defintions, but after the KDE4 cmake includes
22
#because they are used to determine install locations
23
add_subdirectory( src/scriptengine/generator )
24
add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
25
26
include(CheckLibraryExists)
27
check_library_exists(dl dlopen "" LIBDL_FOUND)
28
29
set(TAGLIB_MIN_VERSION "1.5")
30
find_package(Taglib)
31
macro_log_feature( TAGLIB_FOUND "taglib" "Read and write tags in audio files" "http://www.freshmeat.net/projects/taglib" TRUE "1.5.0" "")
32
33
find_package(Strigi REQUIRED)
34
macro_log_feature( STRIGI_FOUND "strigi" "Index metadata of files" "http://strigi.sourceforge.net" TRUE "" "" )
35
36
find_package(MySQLAmarok REQUIRED)
37
macro_log_feature( MYSQL_EMBEDDED_FOUND "mysqld" "Embedded MySQL" "http://www.mysql.com" TRUE "" "" )
38
39
# zlib is required for mysql embedded
40
find_package(ZLIB REQUIRED)
41
macro_log_feature( ZLIB_FOUND "zlib" "zlib" "" TRUE "" "" )
42
43
include_directories (${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${KDE4_INCLUDES} ${TAGLIB_INCLUDES})
44
include(CheckTagLibFileName)
45
46
#macro_optional_find_package(Njb)
47
#macro_log_feature( NJB_FOUND "libnjb" "Support Creative Labs nomad jukebox devices" "http://www.sf.net/projects/libnjb" FALSE "2.2.4" "" )
48
49
#macro_optional_find_package(Ifp)
50
#macro_log_feature( IFP_FOUND "libifp" "Support iRiver iFP audio devices" "http://ifp-driver.sourceforge.net/libifp/" FALSE "1.0.0.2" "")
51
52
macro_optional_find_package(GLIB2)
53
macro_log_feature( GLIB2_FOUND "glib2" "Required by libgpod and mp3tunes" "http://www.gtk.org" FALSE "2.x" "")
54
55
macro_optional_find_package(Gdk)
56
macro_log_feature( GDK_FOUND "Gdk" "Support for artwork on iPod audio devices via GdkPixbuf" "http://developer.gnome.org/arch/imaging/gdkpixbuf.html" FALSE "2.0.x" "" )
57
58
macro_optional_find_package(Ipod)
59
macro_log_feature( IPOD_FOUND "libgpod" "Support Apple iPod audio devices" "http://sourceforge.net/projects/gtkpod/" FALSE "0.6.0" "" )
60
61
#macro_optional_find_package(MySQL)
62
#macro_log_feature( MYSQL_FOUND "mysql" "Store Collection in a mysql database instead of a sqlite one" "http://www.mysql.com" FALSE "4.1.0" "" )
63
64
macro_optional_find_package(Mp4v2)
65
macro_log_feature( MP4V2_FOUND "libmp4v2" "Enable tagging of mp4 files from within amarok" "http://www.sf.net/projects/mpeg4ip" FALSE "" "" )
66
67
macro_optional_find_package(Mtp)
68
macro_log_feature( MTP_FOUND "libmtp" "Enable Support for portable media devices that use the media transfer protocol" "http://libmtp.sourceforge.net/" FALSE "0.3.0" "")
69
70
#macro_optional_find_package(OpenGL)
71
#macro_log_feature( OPENGL_FOUND "opengl" "Support for gl-accellerated visualization rendering" "" FALSE "" "")
72
73
find_package(CURL)
74
macro_log_feature( CURL_FOUND "curl" "cURL provides the necessary network libraries required by mp3tunes." "http://curl.haxx.se" FALSE "" "" )
75
76
find_package(LibXml2)
77
macro_log_feature( LIBXML2_FOUND "libxml2" "LibXML2 is an XML parser required by mp3tunes." "http://www.xmlsoft.org" FALSE "" "" )
78
79
find_package(OpenSSL)
80
find_package(Libgcrypt)
81
if ( OPENSSL_FOUND OR LIBGCRYPT_FOUND )
82
set (_mp3tunes_crypto TRUE )
83
endif ( OPENSSL_FOUND OR LIBGCRYPT_FOUND )
84
macro_log_feature( _mp3tunes_crypto "openssl or libgcrypt" "OpenSSL or GNU Libgcrypt provides cryptographic functions required by mp3tunes." "http://www.openssl.org/ or http://www.gnupg.org/download/#libgcrypt" FALSE "" "" )
85
86
find_package(GObject)
87
macro_log_feature( GOBJECT_FOUND "gobject" "Required by mp3tunes." "http://www.gtk.org" FALSE "2.x" "" )
88
89
macro_optional_find_package(Loudmouth)
90
macro_log_feature( LOUDMOUTH_FOUND "loudmouth" "Loudmouth is the communication backend needed by mp3tunes for synching." "http://www.loudmouth-project.org" FALSE "" "" )
91
92
#find_package(KdeMultimedia)
93
#macro_log_feature( KDEMULTIMEDIA_FOUND "kdemultimedia" "Support for playing audio cds" "http://www.kde.org" FALSE "4.0" "")
94
95
macro_optional_find_package(Soprano)
96
macro_log_feature( Soprano_FOUND "soprano" "Soprano is a RDF framework required by Nepomuk Collection" "http://soprano.sourceforge.net" FALSE "2.1.0" "")
97
98
macro_optional_find_package(Nepomuk)
99
macro_log_feature( NEPOMUK_FOUND "nepomuk" "Nepomuk Libraries required by Nepomuk Collection (part of kdelibs)" "http://www.kde.org" FALSE "4.1" "")
100
101
#macro_optional_find_package(LibLastFm)
102
#macro_log_feature( LIBLASTFM_FOUND "liblastfm" "LibLastFM is needed for amarok to support last.fm." "http://www.last.fm" FALSE "" "" )
103
104
105
include(CheckQtGlib)
106
macro_log_feature(QT4_GLIB_SUPPORT "Qt4 Glib support" "Qt4 must be compiled with glib support for mp3tunes" "http://www.trolltech.com" FALSE "" "")
107
108
macro_bool_to_01(LIBVISUAL_FOUND HAVE_LIBVISUAL)
109
110
check_type_size("int" SIZEOF_INT)
111
check_type_size("long" SIZEOF_LONG)
112
113
check_taglib_filename(COMPLEX_TAGLIB_FILENAME)
114
115
configure_file(config-amarok.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-amarok.h )
116
117
add_subdirectory( src )
118
119
macro_display_feature_log()
120
121
122
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fmessage-length=0")
123
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmessage-length=0")