Adrien Beraud | 25d8c1a | 2017-04-14 15:35:24 +0200 | [diff] [blame] | 1 | CMAKE_MINIMUM_REQUIRED(VERSION 3.1.0) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 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 | |
Adrien Beraud | 25d8c1a | 2017-04-14 15:35:24 +0200 | [diff] [blame] | 14 | set (CMAKE_CXX_STANDARD 14) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 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) |
Guillaume Roguez | 45bee9c | 2016-03-16 22:43:11 -0400 | [diff] [blame] | 18 | SET(PROJECT_VERSION_MAJOR 1) |
| 19 | SET(PROJECT_VERSION_MINOR 0) |
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 | |
Guillaume Roguez | 1af2885 | 2016-11-02 19:26:20 -0400 | [diff] [blame] | 22 | # set build date |
| 23 | IF( NOT ("$ENV{SOURCE_DATE_EPOCH}" STREQUAL "")) |
| 24 | EXECUTE_PROCESS( |
| 25 | COMMAND date -u -d "1970-01-01 UTC $ENV{SOURCE_DATE_EPOCH} seconds" "+%Y-%m-%d %H:%M:%S UTC" |
| 26 | OUTPUT_VARIABLE RING_CLIENT_BUILD_DATE |
| 27 | OUTPUT_STRIP_TRAILING_WHITESPACE |
| 28 | ) |
| 29 | ELSEIF( "${RING_CLIENT_BUILD_DATE}" STREQUAL "") |
| 30 | EXECUTE_PROCESS( |
| 31 | COMMAND date -u "+%Y-%m-%d %H:%M:%S UTC" |
| 32 | OUTPUT_VARIABLE RING_CLIENT_BUILD_DATE |
| 33 | OUTPUT_STRIP_TRAILING_WHITESPACE |
| 34 | ) |
| 35 | ENDIF() |
| 36 | |
Stepan Salenikovich | c1dac25 | 2015-03-25 17:19:35 -0400 | [diff] [blame] | 37 | # add the binary tree to the search path for include files |
| 38 | # so that we will find config.h |
| 39 | INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}") |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 40 | |
Stepan Salenikovich | a8df7ea | 2015-02-18 12:46:36 -0500 | [diff] [blame] | 41 | LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") |
| 42 | |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 43 | # include custom cmake modules |
Stepan Salenikovich | a8df7ea | 2015-02-18 12:46:36 -0500 | [diff] [blame] | 44 | INCLUDE(${CMAKE_SOURCE_DIR}/cmake/GResources.cmake) |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 45 | INCLUDE(${CMAKE_SOURCE_DIR}/cmake/GSettings.cmake) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 46 | |
| 47 | # make sure we're using Qt5 |
| 48 | SET(ENABLE_QT5 true) |
| 49 | |
| 50 | # for now, set debug as default |
| 51 | SET(CMAKE_BUILD_TYPE Debug) |
| 52 | |
Stepan Salenikovich | dd82f9b | 2015-09-16 14:04:05 -0400 | [diff] [blame] | 53 | # during packaging the CMAKE_INSTALL_PREFIX is used to specify where to install the files, but it |
| 54 | # may not be the same as where the package will put them, use RING_INSTALL_PREFIX to let the client |
| 55 | # know at runtime where to expect installed files to be located |
| 56 | SET(RING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} |
| 57 | CACHE PATH "prefix where the package will be installed on the user's system (eg: /usr/local); defaults to the CMAKE_INSTALL_PREFIX" |
| 58 | ) |
| 59 | |
aviau | a06a97e | 2016-03-18 15:19:02 -0400 | [diff] [blame] | 60 | # Check if LRC's location is manually specified with -DLibRingClient_PROJECT_DIR |
| 61 | IF(LibRingClient_PROJECT_DIR) |
| 62 | SET(LIB_RING_CLIENT_INCLUDE_DIR ${LibRingClient_PROJECT_DIR}/src) |
| 63 | # TODO: maybe allow a way to specify a different build dir |
| 64 | SET(LIB_RING_LIBRARY_INCLUDE_DIR ${LibRingClient_PROJECT_DIR}/build) |
| 65 | |
| 66 | # check for the existence of the directories; |
| 67 | # if the dirs have missing or outdated files then we will just get build/link errors |
| 68 | IF(EXISTS "${LIB_RING_CLIENT_INCLUDE_DIR}/") |
| 69 | MESSAGE("will expect lrc headers in ${LIB_RING_CLIENT_INCLUDE_DIR}") |
| 70 | IF(EXISTS "${LIB_RING_LIBRARY_INCLUDE_DIR}/") |
| 71 | MESSAGE("will expect lrc libraries in " ${LIB_RING_LIBRARY_INCLUDE_DIR}) |
| 72 | SET(LibRingClient_FOUND true) |
| 73 | SET(LIB_RING_CLIENT_LIBRARY ringclient) |
| 74 | ELSE() |
| 75 | MESSAGE( FATAL_ERROR "${LIB_RING_LIBRARY_INCLUDE_DIR} does not exist") |
| 76 | ENDIF(EXISTS "${LIB_RING_LIBRARY_INCLUDE_DIR}/") |
| 77 | ELSE() |
| 78 | MESSAGE( FATAL_ERROR "${LIB_RING_CLIENT_INCLUDE_DIR} does not exist") |
| 79 | ENDIF(EXISTS "${LIB_RING_CLIENT_INCLUDE_DIR}/") |
| 80 | ELSE(LibRingClient_PROJECT_DIR) |
| 81 | FIND_PACKAGE(LibRingClient REQUIRED) |
| 82 | ENDIF(LibRingClient_PROJECT_DIR) |
| 83 | |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 84 | # find packages |
| 85 | FIND_PACKAGE(PkgConfig REQUIRED) |
| 86 | PKG_CHECK_MODULES(GTK3 REQUIRED gtk+-3.0>=3.10) |
Stepan Salenikovich | 03c42af | 2016-09-02 17:49:41 -0400 | [diff] [blame] | 87 | PKG_CHECK_MODULES(GLIB REQUIRED glib-2.0>=2.40) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 88 | FIND_PACKAGE(Qt5Core REQUIRED) |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 89 | PKG_CHECK_MODULES(CLUTTER REQUIRED clutter-1.0) |
| 90 | PKG_CHECK_MODULES(CLUTTERGTK REQUIRED clutter-gtk-1.0) |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 91 | PKG_CHECK_MODULES(EBOOK REQUIRED libebook-1.2>=3.10) |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 92 | PKG_CHECK_MODULES(LIBNOTIFY libnotify>=0.7.6) #optional |
Nicolas Jager | ec53f02 | 2018-01-11 16:28:25 -0500 | [diff] [blame] | 93 | IF( LIBNOTIFY_FOUND ) |
| 94 | pkg_check_modules(CANBERRA REQUIRED libcanberra-gtk3>=0.25) |
| 95 | ENDIF() |
Stepan Salenikovich | e88f669 | 2015-09-10 18:09:38 -0400 | [diff] [blame] | 96 | FIND_PACKAGE(Gettext) #optional for translations |
aviau | dd355ba | 2016-04-08 14:23:09 -0400 | [diff] [blame] | 97 | PKG_CHECK_MODULES(LIBQRENCODE libqrencode>=3.4) |
Lubomir Rintel | abc26c3 | 2017-12-19 16:26:45 +0100 | [diff] [blame] | 98 | PKG_CHECK_MODULES(LIBNM libnm>=1.0) #optional to detect changes in the network |
aviau | 59514ed | 2018-04-19 11:00:37 -0400 | [diff] [blame] | 99 | |
| 100 | # Both appindicators are optional. ayatana-appindicator is better |
| 101 | # maintained and it works best across all desktop environments. |
| 102 | PKG_CHECK_MODULES(APPINDICATOR ayatana-appindicator3-0.1) |
| 103 | IF( APPINDICATOR_FOUND ) |
| 104 | SET(HAVE_AYATANAAPPINDICATOR 1) |
| 105 | SET(HAVE_APPINDICATOR 1) |
| 106 | ELSE() |
| 107 | PKG_CHECK_MODULES(APPINDICATOR appindicator3-0.1) |
| 108 | IF( APPINDICATOR_FOUND ) |
| 109 | SET(HAVE_AYATANAAPPINDICATOR 0) |
| 110 | SET(HAVE_APPINDICATOR 1) |
| 111 | ELSE() |
| 112 | SET(HAVE_AYATANAAPPINDICATOR 0) |
| 113 | SET(HAVE_APPINDICATOR 0) |
| 114 | ENDIF() |
| 115 | ENDIF() |
aviau | dd355ba | 2016-04-08 14:23:09 -0400 | [diff] [blame] | 116 | |
aviau | 039001d | 2016-09-29 16:39:05 -0400 | [diff] [blame] | 117 | PKG_CHECK_MODULES(WEBKIT webkit2gtk-4.0) |
Stepan Salenikovich | b52dbc5 | 2016-12-27 14:05:39 -0500 | [diff] [blame] | 118 | IF(NOT WEBKIT_FOUND) |
aviau | 039001d | 2016-09-29 16:39:05 -0400 | [diff] [blame] | 119 | PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-3.0) |
aviau | 039001d | 2016-09-29 16:39:05 -0400 | [diff] [blame] | 120 | ENDIF() |
| 121 | |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 122 | # include libs |
| 123 | INCLUDE_DIRECTORIES(${GTK3_INCLUDE_DIRS}) |
| 124 | INCLUDE_DIRECTORIES(${LIB_RING_CLIENT_INCLUDE_DIR}) |
Stepan Salenikovich | d2dbcee | 2015-02-27 16:52:28 -0500 | [diff] [blame] | 125 | INCLUDE_DIRECTORIES(SYSTEM ${Qt5Core_INCLUDE_DIRS} ) |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 126 | INCLUDE_DIRECTORIES(${CLUTTER_INCLUDE_DIRS}) |
| 127 | INCLUDE_DIRECTORIES(${CLUTTERGTK_INCLUDE_DIRS}) |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 128 | INCLUDE_DIRECTORIES(${EBOOK_INCLUDE_DIRS}) |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 129 | INCLUDE_DIRECTORIES(${LIBNOTIFY_INCLUDE_DIRS}) |
Stepan Salenikovich | 982b288 | 2016-06-15 13:13:37 -0400 | [diff] [blame] | 130 | INCLUDE_DIRECTORIES(${APPINDICATOR_INCLUDE_DIRS}) |
Stepan Salenikovich | 472c905 | 2016-07-20 19:16:02 -0400 | [diff] [blame] | 131 | INCLUDE_DIRECTORIES(${LIBNM_INCLUDE_DIRS}) |
aviau | 039001d | 2016-09-29 16:39:05 -0400 | [diff] [blame] | 132 | INCLUDE_DIRECTORIES(${WEBKIT_INCLUDE_DIRS}) |
Nicolas Jager | 655b8db | 2017-12-15 14:04:32 -0500 | [diff] [blame] | 133 | INCLUDE_DIRECTORIES(${CANBERRA_INCLUDE_DIRS}) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 134 | |
| 135 | # link libs |
| 136 | LINK_DIRECTORIES(${GTK3_LIBRARY_DIRS}) |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 137 | LINK_DIRECTORIES(${LIB_RING_LIBRARY_INCLUDE_DIR}) |
| 138 | LINK_DIRECTORIES(${Qt5Core_LIBRARY_DIRS} ) |
| 139 | LINK_DIRECTORIES(${CLUTTER_LIBRARY_DIRS}) |
| 140 | LINK_DIRECTORIES(${CLUTTERGTK_LIBRARY_DIRS}) |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 141 | LINK_DIRECTORIES(${EBOOK_LIBRARY_DIRS}) |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 142 | LINK_DIRECTORIES(${LIBNOTIFY_LIBRARY_DIRS}) |
Stepan Salenikovich | 982b288 | 2016-06-15 13:13:37 -0400 | [diff] [blame] | 143 | LINK_DIRECTORIES(${APPINDICATOR_LIBRARY_DIRS}) |
Stepan Salenikovich | 472c905 | 2016-07-20 19:16:02 -0400 | [diff] [blame] | 144 | LINK_DIRECTORIES(${LIBNM_LIBRARY_DIRS}) |
aviau | 039001d | 2016-09-29 16:39:05 -0400 | [diff] [blame] | 145 | LINK_DIRECTORIES(${WEBKIT_LIBRARY_DIRS}) |
Nicolas Jager | 655b8db | 2017-12-15 14:04:32 -0500 | [diff] [blame] | 146 | LINK_DIRECTORIES(${CANBERRA_LIBRARY_DIRS}) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 147 | |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 148 | # lib compiler flags |
| 149 | ADD_DEFINITIONS(${GTK3_CFLAGS}) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 150 | ADD_DEFINITIONS(${GTK3_CFLAGS_OTHER}) |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 151 | ADD_DEFINITIONS(${LIB_RING_LIBRARY_CFLAGS}) |
| 152 | ADD_DEFINITIONS(${Qt5Core_CFLAGS}) |
| 153 | ADD_DEFINITIONS(${CLUTTER_CFLAGS}) |
| 154 | ADD_DEFINITIONS(${CLUTTERGTK_CFLAGS}) |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 155 | ADD_DEFINITIONS(${EBOOK_CFLAGS}) |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 156 | ADD_DEFINITIONS(${LIBNOTIFY_CFLAGS}) |
Stepan Salenikovich | 982b288 | 2016-06-15 13:13:37 -0400 | [diff] [blame] | 157 | ADD_DEFINITIONS(${APPINDICATOR_CFLAGS}) |
Stepan Salenikovich | 472c905 | 2016-07-20 19:16:02 -0400 | [diff] [blame] | 158 | ADD_DEFINITIONS(${LIBNM_CFLAGS}) |
aviau | 039001d | 2016-09-29 16:39:05 -0400 | [diff] [blame] | 159 | ADD_DEFINITIONS(${WEBKIT_CFLAGS}) |
Nicolas Jager | 655b8db | 2017-12-15 14:04:32 -0500 | [diff] [blame] | 160 | ADD_DEFINITIONS(${CANBERRA_CFLAGS}) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 161 | |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 162 | IF(NOT ${ENABLE_STATIC} MATCHES false) |
| 163 | SET(QT5_MODULE_PATH ${QT5_PATH}/lib/cmake) |
| 164 | FIND_PACKAGE(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core DBus) |
| 165 | FIND_PACKAGE(Qt5DBus REQUIRED) |
| 166 | INCLUDE_DIRECTORIES(SYSTEM ${Qt5DBus_INCLUDE_DIRS} ) |
| 167 | LINK_DIRECTORIES(${Qt5DBus_LIBRARY_DIRS} ) |
| 168 | ADD_DEFINITIONS(${Qt5DBus_CFLAGS}) |
| 169 | ENDIF() |
| 170 | |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 171 | # warnings |
| 172 | ADD_DEFINITIONS( |
| 173 | -Wall |
| 174 | -Wextra |
| 175 | -Wno-cpp |
| 176 | -Wmissing-noreturn |
| 177 | -Wpointer-arith |
| 178 | -Wcast-align |
| 179 | -Wwrite-strings |
| 180 | -Wformat-nonliteral |
| 181 | -Wformat-security |
| 182 | -Wswitch-enum |
| 183 | -Winit-self |
| 184 | -Wmissing-include-dirs |
| 185 | -Wundef |
| 186 | -Wmissing-format-attribute |
| 187 | -Wno-reorder |
| 188 | -Wunused |
| 189 | -Wuninitialized |
| 190 | -Woverloaded-virtual |
| 191 | -Wsuggest-attribute=const |
| 192 | -Wunused-value |
| 193 | -Wdouble-promotion |
| 194 | -Wnonnull |
| 195 | -Wsequence-point |
| 196 | -Wunused-but-set-parameter |
| 197 | -Wsizeof-pointer-memaccess |
| 198 | -Wvarargs |
| 199 | ) |
| 200 | |
| 201 | # more warnings |
| 202 | IF (CMAKE_COMPILER_IS_GNUCC) |
| 203 | IF (GCC_VERSION VERSION_GREATER 4.9 OR GCC_VERSION VERSION_EQUAL 4.9) |
| 204 | ADD_DEFINITIONS( |
| 205 | -Wconditionally-supported |
| 206 | -Wdate-time |
| 207 | -Wdelete-incomplete |
| 208 | -Wfloat-conversion |
| 209 | ) |
| 210 | ENDIF() |
| 211 | |
| 212 | IF (GCC_VERSION VERSION_GREATER 5.0 OR GCC_VERSION VERSION_EQUAL 5.0) |
| 213 | ADD_DEFINITIONS( |
| 214 | -Wsuggest-override |
| 215 | -Wsuggest-final-types |
| 216 | -Wsuggest-final-methods |
| 217 | -Wbool-compare |
| 218 | -Wformat-signedness |
| 219 | -Wlogical-not-parentheses |
| 220 | -Wnormalized |
| 221 | -Wshift-count-negative |
| 222 | -Wshift-count-overflow |
| 223 | -Wsized-deallocation |
| 224 | -Wsizeof-array-argument |
| 225 | ) |
| 226 | ENDIF() |
| 227 | |
| 228 | ENDIF() |
| 229 | |
Stepan Salenikovich | 4f9bb98 | 2015-06-23 14:26:30 -0400 | [diff] [blame] | 230 | # get git version on every build |
| 231 | SET(GIT_REVISION_INPUT_FILE ${PROJECT_SOURCE_DIR}/src/revision.h.in) |
| 232 | SET(GIT_REVISION_OUTPUT_FILE ${PROJECT_BINARY_DIR}/revision.h) |
| 233 | |
| 234 | ADD_CUSTOM_TARGET( |
| 235 | git_revision ALL |
| 236 | COMMAND ${CMAKE_COMMAND} |
| 237 | -DGIT_REVISION_INPUT_FILE=${GIT_REVISION_INPUT_FILE} |
| 238 | -DGIT_REVISION_OUTPUT_FILE=${GIT_REVISION_OUTPUT_FILE} |
Guillaume Roguez | 1af2885 | 2016-11-02 19:26:20 -0400 | [diff] [blame] | 239 | -DRING_CLIENT_BUILD_DATE=${RING_CLIENT_BUILD_DATE} |
Stepan Salenikovich | 4f9bb98 | 2015-06-23 14:26:30 -0400 | [diff] [blame] | 240 | -P ${CMAKE_SOURCE_DIR}/cmake/GitRevision.cmake |
| 241 | COMMENT "generating ${GIT_REVISION_OUTPUT_FILE}" |
| 242 | ) |
| 243 | |
| 244 | ADD_CUSTOM_COMMAND( |
| 245 | OUTPUT ${GIT_REVISION_OUTPUT_FILE} |
| 246 | DEPENDS git_revision |
| 247 | ) |
| 248 | |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 249 | # source files to compile |
| 250 | SET( SRC_FILES |
| 251 | src/main.cpp |
Stepan Salenikovich | d81ef29 | 2015-02-17 18:47:37 -0500 | [diff] [blame] | 252 | src/ring_client.h |
| 253 | src/ring_client.cpp |
| 254 | src/ring_client_options.h |
| 255 | src/ring_client_options.c |
Stepan Salenikovich | 434b88f | 2015-02-19 17:49:08 -0500 | [diff] [blame] | 256 | src/ringmainwindow.h |
| 257 | src/ringmainwindow.cpp |
Stepan Salenikovich | 6977184 | 2015-02-24 18:11:45 -0500 | [diff] [blame] | 258 | src/incomingcallview.h |
| 259 | src/incomingcallview.cpp |
Stepan Salenikovich | c64523b | 2015-02-27 16:31:00 -0500 | [diff] [blame] | 260 | src/currentcallview.h |
| 261 | src/currentcallview.cpp |
Stepan Salenikovich | a355745 | 2015-02-20 14:14:12 -0500 | [diff] [blame] | 262 | src/models/gtkaccessproxymodel.h |
| 263 | src/models/gtkaccessproxymodel.cpp |
| 264 | src/models/gtkqtreemodel.h |
| 265 | src/models/gtkqtreemodel.cpp |
Stepan Salenikovich | 297b5d1 | 2015-02-26 17:51:13 -0500 | [diff] [blame] | 266 | src/utils/drawing.h |
Stepan Salenikovich | d876507 | 2016-01-14 10:58:51 -0500 | [diff] [blame] | 267 | src/utils/drawing.cpp |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 268 | src/video/video_widget.h |
| 269 | src/video/video_widget.cpp |
Stepan Salenikovich | 61cbab0 | 2015-03-16 18:35:10 -0400 | [diff] [blame] | 270 | src/accountview.h |
| 271 | src/accountview.cpp |
aviau | 6aeb485 | 2016-08-18 16:01:09 -0400 | [diff] [blame] | 272 | src/accountcreationwizard.h |
| 273 | src/accountcreationwizard.cpp |
| 274 | src/accountmigrationview.h |
| 275 | src/accountmigrationview.cpp |
Stepan Salenikovich | 61cbab0 | 2015-03-16 18:35:10 -0400 | [diff] [blame] | 276 | src/accountgeneraltab.h |
| 277 | src/accountgeneraltab.cpp |
aviau | 2da3d9c | 2016-09-06 11:28:36 -0400 | [diff] [blame] | 278 | src/usernameregistrationbox.h |
| 279 | src/usernameregistrationbox.cpp |
Stepan Salenikovich | 61cbab0 | 2015-03-16 18:35:10 -0400 | [diff] [blame] | 280 | src/accountaudiotab.h |
| 281 | src/accountaudiotab.cpp |
aviau | 6aeb485 | 2016-08-18 16:01:09 -0400 | [diff] [blame] | 282 | src/accountdevicestab.h |
| 283 | src/accountdevicestab.cpp |
Stepan Salenikovich | 61cbab0 | 2015-03-16 18:35:10 -0400 | [diff] [blame] | 284 | src/accountvideotab.h |
| 285 | src/accountvideotab.cpp |
Stepan Salenikovich | b7e6a73 | 2015-05-04 17:13:22 -0400 | [diff] [blame] | 286 | src/accountadvancedtab.h |
| 287 | src/accountadvancedtab.cpp |
Stepan Salenikovich | 7a1e71c | 2015-05-07 11:14:48 -0400 | [diff] [blame] | 288 | src/accountsecuritytab.h |
| 289 | src/accountsecuritytab.cpp |
Stepan Salenikovich | c3fede2 | 2015-03-20 17:01:47 -0400 | [diff] [blame] | 290 | src/models/activeitemproxymodel.h |
| 291 | src/models/activeitemproxymodel.cpp |
Stepan Salenikovich | 50c989b | 2015-03-21 18:32:46 -0400 | [diff] [blame] | 292 | src/defines.h |
Stepan Salenikovich | 8bc51e5 | 2015-03-21 20:17:29 -0400 | [diff] [blame] | 293 | src/video/xrectsel.h |
| 294 | src/video/xrectsel.c |
Stepan Salenikovich | bd02958 | 2015-03-24 11:00:56 -0400 | [diff] [blame] | 295 | src/dialogs.h |
| 296 | src/dialogs.c |
Stepan Salenikovich | 0bd5349 | 2015-05-11 14:28:52 -0400 | [diff] [blame] | 297 | src/mediasettingsview.h |
| 298 | src/mediasettingsview.cpp |
Stepan Salenikovich | de89611 | 2015-05-11 16:46:33 -0400 | [diff] [blame] | 299 | src/generalsettingsview.h |
| 300 | src/generalsettingsview.cpp |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 301 | src/backends/edscontactbackend.h |
| 302 | src/backends/edscontactbackend.cpp |
Stepan Salenikovich | bbd6c13 | 2015-08-20 15:21:48 -0400 | [diff] [blame] | 303 | src/native/pixbufmanipulator.h |
| 304 | src/native/pixbufmanipulator.cpp |
Stepan Salenikovich | 9816a94 | 2015-04-22 17:49:16 -0400 | [diff] [blame] | 305 | src/utils/models.h |
| 306 | src/utils/models.cpp |
| 307 | src/utils/calling.h |
| 308 | src/utils/calling.cpp |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 309 | src/ringnotify.h |
| 310 | src/ringnotify.cpp |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 311 | src/utils/files.h |
| 312 | src/utils/files.cpp |
Stepan Salenikovich | 4f9bb98 | 2015-06-23 14:26:30 -0400 | [diff] [blame] | 313 | ${GIT_REVISION_OUTPUT_FILE} |
Stepan Salenikovich | 75a3917 | 2015-07-10 13:21:08 -0400 | [diff] [blame] | 314 | src/utils/accounts.h |
| 315 | src/utils/accounts.cpp |
Stepan Salenikovich | 0cf247d | 2015-07-24 17:36:32 -0400 | [diff] [blame] | 316 | src/choosecontactview.h |
| 317 | src/choosecontactview.cpp |
| 318 | src/editcontactview.h |
| 319 | src/editcontactview.cpp |
Stepan Salenikovich | be6550c | 2015-08-21 16:16:03 -0400 | [diff] [blame] | 320 | src/native/dbuserrorhandler.h |
| 321 | src/native/dbuserrorhandler.cpp |
Stepan Salenikovich | 2cde761 | 2015-09-25 10:44:01 -0400 | [diff] [blame] | 322 | src/ringwelcomeview.h |
| 323 | src/ringwelcomeview.cpp |
aviau | 039001d | 2016-09-29 16:39:05 -0400 | [diff] [blame] | 324 | src/webkitchatcontainer.h |
| 325 | src/webkitchatcontainer.cpp |
Stepan Salenikovich | d2cad06 | 2016-01-08 13:43:49 -0500 | [diff] [blame] | 326 | src/chatview.h |
| 327 | src/chatview.cpp |
Nicolas Jager | b413b30 | 2016-05-06 11:41:32 -0400 | [diff] [blame] | 328 | src/avatarmanipulation.h |
| 329 | src/avatarmanipulation.cpp |
Stepan Salenikovich | 5c54b35 | 2016-09-14 14:28:19 -0400 | [diff] [blame] | 330 | src/cc-crop-area.h |
| 331 | src/cc-crop-area.c |
Stepan Salenikovich | dcfb503 | 2016-10-26 18:57:56 -0400 | [diff] [blame] | 332 | src/models/namenumberfilterproxymodel.h |
| 333 | src/models/namenumberfilterproxymodel.cpp |
Nicolas Jager | 005fc55 | 2017-04-26 07:50:26 -0400 | [diff] [blame] | 334 | src/accountbanstab.h |
| 335 | src/accountbanstab.cpp |
| 336 | src/bannedcontactsview.h |
| 337 | src/bannedcontactsview.cpp |
Sébastien Blin | e72d43c | 2017-10-03 11:37:33 -0400 | [diff] [blame] | 338 | src/conversationsview.h |
| 339 | src/conversationsview.cpp |
Sébastien Blin | 4e556d0 | 2017-10-03 15:26:30 -0400 | [diff] [blame] | 340 | src/conversationpopupmenu.h |
| 341 | src/conversationpopupmenu.cpp |
Hugo Lefeuvre | 6f2ceb1 | 2018-04-18 15:08:01 -0400 | [diff] [blame] | 342 | src/accountinfopointer.h |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 343 | ) |
| 344 | |
Stepan Salenikovich | a8df7ea | 2015-02-18 12:46:36 -0500 | [diff] [blame] | 345 | # compile glib resource files to c code |
| 346 | GLIB_COMPILE_RESOURCES( GLIB_RESOURCES_RING |
| 347 | SOURCE |
| 348 | pixmaps/pixmaps.gresource.xml |
Stepan Salenikovich | 434b88f | 2015-02-19 17:49:08 -0500 | [diff] [blame] | 349 | ui/ui.gresource.xml |
aviau | 039001d | 2016-09-29 16:39:05 -0400 | [diff] [blame] | 350 | web/web.gresource.xml |
Nicolas Jager | 655b8db | 2017-12-15 14:04:32 -0500 | [diff] [blame] | 351 | sounds/sounds.gresource.xml |
Stepan Salenikovich | a8df7ea | 2015-02-18 12:46:36 -0500 | [diff] [blame] | 352 | ) |
| 353 | |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 354 | # IF(${ENABLE_TEST} MATCHES true) |
| 355 | # ADD_SUBDIRECTORY( src/test) |
| 356 | # ENDIF() |
| 357 | |
| 358 | # for translations |
Stepan Salenikovich | e88f669 | 2015-09-10 18:09:38 -0400 | [diff] [blame] | 359 | IF (GETTEXT_FOUND) |
| 360 | |
| 361 | # get all translation files; they're expected to be named using the following convention: |
| 362 | # '<lang code>[_<country code].po' |
| 363 | # eg: fr_CA.po (the country code is optional) |
| 364 | FILE(GLOB PO_FILES ${CMAKE_SOURCE_DIR}/po/*.po) |
| 365 | |
| 366 | # Install each of the translation files |
| 367 | FOREACH(PO_FILE IN LISTS PO_FILES) |
| 368 | # extract the language (and optional country code) from the filename |
| 369 | GET_FILENAME_COMPONENT(LANG ${PO_FILE} NAME_WE) |
| 370 | GETTEXT_PROCESS_PO_FILES(${LANG} ALL PO_FILES ${PO_FILE}) |
| 371 | |
| 372 | SET(TRANSLATIONS_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/locale/${LANG}/LC_MESSAGES) |
| 373 | |
| 374 | # install to share/locale and rename each to ring-client-gnome.mo |
| 375 | INSTALL( |
| 376 | FILES ${PROJECT_BINARY_DIR}/${LANG}.gmo |
| 377 | DESTINATION ${TRANSLATIONS_INSTALL_DIR} |
| 378 | RENAME ${PROJECT_NAME}.mo |
| 379 | ) |
| 380 | ENDFOREACH(PO_FILE) |
| 381 | |
| 382 | ENDIF(GETTEXT_FOUND) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 383 | |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 384 | # install and compile glib gsettings schema |
| 385 | add_schema("cx.ring.RingGnome.gschema.xml" GSCHEMA_RING) |
| 386 | |
Stepan Salenikovich | 526c41e | 2016-06-08 16:48:20 -0400 | [diff] [blame] | 387 | ADD_EXECUTABLE(gnome-ring ${GLIB_RESOURCES_RING} ${GSCHEMA_RING} ${SRC_FILES}) |
Stepan Salenikovich | e3500cb | 2015-02-13 15:55:46 -0500 | [diff] [blame] | 388 | |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 389 | IF(NOT ${ENABLE_STATIC} MATCHES false) |
Stepan Salenikovich | 526c41e | 2016-06-08 16:48:20 -0400 | [diff] [blame] | 390 | TARGET_LINK_LIBRARIES(gnome-ring |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 391 | ${LIB_RING_CLIENT_LIBRARY} |
| 392 | ${GTK3_LIBRARIES} |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 393 | ${Qt5Core_LIBRARIES} |
| 394 | ${Qt5DBus_LIBRARIES} |
Stepan Salenikovich | 36c025c | 2015-03-03 19:06:44 -0500 | [diff] [blame] | 395 | ${CLUTTER_LIBRARIES} |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 396 | ${CLUTTERGTK_LIBRARIES} |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 397 | ${EBOOK_LIBRARIES} |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 398 | ${LIBNOTIFY_LIBRARIES} |
Stepan Salenikovich | 982b288 | 2016-06-15 13:13:37 -0400 | [diff] [blame] | 399 | ${APPINDICATOR_LIBRARIES} |
Stepan Salenikovich | 472c905 | 2016-07-20 19:16:02 -0400 | [diff] [blame] | 400 | ${LIBNM_LIBRARIES} |
aviau | 039001d | 2016-09-29 16:39:05 -0400 | [diff] [blame] | 401 | ${WEBKIT_LIBRARIES} |
Stepan Salenikovich | 45ea8c1 | 2016-09-02 18:13:52 -0400 | [diff] [blame] | 402 | ${LIBQRENCODE_LIBRARIES} |
Nicolas Jager | 655b8db | 2017-12-15 14:04:32 -0500 | [diff] [blame] | 403 | ${CANBERRA_LIBRARIES} |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 404 | -lpthread |
| 405 | -lrt |
| 406 | ) |
| 407 | ELSE() |
Stepan Salenikovich | 526c41e | 2016-06-08 16:48:20 -0400 | [diff] [blame] | 408 | TARGET_LINK_LIBRARIES(gnome-ring |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 409 | ${LIB_RING_CLIENT_LIBRARY} |
| 410 | ${GTK3_LIBRARIES} |
| 411 | ${Qt5Core_LIBRARIES} |
| 412 | ${CLUTTER_LIBRARIES} |
| 413 | ${CLUTTERGTK_LIBRARIES} |
Stepan Salenikovich | 6f68707 | 2015-03-26 10:43:37 -0400 | [diff] [blame] | 414 | ${EBOOK_LIBRARIES} |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 415 | ${LIBNOTIFY_LIBRARIES} |
Stepan Salenikovich | 982b288 | 2016-06-15 13:13:37 -0400 | [diff] [blame] | 416 | ${APPINDICATOR_LIBRARIES} |
Stepan Salenikovich | 472c905 | 2016-07-20 19:16:02 -0400 | [diff] [blame] | 417 | ${LIBNM_LIBRARIES} |
aviau | 039001d | 2016-09-29 16:39:05 -0400 | [diff] [blame] | 418 | ${WEBKIT_LIBRARIES} |
Stepan Salenikovich | 45ea8c1 | 2016-09-02 18:13:52 -0400 | [diff] [blame] | 419 | ${LIBQRENCODE_LIBRARIES} |
Nicolas Jager | 655b8db | 2017-12-15 14:04:32 -0500 | [diff] [blame] | 420 | ${CANBERRA_LIBRARIES} |
Guillaume Roguez | 644caf4 | 2015-03-20 16:28:36 -0400 | [diff] [blame] | 421 | ) |
| 422 | ENDIF() |
Stepan Salenikovich | 1c34fc5 | 2015-03-13 12:43:54 -0400 | [diff] [blame] | 423 | |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 424 | # configure libnotify variable for config.h file |
| 425 | IF( LIBNOTIFY_FOUND ) |
| 426 | SET(USE_LIBNOTIFY 1) |
Nicolas Jager | 655b8db | 2017-12-15 14:04:32 -0500 | [diff] [blame] | 427 | SET(USE_CANBERRA 1) |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 428 | ELSE() |
| 429 | SET(USE_LIBNOTIFY 0) |
| 430 | ENDIF() |
| 431 | |
Stepan Salenikovich | 472c905 | 2016-07-20 19:16:02 -0400 | [diff] [blame] | 432 | # configure libnm variable for config.h file |
| 433 | IF( LIBNM_FOUND ) |
| 434 | SET(USE_LIBNM 1) |
| 435 | ELSE() |
| 436 | SET(USE_LIBNM 0) |
| 437 | ENDIF() |
| 438 | |
Nicolas Jager | 655b8db | 2017-12-15 14:04:32 -0500 | [diff] [blame] | 439 | # configure libcanberra variable for config.h file |
| 440 | IF( CANBERRA_FOUND ) |
| 441 | SET(USE_CANBERRA 1) |
| 442 | ELSE() |
| 443 | SET(USE_CANBERRA 0) |
| 444 | ENDIF() |
| 445 | |
Stepan Salenikovich | 76c33e6 | 2015-05-22 12:24:07 -0400 | [diff] [blame] | 446 | # create config header file to pass cmake settings to source code |
| 447 | CONFIGURE_FILE ( |
| 448 | "${PROJECT_SOURCE_DIR}/src/config.h.in" |
| 449 | "${PROJECT_BINARY_DIR}/config.h" |
| 450 | ) |
| 451 | |
Stepan Salenikovich | 526c41e | 2016-06-08 16:48:20 -0400 | [diff] [blame] | 452 | INSTALL(TARGETS gnome-ring |
Stepan Salenikovich | 1c34fc5 | 2015-03-13 12:43:54 -0400 | [diff] [blame] | 453 | RUNTIME DESTINATION bin |
| 454 | ) |
Stepan Salenikovich | b42fde7 | 2015-03-30 12:29:09 -0400 | [diff] [blame] | 455 | |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 456 | # install .desktop in XDG desktop dir so that it is recognized by the system |
Stepan Salenikovich | 526c41e | 2016-06-08 16:48:20 -0400 | [diff] [blame] | 457 | INSTALL(FILES ${PROJECT_SOURCE_DIR}/gnome-ring.desktop |
Stepan Salenikovich | b42fde7 | 2015-03-30 12:29:09 -0400 | [diff] [blame] | 458 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications |
| 459 | ) |
| 460 | |
Nicolas Jager | 655b8db | 2017-12-15 14:04:32 -0500 | [diff] [blame] | 461 | # install audio files |
| 462 | INSTALL(FILES ${PROJECT_SOURCE_DIR}/sounds/ringtone_notify.wav |
| 463 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/sounds/gnome-ring |
| 464 | ) |
| 465 | |
Stepan Salenikovich | 526c41e | 2016-06-08 16:48:20 -0400 | [diff] [blame] | 466 | # install .desktop in the gnome-ring data dir, so that it can be copied to the |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 467 | # autostart dir by the client |
Stepan Salenikovich | 526c41e | 2016-06-08 16:48:20 -0400 | [diff] [blame] | 468 | INSTALL(FILES ${PROJECT_SOURCE_DIR}/gnome-ring.desktop.autostart |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 469 | DESTINATION |
Stepan Salenikovich | 526c41e | 2016-06-08 16:48:20 -0400 | [diff] [blame] | 470 | ${CMAKE_INSTALL_PREFIX}/share/gnome-ring/ |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 471 | PERMISSIONS |
| 472 | WORLD_READ |
| 473 | OWNER_WRITE |
| 474 | OWNER_READ |
| 475 | GROUP_READ |
Stepan Salenikovich | 2bc2327 | 2015-09-17 18:05:01 -0400 | [diff] [blame] | 476 | RENAME |
Stepan Salenikovich | 526c41e | 2016-06-08 16:48:20 -0400 | [diff] [blame] | 477 | gnome-ring.desktop |
Stepan Salenikovich | fb7f295 | 2015-05-25 16:44:19 -0400 | [diff] [blame] | 478 | ) |
| 479 | |
Stepan Salenikovich | b42fde7 | 2015-03-30 12:29:09 -0400 | [diff] [blame] | 480 | INSTALL(FILES pixmaps/ring.svg |
| 481 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps |
| 482 | ) |
| 483 | |
Stepan Salenikovich | 526c41e | 2016-06-08 16:48:20 -0400 | [diff] [blame] | 484 | INSTALL(FILES gnome-ring.appdata.xml |
Stepan Salenikovich | b42fde7 | 2015-03-30 12:29:09 -0400 | [diff] [blame] | 485 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/appdata/ |
| 486 | ) |
Stepan Salenikovich | 841deaf | 2015-04-15 16:08:39 -0400 | [diff] [blame] | 487 | |
Stepan Salenikovich | 0d707a6 | 2015-05-29 10:48:04 -0400 | [diff] [blame] | 488 | # install shell script which will launch "ring" |
Stepan Salenikovich | ab120ea | 2015-06-01 18:14:12 -0400 | [diff] [blame] | 489 | INSTALL( |
| 490 | FILES |
aviau | 4afc17d | 2016-04-25 10:45:08 -0400 | [diff] [blame] | 491 | "${PROJECT_SOURCE_DIR}/src/ring.cx" |
Stepan Salenikovich | ab120ea | 2015-06-01 18:14:12 -0400 | [diff] [blame] | 492 | DESTINATION |
| 493 | ${CMAKE_INSTALL_PREFIX}/bin |
| 494 | PERMISSIONS |
| 495 | WORLD_READ |
| 496 | OWNER_WRITE |
| 497 | OWNER_READ |
| 498 | GROUP_READ |
| 499 | OWNER_EXECUTE |
| 500 | GROUP_EXECUTE |
| 501 | WORLD_EXECUTE |
Stepan Salenikovich | 0d707a6 | 2015-05-29 10:48:04 -0400 | [diff] [blame] | 502 | ) |
| 503 | |
Stepan Salenikovich | 841deaf | 2015-04-15 16:08:39 -0400 | [diff] [blame] | 504 | # add a target to generate API documentation with Doxygen |
| 505 | FIND_PACKAGE(Doxygen) |
| 506 | IF(DOXYGEN_FOUND) |
| 507 | CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile @ONLY) |
| 508 | ADD_CUSTOM_TARGET(doc |
| 509 | COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile |
| 510 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc |
| 511 | COMMENT "Generating API documentation with Doxygen" VERBATIM |
| 512 | ) |
| 513 | |
| 514 | # create doc/README.md symlink to README since Doxygen doesn't understand file with no extension |
| 515 | ADD_CUSTOM_COMMAND( |
| 516 | TARGET doc |
| 517 | PRE_BUILD |
| 518 | COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/README ${CMAKE_CURRENT_SOURCE_DIR}/doc/README.md |
| 519 | ) |
| 520 | ENDIF(DOXYGEN_FOUND) |
Stepan Salenikovich | 1f47b55 | 2016-05-03 17:24:33 -0400 | [diff] [blame] | 521 | |
| 522 | # uninstall target |
| 523 | CONFIGURE_FILE( |
| 524 | "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" |
| 525 | "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" |
| 526 | IMMEDIATE @ONLY) |
| 527 | |
| 528 | ADD_CUSTOM_TARGET(uninstall |
| 529 | COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) |