Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 1 | CMAKE_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 |
| 5 | IF (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() |
| 12 | ENDIF() |
| 13 | |
| 14 | ADD_DEFINITIONS("-std=c++1y") |
| 15 | |
Stepan Salenikovich | c1dac25 | 2015-03-25 17:19:35 -0400 | [diff] [blame] | 16 | # set project name and version |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 17 | PROJECT(ring-client-gnome) |
Stepan Salenikovich | c1dac25 | 2015-03-25 17:19:35 -0400 | [diff] [blame] | 18 | SET(PROJECT_VERSION_MAJOR 0) |
Guillaume Roguez | 16cc8bd | 2015-05-01 15:08:17 -0400 | [diff] [blame] | 19 | SET(PROJECT_VERSION_MINOR 4) |
Guillaume Roguez | 90ee864 | 2015-04-15 15:21:19 -0400 | [diff] [blame] | 20 | SET(PROJECT_VERSION_PATCH 0) |
Stepan Salenikovich | c1dac25 | 2015-03-25 17:19:35 -0400 | [diff] [blame] | 21 | |
Stepan Salenikovich | c1dac25 | 2015-03-25 17:19:35 -0400 | [diff] [blame] | 22 | # add the binary tree to the search path for include files |
| 23 | # so that we will find config.h |
| 24 | INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}") |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 25 | |
Stepan Salenikovich | a8df7ea | 2015-02-18 12:46:36 -0500 | [diff] [blame] | 26 | LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") |
| 27 | |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 28 | # include custom cmake modules |
Stepan Salenikovich | a8df7ea | 2015-02-18 12:46:36 -0500 | [diff] [blame] | 29 | INCLUDE(${CMAKE_SOURCE_DIR}/cmake/GResources.cmake) |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 30 | INCLUDE(${CMAKE_SOURCE_DIR}/cmake/GSettings.cmake) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 31 | |
| 32 | # make sure we're using Qt5 |
| 33 | SET(ENABLE_QT5 true) |
| 34 | |
| 35 | # for now, set debug as default |
| 36 | SET(CMAKE_BUILD_TYPE Debug) |
| 37 | |
| 38 | # find packages |
| 39 | FIND_PACKAGE(PkgConfig REQUIRED) |
| 40 | PKG_CHECK_MODULES(GTK3 REQUIRED gtk+-3.0>=3.10) |
| 41 | FIND_PACKAGE(LibRingClient REQUIRED) |
| 42 | FIND_PACKAGE(Qt5Core REQUIRED) |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 43 | PKG_CHECK_MODULES(CLUTTER REQUIRED clutter-1.0) |
| 44 | PKG_CHECK_MODULES(CLUTTERGTK REQUIRED clutter-gtk-1.0) |
Stepan Salenikovich | 2d63d5e | 2015-03-22 23:23:54 -0400 | [diff] [blame] | 45 | PKG_CHECK_MODULES(ICONSYMBLIC REQUIRED gnome-icon-theme-symbolic) |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 46 | PKG_CHECK_MODULES(EBOOK REQUIRED libebook-1.2>=3.10) |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 47 | PKG_CHECK_MODULES(LIBNOTIFY libnotify>=0.7.6) #optional |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 48 | |
| 49 | # include libs |
| 50 | INCLUDE_DIRECTORIES(${GTK3_INCLUDE_DIRS}) |
| 51 | INCLUDE_DIRECTORIES(${LIB_RING_CLIENT_INCLUDE_DIR}) |
Stepan Salenikovich | d2dbcee | 2015-02-27 16:52:28 -0500 | [diff] [blame] | 52 | INCLUDE_DIRECTORIES(SYSTEM ${Qt5Core_INCLUDE_DIRS} ) |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 53 | INCLUDE_DIRECTORIES(${CLUTTER_INCLUDE_DIRS}) |
| 54 | INCLUDE_DIRECTORIES(${CLUTTERGTK_INCLUDE_DIRS}) |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 55 | INCLUDE_DIRECTORIES(${EBOOK_INCLUDE_DIRS}) |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 56 | INCLUDE_DIRECTORIES(${LIBNOTIFY_INCLUDE_DIRS}) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 57 | |
| 58 | # link libs |
| 59 | LINK_DIRECTORIES(${GTK3_LIBRARY_DIRS}) |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 60 | LINK_DIRECTORIES(${LIB_RING_LIBRARY_INCLUDE_DIR}) |
| 61 | LINK_DIRECTORIES(${Qt5Core_LIBRARY_DIRS} ) |
| 62 | LINK_DIRECTORIES(${CLUTTER_LIBRARY_DIRS}) |
| 63 | LINK_DIRECTORIES(${CLUTTERGTK_LIBRARY_DIRS}) |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 64 | LINK_DIRECTORIES(${EBOOK_LIBRARY_DIRS}) |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 65 | LINK_DIRECTORIES(${LIBNOTIFY_LIBRARY_DIRS}) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 66 | |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 67 | # lib compiler flags |
| 68 | ADD_DEFINITIONS(${GTK3_CFLAGS}) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 69 | ADD_DEFINITIONS(${GTK3_CFLAGS_OTHER}) |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 70 | ADD_DEFINITIONS(${LIB_RING_LIBRARY_CFLAGS}) |
| 71 | ADD_DEFINITIONS(${Qt5Core_CFLAGS}) |
| 72 | ADD_DEFINITIONS(${CLUTTER_CFLAGS}) |
| 73 | ADD_DEFINITIONS(${CLUTTERGTK_CFLAGS}) |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 74 | ADD_DEFINITIONS(${EBOOK_CFLAGS}) |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 75 | ADD_DEFINITIONS(${LIBNOTIFY_CFLAGS}) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 76 | |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 77 | IF(NOT ${ENABLE_STATIC} MATCHES false) |
| 78 | SET(QT5_MODULE_PATH ${QT5_PATH}/lib/cmake) |
| 79 | FIND_PACKAGE(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core DBus) |
| 80 | FIND_PACKAGE(Qt5DBus REQUIRED) |
| 81 | INCLUDE_DIRECTORIES(SYSTEM ${Qt5DBus_INCLUDE_DIRS} ) |
| 82 | LINK_DIRECTORIES(${Qt5DBus_LIBRARY_DIRS} ) |
| 83 | ADD_DEFINITIONS(${Qt5DBus_CFLAGS}) |
| 84 | ENDIF() |
| 85 | |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 86 | # warnings |
| 87 | ADD_DEFINITIONS( |
| 88 | -Wall |
| 89 | -Wextra |
| 90 | -Wno-cpp |
| 91 | -Wmissing-noreturn |
| 92 | -Wpointer-arith |
| 93 | -Wcast-align |
| 94 | -Wwrite-strings |
| 95 | -Wformat-nonliteral |
| 96 | -Wformat-security |
| 97 | -Wswitch-enum |
| 98 | -Winit-self |
| 99 | -Wmissing-include-dirs |
| 100 | -Wundef |
| 101 | -Wmissing-format-attribute |
| 102 | -Wno-reorder |
| 103 | -Wunused |
| 104 | -Wuninitialized |
| 105 | -Woverloaded-virtual |
| 106 | -Wsuggest-attribute=const |
| 107 | -Wunused-value |
| 108 | -Wdouble-promotion |
| 109 | -Wnonnull |
| 110 | -Wsequence-point |
| 111 | -Wunused-but-set-parameter |
| 112 | -Wsizeof-pointer-memaccess |
| 113 | -Wvarargs |
| 114 | ) |
| 115 | |
| 116 | # more warnings |
| 117 | IF (CMAKE_COMPILER_IS_GNUCC) |
| 118 | IF (GCC_VERSION VERSION_GREATER 4.9 OR GCC_VERSION VERSION_EQUAL 4.9) |
| 119 | ADD_DEFINITIONS( |
| 120 | -Wconditionally-supported |
| 121 | -Wdate-time |
| 122 | -Wdelete-incomplete |
| 123 | -Wfloat-conversion |
| 124 | ) |
| 125 | ENDIF() |
| 126 | |
| 127 | IF (GCC_VERSION VERSION_GREATER 5.0 OR GCC_VERSION VERSION_EQUAL 5.0) |
| 128 | ADD_DEFINITIONS( |
| 129 | -Wsuggest-override |
| 130 | -Wsuggest-final-types |
| 131 | -Wsuggest-final-methods |
| 132 | -Wbool-compare |
| 133 | -Wformat-signedness |
| 134 | -Wlogical-not-parentheses |
| 135 | -Wnormalized |
| 136 | -Wshift-count-negative |
| 137 | -Wshift-count-overflow |
| 138 | -Wsized-deallocation |
| 139 | -Wsizeof-array-argument |
| 140 | ) |
| 141 | ENDIF() |
| 142 | |
| 143 | ENDIF() |
| 144 | |
Stepan Salenikovich | 4f9bb98 | 2015-06-23 14:26:30 -0400 | [diff] [blame] | 145 | # get git version on every build |
| 146 | SET(GIT_REVISION_INPUT_FILE ${PROJECT_SOURCE_DIR}/src/revision.h.in) |
| 147 | SET(GIT_REVISION_OUTPUT_FILE ${PROJECT_BINARY_DIR}/revision.h) |
| 148 | |
| 149 | ADD_CUSTOM_TARGET( |
| 150 | git_revision ALL |
| 151 | COMMAND ${CMAKE_COMMAND} |
| 152 | -DGIT_REVISION_INPUT_FILE=${GIT_REVISION_INPUT_FILE} |
| 153 | -DGIT_REVISION_OUTPUT_FILE=${GIT_REVISION_OUTPUT_FILE} |
| 154 | -P ${CMAKE_SOURCE_DIR}/cmake/GitRevision.cmake |
| 155 | COMMENT "generating ${GIT_REVISION_OUTPUT_FILE}" |
| 156 | ) |
| 157 | |
| 158 | ADD_CUSTOM_COMMAND( |
| 159 | OUTPUT ${GIT_REVISION_OUTPUT_FILE} |
| 160 | DEPENDS git_revision |
| 161 | ) |
| 162 | |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 163 | # source files to compile |
| 164 | SET( SRC_FILES |
| 165 | src/main.cpp |
Stepan Salenikovich | d81ef29 | 2015-02-17 18:47:37 -0500 | [diff] [blame] | 166 | src/ring_client.h |
| 167 | src/ring_client.cpp |
| 168 | src/ring_client_options.h |
| 169 | src/ring_client_options.c |
Stepan Salenikovich | 434b88f | 2015-02-19 17:49:08 -0500 | [diff] [blame] | 170 | src/ringmainwindow.h |
| 171 | src/ringmainwindow.cpp |
Stepan Salenikovich | 6977184 | 2015-02-24 18:11:45 -0500 | [diff] [blame] | 172 | src/incomingcallview.h |
| 173 | src/incomingcallview.cpp |
Stepan Salenikovich | c64523b | 2015-02-27 16:31:00 -0500 | [diff] [blame] | 174 | src/currentcallview.h |
| 175 | src/currentcallview.cpp |
Stepan Salenikovich | a355745 | 2015-02-20 14:14:12 -0500 | [diff] [blame] | 176 | src/models/gtkaccessproxymodel.h |
| 177 | src/models/gtkaccessproxymodel.cpp |
| 178 | src/models/gtkqtreemodel.h |
| 179 | src/models/gtkqtreemodel.cpp |
Stepan Salenikovich | 297b5d1 | 2015-02-26 17:51:13 -0500 | [diff] [blame] | 180 | src/utils/drawing.h |
| 181 | src/utils/drawing.c |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 182 | src/video/video_widget.h |
| 183 | src/video/video_widget.cpp |
Stepan Salenikovich | 7ff4796 | 2015-03-16 15:10:14 -0400 | [diff] [blame] | 184 | src/models/gtkqsortfiltertreemodel.h |
| 185 | src/models/gtkqsortfiltertreemodel.cpp |
Stepan Salenikovich | 61cbab0 | 2015-03-16 18:35:10 -0400 | [diff] [blame] | 186 | src/accountview.h |
| 187 | src/accountview.cpp |
| 188 | src/accountgeneraltab.h |
| 189 | src/accountgeneraltab.cpp |
| 190 | src/accountaudiotab.h |
| 191 | src/accountaudiotab.cpp |
| 192 | src/accountvideotab.h |
| 193 | src/accountvideotab.cpp |
Stepan Salenikovich | b7e6a73 | 2015-05-04 17:13:22 -0400 | [diff] [blame] | 194 | src/accountadvancedtab.h |
| 195 | src/accountadvancedtab.cpp |
Stepan Salenikovich | 7a1e71c | 2015-05-07 11:14:48 -0400 | [diff] [blame] | 196 | src/accountsecuritytab.h |
| 197 | src/accountsecuritytab.cpp |
Stepan Salenikovich | c3fede2 | 2015-03-20 17:01:47 -0400 | [diff] [blame] | 198 | src/models/activeitemproxymodel.h |
| 199 | src/models/activeitemproxymodel.cpp |
Stepan Salenikovich | 50c989b | 2015-03-21 18:32:46 -0400 | [diff] [blame] | 200 | src/defines.h |
Stepan Salenikovich | 8bc51e5 | 2015-03-21 20:17:29 -0400 | [diff] [blame] | 201 | src/video/xrectsel.h |
| 202 | src/video/xrectsel.c |
Stepan Salenikovich | bd02958 | 2015-03-24 11:00:56 -0400 | [diff] [blame] | 203 | src/dialogs.h |
| 204 | src/dialogs.c |
Stepan Salenikovich | 0bd5349 | 2015-05-11 14:28:52 -0400 | [diff] [blame] | 205 | src/mediasettingsview.h |
| 206 | src/mediasettingsview.cpp |
Stepan Salenikovich | de89611 | 2015-05-11 16:46:33 -0400 | [diff] [blame] | 207 | src/generalsettingsview.h |
| 208 | src/generalsettingsview.cpp |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 209 | src/backends/edscontactbackend.h |
| 210 | src/backends/edscontactbackend.cpp |
| 211 | src/delegates/pixbufdelegate.h |
| 212 | src/delegates/pixbufdelegate.cpp |
Stepan Salenikovich | bbb10d8 | 2015-05-13 12:26:44 -0400 | [diff] [blame] | 213 | src/callsview.h |
| 214 | src/callsview.cpp |
Stepan Salenikovich | 9816a94 | 2015-04-22 17:49:16 -0400 | [diff] [blame] | 215 | src/contactsview.h |
| 216 | src/contactsview.cpp |
Stepan Salenikovich | 7c71bfe | 2015-05-13 18:08:09 -0400 | [diff] [blame] | 217 | src/frequentcontactsview.h |
| 218 | src/frequentcontactsview.cpp |
Stepan Salenikovich | 9816a94 | 2015-04-22 17:49:16 -0400 | [diff] [blame] | 219 | src/historyview.h |
| 220 | src/historyview.cpp |
| 221 | src/utils/models.h |
| 222 | src/utils/models.cpp |
| 223 | src/utils/calling.h |
| 224 | src/utils/calling.cpp |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 225 | src/ringnotify.h |
| 226 | src/ringnotify.cpp |
Stepan Salenikovich | b94873c | 2015-06-02 16:53:18 -0400 | [diff] [blame] | 227 | src/video/videowindow.h |
| 228 | src/video/videowindow.cpp |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 229 | src/utils/files.h |
| 230 | src/utils/files.cpp |
Stepan Salenikovich | 4f9bb98 | 2015-06-23 14:26:30 -0400 | [diff] [blame] | 231 | ${GIT_REVISION_OUTPUT_FILE} |
Stepan Salenikovich | f2d76c5 | 2015-07-17 17:54:56 -0400 | [diff] [blame] | 232 | src/createcontactdialog.h |
| 233 | src/createcontactdialog.cpp |
| 234 | src/utils/menus.h |
| 235 | src/utils/menus.cpp |
Stepan Salenikovich | 75a3917 | 2015-07-10 13:21:08 -0400 | [diff] [blame^] | 236 | src/utils/accounts.h |
| 237 | src/utils/accounts.cpp |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 238 | ) |
| 239 | |
Stepan Salenikovich | a8df7ea | 2015-02-18 12:46:36 -0500 | [diff] [blame] | 240 | # compile glib resource files to c code |
| 241 | GLIB_COMPILE_RESOURCES( GLIB_RESOURCES_RING |
| 242 | SOURCE |
| 243 | pixmaps/pixmaps.gresource.xml |
Stepan Salenikovich | 434b88f | 2015-02-19 17:49:08 -0500 | [diff] [blame] | 244 | ui/ui.gresource.xml |
Stepan Salenikovich | a8df7ea | 2015-02-18 12:46:36 -0500 | [diff] [blame] | 245 | ) |
| 246 | |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 247 | # IF(${ENABLE_TEST} MATCHES true) |
| 248 | # ADD_SUBDIRECTORY( src/test) |
| 249 | # ENDIF() |
| 250 | |
| 251 | # for translations |
| 252 | # FIND_PACKAGE ( Gettext REQUIRED ) |
| 253 | # ADD_SUBDIRECTORY( po ) |
| 254 | |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 255 | # install and compile glib gsettings schema |
| 256 | add_schema("cx.ring.RingGnome.gschema.xml" GSCHEMA_RING) |
| 257 | |
| 258 | ADD_EXECUTABLE(gnome-ring ${GLIB_RESOURCES_RING} ${GSCHEMA_RING} ${SRC_FILES}) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 259 | |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 260 | IF(NOT ${ENABLE_STATIC} MATCHES false) |
Stepan Salenikovich | 9aef312 | 2015-03-20 17:04:09 -0400 | [diff] [blame] | 261 | TARGET_LINK_LIBRARIES(gnome-ring |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 262 | ${LIB_RING_CLIENT_LIBRARY} |
| 263 | ${GTK3_LIBRARIES} |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 264 | ${Qt5Core_LIBRARIES} |
| 265 | ${Qt5DBus_LIBRARIES} |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 266 | ${CLUTTER_LIBRARIES} |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 267 | ${CLUTTERGTK_LIBRARIES} |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 268 | ${EBOOK_LIBRARIES} |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 269 | ${LIBNOTIFY_LIBRARIES} |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 270 | -lpthread |
| 271 | -lrt |
| 272 | ) |
| 273 | ELSE() |
Stepan Salenikovich | 9aef312 | 2015-03-20 17:04:09 -0400 | [diff] [blame] | 274 | TARGET_LINK_LIBRARIES(gnome-ring |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 275 | ${LIB_RING_CLIENT_LIBRARY} |
| 276 | ${GTK3_LIBRARIES} |
| 277 | ${Qt5Core_LIBRARIES} |
| 278 | ${CLUTTER_LIBRARIES} |
| 279 | ${CLUTTERGTK_LIBRARIES} |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 280 | ${EBOOK_LIBRARIES} |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 281 | ${LIBNOTIFY_LIBRARIES} |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 282 | ) |
| 283 | ENDIF() |
Stepan Salenikovich | 1c34fc5 | 2015-03-13 12:43:54 -0400 | [diff] [blame] | 284 | |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 285 | # configure libnotify variable for config.h file |
| 286 | IF( LIBNOTIFY_FOUND ) |
| 287 | SET(USE_LIBNOTIFY 1) |
| 288 | ELSE() |
| 289 | SET(USE_LIBNOTIFY 0) |
| 290 | ENDIF() |
| 291 | |
| 292 | # create config header file to pass cmake settings to source code |
| 293 | CONFIGURE_FILE ( |
| 294 | "${PROJECT_SOURCE_DIR}/src/config.h.in" |
| 295 | "${PROJECT_BINARY_DIR}/config.h" |
| 296 | ) |
| 297 | |
| 298 | # generate .desktop file |
| 299 | CONFIGURE_FILE ( |
| 300 | "${PROJECT_SOURCE_DIR}/gnome-ring.desktop.in" |
| 301 | "${PROJECT_BINARY_DIR}/gnome-ring.desktop" |
| 302 | ) |
| 303 | |
Stepan Salenikovich | 9aef312 | 2015-03-20 17:04:09 -0400 | [diff] [blame] | 304 | INSTALL(TARGETS gnome-ring |
Stepan Salenikovich | 1c34fc5 | 2015-03-13 12:43:54 -0400 | [diff] [blame] | 305 | RUNTIME DESTINATION bin |
| 306 | ) |
Stepan Salenikovich | b42fde7 | 2015-03-30 12:29:09 -0400 | [diff] [blame] | 307 | |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 308 | # install .desktop in XDG desktop dir so that it is recognized by the system |
Stepan Salenikovich | b42fde7 | 2015-03-30 12:29:09 -0400 | [diff] [blame] | 309 | INSTALL(FILES ${PROJECT_BINARY_DIR}/gnome-ring.desktop |
| 310 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications |
| 311 | ) |
| 312 | |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 313 | # install .desktop in the gnome-ring data dir, so that it can be copied to the |
| 314 | # autostart dir by the client |
| 315 | INSTALL(FILES ${PROJECT_BINARY_DIR}/gnome-ring.desktop |
| 316 | DESTINATION |
| 317 | ${CMAKE_INSTALL_PREFIX}/share/gnome-ring/ |
| 318 | PERMISSIONS |
| 319 | WORLD_READ |
| 320 | OWNER_WRITE |
| 321 | OWNER_READ |
| 322 | GROUP_READ |
| 323 | ) |
| 324 | |
Stepan Salenikovich | b42fde7 | 2015-03-30 12:29:09 -0400 | [diff] [blame] | 325 | INSTALL(FILES pixmaps/ring.svg |
| 326 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps |
| 327 | ) |
| 328 | |
| 329 | INSTALL(FILES gnome-ring.appdata.xml |
| 330 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/appdata/ |
| 331 | ) |
Stepan Salenikovich | 841deaf | 2015-04-15 16:08:39 -0400 | [diff] [blame] | 332 | |
Stepan Salenikovich | 0d707a6 | 2015-05-29 10:48:04 -0400 | [diff] [blame] | 333 | # install shell script which will launch "ring" |
Stepan Salenikovich | ab120ea | 2015-06-01 18:14:12 -0400 | [diff] [blame] | 334 | INSTALL( |
| 335 | FILES |
Stepan Salenikovich | 2eb07d0 | 2015-06-02 11:18:50 -0400 | [diff] [blame] | 336 | "${PROJECT_SOURCE_DIR}/src/ring" |
Stepan Salenikovich | ab120ea | 2015-06-01 18:14:12 -0400 | [diff] [blame] | 337 | DESTINATION |
| 338 | ${CMAKE_INSTALL_PREFIX}/bin |
| 339 | PERMISSIONS |
| 340 | WORLD_READ |
| 341 | OWNER_WRITE |
| 342 | OWNER_READ |
| 343 | GROUP_READ |
| 344 | OWNER_EXECUTE |
| 345 | GROUP_EXECUTE |
| 346 | WORLD_EXECUTE |
Stepan Salenikovich | 0d707a6 | 2015-05-29 10:48:04 -0400 | [diff] [blame] | 347 | ) |
| 348 | |
Stepan Salenikovich | 841deaf | 2015-04-15 16:08:39 -0400 | [diff] [blame] | 349 | # add a target to generate API documentation with Doxygen |
| 350 | FIND_PACKAGE(Doxygen) |
| 351 | IF(DOXYGEN_FOUND) |
| 352 | CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile @ONLY) |
| 353 | ADD_CUSTOM_TARGET(doc |
| 354 | COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile |
| 355 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc |
| 356 | COMMENT "Generating API documentation with Doxygen" VERBATIM |
| 357 | ) |
| 358 | |
| 359 | # create doc/README.md symlink to README since Doxygen doesn't understand file with no extension |
| 360 | ADD_CUSTOM_COMMAND( |
| 361 | TARGET doc |
| 362 | PRE_BUILD |
| 363 | COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/README ${CMAKE_CURRENT_SOURCE_DIR}/doc/README.md |
| 364 | ) |
| 365 | ENDIF(DOXYGEN_FOUND) |