blob: 798537d0d786c5f0190909ceb305b4a57c649357 [file] [log] [blame]
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -05001CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)
2
3# First, check is the compiler is new enough, most version of Clang are fine
4# until problems arise, checking for GCC is enough
5IF (CMAKE_COMPILER_IS_GNUCC)
6 EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
7 IF (GCC_VERSION VERSION_GREATER 4.8 OR GCC_VERSION VERSION_EQUAL 4.8)
8 MESSAGE(STATUS "Found GCC version >= 4.8: " ${GCC_VERSION})
9 ELSE()
10 MESSAGE(FATAL_ERROR "Your version of GCC is too old, please install GCC 4.8 or later")
11 ENDIF()
12ENDIF()
13
14ADD_DEFINITIONS("-std=c++1y")
15
Stepan Salenikovichc1dac252015-03-25 17:19:35 -040016# set project name and version
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -050017PROJECT(ring-client-gnome)
Stepan Salenikovichc1dac252015-03-25 17:19:35 -040018SET(PROJECT_VERSION_MAJOR 0)
Guillaume Roguez16cc8bd2015-05-01 15:08:17 -040019SET(PROJECT_VERSION_MINOR 4)
Guillaume Roguez90ee8642015-04-15 15:21:19 -040020SET(PROJECT_VERSION_PATCH 0)
Stepan Salenikovichc1dac252015-03-25 17:19:35 -040021
Stepan Salenikovichc1dac252015-03-25 17:19:35 -040022# add the binary tree to the search path for include files
23# so that we will find config.h
24INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}")
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -050025
Stepan Salenikovicha8df7ea2015-02-18 12:46:36 -050026LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
27
Stepan Salenikovichfb7f2952015-05-25 16:44:19 -040028# include custom cmake modules
Stepan Salenikovicha8df7ea2015-02-18 12:46:36 -050029INCLUDE(${CMAKE_SOURCE_DIR}/cmake/GResources.cmake)
Stepan Salenikovichfb7f2952015-05-25 16:44:19 -040030INCLUDE(${CMAKE_SOURCE_DIR}/cmake/GSettings.cmake)
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -050031
32# make sure we're using Qt5
33SET(ENABLE_QT5 true)
34
35# for now, set debug as default
36SET(CMAKE_BUILD_TYPE Debug)
37
Stepan Salenikovichdd82f9b2015-09-16 14:04:05 -040038# during packaging the CMAKE_INSTALL_PREFIX is used to specify where to install the files, but it
39# may not be the same as where the package will put them, use RING_INSTALL_PREFIX to let the client
40# know at runtime where to expect installed files to be located
41SET(RING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}
42 CACHE PATH "prefix where the package will be installed on the user's system (eg: /usr/local); defaults to the CMAKE_INSTALL_PREFIX"
43)
44
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -050045# find packages
46FIND_PACKAGE(PkgConfig REQUIRED)
47PKG_CHECK_MODULES(GTK3 REQUIRED gtk+-3.0>=3.10)
48FIND_PACKAGE(LibRingClient REQUIRED)
49FIND_PACKAGE(Qt5Core REQUIRED)
Stepan Salenikovich36c025c2015-03-03 19:06:44 -050050PKG_CHECK_MODULES(CLUTTER REQUIRED clutter-1.0)
51PKG_CHECK_MODULES(CLUTTERGTK REQUIRED clutter-gtk-1.0)
Stepan Salenikovich2d63d5e2015-03-22 23:23:54 -040052PKG_CHECK_MODULES(ICONSYMBLIC REQUIRED gnome-icon-theme-symbolic)
Stepan Salenikovich6f687072015-03-26 10:43:37 -040053PKG_CHECK_MODULES(EBOOK REQUIRED libebook-1.2>=3.10)
Stepan Salenikovich76c33e62015-05-22 12:24:07 -040054PKG_CHECK_MODULES(LIBNOTIFY libnotify>=0.7.6) #optional
Stepan Salenikoviche88f6692015-09-10 18:09:38 -040055FIND_PACKAGE(Gettext) #optional for translations
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -050056
57# include libs
58INCLUDE_DIRECTORIES(${GTK3_INCLUDE_DIRS})
59INCLUDE_DIRECTORIES(${LIB_RING_CLIENT_INCLUDE_DIR})
Stepan Salenikovichd2dbcee2015-02-27 16:52:28 -050060INCLUDE_DIRECTORIES(SYSTEM ${Qt5Core_INCLUDE_DIRS} )
Stepan Salenikovich36c025c2015-03-03 19:06:44 -050061INCLUDE_DIRECTORIES(${CLUTTER_INCLUDE_DIRS})
62INCLUDE_DIRECTORIES(${CLUTTERGTK_INCLUDE_DIRS})
Stepan Salenikovich6f687072015-03-26 10:43:37 -040063INCLUDE_DIRECTORIES(${EBOOK_INCLUDE_DIRS})
Stepan Salenikovich76c33e62015-05-22 12:24:07 -040064INCLUDE_DIRECTORIES(${LIBNOTIFY_INCLUDE_DIRS})
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -050065
66# link libs
67LINK_DIRECTORIES(${GTK3_LIBRARY_DIRS})
Stepan Salenikovich36c025c2015-03-03 19:06:44 -050068LINK_DIRECTORIES(${LIB_RING_LIBRARY_INCLUDE_DIR})
69LINK_DIRECTORIES(${Qt5Core_LIBRARY_DIRS} )
70LINK_DIRECTORIES(${CLUTTER_LIBRARY_DIRS})
71LINK_DIRECTORIES(${CLUTTERGTK_LIBRARY_DIRS})
Stepan Salenikovich6f687072015-03-26 10:43:37 -040072LINK_DIRECTORIES(${EBOOK_LIBRARY_DIRS})
Stepan Salenikovich76c33e62015-05-22 12:24:07 -040073LINK_DIRECTORIES(${LIBNOTIFY_LIBRARY_DIRS})
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -050074
Stepan Salenikovich36c025c2015-03-03 19:06:44 -050075# lib compiler flags
76ADD_DEFINITIONS(${GTK3_CFLAGS})
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -050077ADD_DEFINITIONS(${GTK3_CFLAGS_OTHER})
Stepan Salenikovich36c025c2015-03-03 19:06:44 -050078ADD_DEFINITIONS(${LIB_RING_LIBRARY_CFLAGS})
79ADD_DEFINITIONS(${Qt5Core_CFLAGS})
80ADD_DEFINITIONS(${CLUTTER_CFLAGS})
81ADD_DEFINITIONS(${CLUTTERGTK_CFLAGS})
Stepan Salenikovich6f687072015-03-26 10:43:37 -040082ADD_DEFINITIONS(${EBOOK_CFLAGS})
Stepan Salenikovich76c33e62015-05-22 12:24:07 -040083ADD_DEFINITIONS(${LIBNOTIFY_CFLAGS})
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -050084
Guillaume Roguez644caf42015-03-20 16:28:36 -040085IF(NOT ${ENABLE_STATIC} MATCHES false)
86 SET(QT5_MODULE_PATH ${QT5_PATH}/lib/cmake)
87 FIND_PACKAGE(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core DBus)
88 FIND_PACKAGE(Qt5DBus REQUIRED)
89 INCLUDE_DIRECTORIES(SYSTEM ${Qt5DBus_INCLUDE_DIRS} )
90 LINK_DIRECTORIES(${Qt5DBus_LIBRARY_DIRS} )
91 ADD_DEFINITIONS(${Qt5DBus_CFLAGS})
92ENDIF()
93
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -050094# warnings
95ADD_DEFINITIONS(
96 -Wall
97 -Wextra
98 -Wno-cpp
99 -Wmissing-noreturn
100 -Wpointer-arith
101 -Wcast-align
102 -Wwrite-strings
103 -Wformat-nonliteral
104 -Wformat-security
105 -Wswitch-enum
106 -Winit-self
107 -Wmissing-include-dirs
108 -Wundef
109 -Wmissing-format-attribute
110 -Wno-reorder
111 -Wunused
112 -Wuninitialized
113 -Woverloaded-virtual
114 -Wsuggest-attribute=const
115 -Wunused-value
116 -Wdouble-promotion
117 -Wnonnull
118 -Wsequence-point
119 -Wunused-but-set-parameter
120 -Wsizeof-pointer-memaccess
121 -Wvarargs
122)
123
124# more warnings
125IF (CMAKE_COMPILER_IS_GNUCC)
126 IF (GCC_VERSION VERSION_GREATER 4.9 OR GCC_VERSION VERSION_EQUAL 4.9)
127 ADD_DEFINITIONS(
128 -Wconditionally-supported
129 -Wdate-time
130 -Wdelete-incomplete
131 -Wfloat-conversion
132 )
133 ENDIF()
134
135 IF (GCC_VERSION VERSION_GREATER 5.0 OR GCC_VERSION VERSION_EQUAL 5.0)
136 ADD_DEFINITIONS(
137 -Wsuggest-override
138 -Wsuggest-final-types
139 -Wsuggest-final-methods
140 -Wbool-compare
141 -Wformat-signedness
142 -Wlogical-not-parentheses
143 -Wnormalized
144 -Wshift-count-negative
145 -Wshift-count-overflow
146 -Wsized-deallocation
147 -Wsizeof-array-argument
148 )
149 ENDIF()
150
151ENDIF()
152
Stepan Salenikovich4f9bb982015-06-23 14:26:30 -0400153# get git version on every build
154SET(GIT_REVISION_INPUT_FILE ${PROJECT_SOURCE_DIR}/src/revision.h.in)
155SET(GIT_REVISION_OUTPUT_FILE ${PROJECT_BINARY_DIR}/revision.h)
156
157ADD_CUSTOM_TARGET(
158 git_revision ALL
159 COMMAND ${CMAKE_COMMAND}
160 -DGIT_REVISION_INPUT_FILE=${GIT_REVISION_INPUT_FILE}
161 -DGIT_REVISION_OUTPUT_FILE=${GIT_REVISION_OUTPUT_FILE}
162 -P ${CMAKE_SOURCE_DIR}/cmake/GitRevision.cmake
163 COMMENT "generating ${GIT_REVISION_OUTPUT_FILE}"
164)
165
166ADD_CUSTOM_COMMAND(
167 OUTPUT ${GIT_REVISION_OUTPUT_FILE}
168 DEPENDS git_revision
169)
170
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -0500171# source files to compile
172SET( SRC_FILES
173 src/main.cpp
Stepan Salenikovichd81ef292015-02-17 18:47:37 -0500174 src/ring_client.h
175 src/ring_client.cpp
176 src/ring_client_options.h
177 src/ring_client_options.c
Stepan Salenikovich434b88f2015-02-19 17:49:08 -0500178 src/ringmainwindow.h
179 src/ringmainwindow.cpp
Stepan Salenikovich69771842015-02-24 18:11:45 -0500180 src/incomingcallview.h
181 src/incomingcallview.cpp
Stepan Salenikovichc64523b2015-02-27 16:31:00 -0500182 src/currentcallview.h
183 src/currentcallview.cpp
Stepan Salenikovicha3557452015-02-20 14:14:12 -0500184 src/models/gtkaccessproxymodel.h
185 src/models/gtkaccessproxymodel.cpp
186 src/models/gtkqtreemodel.h
187 src/models/gtkqtreemodel.cpp
Stepan Salenikovich297b5d12015-02-26 17:51:13 -0500188 src/utils/drawing.h
Stepan Salenikovichd8765072016-01-14 10:58:51 -0500189 src/utils/drawing.cpp
Stepan Salenikovich36c025c2015-03-03 19:06:44 -0500190 src/video/video_widget.h
191 src/video/video_widget.cpp
Stepan Salenikovich7ff47962015-03-16 15:10:14 -0400192 src/models/gtkqsortfiltertreemodel.h
193 src/models/gtkqsortfiltertreemodel.cpp
Stepan Salenikovich61cbab02015-03-16 18:35:10 -0400194 src/accountview.h
195 src/accountview.cpp
196 src/accountgeneraltab.h
197 src/accountgeneraltab.cpp
198 src/accountaudiotab.h
199 src/accountaudiotab.cpp
200 src/accountvideotab.h
201 src/accountvideotab.cpp
Stepan Salenikovichb7e6a732015-05-04 17:13:22 -0400202 src/accountadvancedtab.h
203 src/accountadvancedtab.cpp
Stepan Salenikovich7a1e71c2015-05-07 11:14:48 -0400204 src/accountsecuritytab.h
205 src/accountsecuritytab.cpp
Stepan Salenikovichc3fede22015-03-20 17:01:47 -0400206 src/models/activeitemproxymodel.h
207 src/models/activeitemproxymodel.cpp
Stepan Salenikovich50c989b2015-03-21 18:32:46 -0400208 src/defines.h
Stepan Salenikovich8bc51e52015-03-21 20:17:29 -0400209 src/video/xrectsel.h
210 src/video/xrectsel.c
Stepan Salenikovichbd029582015-03-24 11:00:56 -0400211 src/dialogs.h
212 src/dialogs.c
Stepan Salenikovich0bd53492015-05-11 14:28:52 -0400213 src/mediasettingsview.h
214 src/mediasettingsview.cpp
Stepan Salenikovichde896112015-05-11 16:46:33 -0400215 src/generalsettingsview.h
216 src/generalsettingsview.cpp
Stepan Salenikovich6f687072015-03-26 10:43:37 -0400217 src/backends/edscontactbackend.h
218 src/backends/edscontactbackend.cpp
Stepan Salenikovichbbd6c132015-08-20 15:21:48 -0400219 src/native/pixbufmanipulator.h
220 src/native/pixbufmanipulator.cpp
Stepan Salenikovich9816a942015-04-22 17:49:16 -0400221 src/contactsview.h
222 src/contactsview.cpp
223 src/historyview.h
224 src/historyview.cpp
225 src/utils/models.h
226 src/utils/models.cpp
227 src/utils/calling.h
228 src/utils/calling.cpp
Stepan Salenikovich76c33e62015-05-22 12:24:07 -0400229 src/ringnotify.h
230 src/ringnotify.cpp
Stepan Salenikovichfb7f2952015-05-25 16:44:19 -0400231 src/utils/files.h
232 src/utils/files.cpp
Stepan Salenikovich4f9bb982015-06-23 14:26:30 -0400233 ${GIT_REVISION_OUTPUT_FILE}
Stepan Salenikovichf2d76c52015-07-17 17:54:56 -0400234 src/utils/menus.h
235 src/utils/menus.cpp
Stepan Salenikovich75a39172015-07-10 13:21:08 -0400236 src/utils/accounts.h
237 src/utils/accounts.cpp
Stepan Salenikovich0cf247d2015-07-24 17:36:32 -0400238 src/contactpopover.h
239 src/contactpopover.cpp
240 src/choosecontactview.h
241 src/choosecontactview.cpp
242 src/editcontactview.h
243 src/editcontactview.cpp
Stepan Salenikovichbe6550c2015-08-21 16:16:03 -0400244 src/native/dbuserrorhandler.h
245 src/native/dbuserrorhandler.cpp
Stepan Salenikovich2cde7612015-09-25 10:44:01 -0400246 src/ringwelcomeview.h
247 src/ringwelcomeview.cpp
Stepan Salenikovich2f8b4492015-09-21 17:10:36 -0400248 src/recentcontactsview.h
249 src/recentcontactsview.cpp
Stepan Salenikovichd2cad062016-01-08 13:43:49 -0500250 src/chatview.h
251 src/chatview.cpp
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -0500252)
253
Stepan Salenikovicha8df7ea2015-02-18 12:46:36 -0500254# compile glib resource files to c code
255GLIB_COMPILE_RESOURCES( GLIB_RESOURCES_RING
256 SOURCE
257 pixmaps/pixmaps.gresource.xml
Stepan Salenikovich434b88f2015-02-19 17:49:08 -0500258 ui/ui.gresource.xml
Stepan Salenikovicha8df7ea2015-02-18 12:46:36 -0500259)
260
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -0500261# IF(${ENABLE_TEST} MATCHES true)
262# ADD_SUBDIRECTORY( src/test)
263# ENDIF()
264
265# for translations
Stepan Salenikoviche88f6692015-09-10 18:09:38 -0400266IF (GETTEXT_FOUND)
267
268 # get all translation files; they're expected to be named using the following convention:
269 # '<lang code>[_<country code].po'
270 # eg: fr_CA.po (the country code is optional)
271 FILE(GLOB PO_FILES ${CMAKE_SOURCE_DIR}/po/*.po)
272
273 # Install each of the translation files
274 FOREACH(PO_FILE IN LISTS PO_FILES)
275 # extract the language (and optional country code) from the filename
276 GET_FILENAME_COMPONENT(LANG ${PO_FILE} NAME_WE)
277 GETTEXT_PROCESS_PO_FILES(${LANG} ALL PO_FILES ${PO_FILE})
278
279 SET(TRANSLATIONS_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/locale/${LANG}/LC_MESSAGES)
280
281 # install to share/locale and rename each to ring-client-gnome.mo
282 INSTALL(
283 FILES ${PROJECT_BINARY_DIR}/${LANG}.gmo
284 DESTINATION ${TRANSLATIONS_INSTALL_DIR}
285 RENAME ${PROJECT_NAME}.mo
286 )
287 ENDFOREACH(PO_FILE)
288
289ENDIF(GETTEXT_FOUND)
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -0500290
Stepan Salenikovichfb7f2952015-05-25 16:44:19 -0400291# install and compile glib gsettings schema
292add_schema("cx.ring.RingGnome.gschema.xml" GSCHEMA_RING)
293
294ADD_EXECUTABLE(gnome-ring ${GLIB_RESOURCES_RING} ${GSCHEMA_RING} ${SRC_FILES})
Stepan Salenikoviche3500cb2015-02-13 15:55:46 -0500295
Guillaume Roguez644caf42015-03-20 16:28:36 -0400296IF(NOT ${ENABLE_STATIC} MATCHES false)
Stepan Salenikovich9aef3122015-03-20 17:04:09 -0400297TARGET_LINK_LIBRARIES(gnome-ring
Stepan Salenikovich36c025c2015-03-03 19:06:44 -0500298 ${LIB_RING_CLIENT_LIBRARY}
299 ${GTK3_LIBRARIES}
Guillaume Roguez644caf42015-03-20 16:28:36 -0400300 ${Qt5Core_LIBRARIES}
301 ${Qt5DBus_LIBRARIES}
Stepan Salenikovich36c025c2015-03-03 19:06:44 -0500302 ${CLUTTER_LIBRARIES}
Guillaume Roguez644caf42015-03-20 16:28:36 -0400303 ${CLUTTERGTK_LIBRARIES}
Stepan Salenikovich6f687072015-03-26 10:43:37 -0400304 ${EBOOK_LIBRARIES}
Stepan Salenikovich76c33e62015-05-22 12:24:07 -0400305 ${LIBNOTIFY_LIBRARIES}
Guillaume Roguez644caf42015-03-20 16:28:36 -0400306 -lpthread
307 -lrt
308 )
309ELSE()
Stepan Salenikovich9aef3122015-03-20 17:04:09 -0400310TARGET_LINK_LIBRARIES(gnome-ring
Guillaume Roguez644caf42015-03-20 16:28:36 -0400311 ${LIB_RING_CLIENT_LIBRARY}
312 ${GTK3_LIBRARIES}
313 ${Qt5Core_LIBRARIES}
314 ${CLUTTER_LIBRARIES}
315 ${CLUTTERGTK_LIBRARIES}
Stepan Salenikovich6f687072015-03-26 10:43:37 -0400316 ${EBOOK_LIBRARIES}
Stepan Salenikovich76c33e62015-05-22 12:24:07 -0400317 ${LIBNOTIFY_LIBRARIES}
Guillaume Roguez644caf42015-03-20 16:28:36 -0400318 )
319ENDIF()
Stepan Salenikovich1c34fc52015-03-13 12:43:54 -0400320
Stepan Salenikovich76c33e62015-05-22 12:24:07 -0400321# configure libnotify variable for config.h file
322IF( LIBNOTIFY_FOUND )
323 SET(USE_LIBNOTIFY 1)
324ELSE()
325 SET(USE_LIBNOTIFY 0)
326ENDIF()
327
328# create config header file to pass cmake settings to source code
329CONFIGURE_FILE (
330 "${PROJECT_SOURCE_DIR}/src/config.h.in"
331 "${PROJECT_BINARY_DIR}/config.h"
332)
333
334# generate .desktop file
335CONFIGURE_FILE (
336 "${PROJECT_SOURCE_DIR}/gnome-ring.desktop.in"
337 "${PROJECT_BINARY_DIR}/gnome-ring.desktop"
338)
339
Stepan Salenikovich2bc23272015-09-17 18:05:01 -0400340# generate .desktop file for autostart
341CONFIGURE_FILE (
342 "${PROJECT_SOURCE_DIR}/gnome-ring.desktop.autostart.in"
343 "${PROJECT_BINARY_DIR}/gnome-ring.desktop.autostart"
344)
345
Stepan Salenikovich9aef3122015-03-20 17:04:09 -0400346INSTALL(TARGETS gnome-ring
Stepan Salenikovich1c34fc52015-03-13 12:43:54 -0400347 RUNTIME DESTINATION bin
348)
Stepan Salenikovichb42fde72015-03-30 12:29:09 -0400349
Stepan Salenikovichfb7f2952015-05-25 16:44:19 -0400350# install .desktop in XDG desktop dir so that it is recognized by the system
Stepan Salenikovichb42fde72015-03-30 12:29:09 -0400351INSTALL(FILES ${PROJECT_BINARY_DIR}/gnome-ring.desktop
352 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications
353)
354
Stepan Salenikovichfb7f2952015-05-25 16:44:19 -0400355# install .desktop in the gnome-ring data dir, so that it can be copied to the
356# autostart dir by the client
Stepan Salenikovich2bc23272015-09-17 18:05:01 -0400357INSTALL(FILES ${PROJECT_BINARY_DIR}/gnome-ring.desktop.autostart
Stepan Salenikovichfb7f2952015-05-25 16:44:19 -0400358 DESTINATION
359 ${CMAKE_INSTALL_PREFIX}/share/gnome-ring/
360 PERMISSIONS
361 WORLD_READ
362 OWNER_WRITE
363 OWNER_READ
364 GROUP_READ
Stepan Salenikovich2bc23272015-09-17 18:05:01 -0400365 RENAME
366 gnome-ring.desktop
Stepan Salenikovichfb7f2952015-05-25 16:44:19 -0400367)
368
Stepan Salenikovichb42fde72015-03-30 12:29:09 -0400369INSTALL(FILES pixmaps/ring.svg
370 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps
371)
372
373INSTALL(FILES gnome-ring.appdata.xml
374 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/appdata/
375)
Stepan Salenikovich841deaf2015-04-15 16:08:39 -0400376
Stepan Salenikovich0d707a62015-05-29 10:48:04 -0400377# install shell script which will launch "ring"
Stepan Salenikovichab120ea2015-06-01 18:14:12 -0400378INSTALL(
379 FILES
Stepan Salenikovich2eb07d02015-06-02 11:18:50 -0400380 "${PROJECT_SOURCE_DIR}/src/ring"
Stepan Salenikovichab120ea2015-06-01 18:14:12 -0400381 DESTINATION
382 ${CMAKE_INSTALL_PREFIX}/bin
383 PERMISSIONS
384 WORLD_READ
385 OWNER_WRITE
386 OWNER_READ
387 GROUP_READ
388 OWNER_EXECUTE
389 GROUP_EXECUTE
390 WORLD_EXECUTE
Stepan Salenikovich0d707a62015-05-29 10:48:04 -0400391)
392
Stepan Salenikovich841deaf2015-04-15 16:08:39 -0400393# add a target to generate API documentation with Doxygen
394FIND_PACKAGE(Doxygen)
395IF(DOXYGEN_FOUND)
396 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile @ONLY)
397 ADD_CUSTOM_TARGET(doc
398 COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile
399 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc
400 COMMENT "Generating API documentation with Doxygen" VERBATIM
401 )
402
403 # create doc/README.md symlink to README since Doxygen doesn't understand file with no extension
404 ADD_CUSTOM_COMMAND(
405 TARGET doc
406 PRE_BUILD
407 COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/README ${CMAKE_CURRENT_SOURCE_DIR}/doc/README.md
408 )
409ENDIF(DOXYGEN_FOUND)