summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: c629699a13919796b60804b1a90172c58b730baf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
# Andrea Diamantini - adjam7 at gmail dot com
# rekonq project

# ==================================================================================
# minimum cmake required (must be first)

cmake_minimum_required(VERSION 2.8.9)

PROJECT( rekonq )

# ==================================================================================
# Information to update before to release this package.

# rekonq info
SET(REKONQ_VERSION "2.4.2" )

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/config-version.h )

SET(REKONQ_SITE "http://rekonq.kde.org")


SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})

# ==================================================================================


FIND_PACKAGE(Qt4 4.8.0 COMPONENTS QtCore QtGui QtNetwork QtWebKit REQUIRED)

## Ensure we have QtWebKit >= 2.2.0
#FIND_PACKAGE(PkgConfig REQUIRED)
#PKG_CHECK_MODULES(PC_QTWEBKIT REQUIRED QtWebKit>=4.8.0)
#IF(NOT PC_QTWEBKIT_FOUND)
#  MESSAGE(FATAL_ERROR "QtWebkit 2.2.0 is required for this version of Rekonq")
#ELSE()
#  MESSAGE(STATUS "Found QtWebKit ${PC_QTWEBKIT_VERSION}")
#ENDIF()

FIND_PACKAGE(KDE4 4.8.4 REQUIRED)


INCLUDE(MacroOptionalFindPackage)
INCLUDE(FindPackageHandleStandardArgs)
INCLUDE(KDE4Defaults)
INCLUDE(MacroLibrary)

ADD_DEFINITIONS(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)


# ==================================================================================
# optional nepomuk requirements

if(WITH_NEPOMUK)
  FIND_PACKAGE(Soprano)

  FIND_PACKAGE(NepomukCore 0.1.0)
endif()

IF(SOPRANO_FOUND AND NepomukCore_FOUND)
    ADD_DEFINITIONS(-DHAVE_NEPOMUK)
ENDIF(SOPRANO_FOUND AND NepomukCore_FOUND)

# ==================================================================================
# optional QCA2 & QtOAuth requirements

MACRO_OPTIONAL_FIND_PACKAGE(QCA2)
MACRO_BOOL_TO_01(QCA2_FOUND HAVE_QCA2)

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-qca2.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/config-qca2.h )


MACRO_OPTIONAL_FIND_PACKAGE(QtOAuth)
MACRO_BOOL_TO_01(QTOAUTH_FOUND HAVE_QTOAUTH)

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-qtoauth.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/config-qtoauth.h )


# ==================================================================================
# optional KActivities requirements

MACRO_OPTIONAL_FIND_PACKAGE(KActivities 6.1.0)
MACRO_BOOL_TO_01(KActivities_FOUND HAVE_KACTIVITIES)

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-kactivities.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/config-kactivities.h )

# ==================================================================================
# Log messages

MESSAGE(STATUS "")
MESSAGE(STATUS "-----------------------------------------------------------------------")
MESSAGE(STATUS " rekonq ${REKONQ_VERSION} dependencies results  <${REKONQ_SITE}>")
MESSAGE(STATUS "")

# Require shared libraries results.

# ----------------------------------- Qt -------------------------------------
SET(QT_VERS_STR
    "${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}"
   )

IF(QT4_FOUND)
    MESSAGE(STATUS " Qt library found...................... YES")
    MESSAGE(STATUS " Qt version ${QT_VERS_STR} found! ")
ELSE(QT4_FOUND)
    MESSAGE(STATUS " Qt library found...................... NO")
    MESSAGE(STATUS "")
    MESSAGE(SEND_ERROR " rekonq needs at least Qt ${QT_MIN_VERSION}. Please install it and try compiling again.")
    MESSAGE(STATUS " Qt website is at http://qt-project.org")
    MESSAGE(STATUS "")
ENDIF(QT4_FOUND)

MESSAGE(STATUS "")

# ---------------------------------- KDE -------------------------------------
SET(KDE_VERS_STR
    "${KDE_VERSION_MAJOR}.${KDE_VERSION_MINOR}.${KDE_VERSION_RELEASE}"
   )

IF(KDE4_FOUND)
    MESSAGE(STATUS " KDE Desktop Environment............... YES")
    MESSAGE(STATUS " KDE version ${KDE_VERS_STR} found! ")
