blob: b03804cb350332d1ac438f98152028917524c2cd [file] [log] [blame]
Alexandre Lision10e86dd2015-01-19 16:11:14 -05001CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2
3IF(POLICY CMP0022)
4 CMAKE_POLICY(SET CMP0022 NEW)
5ENDIF(POLICY CMP0022)
6
Kateryna Kostiuk85a334e2018-12-03 15:54:19 -05007SET(PROJ_NAME Jami)
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -04008option(RELEASE_TYPE "RELEASE_TYPE" "website")
Alexandre Lision3d4143a2015-06-10 14:27:49 -04009
10# To build nighlies we need to update RING_VERSION with an optional command line arg
11IF("${RING_VERSION}" STREQUAL "")
Guillaume Roguez812d5502016-03-16 22:46:29 -040012 SET(RING_VERSION "1.0.0")
Alexandre Lision3d4143a2015-06-10 14:27:49 -040013ENDIF("${RING_VERSION}" STREQUAL "")
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -040014# if build for App Store version and build number should be incremented
15IF("${RELEASE_TYPE}" STREQUAL "AppStore")
Kateryna Kostiuk3f1e5112019-09-27 17:14:56 -040016 SET(RING_VERSION_NAME "1.44")
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -040017ELSE()
Kateryna Kostiuk8be23e52018-08-23 16:01:05 -040018 SET(RING_VERSION_NAME "1")
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -040019ENDIF()
Alexandre Lisionbb306132015-03-27 11:30:02 -040020
Alexandre Lision71b41512016-05-02 13:53:44 -040021MESSAGE("Building Ring version - " ${RING_VERSION_NAME} " " ${RING_VERSION})
Sébastien Blin029ffa82019-01-02 17:43:48 -050022SET(PROJ_COPYRIGHT " © 2015-2019 Savoir-faire Linux \n GPLv3 https://www.gnu.org/copyleft/gpl.html")
Alexandre Lisionb47b4c82015-01-20 11:29:03 -050023
Anthony Léonard643a3902017-12-19 15:40:17 -050024SET(CMAKE_CXX_STANDARD 14)
25
26ADD_DEFINITIONS("-stdlib=libc++ -fobjc-arc")
Alexandre Lision5855b6a2015-02-03 11:31:05 -050027
Alexandre Lisionb47b4c82015-01-20 11:29:03 -050028PROJECT(${PROJ_NAME})
Alexandre Lision10e86dd2015-01-19 16:11:14 -050029
Alexandre Lision10e86dd2015-01-19 16:11:14 -050030FIND_PACKAGE(Qt5Core REQUIRED)
Alexandre Lision3b0bd332015-03-15 18:43:07 -040031FIND_PACKAGE(Qt5MacExtras REQUIRED)
Alexandre Lision10e86dd2015-01-19 16:11:14 -050032FIND_PACKAGE(Qt5Widgets REQUIRED)
Anthony Léonard786d4182017-11-08 14:26:31 -050033FIND_PACKAGE(Qt5Sql REQUIRED)
Alexandre Lision10e86dd2015-01-19 16:11:14 -050034FIND_PACKAGE(LibRingClient REQUIRED)
Anthony Léonard14e7bf32017-06-08 08:13:16 -040035FIND_PACKAGE(OpenGL REQUIRED)
Alexandre Lision10e86dd2015-01-19 16:11:14 -050036
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -040037EXECUTE_PROCESS(COMMAND git submodule update --init
38 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
39
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -040040get_filename_component(PARENT_DIR ${CMAKE_SOURCE_DIR} PATH)
41
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -040042INCLUDE(ExternalProject)
43ExternalProject_Add(libqrencode
44 GIT_SUBMODULES libqrencode
45 SOURCE_DIR ${CMAKE_SOURCE_DIR}/libqrencode
46 BINARY_DIR ${CMAKE_SOURCE_DIR}/libqrencode
47 INSTALL_DIR ${CMAKE_SOURCE_DIR}/libqrencode
48 CONFIGURE_COMMAND
49 #hack to fix incomplete config.h on first run
50 COMMAND ./autogen.sh
51 COMMAND ./autogen.sh && ./configure --prefix=${CMAKE_SOURCE_DIR}/libqrencode
52 BUILD_COMMAND make
53 INSTALL_COMMAND make install)
54
55INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/libqrencode/include)
56LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/libqrencode/lib)
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -040057INCLUDE_DIRECTORIES(${PARENT_DIR}/daemon/contrib/native/ffmpeg)
58
59set(SHADERS_FILE "Shader.metallib")
60add_custom_command (OUTPUT ${CMAKE_SOURCE_DIR}/Shader.metallib
61 COMMAND ${CMAKE_SOURCE_DIR}/generateShaderLib.sh
62 COMMENT "Creating Shader.metallib")
63
64 add_custom_target(
65 shader ALL
66 DEPENDS ${CMAKE_SOURCE_DIR}/Shader.metallib
67 )
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -040068
Alexandre Lision3d4143a2015-06-10 14:27:49 -040069IF(NOT (${ENABLE_SPARKLE} MATCHES false))
70 MESSAGE("Sparkle auto-update enabled")
71
72 # find_library searches in /Library/Frameworks by default
73 # We add an hint to our custom location
74
75 FIND_LIBRARY(SPARKLE_FRAMEWORK
76 NAMES Sparkle
77 HINTS ${CMAKE_CURRENT_SOURCE_DIR}/sparkle)
78 IF(EXISTS ${SPARKLE_FRAMEWORK})
79 SET(ENABLE_SPARKLE 1 CACHE BOOLEAN "Enable Sparkle")
80 ADD_DEFINITIONS(-DENABLE_SPARKLE=1)
81 MESSAGE("Sparkle is here:" ${SPARKLE_FRAMEWORK})
82 FIND_PATH(SPARKLE_INCLUDE_DIR Sparkle.h HINTS ${SPARKLE_FRAMEWORK}/Headers)
Alexandre Lision3d4143a2015-06-10 14:27:49 -040083 # we need to copy the public key to check the updates
84 SET(PUBLIC_KEY_PATH "${CMAKE_CURRENT_SOURCE_DIR}/sparkle/dsa_pub.pem")
85 IF(EXISTS ${PUBLIC_KEY_PATH})
86 MESSAGE(STATUS "Looking for Public Key - found")
87 SET_SOURCE_FILES_PROPERTIES(${PUBLIC_KEY_PATH} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
88 SET(PUBLIC_KEY ${PUBLIC_KEY_PATH})
89 ELSE(EXISTS ${PUBLIC_KEY_PATH})
90 MESSAGE(WARNING "Looking for Public Key - not found")
91 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")
92 ENDIF(EXISTS ${PUBLIC_KEY_PATH})
93 ELSE()
Alexandre Lisionfba8f792016-03-08 13:45:51 -050094 MESSAGE(WARNING "Sparkle framework not found, disabling it... to build it see README")
95 SET(ENABLE_SPARKLE 0 CACHE BOOLEAN "Enable Sparkle")
Alexandre Lision3d4143a2015-06-10 14:27:49 -040096 ENDIF(EXISTS ${SPARKLE_FRAMEWORK})
97ENDIF(NOT (${ENABLE_SPARKLE} MATCHES false))
98
Alexandre Lision10e86dd2015-01-19 16:11:14 -050099INCLUDE_DIRECTORIES(SYSTEM ${Qt5Core_INCLUDE_DIRS})
Alexandre Lision3b0bd332015-03-15 18:43:07 -0400100INCLUDE_DIRECTORIES(SYSTEM ${Qt5MacExtras_INCLUDE_DIRS})
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500101INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
102INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR})
103INCLUDE_DIRECTORIES(${LIB_RING_CLIENT_INCLUDE_DIR})
Anthony Léonard14e7bf32017-06-08 08:13:16 -0400104INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500105
Alexandre Lision04946de2016-03-08 09:31:38 -0500106SET(CMAKE_MACOSX_RPATH ON)
107SET(CMAKE_SKIP_BUILD_RPATH FALSE)
108SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
109SET(CMAKE_INSTALL_RPATH "${CMAKE_CURRENT_SOURCE_DIR}")
110SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
111
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400112MESSAGE("LRC is here:" ${LIB_RING_CLIENT_INCLUDE_DIR})
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500113SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
114
115#Files to compile
Alexandre Lision4ba18022015-04-23 12:17:40 -0400116SET(ringclient_CONTROLLERS
Alexandre Lision7d2a48b2015-03-30 14:59:58 -0400117 src/CurrentCallVC.mm
Alexandre Lision4ba18022015-04-23 12:17:40 -0400118 src/CurrentCallVC.h
Alexandre Lision7d2a48b2015-03-30 14:59:58 -0400119 src/GeneralPrefsVC.mm
120 src/RingWizardWC.mm
Alexandre Lision4ba18022015-04-23 12:17:40 -0400121 src/RingWizardWC.h
122 src/RingWindowController.mm
123 src/RingWindowController.h
Alexandre Lisionbfa68f62015-09-10 08:38:42 -0400124 src/PreferencesWC.mm
125 src/PreferencesWC.h
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400126 src/AccSipGeneralVC.mm
127 src/AccSipGeneralVC.h
Alexandre Lision4ba18022015-04-23 12:17:40 -0400128 src/AccAdvancedVC.mm
129 src/AccAdvancedVC.h
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400130 src/AccRingGeneralVC.mm
131 src/AccRingGeneralVC.h
132 src/AccAdvancedSipVC.mm
133 src/AccAdvancedSipVC.h
134 src/AccAdvancedRingVC.mm
135 src/AccAdvancedRingVC.h
Alexandre Lision4de68ce2015-04-24 18:22:49 -0400136 src/CertificateWC.mm
137 src/CertificateWC.h
Alexandre Lision4ba18022015-04-23 12:17:40 -0400138 src/AudioPrefsVC.mm
139 src/AudioPrefsVC.h
Alexandre Lision4ba18022015-04-23 12:17:40 -0400140 src/VideoPrefsVC.mm
141 src/VideoPrefsVC.h
142 src/GeneralPrefsVC.h
Alexandre Lision58cab672015-06-09 15:25:40 -0400143 src/ChatVC.mm
Alexandre Lision2db8f472015-07-22 15:05:46 -0400144 src/ChatVC.h
Alexandre Lision4dfcafc2015-08-20 12:43:23 -0400145 src/SmartViewVC.mm
Alexandre Lision883719f2015-10-22 17:37:45 -0400146 src/SmartViewVC.h
Alexandre Lision0f66bd32016-01-18 11:30:45 -0500147 src/ConversationVC.mm
Loïc Siret31d5cc02016-09-08 14:38:24 -0400148 src/ConversationVC.h
149 src/LoadingWCDelegate.h
150 src/AbstractLoadingWC.h
151 src/AbstractLoadingWC.mm
Alexandre Lision45f1f542016-08-25 15:16:17 -0400152 src/ExportPasswordWC.mm
153 src/ExportPasswordWC.h
Alexandre Lision624b1a82016-09-11 19:29:01 -0400154 src/MigrateRingAccountsWC.mm
155 src/MigrateRingAccountsWC.h
Loïc Siretfcb4ca62016-09-21 17:12:09 -0400156 src/RingWizardChooseVC.h
157 src/RingWizardChooseVC.mm
158 src/RingWizardLinkAccountVC.h
159 src/RingWizardLinkAccountVC.mm
160 src/RingWizardNewAccountVC.mm
161 src/RingWizardNewAccountVC.h
Alexandre Lision62005312016-01-28 15:55:16 -0500162 src/DialpadWC.mm
163 src/DialpadWC.h
Alexandre Lision34079c22016-10-31 16:14:02 -0400164 src/RegisterNameWC.mm
165 src/RegisterNameWC.h
Kateryna Kostiuk13b76882017-03-30 09:18:44 -0400166 src/ChooseAccountVC.h
167 src/ChooseAccountVC.mm
Kateryna Kostiuk58276bc2017-06-07 08:50:48 -0400168 src/MessagesVC.h
169 src/MessagesVC.mm
Anthony Léonard1f70f722017-10-02 10:53:32 -0400170 src/PasswordChangeWC.h
171 src/PasswordChangeWC.mm
Kateryna Kostiukecaa3952018-07-13 16:00:34 -0400172 src/LrcModelsProtocol.h
173 src/AddSIPAccountVC.mm
174 src/AddSIPAccountVC.h
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400175 src/AccountSettingsVC.mm
176 src/AccountSettingsVC.h
Kateryna Kostiukf6317422018-09-27 17:08:20 -0400177 src/LeaveMessageVC.mm
178 src/LeaveMessageVC.h
Kateryna Kostiukfbe1b2f2019-10-07 17:32:26 -0400179 src/RecordFileVC.mm
180 src/RecordFileVC.h
Kateryna Kostiuk4db61092019-10-17 16:57:40 -0400181 src/ChooseContactVC.mm
182 src/ChooseContactVC.h
183 src/CallInConferenceVC.mm
184 src/CallInConferenceVC.h
Loïc Siret31d5cc02016-09-08 14:38:24 -0400185)
Alexandre Lision74dd47f2015-04-14 13:47:42 -0400186
Alexandre Lision4ba18022015-04-23 12:17:40 -0400187SET(ringclient_VIEWS
188 src/views/CallView.mm
189 src/views/CallView.h
Anthony Léonard14e7bf32017-06-08 08:13:16 -0400190 src/views/CallLayer.mm
191 src/views/CallLayer.h
Alexandre Lisionf47a2562015-06-15 15:48:29 -0400192 src/views/ITProgressIndicator.mm
193 src/views/ITProgressIndicator.h
Alexandre Lision2db8f472015-07-22 15:05:46 -0400194 src/views/RingOutlineView.mm
Alexandre Lision7f8351b2015-08-20 11:43:37 -0400195 src/views/RingOutlineView.h
Olivier Soldanod4311552017-11-20 15:09:53 -0500196 src/views/RingTableView.mm
197 src/views/RingTableView.h
Alexandre Lision7f8351b2015-08-20 11:43:37 -0400198 src/views/RingIDField.mm
Alexandre Lision4e280d62015-09-09 15:56:30 -0400199 src/views/RingIDField.h
200 src/views/HoverTableRowView.mm
201 src/views/HoverTableRowView.h
202 src/views/NSColor+RingTheme.mm
203 src/views/NSColor+RingTheme.h
Alexandre Lision261f1b92016-04-04 12:35:34 -0400204 src/views/NSImage+Extensions.mm
205 src/views/NSImage+Extensions.h
Alexandre Lision4e280d62015-09-09 15:56:30 -0400206 src/views/ContextualTableCellView.mm
Alexandre Lision6da08a82015-09-24 17:09:24 -0400207 src/views/ContextualTableCellView.h
208 src/views/IconButton.h
Alexandre Lision0f66bd32016-01-18 11:30:45 -0500209 src/views/IconButton.mm
Alexandre Lisione77f6f92016-04-17 23:39:39 -0400210 src/views/BackgroundView.h
211 src/views/BackgroundView.mm
Alexandre Lision0f66bd32016-01-18 11:30:45 -0500212 src/views/IMTableCellView.h
Kateryna Kostiuk13b76882017-03-30 09:18:44 -0400213 src/views/IMTableCellView.mm
214 src/views/AccountMenuItemView.h
Kateryna Kostiuka9e5c712017-05-15 16:46:16 -0400215 src/views/AccountMenuItemView.mm
Kateryna Kostiukd9039e92017-05-24 14:29:54 -0400216 src/views/RoundedTextField.h
Kateryna Kostiuk58276bc2017-06-07 08:50:48 -0400217 src/views/RoundedTextField.mm
218 src/views/MessageBubbleView.h
219 src/views/MessageBubbleView.mm
Kateryna Kostiuk64d025a2017-07-14 11:30:44 -0400220 src/views/SendMessagePanel.h
221 src/views/SendMessagePanel.mm
Kateryna Kostiuk958cd072017-07-14 15:56:35 -0400222 src/views/HoverButton.h
223 src/views/HoverButton.mm
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400224 src/views/CenteredClipView.h
225 src/views/CenteredClipView.mm
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400226 src/views/CallMTKView.h
227 src/views/CallMTKView.mm
Kateryna Kostiuk88a6ee82019-09-10 17:55:08 -0400228 src/views/GradientView.h
229 src/views/GradientView.mm
Kateryna Kostiuk6891d4f2019-09-19 17:44:33 -0400230 src/views/MovableView.h
231 src/views/MovableView.mm
Kateryna Kostiuk58276bc2017-06-07 08:50:48 -0400232)
Alexandre Lision4ba18022015-04-23 12:17:40 -0400233
234SET(ringclient_OTHERS
235 src/main.mm
236 src/AppDelegate.mm
237 src/AppDelegate.h
Alexandre Lision9fe374b2016-01-06 10:17:31 -0500238 src/Constants.h
Kateryna Kostiukc5fd3b92019-07-24 10:12:44 -0400239 src/VideoCommon.h
240 src/VideoCommon.mm
Alexandre Lision83180df2016-01-18 11:32:20 -0500241 src/INDSequentialTextSelectionManager.mm
242 src/INDSequentialTextSelectionManager.h
Alexandre Lision4ba18022015-04-23 12:17:40 -0400243 src/delegates/ImageManipulationDelegate.mm
Kateryna Kostiuka16c9862017-05-03 13:30:14 -0400244 src/delegates/ImageManipulationDelegate.h
245 src/AccountSelectionManager.h
Olivier Soldanod4311552017-11-20 15:09:53 -0500246 src/AccountSelectionManager.mm
Andreas Traczyk252a94a2018-04-20 16:36:20 -0400247 src/utils.h
248 src/NSString+Extensions.h
Kateryna Kostiuk465cfbe2018-06-05 16:13:05 -0400249 src/NSString+Extensions.mm
250 src/RingMainWindow.h
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400251 src/RingMainWindow.mm
252 src/Shader.metal
253)
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500254
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400255SET(ringclient_XIBS
256 MainMenu
257 RingWindow
258 CurrentCall
259 GeneralPrefs
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400260 AccSipGeneral
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400261 AccRingGeneral
262 AccAdvancedSip
263 AccAdvancedRing
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400264 AudioPrefs
265 VideoPrefs
Alexandre Lisionbfa68f62015-09-10 08:38:42 -0400266 PreferencesWindow
Alexandre Lision4de68ce2015-04-24 18:22:49 -0400267 RingWizard
Alexandre Lision2db8f472015-07-22 15:05:46 -0400268 CertificateWindow
Alexandre Lision45f1f542016-08-25 15:16:17 -0400269 ExportPasswordWindow
Alexandre Lision624b1a82016-09-11 19:29:01 -0400270 MigrateRingAccountsWindow
Alexandre Lision45f1f542016-08-25 15:16:17 -0400271 Conversation
Loïc Siretfcb4ca62016-09-21 17:12:09 -0400272 RingWizardLinkAccount
273 RingWizardNewAccount
Alexandre Lision62005312016-01-28 15:55:16 -0500274 RingWizardChoose
275 Dialpad
Alexandre Lision34079c22016-10-31 16:14:02 -0400276 RegisterNameWindow
Kateryna Kostiuk13b76882017-03-30 09:18:44 -0400277 AccountMenuItemView
Anthony Léonard1f70f722017-10-02 10:53:32 -0400278 PasswordChange
Kateryna Kostiukae660fd2018-04-24 14:10:41 -0400279 MessageCells
Kateryna Kostiukecaa3952018-07-13 16:00:34 -0400280 AddSIPAccountVC
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400281 AccountSettings
Kateryna Kostiukf6317422018-09-27 17:08:20 -0400282 LeaveMessageVC
Kateryna Kostiukfbe1b2f2019-10-07 17:32:26 -0400283 RecordFileVC
Kateryna Kostiuk4db61092019-10-17 16:57:40 -0400284 ChooseContactVC
285 CallInConferenceVC
Alexandre Lision62005312016-01-28 15:55:16 -0500286)
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500287
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500288# Icons
Alexandre Lision5db3e4e2015-03-24 17:25:55 -0400289# This part tells CMake where to find and install the file itself
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500290SET(myApp_ICON ${CMAKE_CURRENT_SOURCE_DIR}/data/appicon.icns)
291SET_SOURCE_FILES_PROPERTIES(${myApp_ICON} PROPERTIES
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500292 MACOSX_PACKAGE_LOCATION Resources)
Alexandre Lision7f8351b2015-08-20 11:43:37 -0400293SET(ring_ICONS
Kateryna Kostiukf6317422018-09-27 17:08:20 -0400294${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_audio_file.png
295${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_exit.png
296${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_stoprecord.png
297${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_audio.png
Kateryna Kostiuk54d76972018-06-07 15:45:07 -0400298${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_audio.png
Kateryna Kostiuk67735232018-05-10 15:05:32 -0400299${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_folder.png
Andreas Traczyk252a94a2018-04-20 16:36:20 -0400300${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_block.png
Kateryna Kostiukae660fd2018-04-24 14:10:41 -0400301${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_attachment.png
Andreas Traczyk87c999f2018-04-12 17:38:25 -0400302${CMAKE_CURRENT_SOURCE_DIR}/data/default_avatar_overlay.png
Alexandre Lision7f8351b2015-08-20 11:43:37 -0400303${CMAKE_CURRENT_SOURCE_DIR}/data/symbol_name.png
Alexandre Lisione77f6f92016-04-17 23:39:39 -0400304${CMAKE_CURRENT_SOURCE_DIR}/data/background-light.png
305${CMAKE_CURRENT_SOURCE_DIR}/data/background-dark.png
Alexandre Lision34607032016-02-08 16:16:49 -0500306${CMAKE_CURRENT_SOURCE_DIR}/data/symbol_blue.png
Alexandre Lision6da08a82015-09-24 17:09:24 -0400307${CMAKE_CURRENT_SOURCE_DIR}/data/background_tile.png
Alexandre Lision62005312016-01-28 15:55:16 -0500308${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_more.png
309${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_dialpad.png
Alexandre Lision7f8351b2015-08-20 11:43:37 -0400310${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_accept.png
Alexandre Lision0f66bd32016-01-18 11:30:45 -0500311${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_arrow_back.png
Alexandre Lision392ee722015-01-23 16:27:10 -0500312${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_call.png
313${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_cancel.png
Alexandre Lisiond18fa272015-06-15 11:18:03 -0400314${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_hangup.png
315${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_hold.png
316${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_holdoff.png
317${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_mute_video.png
318${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_mute_audio.png
319${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_chat.png
Alexandre Lision392ee722015-01-23 16:27:10 -0500320${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_search.png
Alexandre Lisionf23ec5a2015-07-16 11:24:06 -0400321${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_quality.png
Alexandre Lision266fca02015-09-28 14:47:05 -0400322${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_record.png
Alexandre Lision4dfcafc2015-08-20 12:43:23 -0400323${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_call_received.png
324${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_call_missed.png
325${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_call_made.png
Alexandre Lision883719f2015-10-22 17:37:45 -0400326${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_transfer.png
Alexandre Lision89edc6a2015-11-09 11:30:47 -0500327${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_add_participant.png
328${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_merge_calls.png
Alexandre Lisiond5229f32015-11-16 11:17:41 -0500329${CMAKE_CURRENT_SOURCE_DIR}/data/default_user_icon.png
Alexandre Lision0f66bd32016-01-18 11:30:45 -0500330${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_send.png
Alexandre Lision4a7b95e2015-02-20 10:06:43 -0500331${CMAKE_CURRENT_SOURCE_DIR}/data/dark/audio.png
Alexandre Lision2db8f472015-07-22 15:05:46 -0400332${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_person_add.png
Alexandre Lision4dfcafc2015-08-20 12:43:23 -0400333${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_persons.png
334${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_history.png
Alexandre Lision4a7b95e2015-02-20 10:06:43 -0500335${CMAKE_CURRENT_SOURCE_DIR}/data/dark/general.png
336${CMAKE_CURRENT_SOURCE_DIR}/data/dark/video.png
Alexandre Lisionf46768f2016-04-18 09:56:26 -0400337${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_delete.png
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -0400338${CMAKE_CURRENT_SOURCE_DIR}/data/dark/qrcode.png
Kateryna Kostiukdb1f3a12017-04-24 12:08:28 -0400339${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_video.png
Anthony Léonarde7d62ed2018-01-25 10:51:47 -0500340${CMAKE_CURRENT_SOURCE_DIR}/data/dark/pending_contact_request.png
Kateryna Kostiuk87ae2bf2018-05-04 13:46:17 -0400341${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_file_upload.png
Kateryna Kostiuk88a6ee82019-09-10 17:55:08 -0400342${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_record_stop.png
Kateryna Kostiukfbe1b2f2019-10-07 17:32:26 -0400343${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_camera.png
Kateryna Kostiuk87ae2bf2018-05-04 13:46:17 -0400344${CMAKE_CURRENT_SOURCE_DIR}/data/light/ic_picture.png)
Alexandre Lision5db3e4e2015-03-24 17:25:55 -0400345
Alexandre Lision392ee722015-01-23 16:27:10 -0500346SET_SOURCE_FILES_PROPERTIES(${ring_ICONS} PROPERTIES
Alexandre Lision5855b6a2015-02-03 11:31:05 -0500347 MACOSX_PACKAGE_LOCATION Resources)
Alexandre Lisionbb306132015-03-27 11:30:02 -0400348SET_SOURCE_FILES_PROPERTIES(Credits.rtf PROPERTIES
349 MACOSX_PACKAGE_LOCATION Resources)
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400350SET_SOURCE_FILES_PROPERTIES(Shader.metallib PROPERTIES
351 MACOSX_PACKAGE_LOCATION Resources)
Alexandre Lision392ee722015-01-23 16:27:10 -0500352
Alexandre Lision88ee6cc2016-05-05 14:32:43 -0400353# package ringtones
354IF(NOT IS_DIRECTORY ${RINGTONE_DIR})
355 MESSAGE("No ringtone folder provided, use RINGTONE_DIR to specify one")
356 SET(RINGTONE_DIR ${CMAKE_INSTALL_PREFIX}/share/ring/ringtones)
357 MESSAGE("Trying ${RINGTONE_DIR}")
358ENDIF()
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500359
Alexandre Lision88ee6cc2016-05-05 14:32:43 -0400360IF(IS_DIRECTORY ${RINGTONE_DIR})
361 FILE(GLOB RINGTONE_LIST ${RINGTONE_DIR}/*)
362 FOREACH(RINGTONE ${RINGTONE_LIST})
363 MESSAGE("Adding ringtone ${RINGTONE}")
364 GET_FILENAME_COMPONENT(FILE_PATH ${RINGTONE} ABSOLUTE)
365 SET(ring_RINGTONES ${ring_RINGTONES} ${FILE_PATH})
366 ENDFOREACH()
367ELSE()
368 MESSAGE("${RINGTONE_DIR} does not exist or is not readable")
369ENDIF()
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500370
371SET_SOURCE_FILES_PROPERTIES(${ring_RINGTONES}
372 PROPERTIES MACOSX_PACKAGE_LOCATION Resources/ringtones)
Alexandre Lision46dc0c32015-09-15 10:22:59 -0400373
374# Check which translations are found for LRC
375SET(LRC_TRANSLATIONS_PATH ${CMAKE_INSTALL_PREFIX}/share/libringclient/translations)
376FILE(GLOB QM_LIST ${LRC_TRANSLATIONS_PATH}/*.qm)
377
378FOREACH(QM_FILE ${QM_LIST})
379 # Extract country code from filename
380 GET_FILENAME_COMPONENT(FILENAME ${QM_FILE} NAME_WE)
381 STRING(REGEX REPLACE "^lrc_" "" LANG ${FILENAME})
382
383 SET_SOURCE_FILES_PROPERTIES(${LRC_TRANSLATIONS_PATH}/lrc_${LANG}.qm
384 PROPERTIES MACOSX_PACKAGE_LOCATION Resources/QtTranslations)
385 SET(LOCALIZED_${LANG} ${LOCALIZED_${LANG}}
386 "${LRC_TRANSLATIONS_PATH}/lrc_${LANG}.qm")
Alexandre Lision922380d2015-09-15 10:25:17 -0400387ENDFOREACH()
388
389# Check which translations are found for the client
390FILE(GLOB LPROJ_LIST ui/*.lproj)
391
392FOREACH(LPROJ ${LPROJ_LIST})
393 # Extract country code from <lang>.lproj folder name
394 GET_FILENAME_COMPONENT(LANG ${LPROJ} NAME_WE)
395 IF(EXISTS "${LPROJ}/Localizable.strings")
396 MESSAGE("Localizable:" ${LANG})
397 SET_SOURCE_FILES_PROPERTIES(${LPROJ}/Localizable.strings
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500398 PROPERTIES MACOSX_PACKAGE_LOCATION Resources/${LANG}.lproj)
Alexandre Lision922380d2015-09-15 10:25:17 -0400399
400 SET(LOCALIZED_${LANG} ${LOCALIZED_${LANG}}
401 ${LPROJ}/Localizable.strings)
402 ENDIF()
403 FOREACH(xib ${ringclient_XIBS})
404 IF(EXISTS "${LPROJ}/${xib}.strings")
405 SET_SOURCE_FILES_PROPERTIES(${LPROJ}/${xib}.strings
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500406 PROPERTIES MACOSX_PACKAGE_LOCATION Resources/${LANG}.lproj)
Alexandre Lision922380d2015-09-15 10:25:17 -0400407
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500408 SET(LOCALIZED_${LANG} ${LOCALIZED_${LANG}}
Alexandre Lision922380d2015-09-15 10:25:17 -0400409 ${LPROJ}/${xib}.strings)
410 ENDIF()
411 ENDFOREACH()
Alexandre Lision46dc0c32015-09-15 10:22:59 -0400412
413 # Regroup those files under a .lproj folder
414 SOURCE_GROUP("Resources\\${LANG}.lproj" FILES
415 ${LOCALIZED_${LANG}})
416 # Add them to the list of files to package
417 SET(LOCALIZABLE_FILES ${LOCALIZABLE_FILES} ${LOCALIZED_${LANG}})
418ENDFOREACH()
419
Alexandre Lision5db3e4e2015-03-24 17:25:55 -0400420# append '.xib' extension before linking xib files in executable
421FOREACH(xib ${ringclient_XIBS})
Alexandre Lision922380d2015-09-15 10:25:17 -0400422 SET(ringclient_XIBS_FOR_EXECUTABLE ${ringclient_XIBS_FOR_EXECUTABLE} ui/Base.lproj/${xib}.xib)
Alexandre Lision5db3e4e2015-03-24 17:25:55 -0400423ENDFOREACH()
424
Alexandre Lision46dc0c32015-09-15 10:22:59 -0400425SET(TO_ADD
Alexandre Lision4ba18022015-04-23 12:17:40 -0400426 ${ringclient_CONTROLLERS}
Alexandre Lision4ba18022015-04-23 12:17:40 -0400427 ${ringclient_VIEWS}
428 ${ringclient_OTHERS}
Alexandre Lision5db3e4e2015-03-24 17:25:55 -0400429 ${ringclient_XIBS_FOR_EXECUTABLE}
Alexandre Lision46dc0c32015-09-15 10:22:59 -0400430 ${LOCALIZABLE_FILES}
Alexandre Lision392ee722015-01-23 16:27:10 -0500431 ${myApp_ICON}
Alexandre Lisionbb306132015-03-27 11:30:02 -0400432 Credits.rtf
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400433 Shader.metallib
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500434 ${ring_ICONS}
435 ${ring_RINGTONES})
Alexandre Lision5855b6a2015-02-03 11:31:05 -0500436
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400437IF(ENABLE_SPARKLE)
438 SET( TO_ADD ${TO_ADD} ${PUBLIC_KEY} ${SPARKLE_FRAMEWORK})
439ENDIF(ENABLE_SPARKLE)
440
441ADD_EXECUTABLE(${PROJ_NAME} MACOSX_BUNDLE ${TO_ADD})
442
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -0400443ADD_DEPENDENCIES(${PROJ_NAME} libqrencode)
444
Alexandre Lision4ba18022015-04-23 12:17:40 -0400445# Follow Xcode hierarchy principles
446SOURCE_GROUP("Controllers" FILES ${ringclient_CONTROLLERS})
447SOURCE_GROUP("Backends" FILES ${ringclient_BACKENDS})
448SOURCE_GROUP("CustomViews" FILES ${ringclient_VIEWS})
449SOURCE_GROUP("Classes" FILES ${ringclient_OTHERS})
Alexandre Lision46dc0c32015-09-15 10:22:59 -0400450SOURCE_GROUP("Resources\\Interface Builder" FILES
451 ${ringclient_XIBS_FOR_EXECUTABLE})
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500452SOURCE_GROUP("Resources\\ringtones" FILES ${ring_RINGTONES})
Alexandre Lision4ba18022015-04-23 12:17:40 -0400453
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400454IF(ENABLE_SPARKLE)
455 SOURCE_GROUP("Frameworks" FILES ${SPARKLE_FRAMEWORK})
456ENDIF(ENABLE_SPARKLE)
Alexandre Lision4ba18022015-04-23 12:17:40 -0400457
Alexandre Lisionb47b4c82015-01-20 11:29:03 -0500458TARGET_LINK_LIBRARIES( ${PROJ_NAME}
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500459 ${LIB_RING_CLIENT_LIBRARY}
Alexandre Lision5855b6a2015-02-03 11:31:05 -0500460 ${Qt5Core_LIBRARIES}
Alexandre Lision3b0bd332015-03-15 18:43:07 -0400461 ${Qt5MacExtras_LIBRARIES}
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500462 ${Qt5Widgets_LIBRARIES}
Anthony Léonard14e7bf32017-06-08 08:13:16 -0400463 ${OPENGL_LIBRARIES}
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -0400464 -lqrencode
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500465)
466
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400467target_link_libraries(${PROJ_NAME} ${PARENT_DIR}/daemon/contrib/x86_64-apple-darwin${CMAKE_SYSTEM_VERSION}/lib/libavutil.a)
468
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400469IF(ENABLE_SPARKLE)
470 TARGET_LINK_LIBRARIES(${PROJ_NAME} ${SPARKLE_FRAMEWORK})
471ENDIF(ENABLE_SPARKLE)
472
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400473SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AppKit")
474SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa")
475SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Quartz")
476SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AVFoundation")
477SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AddressBook")
Alexandre Lisionb9f3f942016-07-23 14:29:33 -0400478SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework SystemConfiguration")
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400479SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework MetalKit")
480SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Metal")
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400481
482# These variables are specific to our plist and are NOT standard CMake variables
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400483SET(MACOSX_BUNDLE_NSMAIN_NIB_FILE "MainMenu")
484SET(MACOSX_BUNDLE_NSPRINCIPAL_CLASS "NSApplication")
Alexandre Lision392ee722015-01-23 16:27:10 -0500485
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -0400486# App store version should be sandboxed and using different bundle identifier
487IF("${RELEASE_TYPE}" STREQUAL "AppStore")
488 SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES
489 MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MacOSXBundleInfo.plist.in
490 MACOSX_BUNDLE_GUI_IDENTIFIER "com.savoirfairelinux.ring.macos"
Kateryna Kostiuk85a334e2018-12-03 15:54:19 -0500491 XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_LIST_DIR}/data/Jami.entitlements"
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -0400492 MACOSX_BUNDLE_SHORT_VERSION_STRING "${RING_VERSION_NAME}"
493 MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJ_NAME} ${RING_VERSION_NAME}"
494 MACOSX_BUNDLE_BUNDLE_VERSION ${RING_VERSION}
495 MACOSX_BUNDLE_COPYRIGHT "${PROJ_COPYRIGHT}"
496 MACOSX_BUNDLE_INFO_STRING "Build of ${PROJ_NAME}, version ${RING_VERSION}"
497 MACOSX_BUNDLE_BUNDLE_NAME ${PROJ_NAME}
498 MACOSX_BUNDLE_ICON_FILE "appicon.icns"
499 )
500ELSE()
501 SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES
Alexandre Lisionb47b4c82015-01-20 11:29:03 -0500502 MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MacOSXBundleInfo.plist.in
503 MACOSX_BUNDLE_GUI_IDENTIFIER "cx.ring"
Kateryna Kostiuk03ce9b22019-07-15 08:58:09 -0400504 XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_LIST_DIR}/data/HardenedRuntimeEntitlements/Jami.entitlements"
Alexandre Lision7208b762015-08-13 12:39:49 -0400505 MACOSX_BUNDLE_SHORT_VERSION_STRING "${RING_VERSION_NAME}"
Anthony Léonardf79fd7c2018-01-31 13:28:46 -0500506 MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJ_NAME} ${RING_VERSION_NAME}"
Alexandre Lision7208b762015-08-13 12:39:49 -0400507 MACOSX_BUNDLE_BUNDLE_VERSION ${RING_VERSION}
Alexandre Lisionbb306132015-03-27 11:30:02 -0400508 MACOSX_BUNDLE_COPYRIGHT "${PROJ_COPYRIGHT}"
Anthony Léonardf79fd7c2018-01-31 13:28:46 -0500509 MACOSX_BUNDLE_INFO_STRING "Build of ${PROJ_NAME}, version ${RING_VERSION}"
Alexandre Lisionb47b4c82015-01-20 11:29:03 -0500510 MACOSX_BUNDLE_BUNDLE_NAME ${PROJ_NAME}
511 MACOSX_BUNDLE_ICON_FILE "appicon.icns"
Kateryna Kostiuk03ce9b22019-07-15 08:58:09 -0400512 XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME TRUE
Alexandre Lisionb47b4c82015-01-20 11:29:03 -0500513 )
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -0400514ENDIF()
Kateryna Kostiuk09365c02019-09-13 14:23:27 -0400515set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400516# Make sure we can find the 'ibtool' program. If we can NOT find it we
517# skip generation of this project
518FIND_PROGRAM(IBTOOL ibtool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin")
519IF(${IBTOOL} STREQUAL "IBTOOL-NOTFOUND")
520 MESSAGE(SEND_ERROR "ibtool can not be found and is needed to compile the .xib files. It should have been installed with
521 the Apple developer tools. The default system paths were searched in addition to ${OSX_DEVELOPER_ROOT}/usr/bin")
522endif()
523
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400524# Compile the .xib files using the 'ibtool' program with the destination being the app package
525FOREACH(xib ${ringclient_XIBS})
526 ADD_CUSTOM_COMMAND(TARGET ${PROJ_NAME} POST_BUILD
527 COMMAND ${IBTOOL} --errors --warnings --notices --output-format human-readable-text
Alexandre Lision922380d2015-09-15 10:25:17 -0400528 --compile ${CMAKE_CURRENT_BINARY_DIR}/\${CONFIGURATION}/${PROJ_NAME}.app/Contents/Resources/Base.lproj/${xib}.nib
529 ${CMAKE_CURRENT_SOURCE_DIR}/ui/Base.lproj/${xib}.xib
530 COMMENT "Compiling ${CMAKE_CURRENT_SOURCE_DIR}/ui/Base.lproj/${xib}.xib")
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400531
532ENDFOREACH()
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400533
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400534SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${CMAKE_INSTALL_PREFIX})
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400535
536SET(APPS "\${CMAKE_INSTALL_PREFIX}/${PROJ_NAME}.app")
537
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400538INSTALL(TARGETS ${PROJ_NAME} BUNDLE DESTINATION . COMPONENT Runtime)
539
Alexandre Lision3a70f4f2015-04-15 14:18:26 -0400540SET(QT_PLUGINS_DESTDIR ${PROJ_NAME}.app/Contents/Plugins)
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400541#--------------------------------------------------------------------------------
542# Install needed Qt plugins by copying directories from the qt installation
Alexandre Lision3a70f4f2015-04-15 14:18:26 -0400543
544
545#MESSAGE("GUI====")
546#foreach(plugin ${Qt5Gui_PLUGINS})
547# message("Plugin ${plugin} is at location ${_loc}")
548#endforeach()
549
550LIST(APPEND QT_PLUGINS_IMAGEFORMAT Qt5::QTgaPlugin
551 Qt5::QGifPlugin
552 Qt5::QICNSPlugin
553 Qt5::QICOPlugin
554 Qt5::QJpegPlugin
Alexandre Lision8ac5c842017-03-18 08:45:31 +0100555 Qt5::QTiffPlugin)
Alexandre Lision3a70f4f2015-04-15 14:18:26 -0400556
557# we need two plugin directories platform and imageformats
558GET_TARGET_PROPERTY(_loc Qt5::QCocoaIntegrationPlugin LOCATION)
559INSTALL(FILES ${_loc} DESTINATION ${QT_PLUGINS_DESTDIR}/platforms COMPONENT Runtime)
560LIST(APPEND QT_PLUGINS Qt5::QCocoaIntegrationPlugin)
561
562FOREACH(plugin ${QT_PLUGINS_IMAGEFORMAT})
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400563 GET_TARGET_PROPERTY(_loc ${plugin} LOCATION)
Alexandre Lision3a70f4f2015-04-15 14:18:26 -0400564 INSTALL(FILES ${_loc} DESTINATION ${QT_PLUGINS_DESTDIR}/imageformats COMPONENT Runtime)
565 LIST(APPEND QT_PLUGINS ${plugin})
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400566ENDFOREACH()
567
Anthony Léonard786d4182017-11-08 14:26:31 -0500568# Add SQLite driver for QtSql
569GET_TARGET_PROPERTY(_loc Qt5::QSQLiteDriverPlugin LOCATION)
570INSTALL(FILES ${_loc} DESTINATION ${QT_PLUGINS_DESTDIR}/sqldrivers COMPONENT Runtime)
571LIST(APPEND QT_PLUGINS Qt5::QSQLiteDriverPlugin)
572
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400573# directories to look for dependencies
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -0400574SET(DIRS ${CMAKE_INSTALL_PREFIX}/lib
575 ${QT_LIB_DIR}
576 ${CMAKE_CURRENT_SOURCE_DIR}/sparkle
577 ${CMAKE_CURRENT_SOURCE_DIR}/libqrencode/lib)
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400578
579INSTALL(CODE "
580 file(GLOB_RECURSE QTPLUGINS
581 \"\${CMAKE_INSTALL_PREFIX}/${QT_PLUGINS_DESTDIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
582 include(BundleUtilities)
583 SET(BU_CHMOD_BUNDLE_ITEMS TRUE)
584 fixup_bundle(\"${APPS}\" \"\${QTPLUGINS}\" \"${DIRS}\")
585 " COMPONENT Runtime)
586
587#================================
588# Packaging
589#================================
590SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJ_NAME})
591SET( CPACK_PACKAGE_NAME ${PROJ_NAME} )
592SET( CPACK_PACKAGE_CONTACT "Alexandre Lision")
593SET( CPACK_PACKAGE_VENDOR "Savoir-faire Linux")
594SET( CPACK_PACKAGE_VERSION_MAJOR ${PROG_MAJOR_VERSION})
595SET( CPACK_PACKAGE_VERSION_MINOR ${PROG_MINOR_VERSION})
596SET( CPACK_PACKAGE_VERSION_PATCH ${PROG_PATCH_VERSION})
597SET(CPACK_BINARY_DRAGNDROP ON)
598SET( CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}")
599INCLUDE(CPack)