Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Paweł Forysiuk | ||||
Approved revision: | 6369 | ||||
Merged at revision: | 6370 | ||||
Proposed branch: | lp:~kalikiana/midori/cmake | ||||
Merge into: | lp:midori | ||||
Diff against target: |
956 lines (+878/-2) 14 files modified
CMakeLists.txt (+184/-0) cmake/ContainTest.cmake (+18/-0) cmake/FindIntltool.cmake (+30/-0) cmake/FindVala.cmake (+18/-0) cmake/GLibHelpers.cmake (+71/-0) cmake/ParseArguments.cmake (+36/-0) cmake/ValaPrecompile.cmake (+236/-0) data/CMakeLists.txt (+34/-0) extensions/CMakeLists.txt (+92/-0) icons/CMakeLists.txt (+12/-0) midori/CMakeLists.txt (+64/-0) po/CMakeLists.txt (+18/-0) po/POTFILES.in (+0/-2) tests/CMakeLists.txt (+65/-0) |
||||
To merge this branch: | bzr merge lp:~kalikiana/midori/cmake | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Paweł Forysiuk | Approve | ||
Review via email:
|
Commit message
Implement CMake build setup
Description of the change
To post a comment you must log in.
Revision history for this message

Paweł Forysiuk (tuxator) : | # |
review:
Approve
Revision history for this message

RabbitBot (rabbitbot-a) wrote : | # |
Revision history for this message

