Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.8) |
| 2 | |
| 3 | IF(POLICY CMP0022) |
| 4 | CMAKE_POLICY(SET CMP0022 NEW) |
| 5 | ENDIF(POLICY CMP0022) |
| 6 | |
Alexandre Lision | b47b4c8 | 2015-01-20 11:29:03 -0500 | [diff] [blame] | 7 | SET(PROJ_NAME Ring) |
Alexandre Lision | 3d4143a | 2015-06-10 14:27:49 -0400 | [diff] [blame] | 8 | |
| 9 | # To build nighlies we need to update RING_VERSION with an optional command line arg |
| 10 | IF("${RING_VERSION}" STREQUAL "") |
Guillaume Roguez | 812d550 | 2016-03-16 22:46:29 -0400 | [diff] [blame] | 11 | SET(RING_VERSION "1.0.0") |
Alexandre Lision | 3d4143a | 2015-06-10 14:27:49 -0400 | [diff] [blame] | 12 | ENDIF("${RING_VERSION}" STREQUAL "") |
| 13 | |
Alexandre Lision | 3862215 | 2016-03-15 10:55:59 +0700 | [diff] [blame] | 14 | SET(RING_VERSION_NAME "Louis-Joseph Papineau") |
Alexandre Lision | bb30613 | 2015-03-27 11:30:02 -0400 | [diff] [blame] | 15 | |
Alexandre Lision | 6517be8 | 2016-02-11 10:32:20 -0500 | [diff] [blame] | 16 | MESSAGE("Building Ring version - " ${RING_VERSION_NAME}) |
Alexandre Lision | 9fe374b | 2016-01-06 10:17:31 -0500 | [diff] [blame] | 17 | SET(PROJ_COPYRIGHT " © 2015-2016 Savoir-faire Linux \n GPLv3 https://www.gnu.org/copyleft/gpl.html") |
Alexandre Lision | b47b4c8 | 2015-01-20 11:29:03 -0500 | [diff] [blame] | 18 | |
Alexandre Lision | 6517be8 | 2016-02-11 10:32:20 -0500 | [diff] [blame] | 19 | ADD_DEFINITIONS("-std=c++11 -stdlib=libc++ -fobjc-arc") |
Alexandre Lision | 5855b6a | 2015-02-03 11:31:05 -0500 | [diff] [blame] | 20 | |
Alexandre Lision | b47b4c8 | 2015-01-20 11:29:03 -0500 | [diff] [blame] | 21 | PROJECT(${PROJ_NAME}) |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 22 | |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 23 | FIND_PACKAGE(Qt5Core REQUIRED) |
Alexandre Lision | 3b0bd33 | 2015-03-15 18:43:07 -0400 | [diff] [blame] | 24 | FIND_PACKAGE(Qt5MacExtras REQUIRED) |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 25 | FIND_PACKAGE(Qt5Widgets REQUIRED) |
| 26 | FIND_PACKAGE(LibRingClient REQUIRED) |
| 27 | |
Alexandre Lision | 3d4143a | 2015-06-10 14:27:49 -0400 | [diff] [blame] | 28 | IF(NOT (${ENABLE_SPARKLE} MATCHES false)) |
| 29 | MESSAGE("Sparkle auto-update enabled") |
| 30 | |
| 31 | # find_library searches in /Library/Frameworks by default |
| 32 | # We add an hint to our custom location |
| 33 | |
| 34 | FIND_LIBRARY(SPARKLE_FRAMEWORK |
| 35 | NAMES Sparkle |
| 36 | HINTS ${CMAKE_CURRENT_SOURCE_DIR}/sparkle) |
| 37 | IF(EXISTS ${SPARKLE_FRAMEWORK}) |
| 38 | SET(ENABLE_SPARKLE 1 CACHE BOOLEAN "Enable Sparkle") |
| 39 | ADD_DEFINITIONS(-DENABLE_SPARKLE=1) |
| 40 | MESSAGE("Sparkle is here:" ${SPARKLE_FRAMEWORK}) |
| 41 | FIND_PATH(SPARKLE_INCLUDE_DIR Sparkle.h HINTS ${SPARKLE_FRAMEWORK}/Headers) |
| 42 | MESSAGE("INCLUDE " ${SPARKLE_INCLUDE_DIR}) |
| 43 | # we need to copy the public key to check the updates |
| 44 | SET(PUBLIC_KEY_PATH "${CMAKE_CURRENT_SOURCE_DIR}/sparkle/dsa_pub.pem") |
| 45 | IF(EXISTS ${PUBLIC_KEY_PATH}) |
| 46 | MESSAGE(STATUS "Looking for Public Key - found") |
| 47 | SET_SOURCE_FILES_PROPERTIES(${PUBLIC_KEY_PATH} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) |
| 48 | SET(PUBLIC_KEY ${PUBLIC_KEY_PATH}) |
| 49 | ELSE(EXISTS ${PUBLIC_KEY_PATH}) |
| 50 | MESSAGE(WARNING "Looking for Public Key - not found") |
| 51 | MESSAGE(WARNING "${PUBLIC_KEY_PATH} not found Sparkle Framework will NOT work and may even prevent application from launching. Please consider disabling Sparkle Framework, creating a keypair for testing purposes") |
| 52 | ENDIF(EXISTS ${PUBLIC_KEY_PATH}) |
| 53 | ELSE() |
Alexandre Lision | fba8f79 | 2016-03-08 13:45:51 -0500 | [diff] [blame] | 54 | MESSAGE(WARNING "Sparkle framework not found, disabling it... to build it see README") |
| 55 | SET(ENABLE_SPARKLE 0 CACHE BOOLEAN "Enable Sparkle") |
Alexandre Lision | 3d4143a | 2015-06-10 14:27:49 -0400 | [diff] [blame] | 56 | ENDIF(EXISTS ${SPARKLE_FRAMEWORK}) |
| 57 | ENDIF(NOT (${ENABLE_SPARKLE} MATCHES false)) |
| 58 | |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 59 | INCLUDE_DIRECTORIES(SYSTEM ${Qt5Core_INCLUDE_DIRS}) |
Alexandre Lision | 3b0bd33 | 2015-03-15 18:43:07 -0400 | [diff] [blame] | 60 | INCLUDE_DIRECTORIES(SYSTEM ${Qt5MacExtras_INCLUDE_DIRS}) |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 61 | INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) |
| 62 | INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}) |
| 63 | INCLUDE_DIRECTORIES(${LIB_RING_CLIENT_INCLUDE_DIR}) |
| 64 | |
Alexandre Lision | 04946de | 2016-03-08 09:31:38 -0500 | [diff] [blame] | 65 | SET(CMAKE_MACOSX_RPATH ON) |
| 66 | SET(CMAKE_SKIP_BUILD_RPATH FALSE) |
| 67 | SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) |
| 68 | SET(CMAKE_INSTALL_RPATH "${CMAKE_CURRENT_SOURCE_DIR}") |
| 69 | SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) |
| 70 | |
Alexandre Lision | 3d4143a | 2015-06-10 14:27:49 -0400 | [diff] [blame] | 71 | MESSAGE("LRC is here:" ${LIB_RING_CLIENT_INCLUDE_DIR}) |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 72 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w") |
| 73 | |
| 74 | #Files to compile |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 75 | SET(ringclient_CONTROLLERS |
Alexandre Lision | 7d2a48b | 2015-03-30 14:59:58 -0400 | [diff] [blame] | 76 | src/QNSTreeController.mm |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 77 | src/QNSTreeController.h |
Alexandre Lision | 7d2a48b | 2015-03-30 14:59:58 -0400 | [diff] [blame] | 78 | src/CurrentCallVC.mm |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 79 | src/CurrentCallVC.h |
Alexandre Lision | 7d2a48b | 2015-03-30 14:59:58 -0400 | [diff] [blame] | 80 | src/GeneralPrefsVC.mm |
| 81 | src/RingWizardWC.mm |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 82 | src/RingWizardWC.h |
| 83 | src/RingWindowController.mm |
| 84 | src/RingWindowController.h |
Alexandre Lision | bfa68f6 | 2015-09-10 08:38:42 -0400 | [diff] [blame] | 85 | src/PreferencesWC.mm |
| 86 | src/PreferencesWC.h |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 87 | src/AccGeneralVC.mm |
| 88 | src/AccGeneralVC.h |
Alexandre Lision | e4d61cb | 2016-02-10 09:26:24 -0500 | [diff] [blame] | 89 | src/AccMediaVC.mm |
| 90 | src/AccMediaVC.h |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 91 | src/AccRingVC.mm |
| 92 | src/AccRingVC.h |
| 93 | src/AccAdvancedVC.mm |
| 94 | src/AccAdvancedVC.h |
| 95 | src/AccSecurityVC.mm |
| 96 | src/AccSecurityVC.h |
Alexandre Lision | 4de68ce | 2015-04-24 18:22:49 -0400 | [diff] [blame] | 97 | src/CertificateWC.mm |
| 98 | src/CertificateWC.h |
Alexandre Lision | c1f9666 | 2016-03-23 17:24:19 -0400 | [diff] [blame^] | 99 | src/PathPasswordWC.mm |
| 100 | src/PathPasswordWC.h |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 101 | src/AudioPrefsVC.mm |
| 102 | src/AudioPrefsVC.h |
| 103 | src/AccountsVC.mm |
| 104 | src/AccountsVC.h |
| 105 | src/VideoPrefsVC.mm |
| 106 | src/VideoPrefsVC.h |
| 107 | src/GeneralPrefsVC.h |
| 108 | src/HistoryVC.mm |
| 109 | src/HistoryVC.h |
Alexandre Lision | 3b0bd33 | 2015-03-15 18:43:07 -0400 | [diff] [blame] | 110 | src/PersonsVC.mm |
Alexandre Lision | 58cab67 | 2015-06-09 15:25:40 -0400 | [diff] [blame] | 111 | src/PersonsVC.h |
| 112 | src/ChatVC.mm |
Alexandre Lision | 2db8f47 | 2015-07-22 15:05:46 -0400 | [diff] [blame] | 113 | src/ChatVC.h |
| 114 | src/PersonLinkerVC.mm |
Alexandre Lision | 4dfcafc | 2015-08-20 12:43:23 -0400 | [diff] [blame] | 115 | src/PersonLinkerVC.h |
| 116 | src/SmartViewVC.mm |
Alexandre Lision | 883719f | 2015-10-22 17:37:45 -0400 | [diff] [blame] | 117 | src/SmartViewVC.h |
| 118 | src/BrokerVC.mm |
Alexandre Lision | 0f66bd3 | 2016-01-18 11:30:45 -0500 | [diff] [blame] | 119 | src/BrokerVC.h |
| 120 | src/ConversationVC.mm |
| 121 | src/ConversationVC.h) |
Alexandre Lision | 74dd47f | 2015-04-14 13:47:42 -0400 | [diff] [blame] | 122 | |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 123 | SET(ringclient_BACKENDS |
Alexandre Lision | 3b0bd33 | 2015-03-15 18:43:07 -0400 | [diff] [blame] | 124 | src/backends/AddressBookBackend.mm |
Alexandre Lision | 6664343 | 2015-06-04 11:59:36 -0400 | [diff] [blame] | 125 | src/backends/AddressBookBackend.h) |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 126 | |
| 127 | SET(ringclient_VIEWS |
| 128 | src/views/CallView.mm |
| 129 | src/views/CallView.h |
Alexandre Lision | f47a256 | 2015-06-15 15:48:29 -0400 | [diff] [blame] | 130 | src/views/ITProgressIndicator.mm |
| 131 | src/views/ITProgressIndicator.h |
Alexandre Lision | 2db8f47 | 2015-07-22 15:05:46 -0400 | [diff] [blame] | 132 | src/views/RingOutlineView.mm |
Alexandre Lision | 7f8351b | 2015-08-20 11:43:37 -0400 | [diff] [blame] | 133 | src/views/RingOutlineView.h |
| 134 | src/views/RingIDField.mm |
Alexandre Lision | 4e280d6 | 2015-09-09 15:56:30 -0400 | [diff] [blame] | 135 | src/views/RingIDField.h |
| 136 | src/views/HoverTableRowView.mm |
| 137 | src/views/HoverTableRowView.h |
| 138 | src/views/NSColor+RingTheme.mm |
| 139 | src/views/NSColor+RingTheme.h |
| 140 | src/views/ContextualTableCellView.mm |
Alexandre Lision | 6da08a8 | 2015-09-24 17:09:24 -0400 | [diff] [blame] | 141 | src/views/ContextualTableCellView.h |
| 142 | src/views/IconButton.h |
Alexandre Lision | 0f66bd3 | 2016-01-18 11:30:45 -0500 | [diff] [blame] | 143 | src/views/IconButton.mm |
| 144 | src/views/IMTableCellView.h |
| 145 | src/views/IMTableCellView.mm) |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 146 | |
| 147 | SET(ringclient_OTHERS |
| 148 | src/main.mm |
| 149 | src/AppDelegate.mm |
| 150 | src/AppDelegate.h |
Alexandre Lision | 9fe374b | 2016-01-06 10:17:31 -0500 | [diff] [blame] | 151 | src/Constants.h |
Alexandre Lision | 83180df | 2016-01-18 11:32:20 -0500 | [diff] [blame] | 152 | src/INDSequentialTextSelectionManager.mm |
| 153 | src/INDSequentialTextSelectionManager.h |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 154 | src/delegates/ImageManipulationDelegate.mm |
| 155 | src/delegates/ImageManipulationDelegate.h) |
| 156 | |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 157 | |
Alexandre Lision | f241c6a | 2015-03-24 14:53:47 -0400 | [diff] [blame] | 158 | SET(ringclient_XIBS |
| 159 | MainMenu |
| 160 | RingWindow |
| 161 | CurrentCall |
| 162 | GeneralPrefs |
| 163 | Accounts |
| 164 | AccGeneral |
Alexandre Lision | e4d61cb | 2016-02-10 09:26:24 -0500 | [diff] [blame] | 165 | AccMedia |
Alexandre Lision | f241c6a | 2015-03-24 14:53:47 -0400 | [diff] [blame] | 166 | AccRing |
| 167 | AccAdvanced |
| 168 | AccSecurity |
| 169 | AudioPrefs |
| 170 | VideoPrefs |
Alexandre Lision | bfa68f6 | 2015-09-10 08:38:42 -0400 | [diff] [blame] | 171 | PreferencesWindow |
Alexandre Lision | 4de68ce | 2015-04-24 18:22:49 -0400 | [diff] [blame] | 172 | RingWizard |
Alexandre Lision | 2db8f47 | 2015-07-22 15:05:46 -0400 | [diff] [blame] | 173 | CertificateWindow |
Alexandre Lision | c1f9666 | 2016-03-23 17:24:19 -0400 | [diff] [blame^] | 174 | PathPasswordWindow |
Alexandre Lision | 883719f | 2015-10-22 17:37:45 -0400 | [diff] [blame] | 175 | PersonLinker |
Alexandre Lision | 0f66bd3 | 2016-01-18 11:30:45 -0500 | [diff] [blame] | 176 | Broker |
| 177 | Conversation) |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 178 | |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 179 | # Icons |
Alexandre Lision | 5db3e4e | 2015-03-24 17:25:55 -0400 | [diff] [blame] | 180 | # This part tells CMake where to find and install the file itself |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 181 | SET(myApp_ICON ${CMAKE_CURRENT_SOURCE_DIR}/data/appicon.icns) |
| 182 | SET_SOURCE_FILES_PROPERTIES(${myApp_ICON} PROPERTIES |
Alexandre Lision | 3278ffe | 2016-02-03 14:45:22 -0500 | [diff] [blame] | 183 | MACOSX_PACKAGE_LOCATION Resources) |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 184 | |
Alexandre Lision | 7f8351b | 2015-08-20 11:43:37 -0400 | [diff] [blame] | 185 | SET(ring_ICONS |
| 186 | ${CMAKE_CURRENT_SOURCE_DIR}/data/symbol_name.png |
Alexandre Lision | 3460703 | 2016-02-08 16:16:49 -0500 | [diff] [blame] | 187 | ${CMAKE_CURRENT_SOURCE_DIR}/data/symbol_blue.png |
Alexandre Lision | 6da08a8 | 2015-09-24 17:09:24 -0400 | [diff] [blame] | 188 | ${CMAKE_CURRENT_SOURCE_DIR}/data/background_tile.png |
Alexandre Lision | 7f8351b | 2015-08-20 11:43:37 -0400 | [diff] [blame] | 189 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_accept.png |
Alexandre Lision | 0f66bd3 | 2016-01-18 11:30:45 -0500 | [diff] [blame] | 190 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_arrow_back.png |
Alexandre Lision | 392ee72 | 2015-01-23 16:27:10 -0500 | [diff] [blame] | 191 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_call.png |
| 192 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_cancel.png |
Alexandre Lision | d18fa27 | 2015-06-15 11:18:03 -0400 | [diff] [blame] | 193 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_hangup.png |
| 194 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_hold.png |
| 195 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_holdoff.png |
| 196 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_mute_video.png |
| 197 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_mute_audio.png |
| 198 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_chat.png |
Alexandre Lision | 392ee72 | 2015-01-23 16:27:10 -0500 | [diff] [blame] | 199 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_search.png |
Alexandre Lision | f23ec5a | 2015-07-16 11:24:06 -0400 | [diff] [blame] | 200 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_quality.png |
Alexandre Lision | 266fca0 | 2015-09-28 14:47:05 -0400 | [diff] [blame] | 201 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_record.png |
Alexandre Lision | 4dfcafc | 2015-08-20 12:43:23 -0400 | [diff] [blame] | 202 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_call_received.png |
| 203 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_call_missed.png |
| 204 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_call_made.png |
Alexandre Lision | 883719f | 2015-10-22 17:37:45 -0400 | [diff] [blame] | 205 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_transfer.png |
Alexandre Lision | 89edc6a | 2015-11-09 11:30:47 -0500 | [diff] [blame] | 206 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_add_participant.png |
| 207 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_merge_calls.png |
Alexandre Lision | d5229f3 | 2015-11-16 11:17:41 -0500 | [diff] [blame] | 208 | ${CMAKE_CURRENT_SOURCE_DIR}/data/default_user_icon.png |
Alexandre Lision | 4a7b95e | 2015-02-20 10:06:43 -0500 | [diff] [blame] | 209 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ancrage.png |
Alexandre Lision | 0f66bd3 | 2016-01-18 11:30:45 -0500 | [diff] [blame] | 210 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_send.png |
Alexandre Lision | 4a7b95e | 2015-02-20 10:06:43 -0500 | [diff] [blame] | 211 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/audio.png |
Alexandre Lision | 2db8f47 | 2015-07-22 15:05:46 -0400 | [diff] [blame] | 212 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_person_add.png |
Alexandre Lision | 4dfcafc | 2015-08-20 12:43:23 -0400 | [diff] [blame] | 213 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_persons.png |
| 214 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_history.png |
Alexandre Lision | 4a7b95e | 2015-02-20 10:06:43 -0500 | [diff] [blame] | 215 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/general.png |
| 216 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/video.png |
Alexandre Lision | 392ee72 | 2015-01-23 16:27:10 -0500 | [diff] [blame] | 217 | ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_video.png) |
Alexandre Lision | 5db3e4e | 2015-03-24 17:25:55 -0400 | [diff] [blame] | 218 | |
Alexandre Lision | 392ee72 | 2015-01-23 16:27:10 -0500 | [diff] [blame] | 219 | SET_SOURCE_FILES_PROPERTIES(${ring_ICONS} PROPERTIES |
Alexandre Lision | 5855b6a | 2015-02-03 11:31:05 -0500 | [diff] [blame] | 220 | MACOSX_PACKAGE_LOCATION Resources) |
Alexandre Lision | bb30613 | 2015-03-27 11:30:02 -0400 | [diff] [blame] | 221 | SET_SOURCE_FILES_PROPERTIES(Credits.rtf PROPERTIES |
| 222 | MACOSX_PACKAGE_LOCATION Resources) |
Alexandre Lision | 392ee72 | 2015-01-23 16:27:10 -0500 | [diff] [blame] | 223 | |
Alexandre Lision | 3278ffe | 2016-02-03 14:45:22 -0500 | [diff] [blame] | 224 | # package all ringtones in share/ring/ringtones/ |
| 225 | FILE(GLOB RINGTONE_LIST ${CMAKE_INSTALL_PREFIX}/share/ring/ringtones/*) |
| 226 | |
| 227 | FOREACH(RINGTONE ${RINGTONE_LIST}) |
| 228 | GET_FILENAME_COMPONENT(FILE_PATH ${RINGTONE} ABSOLUTE) |
| 229 | SET(ring_RINGTONES ${ring_RINGTONES} ${FILE_PATH}) |
| 230 | ENDFOREACH() |
| 231 | |
| 232 | SET_SOURCE_FILES_PROPERTIES(${ring_RINGTONES} |
| 233 | PROPERTIES MACOSX_PACKAGE_LOCATION Resources/ringtones) |
Alexandre Lision | 46dc0c3 | 2015-09-15 10:22:59 -0400 | [diff] [blame] | 234 | |
| 235 | # Check which translations are found for LRC |
| 236 | SET(LRC_TRANSLATIONS_PATH ${CMAKE_INSTALL_PREFIX}/share/libringclient/translations) |
| 237 | FILE(GLOB QM_LIST ${LRC_TRANSLATIONS_PATH}/*.qm) |
| 238 | |
| 239 | FOREACH(QM_FILE ${QM_LIST}) |
| 240 | # Extract country code from filename |
| 241 | GET_FILENAME_COMPONENT(FILENAME ${QM_FILE} NAME_WE) |
| 242 | STRING(REGEX REPLACE "^lrc_" "" LANG ${FILENAME}) |
| 243 | |
| 244 | SET_SOURCE_FILES_PROPERTIES(${LRC_TRANSLATIONS_PATH}/lrc_${LANG}.qm |
| 245 | PROPERTIES MACOSX_PACKAGE_LOCATION Resources/QtTranslations) |
| 246 | SET(LOCALIZED_${LANG} ${LOCALIZED_${LANG}} |
| 247 | "${LRC_TRANSLATIONS_PATH}/lrc_${LANG}.qm") |
Alexandre Lision | 922380d | 2015-09-15 10:25:17 -0400 | [diff] [blame] | 248 | ENDFOREACH() |
| 249 | |
| 250 | # Check which translations are found for the client |
| 251 | FILE(GLOB LPROJ_LIST ui/*.lproj) |
| 252 | |
| 253 | FOREACH(LPROJ ${LPROJ_LIST}) |
| 254 | # Extract country code from <lang>.lproj folder name |
| 255 | GET_FILENAME_COMPONENT(LANG ${LPROJ} NAME_WE) |
| 256 | IF(EXISTS "${LPROJ}/Localizable.strings") |
| 257 | MESSAGE("Localizable:" ${LANG}) |
| 258 | SET_SOURCE_FILES_PROPERTIES(${LPROJ}/Localizable.strings |
Alexandre Lision | 3278ffe | 2016-02-03 14:45:22 -0500 | [diff] [blame] | 259 | PROPERTIES MACOSX_PACKAGE_LOCATION Resources/${LANG}.lproj) |
Alexandre Lision | 922380d | 2015-09-15 10:25:17 -0400 | [diff] [blame] | 260 | |
| 261 | SET(LOCALIZED_${LANG} ${LOCALIZED_${LANG}} |
| 262 | ${LPROJ}/Localizable.strings) |
| 263 | ENDIF() |
| 264 | FOREACH(xib ${ringclient_XIBS}) |
| 265 | IF(EXISTS "${LPROJ}/${xib}.strings") |
| 266 | SET_SOURCE_FILES_PROPERTIES(${LPROJ}/${xib}.strings |
Alexandre Lision | 3278ffe | 2016-02-03 14:45:22 -0500 | [diff] [blame] | 267 | PROPERTIES MACOSX_PACKAGE_LOCATION Resources/${LANG}.lproj) |
Alexandre Lision | 922380d | 2015-09-15 10:25:17 -0400 | [diff] [blame] | 268 | |
Alexandre Lision | 3278ffe | 2016-02-03 14:45:22 -0500 | [diff] [blame] | 269 | SET(LOCALIZED_${LANG} ${LOCALIZED_${LANG}} |
Alexandre Lision | 922380d | 2015-09-15 10:25:17 -0400 | [diff] [blame] | 270 | ${LPROJ}/${xib}.strings) |
| 271 | ENDIF() |
| 272 | ENDFOREACH() |
Alexandre Lision | 46dc0c3 | 2015-09-15 10:22:59 -0400 | [diff] [blame] | 273 | |
| 274 | # Regroup those files under a .lproj folder |
| 275 | SOURCE_GROUP("Resources\\${LANG}.lproj" FILES |
| 276 | ${LOCALIZED_${LANG}}) |
| 277 | # Add them to the list of files to package |
| 278 | SET(LOCALIZABLE_FILES ${LOCALIZABLE_FILES} ${LOCALIZED_${LANG}}) |
| 279 | ENDFOREACH() |
| 280 | |
Alexandre Lision | 5db3e4e | 2015-03-24 17:25:55 -0400 | [diff] [blame] | 281 | # append '.xib' extension before linking xib files in executable |
| 282 | FOREACH(xib ${ringclient_XIBS}) |
Alexandre Lision | 922380d | 2015-09-15 10:25:17 -0400 | [diff] [blame] | 283 | SET(ringclient_XIBS_FOR_EXECUTABLE ${ringclient_XIBS_FOR_EXECUTABLE} ui/Base.lproj/${xib}.xib) |
Alexandre Lision | 5db3e4e | 2015-03-24 17:25:55 -0400 | [diff] [blame] | 284 | ENDFOREACH() |
| 285 | |
Alexandre Lision | 46dc0c3 | 2015-09-15 10:22:59 -0400 | [diff] [blame] | 286 | SET(TO_ADD |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 287 | ${ringclient_CONTROLLERS} |
| 288 | ${ringclient_BACKENDS} |
| 289 | ${ringclient_VIEWS} |
| 290 | ${ringclient_OTHERS} |
Alexandre Lision | 5db3e4e | 2015-03-24 17:25:55 -0400 | [diff] [blame] | 291 | ${ringclient_XIBS_FOR_EXECUTABLE} |
Alexandre Lision | 46dc0c3 | 2015-09-15 10:22:59 -0400 | [diff] [blame] | 292 | ${LOCALIZABLE_FILES} |
Alexandre Lision | 392ee72 | 2015-01-23 16:27:10 -0500 | [diff] [blame] | 293 | ${myApp_ICON} |
Alexandre Lision | bb30613 | 2015-03-27 11:30:02 -0400 | [diff] [blame] | 294 | Credits.rtf |
Alexandre Lision | 3278ffe | 2016-02-03 14:45:22 -0500 | [diff] [blame] | 295 | ${ring_ICONS} |
| 296 | ${ring_RINGTONES}) |
Alexandre Lision | 5855b6a | 2015-02-03 11:31:05 -0500 | [diff] [blame] | 297 | |
Alexandre Lision | 3d4143a | 2015-06-10 14:27:49 -0400 | [diff] [blame] | 298 | IF(ENABLE_SPARKLE) |
| 299 | SET( TO_ADD ${TO_ADD} ${PUBLIC_KEY} ${SPARKLE_FRAMEWORK}) |
| 300 | ENDIF(ENABLE_SPARKLE) |
| 301 | |
| 302 | ADD_EXECUTABLE(${PROJ_NAME} MACOSX_BUNDLE ${TO_ADD}) |
| 303 | |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 304 | # Follow Xcode hierarchy principles |
| 305 | SOURCE_GROUP("Controllers" FILES ${ringclient_CONTROLLERS}) |
| 306 | SOURCE_GROUP("Backends" FILES ${ringclient_BACKENDS}) |
| 307 | SOURCE_GROUP("CustomViews" FILES ${ringclient_VIEWS}) |
| 308 | SOURCE_GROUP("Classes" FILES ${ringclient_OTHERS}) |
Alexandre Lision | 46dc0c3 | 2015-09-15 10:22:59 -0400 | [diff] [blame] | 309 | SOURCE_GROUP("Resources\\Interface Builder" FILES |
| 310 | ${ringclient_XIBS_FOR_EXECUTABLE}) |
Alexandre Lision | 3278ffe | 2016-02-03 14:45:22 -0500 | [diff] [blame] | 311 | SOURCE_GROUP("Resources\\ringtones" FILES ${ring_RINGTONES}) |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 312 | |
Alexandre Lision | 3d4143a | 2015-06-10 14:27:49 -0400 | [diff] [blame] | 313 | IF(ENABLE_SPARKLE) |
| 314 | SOURCE_GROUP("Frameworks" FILES ${SPARKLE_FRAMEWORK}) |
| 315 | ENDIF(ENABLE_SPARKLE) |
Alexandre Lision | 4ba1802 | 2015-04-23 12:17:40 -0400 | [diff] [blame] | 316 | |
Alexandre Lision | b47b4c8 | 2015-01-20 11:29:03 -0500 | [diff] [blame] | 317 | TARGET_LINK_LIBRARIES( ${PROJ_NAME} |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 318 | ${LIB_RING_CLIENT_LIBRARY} |
Alexandre Lision | 5855b6a | 2015-02-03 11:31:05 -0500 | [diff] [blame] | 319 | ${Qt5Core_LIBRARIES} |
Alexandre Lision | 3b0bd33 | 2015-03-15 18:43:07 -0400 | [diff] [blame] | 320 | ${Qt5MacExtras_LIBRARIES} |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 321 | ${Qt5Widgets_LIBRARIES} |
Alexandre Lision | 10e86dd | 2015-01-19 16:11:14 -0500 | [diff] [blame] | 322 | ) |
| 323 | |
Alexandre Lision | 3d4143a | 2015-06-10 14:27:49 -0400 | [diff] [blame] | 324 | IF(ENABLE_SPARKLE) |
| 325 | TARGET_LINK_LIBRARIES(${PROJ_NAME} ${SPARKLE_FRAMEWORK}) |
| 326 | ENDIF(ENABLE_SPARKLE) |
| 327 | |
Alexandre Lision | f241c6a | 2015-03-24 14:53:47 -0400 | [diff] [blame] | 328 | SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AppKit") |
| 329 | SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa") |
| 330 | SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Quartz") |
| 331 | SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AVFoundation") |
| 332 | SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AddressBook") |
| 333 | |
| 334 | # These variables are specific to our plist and are NOT standard CMake variables |
Alexandre Lision | 3d4143a | 2015-06-10 14:27:49 -0400 | [diff] [blame] | 335 | SET(MACOSX_BUNDLE_NSMAIN_NIB_FILE "MainMenu") |
| 336 | SET(MACOSX_BUNDLE_NSPRINCIPAL_CLASS "NSApplication") |
Alexandre Lision | 392ee72 | 2015-01-23 16:27:10 -0500 | [diff] [blame] | 337 | |
Alexandre Lision | b47b4c8 | 2015-01-20 11:29:03 -0500 | [diff] [blame] | 338 | SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES |
| 339 | MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MacOSXBundleInfo.plist.in |
| 340 | MACOSX_BUNDLE_GUI_IDENTIFIER "cx.ring" |
Alexandre Lision | 7208b76 | 2015-08-13 12:39:49 -0400 | [diff] [blame] | 341 | MACOSX_BUNDLE_SHORT_VERSION_STRING "${RING_VERSION_NAME}" |
| 342 | MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJ_NAME} ${RING_VERSION_NAME} Nightly" |
| 343 | MACOSX_BUNDLE_BUNDLE_VERSION ${RING_VERSION} |
Alexandre Lision | bb30613 | 2015-03-27 11:30:02 -0400 | [diff] [blame] | 344 | MACOSX_BUNDLE_COPYRIGHT "${PROJ_COPYRIGHT}" |
Alexandre Lision | b47b4c8 | 2015-01-20 11:29:03 -0500 | [diff] [blame] | 345 | MACOSX_BUNDLE_INFO_STRING "Nightly build of ${PROJ_NAME} ${RING_VERSION} for testing and development" |
| 346 | MACOSX_BUNDLE_BUNDLE_NAME ${PROJ_NAME} |
| 347 | MACOSX_BUNDLE_ICON_FILE "appicon.icns" |
| 348 | ) |
Alexandre Lision | f241c6a | 2015-03-24 14:53:47 -0400 | [diff] [blame] | 349 | |
| 350 | # Make sure we can find the 'ibtool' program. If we can NOT find it we |
| 351 | # skip generation of this project |
| 352 | FIND_PROGRAM(IBTOOL ibtool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin") |
| 353 | IF(${IBTOOL} STREQUAL "IBTOOL-NOTFOUND") |
| 354 | MESSAGE(SEND_ERROR "ibtool can not be found and is needed to compile the .xib files. It should have been installed with |
| 355 | the Apple developer tools. The default system paths were searched in addition to ${OSX_DEVELOPER_ROOT}/usr/bin") |
| 356 | endif() |
| 357 | |
Alexandre Lision | f241c6a | 2015-03-24 14:53:47 -0400 | [diff] [blame] | 358 | # Compile the .xib files using the 'ibtool' program with the destination being the app package |
| 359 | FOREACH(xib ${ringclient_XIBS}) |
| 360 | ADD_CUSTOM_COMMAND(TARGET ${PROJ_NAME} POST_BUILD |
| 361 | COMMAND ${IBTOOL} --errors --warnings --notices --output-format human-readable-text |
Alexandre Lision | 922380d | 2015-09-15 10:25:17 -0400 | [diff] [blame] | 362 | --compile ${CMAKE_CURRENT_BINARY_DIR}/\${CONFIGURATION}/${PROJ_NAME}.app/Contents/Resources/Base.lproj/${xib}.nib |
| 363 | ${CMAKE_CURRENT_SOURCE_DIR}/ui/Base.lproj/${xib}.xib |
| 364 | COMMENT "Compiling ${CMAKE_CURRENT_SOURCE_DIR}/ui/Base.lproj/${xib}.xib") |
Alexandre Lision | f241c6a | 2015-03-24 14:53:47 -0400 | [diff] [blame] | 365 | |
| 366 | ENDFOREACH() |
Alexandre Lision | e7e01ba | 2015-03-30 13:30:51 -0400 | [diff] [blame] | 367 | |
Alexandre Lision | 3d4143a | 2015-06-10 14:27:49 -0400 | [diff] [blame] | 368 | SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${CMAKE_INSTALL_PREFIX}) |
Alexandre Lision | e7e01ba | 2015-03-30 13:30:51 -0400 | [diff] [blame] | 369 | |
| 370 | SET(APPS "\${CMAKE_INSTALL_PREFIX}/${PROJ_NAME}.app") |
| 371 | |
Alexandre Lision | e7e01ba | 2015-03-30 13:30:51 -0400 | [diff] [blame] | 372 | INSTALL(TARGETS ${PROJ_NAME} BUNDLE DESTINATION . COMPONENT Runtime) |
| 373 | |
Alexandre Lision | 3a70f4f | 2015-04-15 14:18:26 -0400 | [diff] [blame] | 374 | SET(QT_PLUGINS_DESTDIR ${PROJ_NAME}.app/Contents/Plugins) |
Alexandre Lision | e7e01ba | 2015-03-30 13:30:51 -0400 | [diff] [blame] | 375 | #-------------------------------------------------------------------------------- |
| 376 | # Install needed Qt plugins by copying directories from the qt installation |
Alexandre Lision | 3a70f4f | 2015-04-15 14:18:26 -0400 | [diff] [blame] | 377 | |
| 378 | |
| 379 | #MESSAGE("GUI====") |
| 380 | #foreach(plugin ${Qt5Gui_PLUGINS}) |
| 381 | # message("Plugin ${plugin} is at location ${_loc}") |
| 382 | #endforeach() |
| 383 | |
| 384 | LIST(APPEND QT_PLUGINS_IMAGEFORMAT Qt5::QTgaPlugin |
| 385 | Qt5::QGifPlugin |
| 386 | Qt5::QICNSPlugin |
| 387 | Qt5::QICOPlugin |
| 388 | Qt5::QJpegPlugin |
| 389 | Qt5::QJp2Plugin |
| 390 | Qt5::QMngPlugin |
| 391 | Qt5::QTiffPlugin |
| 392 | Qt5::QDDSPlugin) |
| 393 | |
| 394 | # we need two plugin directories platform and imageformats |
| 395 | GET_TARGET_PROPERTY(_loc Qt5::QCocoaIntegrationPlugin LOCATION) |
| 396 | INSTALL(FILES ${_loc} DESTINATION ${QT_PLUGINS_DESTDIR}/platforms COMPONENT Runtime) |
| 397 | LIST(APPEND QT_PLUGINS Qt5::QCocoaIntegrationPlugin) |
| 398 | |
| 399 | FOREACH(plugin ${QT_PLUGINS_IMAGEFORMAT}) |
Alexandre Lision | e7e01ba | 2015-03-30 13:30:51 -0400 | [diff] [blame] | 400 | GET_TARGET_PROPERTY(_loc ${plugin} LOCATION) |
Alexandre Lision | 3a70f4f | 2015-04-15 14:18:26 -0400 | [diff] [blame] | 401 | INSTALL(FILES ${_loc} DESTINATION ${QT_PLUGINS_DESTDIR}/imageformats COMPONENT Runtime) |
| 402 | LIST(APPEND QT_PLUGINS ${plugin}) |
Alexandre Lision | e7e01ba | 2015-03-30 13:30:51 -0400 | [diff] [blame] | 403 | ENDFOREACH() |
| 404 | |
| 405 | # directories to look for dependencies |
Alexandre Lision | 3d4143a | 2015-06-10 14:27:49 -0400 | [diff] [blame] | 406 | SET(DIRS ${CMAKE_INSTALL_PREFIX}/lib ${QT_LIB_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/sparkle) |
Alexandre Lision | e7e01ba | 2015-03-30 13:30:51 -0400 | [diff] [blame] | 407 | |
| 408 | INSTALL(CODE " |
| 409 | file(GLOB_RECURSE QTPLUGINS |
| 410 | \"\${CMAKE_INSTALL_PREFIX}/${QT_PLUGINS_DESTDIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\") |
| 411 | include(BundleUtilities) |
| 412 | SET(BU_CHMOD_BUNDLE_ITEMS TRUE) |
| 413 | fixup_bundle(\"${APPS}\" \"\${QTPLUGINS}\" \"${DIRS}\") |
| 414 | " COMPONENT Runtime) |
| 415 | |
| 416 | #================================ |
| 417 | # Packaging |
| 418 | #================================ |
| 419 | SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJ_NAME}) |
| 420 | SET( CPACK_PACKAGE_NAME ${PROJ_NAME} ) |
| 421 | SET( CPACK_PACKAGE_CONTACT "Alexandre Lision") |
| 422 | SET( CPACK_PACKAGE_VENDOR "Savoir-faire Linux") |
| 423 | SET( CPACK_PACKAGE_VERSION_MAJOR ${PROG_MAJOR_VERSION}) |
| 424 | SET( CPACK_PACKAGE_VERSION_MINOR ${PROG_MINOR_VERSION}) |
| 425 | SET( CPACK_PACKAGE_VERSION_PATCH ${PROG_PATCH_VERSION}) |
| 426 | SET(CPACK_BINARY_DRAGNDROP ON) |
| 427 | SET( CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}") |
| 428 | INCLUDE(CPack) |