ELSE(KDE4_FOUND)
    MESSAGE(STATUS " KDE Desktop Environment............... NO")
    MESSAGE(STATUS "")
    MESSAGE(SEND_ERROR " rekonq needs at least KDE ${KDE_MIN_VERSION}. Please install it and try compiling again.")
    MESSAGE(STATUS " KDE website is at http://www.kde.org")
    MESSAGE(STATUS "")
ENDIF(KDE4_FOUND)

##### FINAL RESULTS #####

# create suspance..
MESSAGE(STATUS "")
MESSAGE(STATUS "")

IF(QT4_FOUND AND KDE4_FOUND)
    MESSAGE(STATUS " rekonq will be compiled............... YES")
    SET(REKONQ_CAN_BE_COMPILED true)
ELSE(QT4_FOUND AND KDE4_FOUND)
    MESSAGE(FATAL_ERROR " rekonq will NOT be compiled!")
    SET(REKONQ_CAN_BE_COMPILED false)
ENDIF(QT4_FOUND AND KDE4_FOUND)

# ----------------------- Optional Deps --------------------------------------

IF(REKONQ_CAN_BE_COMPILED)
    MESSAGE(STATUS "")
    MESSAGE(STATUS "")
    MESSAGE(STATUS " ----- Optional Features")
    MESSAGE(STATUS "")

    # Nepomuk

    IF(SOPRANO_FOUND AND NepomukCore_FOUND)
        MESSAGE(STATUS " Nepomuk Libraries..................... YES")
        MESSAGE(STATUS " Rekonq will be compiled with support for bookmarks nepomuk tagging")
    ELSE(SOPRANO_FOUND AND NepomukCore_FOUND)
        MESSAGE(STATUS " Nepomuk Libraries..................... NO")
        MESSAGE(STATUS " Rekonq will be compiled WITHOUT support for bookmarks tagging")
    ENDIF(SOPRANO_FOUND AND NepomukCore_FOUND)

    MESSAGE(STATUS "")

    # QCA2

    IF(HAVE_QCA2)
        MESSAGE(STATUS " QCA2 Libraries........................ YES")
    ELSE(HAVE_QCA2)
        MESSAGE(STATUS " QCA2 Libraries........................ NO")
    ENDIF(HAVE_QCA2)

    # QTOAUTH

    IF(HAVE_QTOAUTH)
        MESSAGE(STATUS " QtOAuth Libraries..................... YES")
    ELSE(HAVE_QTOAUTH)
        MESSAGE(STATUS " QtOAuth Libraries..................... NO")
    ENDIF(HAVE_QTOAUTH)


    IF(HAVE_QCA2 AND HAVE_QTOAUTH)
        MESSAGE(STATUS " Rekonq will be compiled with support for opera sync handler")
    ELSE(HAVE_QCA2 AND HAVE_QTOAUTH)
        MESSAGE(STATUS " Rekonq will be compiled WITHOUT support for opera sync handler")
    ENDIF(HAVE_QCA2 AND HAVE_QTOAUTH)

    # KActivities
    
    IF(HAVE_KACTIVITIES)
        MESSAGE(STATUS " KActivities Libraries................. YES")
        MESSAGE(STATUS " Rekonq will be compiled with support for activities")
    ELSE(HAVE_KACTIVITIES)
        MESSAGE(STATUS " KActivities Libraries................. NO")
        MESSAGE(STATUS " Rekonq will be compiled WITHOUT support for activities")
    ENDIF(HAVE_KACTIVITIES)

    MESSAGE(STATUS "")
    MESSAGE(STATUS "-----------------------------------------------------------------------")
    MESSAGE(STATUS "")

ENDIF(REKONQ_CAN_BE_COMPILED)

# ===============================================================================

IF(REKONQ_CAN_BE_COMPILED)

    ADD_SUBDIRECTORY( src )
    ADD_SUBDIRECTORY( icons )

ENDIF(REKONQ_CAN_BE_COMPILED)

# ================================================================================

# doc & translations
set_property(GLOBAL PROPERTY ALLOW_DUPLICATE_CUSTOM_TARGETS 1)

# Do not remove or modify these.
# The release script substitutes in for these comments with appropriate doc and translation directories.
#PO_SUBDIR
#DOC_SUBDIR