RabbitBot (rabbitbot-a) wrote : | # |
There are additional revisions which have not been approved in review. Please seek review and approval of these new revisions.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === added file 'CMakeLists.txt' | |||
2 | --- CMakeLists.txt 1970-01-01 00:00:00 +0000 | |||
3 | +++ CMakeLists.txt 2013-09-01 17:11:24 +0000 | |||
4 | @@ -0,0 +1,184 @@ | |||
5 | 1 | # Copyright (C) 2013 Christian Dywan <christian@twotoasts.de> | ||
6 | 2 | |||
7 | 3 | cmake_minimum_required(VERSION 2.6) | ||
8 | 4 | cmake_policy(VERSION 2.6) | ||
9 | 5 | project(midori C) | ||
10 | 6 | add_definitions("-DPACKAGE_NAME=\"${CMAKE_PROJECT_NAME}\"") | ||
11 | 7 | add_definitions("-DPACKAGE_BUGREPORT=\"https://bugs.launchpad.net/midori\"") | ||
12 | 8 | |||
13 | 9 | set(VERSION 0.5.5) | ||
14 | 10 | add_definitions("-DPACKAGE_VERSION=\"${VERSION}\"") | ||
15 | 11 | add_definitions("-DMIDORI_VERSION_SUFFIX=\"${VERSION}\"") | ||
16 | 12 | |||
17 | 13 | string(REPLACE "." ";" VERSION_LIST ${VERSION}) | ||
18 | 14 | LIST(GET VERSION_LIST 0 MIDORI_MAJOR_VERSION) | ||
19 | 15 | add_definitions("-DMIDORI_MAJOR_VERSION=${MIDORI_MAJOR_VERSION}") | ||
20 | 16 | LIST(GET VERSION_LIST 1 MIDORI_MINOR_VERSION) | ||
21 | 17 | add_definitions("-DMIDORI_MINOR_VERSION=${MIDORI_MINOR_VERSION}") | ||
22 | 18 | LIST(GET VERSION_LIST 2 MIDORI_MICRO_VERSION) | ||
23 | 19 | add_definitions("-DMIDORI_MICRO_VERSION=${MIDORI_MICRO_VERSION}") | ||
24 | 20 | |||
25 | 21 | list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) | ||
26 | 22 | # Disallow building during install to avoid permission problems | ||
27 | 23 | set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY 1) | ||
28 | 24 | |||
29 | 25 | include(GNUInstallDirs) | ||
30 | 26 | set(DATADIR ${CMAKE_INSTALL_FULL_DATADIR}) | ||
31 | 27 | add_definitions("-DMDATADIR=\"${DATADIR}\"") | ||
32 | 28 | add_definitions("-DSYSCONFDIR=\"${CMAKE_INSTALL_FULL_SYSCONFDIR}\"") | ||
33 | 29 | add_definitions("-DLIBDIR=\"${CMAKE_INSTALL_FULL_LIBDIR}\"") | ||
34 | 30 | add_definitions("-DDOCDIR=\"${CMAKE_INSTALL_FULL_DOCDIR}\"") | ||
35 | 31 | file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h" "/* # generated file (stub) */") | ||
36 | 32 | |||
37 | 33 | find_file (UNISTD unistd.h) | ||
38 | 34 | if (UNISTD) | ||
39 | 35 | add_definitions("-DHAVE_UNISTD_H") | ||
40 | 36 | endif () | ||
41 | 37 | find_file (SIGNAL signal.h) | ||
42 | 38 | if (SIGNAL) | ||
43 | 39 | add_definitions("-DHAVE_SIGNAL_H") | ||
44 | 40 | endif () | ||
45 | 41 | |||
46 | 42 | find_library (X11 X11) | ||
47 | 43 | if (X11) | ||
48 | 44 | # Pass /usr/X11R6/include for OpenBSD | ||
49 | 45 | find_file (SCRNSAVER X11/extensions/scrnsaver.h /usr/X11R6/include) | ||
50 | 46 | find_library (XSS Xss /usr/lib/X11R6/lib) | ||
51 | 47 | if (SCRNSAVER AND XSS) | ||
52 | 48 | add_definitions("-DHAVE_X11_EXTENSIONS_SCRNSAVER_H") | ||
53 | 49 | endif () | ||
54 | 50 | endif () | ||
55 | 51 | |||
56 | 52 | if (WIN32) | ||
57 | 53 | set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_WIN32") | ||
58 | 54 | endif () | ||
59 | 55 | |||
60 | 56 | string(FIND ${CMAKE_SYSTEM_NAME} "FreeBSD" FREEBSD) | ||
61 | 57 | if (FREEBSD GREATER -1) | ||
62 | 58 | set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_FREEBSD") | ||
63 | 59 | endif () | ||
64 | 60 | |||
65 | 61 | if (APPLE) | ||
66 | 62 | set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_OSX") | ||
67 | 63 | endif () | ||
68 | 64 | |||
69 | 65 | find_package(PkgConfig) | ||
70 | 66 | pkg_check_modules(DEPS REQUIRED | ||
71 | 67 | libxml-2.0>=2.6 | ||
72 | 68 | sqlite3>=3.6.19 | ||
73 | 69 | gmodule-2.0 | ||
74 | 70 | gio-2.0>=2.32.3 | ||
75 | 71 | libsoup-gnome-2.4>=2.27.90 | ||
76 | 72 | ) | ||
77 | 73 | add_definitions("-DHAVE_LIBXML") | ||
78 | 74 | add_definitions("-DGIO_VERSION=\"${DEPS_gio-2.0_VERSION}\"") | ||
79 | 75 | add_definitions("-DLIBSOUP_VERSION=\"${DEPS_libsoup-gnome-2.4_VERSION}\"") | ||
80 | 76 | set(PKGS posix linux libxml-2.0 sqlite3 gmodule-2.0 gio-2.0 libsoup-2.4) | ||
81 | 77 | if (${DEPS_libsoup-gnome-2.4_VERSION} VERSION_GREATER "2.34.0") | ||
82 | 78 | set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_LIBSOUP_2_34_0") | ||
83 | 79 | endif () | ||
84 | 80 | |||
85 | 81 | # Always pass >1 module, otherwise we get different variable names | ||
86 | 82 | pkg_check_modules(OPTS gio-2.0 libnotify) | ||
87 | 83 | add_definitions("-DLIBNOTIFY_VERSION=\"${OPTS_libnotify_VERSION}\"") | ||
88 | 84 | set(PKGS ${PKGS} libnotify) | ||
89 | 85 | |||
90 | 86 | option(USE_GTK3 "Use GTK+3" OFF) | ||
91 | 87 | option(HALF_BRO_INCOM_WEBKIT2 "Serve as a guniea pig" OFF) | ||
92 | 88 | option(USE_ZEITGEIST "Zeitgeist history integration" ON) | ||
93 | 89 | option(USE_GRANITE "Fancy notebook and pop-overs" OFF) | ||
94 | 90 | |||
95 | 91 | if (USE_GRANITE) | ||
96 | 92 | if (NOT USE_GTK3 AND NOT HALF_BRO_INCOM_WEBKIT2) | ||
97 | 93 | set(USE_GTK3 ON) | ||
98 | 94 | endif () | ||
99 | 95 | |||
100 | 96 | pkg_check_modules(GRANITE granite>=0.2) | ||
101 | 97 | set(OPTS_INCLUDE_DIRS "${OPTS_INCLUDE_DIRS};${GRANITE_INCLUDE_DIRS}") | ||
102 | 98 | set(OPTS_LIBRARIES "${OPTS_LIBRARIES};${GRANITE_LIBRARIES}") | ||
103 | 99 | add_definitions("-DHAVE_GRANITE") | ||
104 | 100 | add_definitions("-DGRANITE_VERSION=\"${GRANITE_VERSION}\"") | ||
105 | 101 | set(PKGS ${PKGS} granite) | ||
106 | 102 | else () | ||
107 | 103 | add_definitions("-DGRANITE_VERSION=\"No\"") | ||
108 | 104 | endif() | ||
109 | 105 | |||
110 | 106 | if (USE_ZEITGEIST) | ||
111 | 107 | pkg_check_modules(ZEITGEIST zeitgeist-1.0>=0.3.14) | ||
112 | 108 | set(OPTS_INCLUDE_DIRS "${OPTS_INCLUDE_DIRS};${ZEITGEIST_INCLUDE_DIRS}") | ||
113 | 109 | set(OPTS_LIBRARIES "${OPTS_LIBRARIES};${ZEITGEIST_LIBRARIES}") | ||
114 | 110 | add_definitions("-DHAVE_ZEITGEIST") | ||
115 | 111 | set(PKGS ${PKGS} zeitgeist-1.0) | ||
116 | 112 | endif() | ||
117 | 113 | |||
118 | 114 | if (USE_GTK3) | ||
119 | 115 | pkg_check_modules(DEPS_GTK REQUIRED | ||
120 | 116 | gtk+-3.0>=3.0.0 | ||
121 | 117 | webkitgtk-3.0>=1.8.3 | ||
122 | 118 | javascriptcoregtk-3.0 | ||
123 | 119 | ) | ||
124 | 120 | add_definitions("-DGTK_VERSION=\"${DEPS_GTK_gtk+-3.0_VERSION}\"") | ||
125 | 121 | add_definitions("-DWEBKIT_VERSION=\"${DEPS_GTK_webkitgtk-3.0_VERSION}\"") | ||
126 | 122 | set(PKGS ${PKGS} gtk+-3.0) | ||
127 | 123 | set(EXTRA_VAPIS ${EXTRA_VAPIS} "${CMAKE_SOURCE_DIR}/midori/webkitgtk-3.0.vapi") | ||
128 | 124 | # Always pass >1 module, otherwise we get different variable names | ||
129 | 125 | pkg_check_modules(OPTS_GTK | ||
130 | 126 | gio-2.0 | ||
131 | 127 | gcr-3>=2.32 | ||
132 | 128 | ) | ||
133 | 129 | add_definitions("-DGCR_VERSION=\"${OPTS_GTK_gcr-3_VERSION}\"") | ||
134 | 130 | set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_GTK3") | ||
135 | 131 | elseif (HALF_BRO_INCOM_WEBKIT2) | ||
136 | 132 | # Note: WebKitGTK+ 2.0.0 matches 1.11.91; 1.11.92 > 2.0.0 | ||
137 | 133 | pkg_check_modules(DEPS_GTK REQUIRED | ||
138 | 134 | gtk+-3.0>=3.0.0 | ||
139 | 135 | webkit2gtk-3.0>=1.11.91 | ||
140 | 136 | javascriptcoregtk-3.0 | ||
141 | 137 | ) | ||
142 | 138 | add_definitions("-DHAVE_WEBKIT2") | ||
143 | 139 | add_definitions("-DGTK_VERSION=\"${DEPS_GTK_gtk+-3.0_VERSION}\"") | ||
144 | 140 | add_definitions("-DWEBKIT_VERSION=\"${DEPS_GTK_webkit2gtk-3.0_VERSION}\"") | ||
145 | 141 | set(PKGS ${PKGS} gtk+-3.0) | ||
146 | 142 | set(EXTRA_VAPIS ${EXTRA_VAPIS} "${CMAKE_SOURCE_DIR}/midori/webkit2gtk-3.0.vapi") | ||
147 | 143 | # Always pass >1 module, otherwise we get different variable names | ||
148 | 144 | pkg_check_modules(OPTS_GTK | ||
149 | 145 | gio-2.0 | ||
150 | 146 | gcr-3>=2.32 | ||
151 | 147 | ) | ||
152 | 148 | add_definitions("-DGCR_VERSION=\"${OPTS_GTK_gcr-3_VERSION}\"") | ||
153 | 149 | set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_GTK3") | ||
154 | 150 | set(VALAFLAGS ${VALAFLAGS} "-D;HAVE_WEBKIT2") | ||
155 | 151 | else () | ||
156 | 152 | pkg_check_modules(DEPS_GTK REQUIRED | ||
157 | 153 | gtk+-2.0>=2.24.0 | ||
158 | 154 | webkit-1.0>=1.8.3 | ||
159 | 155 | javascriptcoregtk-1.0 | ||
160 | 156 | ) | ||
161 | 157 | add_definitions("-DGTK_VERSION=\"${DEPS_GTK_gtk+-2.0_VERSION}\"") | ||
162 | 158 | add_definitions("-DWEBKIT_VERSION=\"${DEPS_GTK_webkit-1.0_VERSION}\"") | ||
163 | 159 | set(PKGS ${PKGS} gtk+-2.0) | ||
164 | 160 | set(EXTRA_VAPIS ${EXTRA_VAPIS} "${CMAKE_SOURCE_DIR}/midori/webkitgtk-3.0.vapi") | ||
165 | 161 | add_definitions("-DGCR_VERSION=\"No\"") | ||
166 | 162 | endif () | ||
167 | 163 | |||
168 | 164 | find_package(Vala REQUIRED) | ||
169 | 165 | vala_require("0.16.0") | ||
170 | 166 | set(VALAFLAGS ${VALAFLAGS} | ||
171 | 167 | --enable-deprecated | ||
172 | 168 | --debug | ||
173 | 169 | ) | ||
174 | 170 | |||
175 | 171 | # dh_translations detects this if there's no variable used | ||
176 | 172 | set (GETTEXT_PACKAGE "midori") | ||
177 | 173 | add_definitions("-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\"") | ||
178 | 174 | |||
179 | 175 | set(CFLAGS "-w -Wno-deprecated-declarations") | ||
180 | 176 | set(LIBMIDORI "${CMAKE_PROJECT_NAME}-core") | ||
181 | 177 | |||
182 | 178 | add_subdirectory (midori) | ||
183 | 179 | add_subdirectory (po) | ||
184 | 180 | add_subdirectory (icons) | ||
185 | 181 | add_subdirectory (data) | ||
186 | 182 | enable_testing() | ||
187 | 183 | add_subdirectory (tests) | ||
188 | 184 | add_subdirectory (extensions) | ||
189 | 0 | 185 | ||
190 | === added directory 'cmake' | |||
191 | === added file 'cmake/ContainTest.cmake' | |||
192 | --- cmake/ContainTest.cmake 1970-01-01 00:00:00 +0000 | |||
193 | +++ cmake/ContainTest.cmake 2013-09-01 17:11:24 +0000 | |||
194 | @@ -0,0 +1,18 @@ | |||
195 | 1 | # Copyright (C) 2013 Christian Dywan <christian@twotoasts.de> | ||
196 | 2 | |||
197 | 3 | include(ParseArguments) | ||
198 | 4 | |||
199 | 5 | macro(contain_test test_name) | ||
200 | 6 | parse_arguments(ARGS "TEST" "" ${ARGN}) | ||
201 | 7 | set(TEST_ENV "") | ||
202 | 8 | foreach(VARIABLE XDG_DATA_HOME XDG_CONFIG_HOME XDG_CACHE_HOME XDG_DATA_HOME XDG_RUNTIME_DIR TMPDIR) | ||
203 | 9 | set(CONTAINER "${CMAKE_CURRENT_BINARY_DIR}/${test_name}-folders/${VARIABLE}") | ||
204 | 10 | file(MAKE_DIRECTORY ${CONTAINER}) | ||
205 | 11 | set(TEST_ENV "${TEST_ENV}${VARIABLE}=${CONTAINER};") | ||
206 | 12 | endforeach() | ||
207 | 13 | set_tests_properties(${test_name} PROPERTIES | ||
208 | 14 | WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} | ||
209 | 15 | TIMEOUT 42 | ||
210 | 16 | ENVIRONMENT "${TEST_ENV}" | ||
211 | 17 | ) | ||
212 | 18 | endmacro(contain_test) | ||
213 | 0 | 19 | ||
214 | === added file 'cmake/FindIntltool.cmake' | |||
215 | --- cmake/FindIntltool.cmake 1970-01-01 00:00:00 +0000 | |||
216 | +++ cmake/FindIntltool.cmake 2013-09-01 17:11:24 +0000 | |||
217 | @@ -0,0 +1,30 @@ | |||
218 | 1 | # FindIntltool.cmake | ||
219 | 2 | # | ||
220 | 3 | # Jim Nelson <jim@yorba.org> | ||
221 | 4 | # Copyright 2012-2013 Yorba Foundation | ||
222 | 5 | # Copyright (C) 2013 Christian Dywan | ||
223 | 6 | |||
224 | 7 | find_program (INTLTOOL_MERGE_EXECUTABLE intltool-merge) | ||
225 | 8 | find_program (INTLTOOL_UPDATE_EXECUTABLE intltool-update) | ||
226 | 9 | |||
227 | 10 | if (INTLTOOL_MERGE_EXECUTABLE) | ||
228 | 11 | set (INTLTOOL_MERGE_FOUND TRUE) | ||
229 | 12 | macro (INTLTOOL_MERGE_DESKTOP desktop_id po_dir) | ||
230 | 13 | add_custom_target ("${desktop_id}.desktop" ALL | ||
231 | 14 | ${INTLTOOL_MERGE_EXECUTABLE} --desktop-style ${CMAKE_SOURCE_DIR}/${po_dir} | ||
232 | 15 | ${CMAKE_CURRENT_SOURCE_DIR}/${desktop_id}.desktop.in ${desktop_id}.desktop | ||
233 | 16 | ) | ||
234 | 17 | install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${desktop_id}.desktop" | ||
235 | 18 | DESTINATION "${CMAKE_INSTALL_PREFIX}/share/applications") | ||
236 | 19 | endmacro (INTLTOOL_MERGE_DESKTOP desktop_id po_dir) | ||
237 | 20 | endif () | ||
238 | 21 | |||
239 | 22 | if (INTLTOOL_UPDATE_EXECUTABLE) | ||
240 | 23 | set (INTLTOOL_UPDATE_FOUND TRUE) | ||
241 | 24 | add_custom_target (pot | ||
242 | 25 | COMMAND ${INTLTOOL_UPDATE_EXECUTABLE} "-p" "-g" ${GETTEXT_PACKAGE} | ||
243 | 26 | WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/po" | ||
244 | 27 | ) | ||
245 | 28 | endif () | ||
246 | 29 | |||
247 | 30 | |||
248 | 0 | 31 | ||
249 | === added file 'cmake/FindVala.cmake' | |||
250 | --- cmake/FindVala.cmake 1970-01-01 00:00:00 +0000 | |||
251 | +++ cmake/FindVala.cmake 2013-09-01 17:11:24 +0000 | |||
252 | @@ -0,0 +1,18 @@ | |||
253 | 1 | # Copyright (C) 2013 Christian Dywan <christian@twotoasts.de> | ||
254 | 2 | |||
255 | 3 | find_program(VALA_EXECUTABLE NAMES valac) | ||
256 | 4 | if (NOT VALA_NOTFOUND) | ||
257 | 5 | execute_process(COMMAND ${VALA_EXECUTABLE} "--version" OUTPUT_VARIABLE "VALA_VERSION") | ||
258 | 6 | string(REPLACE "Vala " "" VALA_VERSION ${VALA_VERSION}) | ||
259 | 7 | string(STRIP ${VALA_VERSION} VALA_VERSION) | ||
260 | 8 | else () | ||
261 | 9 | message(FATAL_ERROR "valac not found") | ||
262 | 10 | endif () | ||
263 | 11 | |||
264 | 12 | macro(vala_require VALA_REQUIRED) | ||
265 | 13 | if (${VALA_VERSION} VERSION_GREATER ${VALA_REQUIRED} OR ${VALA_VERSION} VERSION_EQUAL ${VALA_REQUIRED}) | ||
266 | 14 | message(STATUS "valac ${VALA_VERSION} found") | ||
267 | 15 | else () | ||
268 | 16 | message(FATAL_ERROR "valac >= ${VALA_REQUIRED} or later required") | ||
269 | 17 | endif () | ||
270 | 18 | endmacro(vala_require) | ||
271 | 0 | 19 | ||
272 | === added file 'cmake/GLibHelpers.cmake' | |||
273 | --- cmake/GLibHelpers.cmake 1970-01-01 00:00:00 +0000 | |||
274 | +++ cmake/GLibHelpers.cmake 2013-09-01 17:11:24 +0000 | |||
275 | @@ -0,0 +1,71 @@ | |||
276 | 1 | # Copyright (C) 2010 David Sansome <me@davidsansome.com> | ||
277 | 2 | cmake_minimum_required(VERSION 2.6) | ||
278 | 3 | if(POLICY CMP0011) | ||
279 | 4 | cmake_policy(SET CMP0011 NEW) | ||
280 | 5 | endif(POLICY CMP0011) | ||
281 | 6 | |||
282 | 7 | find_program(GLIB_MKENUMS glib-mkenums) | ||
283 | 8 | find_program(GLIB_GENMARSHAL glib-genmarshal) | ||
284 | 9 | |||
285 | 10 | macro(add_glib_marshal outfiles name prefix otherinclude) | ||
286 | 11 | add_custom_command( | ||
287 | 12 | OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${name}.h" | ||
288 | 13 | COMMAND ${GLIB_GENMARSHAL} --header "--prefix=${prefix}" | ||
289 | 14 | "${CMAKE_CURRENT_SOURCE_DIR}/${name}.list" | ||
290 | 15 | > "${CMAKE_CURRENT_BINARY_DIR}/${name}.h" | ||
291 | 16 | DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${name}.list" | ||
292 | 17 | ) | ||
293 | 18 | add_custom_command( | ||
294 | 19 | OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${name}.c" | ||
295 | 20 | COMMAND echo "\\#include \\\"${otherinclude}\\\"" > "${CMAKE_CURRENT_BINARY_DIR}/${name}.c" | ||
296 | 21 | COMMAND echo "\\#include \\\"glib-object.h\\\"" >> "${CMAKE_CURRENT_BINARY_DIR}/${name}.c" | ||
297 | 22 | COMMAND echo "\\#include \\\"${name}.h\\\"" >> "${CMAKE_CURRENT_BINARY_DIR}/${name}.c" | ||
298 | 23 | COMMAND ${GLIB_GENMARSHAL} --body "--prefix=${prefix}" | ||
299 | 24 | "${CMAKE_CURRENT_SOURCE_DIR}/${name}.list" | ||
300 | 25 | >> "${CMAKE_CURRENT_BINARY_DIR}/${name}.c" | ||
301 | 26 | DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${name}.list" | ||
302 | 27 | "${CMAKE_CURRENT_BINARY_DIR}/${name}.h" | ||
303 | 28 | ) | ||
304 | 29 | list(APPEND ${outfiles} "${CMAKE_CURRENT_BINARY_DIR}/${name}.c") | ||
305 | 30 | endmacro(add_glib_marshal) | ||
306 | 31 | |||
307 | 32 | macro(add_glib_enumtypes_t outfiles name htemplate ctemplate) | ||
308 | 33 | add_custom_command( | ||
309 | 34 | OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${name}.h" | ||
310 | 35 | COMMAND ${GLIB_MKENUMS} | ||
311 | 36 | --template "${htemplate}" | ||
312 | 37 | ${ARGN} > "${CMAKE_CURRENT_BINARY_DIR}/${name}.h" | ||
313 | 38 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | ||
314 | 39 | DEPENDS ${ARGN} "${htemplate}" | ||
315 | 40 | ) | ||
316 | 41 | add_custom_command( | ||
317 | 42 | OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${name}.c" | ||
318 | 43 | COMMAND ${GLIB_MKENUMS} | ||
319 | 44 | --template "${ctemplate}" | ||
320 | 45 | ${ARGN} > "${CMAKE_CURRENT_BINARY_DIR}/${name}.c" | ||
321 | 46 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | ||
322 | 47 | DEPENDS ${ARGN} ${ctemplate} | ||
323 | 48 | "${CMAKE_CURRENT_BINARY_DIR}/${name}.h" | ||
324 | 49 | ) | ||
325 | 50 | list(APPEND ${outfiles} "${CMAKE_CURRENT_BINARY_DIR}/${name}.c") | ||
326 | 51 | endmacro(add_glib_enumtypes_t) | ||
327 | 52 | |||
328 | 53 | macro(add_glib_enumtypes outfiles name includeguard) | ||
329 | 54 | set(htemplate "${CMAKE_CURRENT_BINARY_DIR}/${name}.h.template") | ||
330 | 55 | set(ctemplate "${CMAKE_CURRENT_BINARY_DIR}/${name}.c.template") | ||
331 | 56 | |||
332 | 57 | # Write the .h template | ||
333 | 58 | add_custom_command( | ||
334 | 59 | OUTPUT ${htemplate} ${ctemplate} | ||
335 | 60 | COMMAND ${CMAKE_COMMAND} | ||
336 | 61 | "-Dctemplate=${ctemplate}" | ||
337 | 62 | "-Dhtemplate=${htemplate}" | ||
338 | 63 | "-Dname=${name}" | ||
339 | 64 | "-Dincludeguard=${includeguard}" | ||
340 | 65 | "\"-Dheaders=${ARGN}\"" | ||
341 | 66 | -P "${CMAKE_SOURCE_DIR}/CMake/MakeGLibEnumTemplates.cmake" | ||
342 | 67 | DEPENDS "${CMAKE_SOURCE_DIR}/CMake/MakeGLibEnumTemplates.cmake" ${headers} | ||
343 | 68 | ) | ||
344 | 69 | |||
345 | 70 | add_glib_enumtypes_t(${outfiles} ${name} ${htemplate} ${ctemplate} ${ARGN}) | ||
346 | 71 | endmacro(add_glib_enumtypes) | ||
347 | 0 | 72 | ||
348 | === added file 'cmake/ParseArguments.cmake' | |||
349 | --- cmake/ParseArguments.cmake 1970-01-01 00:00:00 +0000 | |||
350 | +++ cmake/ParseArguments.cmake 2013-09-01 17:11:24 +0000 | |||
351 | @@ -0,0 +1,36 @@ | |||
352 | 1 | ## | ||
353 | 2 | # This is a helper Macro to parse optional arguments in Macros/Functions | ||
354 | 3 | # It has been taken from the public CMake wiki. | ||
355 | 4 | # See http://www.cmake.org/Wiki/CMakeMacroParseArguments for documentation and | ||
356 | 5 | # licensing. | ||
357 | 6 | ## | ||
358 | 7 | macro(parse_arguments prefix arg_names option_names) | ||
359 | 8 | set(DEFAULT_ARGS) | ||
360 | 9 | foreach(arg_name ${arg_names}) | ||
361 | 10 | set(${prefix}_${arg_name}) | ||
362 | 11 | endforeach(arg_name) | ||
363 | 12 | foreach(option ${option_names}) | ||
364 | 13 | set(${prefix}_${option} FALSE) | ||
365 | 14 | endforeach(option) | ||
366 | 15 | |||
367 | 16 | set(current_arg_name DEFAULT_ARGS) | ||
368 | 17 | set(current_arg_list) | ||
369 | 18 | foreach(arg ${ARGN}) | ||
370 | 19 | set(larg_names ${arg_names}) | ||
371 | 20 | list(FIND larg_names "${arg}" is_arg_name) | ||
372 | 21 | if(is_arg_name GREATER -1) | ||
373 | 22 | set(${prefix}_${current_arg_name} ${current_arg_list}) | ||
374 | 23 | set(current_arg_name ${arg}) | ||
375 | 24 | set(current_arg_list) | ||
376 | 25 | else(is_arg_name GREATER -1) | ||
377 | 26 | set(loption_names ${option_names}) | ||
378 | 27 | list(FIND loption_names "${arg}" is_option) | ||
379 | 28 | if(is_option GREATER -1) | ||
380 | 29 | set(${prefix}_${arg} TRUE) | ||
381 | 30 | else(is_option GREATER -1) | ||
382 | 31 | set(current_arg_list ${current_arg_list} ${arg}) | ||
383 | 32 | endif(is_option GREATER -1) | ||
384 | 33 | endif(is_arg_name GREATER -1) | ||
385 | 34 | endforeach(arg) | ||
386 | 35 | set(${prefix}_${current_arg_name} ${current_arg_list}) | ||
387 | 36 | endmacro(parse_arguments) | ||
388 | 0 | 37 | ||
389 | === added file 'cmake/ValaPrecompile.cmake' | |||
390 | --- cmake/ValaPrecompile.cmake 1970-01-01 00:00:00 +0000 | |||
391 | +++ cmake/ValaPrecompile.cmake 2013-09-01 17:11:24 +0000 | |||
392 | @@ -0,0 +1,236 @@ | |||
393 | 1 | ## | ||
394 | 2 | # Copyright 2009-2010 Jakob Westhoff. All rights reserved. | ||
395 | 3 | # Copyright 2012 elementary. | ||
396 | 4 | # | ||
397 | 5 | # Redistribution and use in source and binary forms, with or without | ||
398 | 6 | # modification, are permitted provided that the following conditions are met: | ||
399 | 7 | # | ||
400 | 8 | # 1. Redistributions of source code must retain the above copyright notice, | ||
401 | 9 | # this list of conditions and the following disclaimer. | ||
402 | 10 | # | ||
403 | 11 | # 2. Redistributions in binary form must reproduce the above copyright notice, | ||
404 | 12 | # this list of conditions and the following disclaimer in the documentation | ||
405 | 13 | # and/or other materials provided with the distribution. | ||
406 | 14 | # | ||
407 | 15 | # THIS SOFTWARE IS PROVIDED BY JAKOB WESTHOFF ``AS IS'' AND ANY EXPRESS OR | ||
408 | 16 | # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
409 | 17 | # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | ||
410 | 18 | # EVENT SHALL JAKOB WESTHOFF OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
411 | 19 | # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
412 | 20 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||
413 | 21 | # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
414 | 22 | # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE | ||
415 | 23 | # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | ||
416 | 24 | # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
417 | 25 | # | ||
418 | 26 | # The views and conclusions contained in the software and documentation are those | ||
419 | 27 | # of the authors and should not be interpreted as representing official policies, | ||
420 | 28 | # either expressed or implied, of Jakob Westhoff | ||
421 | 29 | ## | ||
422 | 30 | |||
423 | 31 | include(ParseArguments) | ||
424 | 32 | find_package(Vala REQUIRED) | ||
425 | 33 | |||
426 | 34 | ## | ||
427 | 35 | # Compile vala files to their c equivalents for further processing. | ||
428 | 36 | # | ||
429 | 37 | # The "vala_precompile" macro takes care of calling the valac executable on the | ||
430 | 38 | # given source to produce c files which can then be processed further using | ||
431 | 39 | # default cmake functions. | ||
432 | 40 | # | ||
433 | 41 | # The first parameter provided is a variable, which will be filled with a list | ||
434 | 42 | # of c files outputted by the vala compiler. This list can than be used in | ||
435 | 43 | # conjuction with functions like "add_executable" or others to create the | ||
436 | 44 | # neccessary compile rules with CMake. | ||
437 | 45 | # | ||
438 | 46 | # The initial variable is followed by a list of .vala files to be compiled. | ||
439 | 47 | # Please take care to add every vala file belonging to the currently compiled | ||
440 | 48 | # project or library as Vala will otherwise not be able to resolve all | ||
441 | 49 | # dependencies. | ||
442 | 50 | # | ||
443 | 51 | # The following sections may be specified afterwards to provide certain options | ||
444 | 52 | # to the vala compiler: | ||
445 | 53 | # | ||
446 | 54 | # PACKAGES | ||
447 | 55 | # A list of vala packages/libraries to be used during the compile cycle. The | ||
448 | 56 | # package names are exactly the same, as they would be passed to the valac | ||
449 | 57 | # "--pkg=" option. | ||
450 | 58 | # | ||
451 | 59 | # OPTIONS | ||
452 | 60 | # A list of optional options to be passed to the valac executable. This can be | ||
453 | 61 | # used to pass "--thread" for example to enable multi-threading support. | ||
454 | 62 | # | ||
455 | 63 | # CUSTOM_VAPIS | ||
456 | 64 | # A list of custom vapi files to be included for compilation. This can be | ||
457 | 65 | # useful to include freshly created vala libraries without having to install | ||
458 | 66 | # them in the system. | ||
459 | 67 | # | ||
460 | 68 | # GENERATE_VAPI | ||
461 | 69 | # Pass all the needed flags to the compiler to create an internal vapi for | ||
462 | 70 | # the compiled library. The provided name will be used for this and a | ||
463 | 71 | # <provided_name>.vapi file will be created. | ||
464 | 72 | # | ||
465 | 73 | # GENERATE_HEADER | ||
466 | 74 | # Let the compiler generate a header file for the compiled code. There will | ||
467 | 75 | # be a header file as well as an internal header file being generated called | ||
468 | 76 | # <provided_name>.h and <provided_name>_internal.h | ||
469 | 77 | # | ||
470 | 78 | # GENERATE_GIR | ||
471 | 79 | # Have the compiler generate a GObject-Introspection repository file with | ||
472 | 80 | # name: <provided_name>.gir. This can be later used to create a binary typelib | ||
473 | 81 | # using the GI compiler. | ||
474 | 82 | # | ||
475 | 83 | # GENERATE_SYMBOLS | ||
476 | 84 | # Output a <provided_name>.symbols file containing all the exported symbols. | ||
477 | 85 | # | ||
478 | 86 | # The following call is a simple example to the vala_precompile macro showing | ||
479 | 87 | # an example to every of the optional sections: | ||
480 | 88 | # | ||
481 | 89 | # vala_precompile(VALA_C mytargetname | ||
482 | 90 | # source1.vala | ||
483 | 91 | # source2.vala | ||
484 | 92 | # source3.vala | ||
485 | 93 | # PACKAGES | ||
486 | 94 | # gtk+-2.0 | ||
487 | 95 | # gio-1.0 | ||
488 | 96 | # posix | ||
489 | 97 | # DIRECTORY | ||
490 | 98 | # gen | ||
491 | 99 | # OPTIONS | ||
492 | 100 | # --thread | ||
493 | 101 | # CUSTOM_VAPIS | ||
494 | 102 | # some_vapi.vapi | ||
495 | 103 | # GENERATE_VAPI | ||
496 | 104 | # myvapi | ||
497 | 105 | # GENERATE_HEADER | ||
498 | 106 | # myheader | ||
499 | 107 | # GENERATE_GIR | ||
500 | 108 | # mygir | ||
501 | 109 | # GENERATE_SYMBOLS | ||
502 | 110 | # mysymbols | ||
503 | 111 | # ) | ||
504 | 112 | # | ||
505 | 113 | # Most important is the variable VALA_C which will contain all the generated c | ||
506 | 114 | # file names after the call. | ||
507 | 115 | ## | ||
508 | 116 | |||
509 | 117 | macro(vala_precompile output target_name) | ||
510 | 118 | parse_arguments(ARGS "TARGET;PACKAGES;OPTIONS;DIRECTORY;GENERATE_GIR;GENERATE_SYMBOLS;GENERATE_HEADER;GENERATE_VAPI;CUSTOM_VAPIS" "" ${ARGN}) | ||
511 | 119 | |||
512 | 120 | if(ARGS_DIRECTORY) | ||
513 | 121 | set(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${ARGS_DIRECTORY}) | ||
514 | 122 | else(ARGS_DIRECTORY) | ||
515 | 123 | set(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) | ||
516 | 124 | endif(ARGS_DIRECTORY) | ||
517 | 125 | include_directories(${DIRECTORY}) | ||
518 | 126 | set(vala_pkg_opts "") | ||
519 | 127 | foreach(pkg ${ARGS_PACKAGES}) | ||
520 | 128 | list(APPEND vala_pkg_opts "--pkg=${pkg}") | ||
521 | 129 | endforeach(pkg ${ARGS_PACKAGES}) | ||
522 | 130 | set(in_files "") | ||
523 | 131 | set(out_files "") | ||
524 | 132 | set(out_files_display "") | ||
525 | 133 | set(${output} "") | ||
526 | 134 | |||
527 | 135 | foreach(src ${ARGS_DEFAULT_ARGS}) | ||
528 | 136 | string(REGEX MATCH "^/" IS_MATCHED ${src}) | ||
529 | 137 | if(${IS_MATCHED} MATCHES "/") | ||
530 | 138 | set(src_file_path ${src}) | ||
531 | 139 | else() | ||
532 | 140 | set(src_file_path ${CMAKE_CURRENT_SOURCE_DIR}/${src}) | ||
533 | 141 | endif() | ||
534 | 142 | list(APPEND in_files ${src_file_path}) | ||
535 | 143 | string(REPLACE ".vala" ".c" src ${src}) | ||
536 | 144 | string(REPLACE ".gs" ".c" src ${src}) | ||
537 | 145 | if(${IS_MATCHED} MATCHES "/") | ||
538 | 146 | get_filename_component(VALA_FILE_NAME ${src} NAME) | ||
539 | 147 | set(out_file "${CMAKE_CURRENT_BINARY_DIR}/${VALA_FILE_NAME}") | ||
540 | 148 | list(APPEND out_files "${CMAKE_CURRENT_BINARY_DIR}/${VALA_FILE_NAME}") | ||
541 | 149 | else() | ||
542 | 150 | set(out_file "${DIRECTORY}/${src}") | ||
543 | 151 | list(APPEND out_files "${DIRECTORY}/${src}") | ||
544 | 152 | endif() | ||
545 | 153 | list(APPEND ${output} ${out_file}) | ||
546 | 154 | list(APPEND out_files_display "${src}") | ||
547 | 155 | endforeach(src ${ARGS_DEFAULT_ARGS}) | ||
548 | 156 | |||
549 | 157 | set(custom_vapi_arguments "") | ||
550 | 158 | if(ARGS_CUSTOM_VAPIS) | ||
551 | 159 | foreach(vapi ${ARGS_CUSTOM_VAPIS}) | ||
552 | 160 | if(${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR}) | ||
553 | 161 | list(APPEND custom_vapi_arguments ${vapi}) | ||
554 | 162 | else (${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR}) | ||
555 | 163 | list(APPEND custom_vapi_arguments ${CMAKE_CURRENT_SOURCE_DIR}/${vapi}) | ||
556 | 164 | endif(${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR}) | ||
557 | 165 | endforeach(vapi ${ARGS_CUSTOM_VAPIS}) | ||
558 | 166 | endif(ARGS_CUSTOM_VAPIS) | ||
559 | 167 | |||
560 | 168 | set(vapi_arguments "") | ||
561 | 169 | if(ARGS_GENERATE_VAPI) | ||
562 | 170 | list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_VAPI}.vapi") | ||
563 | 171 | list(APPEND out_files_display "${ARGS_GENERATE_VAPI}.vapi") | ||
564 | 172 | set(vapi_arguments "--library=${ARGS_GENERATE_VAPI}" "--vapi=${ARGS_GENERATE_VAPI}.vapi") | ||
565 | 173 | |||
566 | 174 | # Header and internal header is needed to generate internal vapi | ||
567 | 175 | if (NOT ARGS_GENERATE_HEADER) | ||
568 | 176 | set(ARGS_GENERATE_HEADER ${ARGS_GENERATE_VAPI}) | ||
569 | 177 | endif(NOT ARGS_GENERATE_HEADER) | ||
570 | 178 | endif(ARGS_GENERATE_VAPI) | ||
571 | 179 | |||
572 | 180 | set(header_arguments "") | ||
573 | 181 | if(ARGS_GENERATE_HEADER) | ||
574 | 182 | list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_HEADER}.h") | ||
575 | 183 | list(APPEND out_files_display "${ARGS_GENERATE_HEADER}.h") | ||
576 | 184 | list(APPEND header_arguments "--header=${ARGS_GENERATE_HEADER}.h") | ||
577 | 185 | endif(ARGS_GENERATE_HEADER) | ||
578 | 186 | |||
579 | 187 | set(gir_arguments "") | ||
580 | 188 | if(ARGS_GENERATE_GIR) | ||
581 | 189 | list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_GIR}.gir") | ||
582 | 190 | list(APPEND out_files_display "${ARGS_GENERATE_GIR}.gir") | ||
583 | 191 | set(gir_arguments "--gir=${ARGS_GENERATE_GIR}.gir") | ||
584 | 192 | endif(ARGS_GENERATE_GIR) | ||
585 | 193 | |||
586 | 194 | set(symbols_arguments "") | ||
587 | 195 | if(ARGS_GENERATE_SYMBOLS) | ||
588 | 196 | list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_SYMBOLS}.symbols") | ||
589 | 197 | list(APPEND out_files_display "${ARGS_GENERATE_SYMBOLS}.symbols") | ||
590 | 198 | set(symbols_arguments "--symbols=${ARGS_GENERATE_SYMBOLS}.symbols") | ||
591 | 199 | endif(ARGS_GENERATE_SYMBOLS) | ||
592 | 200 | |||
593 | 201 | # Workaround for a bug that would make valac run twice. This file is written | ||
594 | 202 | # after the vala compiler generates C source code. | ||
595 | 203 | set(OUTPUT_STAMP ${CMAKE_CURRENT_BINARY_DIR}/${target_name}_valac.stamp) | ||
596 | 204 | |||
597 | 205 | add_custom_command( | ||
598 | 206 | OUTPUT | ||
599 | 207 | ${OUTPUT_STAMP} | ||
600 | 208 | COMMAND | ||
601 | 209 | ${VALA_EXECUTABLE} | ||
602 | 210 | ARGS | ||
603 | 211 | "-C" | ||
604 | 212 | ${header_arguments} | ||
605 | 213 | ${vapi_arguments} | ||
606 | 214 | ${gir_arguments} | ||
607 | 215 | ${symbols_arguments} | ||
608 | 216 | "-b" ${CMAKE_CURRENT_SOURCE_DIR} | ||
609 | 217 | "-d" ${DIRECTORY} | ||
610 | 218 | ${vala_pkg_opts} | ||
611 | 219 | ${ARGS_OPTIONS} | ||
612 | 220 | ${in_files} | ||
613 | 221 | ${custom_vapi_arguments} | ||
614 | 222 | COMMAND | ||
615 | 223 | touch | ||
616 | 224 | ARGS | ||
617 | 225 | ${OUTPUT_STAMP} | ||
618 | 226 | DEPENDS | ||
619 | 227 | ${in_files} | ||
620 | 228 | ${ARGS_CUSTOM_VAPIS} | ||
621 | 229 | COMMENT | ||
622 | 230 | "Generating ${out_files_display}" | ||
623 | 231 | ) | ||
624 | 232 | |||
625 | 233 | # This command will be run twice for some reason (pass a non-empty string to COMMENT | ||
626 | 234 | # in order to see it). Since valac is not executed from here, this won't be a problem. | ||
627 | 235 | add_custom_command(OUTPUT ${out_files} DEPENDS ${OUTPUT_STAMP} COMMENT "") | ||
628 | 236 | endmacro(vala_precompile) | ||
629 | 0 | 237 | ||
630 | === added file 'data/CMakeLists.txt' | |||
631 | --- data/CMakeLists.txt 1970-01-01 00:00:00 +0000 | |||
632 | +++ data/CMakeLists.txt 2013-09-01 17:11:24 +0000 | |||
633 | @@ -0,0 +1,34 @@ | |||
634 | 1 | # Copyright (C) 2013 Christian Dywan <christian@twotoasts.de> | ||
635 | 2 | |||
636 | 3 | include(FindIntltool) | ||
637 | 4 | if (NOT INTLTOOL_MERGE_FOUND) | ||
638 | 5 | message(FATAL_ERROR "intltool-merge not found") | ||
639 | 6 | elseif (NOT INTLTOOL_UPDATE_FOUND) | ||
640 | 7 | message(FATAL_ERROR "intltool-update not found") | ||
641 | 8 | endif () | ||
642 | 9 | |||
643 | 10 | file(GLOB_RECURSE DATA_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *) | ||
644 | 11 | list(REMOVE_ITEM DATA_FILES "CMakeLists.txt") | ||
645 | 12 | |||
646 | 13 | foreach(FILE ${DATA_FILES}) | ||
647 | 14 | string(FIND ${FILE} "faq." FAQ_FILE) | ||
648 | 15 | string(FIND ${FILE} "midori." MIDORI_FILE) | ||
649 | 16 | string(FIND ${FILE} ".desktop" DESKTOP_FILE) | ||
650 | 17 | if (FAQ_FILE GREATER -1) | ||
651 | 18 | elseif (DESKTOP_FILE GREATER -1) | ||
652 | 19 | string(SUBSTRING ${FILE} 0 ${DESKTOP_FILE} DESKTOP_ID) | ||
653 | 20 | INTLTOOL_MERGE_DESKTOP (${DESKTOP_ID} po) | ||
654 | 21 | elseif(MIDORI_FILE GREATER -1) | ||
655 | 22 | else() | ||
656 | 23 | string(FIND ${FILE} "/" IS_DIR) | ||
657 | 24 | if (IS_DIR GREATER -1) | ||
658 | 25 | string(REPLACE "/" ";" DIR_LIST ${FILE}) | ||
659 | 26 | LIST(GET DIR_LIST 0 S_DIR) | ||
660 | 27 | LIST(GET DIR_LIST 1 S_FILE) | ||
661 | 28 | install(FILES ${S_DIR}/${S_FILE} DESTINATION ${CMAKE_INSTALL_DATADIR}/midori/res/${S_DIR}) | ||
662 | 29 | else () | ||
663 | 30 | install(FILES ${FILE} DESTINATION ${CMAKE_INSTALL_DATADIR}/midori/res/) | ||
664 | 31 | endif() | ||
665 | 32 | endif() | ||
666 | 33 | |||
667 | 34 | endforeach() | ||
668 | 0 | 35 | ||
669 | === added file 'extensions/CMakeLists.txt' | |||
670 | --- extensions/CMakeLists.txt 1970-01-01 00:00:00 +0000 | |||
671 | +++ extensions/CMakeLists.txt 2013-09-01 17:11:24 +0000 | |||
672 | @@ -0,0 +1,92 @@ | |||
673 | 1 | # Copyright (C) 2013 Christian Dywan <christian@twotoasts.de> | ||
674 | 2 | |||
675 | 3 | set(EXTENSIONDIR "${CMAKE_INSTALL_FULL_LIBDIR}/${CMAKE_PROJECT_NAME}") | ||
676 | 4 | include_directories( | ||
677 | 5 | "${CMAKE_SOURCE_DIR}" | ||
678 | 6 | "${CMAKE_SOURCE_DIR}/midori" | ||
679 | 7 | "${CMAKE_SOURCE_DIR}/katze" | ||
680 | 8 | ${DEPS_INCLUDE_DIRS} | ||
681 | 9 | ${OPTS_INCLUDE_DIRS} | ||
682 | 10 | ${DEPS_GTK_INCLUDE_DIRS} | ||
683 | 11 | ${OPTS_GTK_INCLUDE_DIRS} | ||
684 | 12 | ${CMAKE_BINARY_DIR} | ||
685 | 13 | "${CMAKE_BINARY_DIR}/midori" | ||
686 | 14 | ) | ||
687 | 15 | file(GLOB EXTENSIONS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *) | ||
688 | 16 | if (HALF_BRO_INCOM_WEBKIT2) | ||
689 | 17 | list(REMOVE_ITEM EXTENSIONS | ||
690 | 18 | "adblock.c" | ||
691 | 19 | "cookie-permissions" | ||
692 | 20 | "addons.c" | ||
693 | 21 | "formhistory" | ||
694 | 22 | "external-download-manager.vala" | ||
695 | 23 | "nojs" | ||
696 | 24 | "nsplugin-manager.vala" | ||
697 | 25 | ) | ||
698 | 26 | endif () | ||
699 | 27 | |||
700 | 28 | foreach(UNIT_SRC ${EXTENSIONS}) | ||
701 | 29 | string(FIND ${UNIT_SRC} ".c" UNIT_EXTENSION) | ||
702 | 30 | if (UNIT_EXTENSION GREATER -1) | ||
703 | 31 | string(REPLACE ".c" "" UNIT ${UNIT_SRC}) | ||
704 | 32 | add_library(${UNIT} MODULE ${UNIT_SRC}) | ||
705 | 33 | target_link_libraries(${UNIT} | ||
706 | 34 | ${LIBMIDORI} | ||
707 | 35 | ) | ||
708 | 36 | set_target_properties(${UNIT} PROPERTIES | ||
709 | 37 | COMPILE_FLAGS ${CFLAGS} | ||
710 | 38 | ) | ||
711 | 39 | install(TARGETS ${UNIT} | ||
712 | 40 | LIBRARY DESTINATION ${EXTENSIONDIR} | ||
713 | 41 | ) | ||
714 | 42 | endif () | ||
715 | 43 | endforeach () | ||
716 | 44 | |||
717 | 45 | foreach(UNIT_SRC ${EXTENSIONS}) | ||
718 | 46 | string(FIND ${UNIT_SRC} "." UNIT_EXTENSION) | ||
719 | 47 | if (UNIT_EXTENSION EQUAL -1) | ||
720 | 48 | file(GLOB UNIT_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${UNIT_SRC}/*.c") | ||
721 | 49 | if (UNIT_FILES) | ||
722 | 50 | add_library(${UNIT_SRC} MODULE ${UNIT_FILES}) | ||
723 | 51 | target_link_libraries(${UNIT_SRC} | ||
724 | 52 | ${LIBMIDORI} | ||
725 | 53 | ) | ||
726 | 54 | set_target_properties(${UNIT_SRC} PROPERTIES | ||
727 | 55 | COMPILE_FLAGS ${CFLAGS} | ||
728 | 56 | ) | ||
729 | 57 | install(TARGETS ${UNIT_SRC} | ||
730 | 58 | LIBRARY DESTINATION ${EXTENSIONDIR} | ||
731 | 59 | ) | ||
732 | 60 | endif () | ||
733 | 61 | endif () | ||
734 | 62 | endforeach () | ||
735 | 63 | |||
736 | 64 | foreach(UNIT_SRC ${EXTENSIONS}) | ||
737 | 65 | string(FIND ${UNIT_SRC} ".vala" UNIT_EXTENSION) | ||
738 | 66 | if (UNIT_EXTENSION GREATER -1) | ||
739 | 67 | string(REPLACE ".vala" "" UNIT ${UNIT_SRC}) | ||
740 | 68 | include(ValaPrecompile) | ||
741 | 69 | vala_precompile(UNIT_SRC_C ${UNIT} | ||
742 | 70 | ${UNIT_SRC} | ||
743 | 71 | PACKAGES | ||
744 | 72 | ${PKGS} | ||
745 | 73 | OPTIONS | ||
746 | 74 | ${VALAFLAGS} | ||
747 | 75 | CUSTOM_VAPIS | ||
748 | 76 | ${EXTRA_VAPIS} | ||
749 | 77 | "${CMAKE_SOURCE_DIR}/midori/midori.vapi" | ||
750 | 78 | "${CMAKE_SOURCE_DIR}/katze/katze.vapi" | ||
751 | 79 | "${CMAKE_BINARY_DIR}/midori/${LIBMIDORI}.vapi" | ||
752 | 80 | ) | ||
753 | 81 | add_library(${UNIT} MODULE ${UNIT_SRC_C}) | ||
754 | 82 | target_link_libraries(${UNIT} | ||
755 | 83 | ${LIBMIDORI} | ||
756 | 84 | ) | ||
757 | 85 | set_target_properties(${UNIT} PROPERTIES | ||
758 | 86 | COMPILE_FLAGS ${CFLAGS} | ||
759 | 87 | ) | ||
760 | 88 | install(TARGETS ${UNIT} | ||
761 | 89 | LIBRARY DESTINATION ${EXTENSIONDIR} | ||
762 | 90 | ) | ||
763 | 91 | endif () | ||
764 | 92 | endforeach () | ||
765 | 0 | 93 | ||
766 | === added file 'icons/CMakeLists.txt' | |||
767 | --- icons/CMakeLists.txt 1970-01-01 00:00:00 +0000 | |||
768 | +++ icons/CMakeLists.txt 2013-09-01 17:11:24 +0000 | |||
769 | @@ -0,0 +1,12 @@ | |||
770 | 1 | # Copyright (C) 2013 Christian Dywan <christian@twotoasts.de> | ||
771 | 2 | |||
772 | 3 | macro(install_icon name cat size) | ||
773 | 4 | file(GLOB FILENAME RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${size}/${name}.*") | ||
774 | 5 | install(FILES ${FILENAME} DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/${size}/${cat}) | ||
775 | 6 | endmacro() | ||
776 | 7 | |||
777 | 8 | foreach(SIZE "16x16;22x22;scalable") | ||
778 | 9 | install_icon(midori apps ${SIZE}) | ||
779 | 10 | install_icon(extension categories ${SIZE}) | ||
780 | 11 | install_icon(internet-news-reader status ${SIZE}) | ||
781 | 12 | endforeach() | ||
782 | 0 | 13 | ||
783 | === added file 'midori/CMakeLists.txt' | |||
784 | --- midori/CMakeLists.txt 1970-01-01 00:00:00 +0000 | |||
785 | +++ midori/CMakeLists.txt 2013-09-01 17:11:24 +0000 | |||
786 | @@ -0,0 +1,64 @@ | |||
787 | 1 | # Copyright (C) 2013 Christian Dywan <christian@twotoasts.de> | ||
788 | 2 | |||
789 | 3 | set(LIBMIDORI_VERSION 0.5.5) | ||
790 | 4 | set(LIBMIDORI_SOVERSION 0) | ||
791 | 5 | |||
792 | 6 | file(GLOB MIDORI_VALA_SOURCE ../katze/*.vala *.vala ../panels/*.vala) | ||
793 | 7 | file(GLOB LIBMIDORI_SOURCE ../katze/*.c ../panels/*.c ../toolbars/*.c midori-*.vala midori-*.c sokoke.c) | ||
794 | 8 | include(GLibHelpers) | ||
795 | 9 | add_glib_marshal(LIBMIDORI_SOURCE marshal ${CMAKE_PROJECT_NAME}_cclosure_marshal "midori.h") | ||
796 | 10 | set(MIDORI_SOURCE | ||
797 | 11 | main.c | ||
798 | 12 | ) | ||
799 | 13 | |||
800 | 14 | include(ValaPrecompile) | ||
801 | 15 | vala_precompile(LIBMIDORI_SOURCE_C ${CMAKE_PROJECT_NAME} | ||
802 | 16 | ${MIDORI_VALA_SOURCE} | ||
803 | 17 | PACKAGES | ||
804 | 18 | ${PKGS} | ||
805 | 19 | OPTIONS | ||
806 | 20 | ${VALAFLAGS} | ||
807 | 21 | CUSTOM_VAPIS | ||
808 | 22 | ${EXTRA_VAPIS} | ||
809 | 23 | GENERATE_VAPI | ||
810 | 24 | "${CMAKE_PROJECT_NAME}-core" | ||
811 | 25 | GENERATE_HEADER | ||
812 | 26 | "${CMAKE_PROJECT_NAME}-core" | ||
813 | 27 | ) | ||
814 | 28 | |||
815 | 29 | add_library(${LIBMIDORI} SHARED ${LIBMIDORI_SOURCE_C} ${LIBMIDORI_SOURCE}) | ||
816 | 30 | include_directories( | ||
817 | 31 | ${CMAKE_SOURCE_DIR} | ||
818 | 32 | ${CMAKE_CURRENT_SOURCE_DIR} | ||
819 | 33 | "${CMAKE_SOURCE_DIR}/katze" | ||
820 | 34 | "${CMAKE_SOURCE_DIR}/toolbars" | ||
821 | 35 | ${CMAKE_BINARY_DIR} | ||
822 | 36 | ${DEPS_INCLUDE_DIRS} | ||
823 | 37 | ${OPTS_INCLUDE_DIRS} | ||
824 | 38 | ${DEPS_GTK_INCLUDE_DIRS} | ||
825 | 39 | ${OPTS_GTK_INCLUDE_DIRS} | ||
826 | 40 | ) | ||
827 | 41 | target_link_libraries(${LIBMIDORI} | ||
828 | 42 | ${DEPS_LIBRARIES} | ||
829 | 43 | ${OPTS_LIBRARIES} | ||
830 | 44 | ${DEPS_GTK_LIBRARIES} | ||
831 | 45 | ${OPTS_GTK_LIBRARIES} | ||
832 | 46 | ) | ||
833 | 47 | set_target_properties(${LIBMIDORI} PROPERTIES | ||
834 | 48 | COMPILE_FLAGS ${CFLAGS} | ||
835 | 49 | SOVERSION 1 | ||
836 | 50 | VERSION 0.0.0 | ||
837 | 51 | ) | ||
838 | 52 | install(TARGETS ${LIBMIDORI} | ||
839 | 53 | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||
840 | 54 | ) | ||
841 | 55 | |||
842 | 56 | add_executable(${CMAKE_PROJECT_NAME} main.c) | ||
843 | 57 | target_link_libraries(${CMAKE_PROJECT_NAME} | ||
844 | 58 | ${LIBMIDORI}) | ||
845 | 59 | set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES | ||
846 | 60 | COMPILE_FLAGS ${CFLAGS} | ||
847 | 61 | ) | ||
848 | 62 | install(TARGETS ${CMAKE_PROJECT_NAME} | ||
849 | 63 | RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} | ||
850 | 64 | ) | ||
851 | 0 | 65 | ||
852 | === added file 'po/CMakeLists.txt' | |||
853 | --- po/CMakeLists.txt 1970-01-01 00:00:00 +0000 | |||
854 | +++ po/CMakeLists.txt 2013-09-01 17:11:24 +0000 | |||
855 | @@ -0,0 +1,18 @@ | |||
856 | 1 | # Copyright (C) 2013 Christian Dywan <christian@twotoasts.de> | ||
857 | 2 | |||
858 | 3 | include(FindGettext) | ||
859 | 4 | if (GETTEXT_FOUND) | ||
860 | 5 | add_definitions("-DENABLE_NLS") | ||
861 | 6 | set(LANGUAGES $ENV{LINGUAS}) | ||
862 | 7 | if (NOT LANGUAGES) | ||
863 | 8 | file(GLOB POTFILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.po") | ||
864 | 9 | string(REPLACE ".po" " " LANGUAGES ${POTFILES}) | ||
865 | 10 | endif () | ||
866 | 11 | message(STATUS "gettext found: ${LANGUAGES}") | ||
867 | 12 | string(REPLACE " " ";" LANGUAGES ${LANGUAGES}) | ||
868 | 13 | foreach(LANG ${LANGUAGES}) | ||
869 | 14 | GETTEXT_PROCESS_PO_FILES(${LANG} ALL PO_FILES "${LANG}.po") | ||
870 | 15 | endforeach () | ||
871 | 16 | else () | ||
872 | 17 | message(STATUS "gettext not found") | ||
873 | 18 | endif () | ||
874 | 0 | 19 | ||
875 | === modified file 'po/POTFILES.in' | |||
876 | --- po/POTFILES.in 2013-08-21 23:24:00 +0000 | |||
877 | +++ po/POTFILES.in 2013-09-01 17:11:24 +0000 | |||
878 | @@ -67,8 +67,6 @@ | |||
879 | 67 | katze/midori-hsts.vala | 67 | katze/midori-hsts.vala |
880 | 68 | katze/katze-separatoraction.vala | 68 | katze/katze-separatoraction.vala |
881 | 69 | katze/gtk3-compat.c | 69 | katze/gtk3-compat.c |
882 | 70 | katze/katze-http-cookies-sqlite.c | ||
883 | 71 | katze/katze-http-cookies.c | ||
884 | 72 | midori/midori-panedaction.vala | 70 | midori/midori-panedaction.vala |
885 | 73 | midori/midori-privatedata.c | 71 | midori/midori-privatedata.c |
886 | 74 | midori/midori-dialog.vala | 72 | midori/midori-dialog.vala |
887 | 75 | 73 | ||
888 | === added file 'tests/CMakeLists.txt' | |||
889 | --- tests/CMakeLists.txt 1970-01-01 00:00:00 +0000 | |||
890 | +++ tests/CMakeLists.txt 2013-09-01 17:11:24 +0000 | |||
891 | @@ -0,0 +1,65 @@ | |||
892 | 1 | # Copyright (C) 2013 Christian Dywan <christian@twotoasts.de> | ||
893 | 2 | |||
894 | 3 | include(ContainTest) | ||
895 | 4 | add_custom_target(check COMMAND "env" "CTEST_OUTPUT_ON_FAILURE=1" "${CMAKE_CTEST_COMMAND}") | ||
896 | 5 | |||
897 | 6 | include_directories( | ||
898 | 7 | "${CMAKE_SOURCE_DIR}" | ||
899 | 8 | "${CMAKE_SOURCE_DIR}/midori" | ||
900 | 9 | ${DEPS_INCLUDE_DIRS} | ||
901 | 10 | ${OPTS_INCLUDE_DIRS} | ||
902 | 11 | ${DEPS_GTK_INCLUDE_DIRS} | ||
903 | 12 | ${OPTS_GTK_INCLUDE_DIRS} | ||
904 | 13 | ${CMAKE_BINARY_DIR} | ||
905 | 14 | "${CMAKE_BINARY_DIR}/midori" | ||
906 | 15 | ) | ||
907 | 16 | file(GLOB TESTS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.c) | ||
908 | 17 | foreach(UNIT_SRC ${TESTS}) | ||
909 | 18 | string(REPLACE ".c" "" UNIT ${UNIT_SRC}) | ||
910 | 19 | add_executable(${UNIT} ${UNIT_SRC}) | ||
911 | 20 | add_test(NAME ${UNIT} COMMAND ${UNIT}) | ||
912 | 21 | contain_test(${UNIT}) | ||
913 | 22 | target_link_libraries(${UNIT} | ||
914 | 23 | ${LIBMIDORI} | ||
915 | 24 | ) | ||
916 | 25 | set_target_properties(${UNIT} PROPERTIES | ||
917 | 26 | COMPILE_FLAGS ${CFLAGS} | ||
918 | 27 | ) | ||
919 | 28 | endforeach () | ||
920 | 29 | |||
921 | 30 | file(GLOB TESTS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.vala) | ||
922 | 31 | foreach(UNIT_SRC ${TESTS}) | ||
923 | 32 | string(REPLACE ".vala" "" UNIT ${UNIT_SRC}) | ||
924 | 33 | include(ValaPrecompile) | ||
925 | 34 | vala_precompile(UNIT_SRC_C ${UNIT} | ||
926 | 35 | ${UNIT_SRC} | ||
927 | 36 | PACKAGES | ||
928 | 37 | ${PKGS} | ||
929 | 38 | OPTIONS | ||
930 | 39 | ${VALAFLAGS} | ||
931 | 40 | CUSTOM_VAPIS | ||
932 | 41 | ${EXTRA_VAPIS} | ||
933 | 42 | "${CMAKE_SOURCE_DIR}/midori/midori.vapi" | ||
934 | 43 | "${CMAKE_SOURCE_DIR}/katze/katze.vapi" | ||
935 | 44 | "${CMAKE_BINARY_DIR}/midori/${LIBMIDORI}.vapi" | ||
936 | 45 | ) | ||
937 | 46 | add_executable(${UNIT} ${UNIT_SRC_C}) | ||
938 | 47 | add_test(NAME ${UNIT} COMMAND ${UNIT}) | ||
939 | 48 | contain_test(${UNIT}) | ||
940 | 49 | target_link_libraries(${UNIT} | ||
941 | 50 | ${LIBMIDORI} | ||
942 | 51 | ) | ||
943 | 52 | set_target_properties(${UNIT} PROPERTIES | ||
944 | 53 | COMPILE_FLAGS ${CFLAGS} | ||
945 | 54 | ) | ||
946 | 55 | endforeach () | ||
947 | 56 | |||
948 | 57 | file(GLOB TESTS *.sh) | ||
949 | 58 | foreach(UNIT_SRC ${TESTS}) | ||
950 | 59 | string(REPLACE ".sh" "" UNIT ${UNIT_SRC}) | ||
951 | 60 | add_test(NAME ${UNIT} COMMAND ${UNIT_SRC}) | ||
952 | 61 | set_tests_properties(${UNIT} PROPERTIES | ||
953 | 62 | ENVIRONMENT "SRCDIR=${CMAKE_SOURCE_DIR}" | ||
954 | 63 | ENVIRONMENT "BLDDIR=${CMAKE_BINARY_DIR}" | ||
955 | 64 | ) | ||
956 | 65 | endforeach () |
Attempt to merge into lp:midori failed due to conflicts:
text conflict in po/POTFILES.in