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