blob: ea49039223bd4d109bc334a6da111f3b60b495aa [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 Kostiukee7bbf52019-12-05 11:10:31 -05008ADD_DEFINITIONS(-DENABLE_LIBWRAP=true)
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -04009option(RELEASE_TYPE "RELEASE_TYPE" "website")
Alexandre Lision3d4143a2015-06-10 14:27:49 -040010
11# To build nighlies we need to update RING_VERSION with an optional command line arg
12IF("${RING_VERSION}" STREQUAL "")
Guillaume Roguez812d5502016-03-16 22:46:29 -040013 SET(RING_VERSION "1.0.0")
Alexandre Lision3d4143a2015-06-10 14:27:49 -040014ENDIF("${RING_VERSION}" STREQUAL "")
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -040015# if build for App Store version and build number should be incremented
16IF("${RELEASE_TYPE}" STREQUAL "AppStore")
Kateryna Kostiuk7ac56912020-01-14 13:01:55 -050017 SET(RING_VERSION_NAME "1.53")
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -040018ELSE()
Kateryna Kostiuk8be23e52018-08-23 16:01:05 -040019 SET(RING_VERSION_NAME "1")
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -040020ENDIF()
Alexandre Lisionbb306132015-03-27 11:30:02 -040021
Alexandre Lision71b41512016-05-02 13:53:44 -040022MESSAGE("Building Ring version - " ${RING_VERSION_NAME} " " ${RING_VERSION})
Sébastien Blin029ffa82019-01-02 17:43:48 -050023SET(PROJ_COPYRIGHT " © 2015-2019 Savoir-faire Linux \n GPLv3 https://www.gnu.org/copyleft/gpl.html")
Alexandre Lisionb47b4c82015-01-20 11:29:03 -050024
Anthony Léonard643a3902017-12-19 15:40:17 -050025SET(CMAKE_CXX_STANDARD 14)
26
27ADD_DEFINITIONS("-stdlib=libc++ -fobjc-arc")
Alexandre Lision5855b6a2015-02-03 11:31:05 -050028
Alexandre Lisionb47b4c82015-01-20 11:29:03 -050029PROJECT(${PROJ_NAME})
Alexandre Lision10e86dd2015-01-19 16:11:14 -050030
Alexandre Lision10e86dd2015-01-19 16:11:14 -050031FIND_PACKAGE(Qt5Core REQUIRED)
Alexandre Lision3b0bd332015-03-15 18:43:07 -040032FIND_PACKAGE(Qt5MacExtras REQUIRED)
Alexandre Lision10e86dd2015-01-19 16:11:14 -050033FIND_PACKAGE(Qt5Widgets REQUIRED)
Anthony Léonard786d4182017-11-08 14:26:31 -050034FIND_PACKAGE(Qt5Sql REQUIRED)
Alexandre Lision10e86dd2015-01-19 16:11:14 -050035FIND_PACKAGE(LibRingClient REQUIRED)
Anthony Léonard14e7bf32017-06-08 08:13:16 -040036FIND_PACKAGE(OpenGL REQUIRED)
Alexandre Lision10e86dd2015-01-19 16:11:14 -050037
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -040038EXECUTE_PROCESS(COMMAND git submodule update --init
39 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
40
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -040041get_filename_component(PARENT_DIR ${CMAKE_SOURCE_DIR} PATH)
42
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -040043INCLUDE(ExternalProject)
44ExternalProject_Add(libqrencode
45 GIT_SUBMODULES libqrencode
46 SOURCE_DIR ${CMAKE_SOURCE_DIR}/libqrencode
47 BINARY_DIR ${CMAKE_SOURCE_DIR}/libqrencode
48 INSTALL_DIR ${CMAKE_SOURCE_DIR}/libqrencode
49 CONFIGURE_COMMAND
50 #hack to fix incomplete config.h on first run
51 COMMAND ./autogen.sh
52 COMMAND ./autogen.sh && ./configure --prefix=${CMAKE_SOURCE_DIR}/libqrencode
53 BUILD_COMMAND make
54 INSTALL_COMMAND make install)
55
56INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/libqrencode/include)
57LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/libqrencode/lib)
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -040058INCLUDE_DIRECTORIES(${PARENT_DIR}/daemon/contrib/native/ffmpeg)
59
60set(SHADERS_FILE "Shader.metallib")
61add_custom_command (OUTPUT ${CMAKE_SOURCE_DIR}/Shader.metallib
62 COMMAND ${CMAKE_SOURCE_DIR}/generateShaderLib.sh
63 COMMENT "Creating Shader.metallib")
64
65 add_custom_target(
66 shader ALL
67 DEPENDS ${CMAKE_SOURCE_DIR}/Shader.metallib
68 )
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -040069
Alexandre Lision3d4143a2015-06-10 14:27:49 -040070IF(NOT (${ENABLE_SPARKLE} MATCHES false))
71 MESSAGE("Sparkle auto-update enabled")
72
73 # find_library searches in /Library/Frameworks by default
74 # We add an hint to our custom location
75
76 FIND_LIBRARY(SPARKLE_FRAMEWORK
77 NAMES Sparkle
78 HINTS ${CMAKE_CURRENT_SOURCE_DIR}/sparkle)
79 IF(EXISTS ${SPARKLE_FRAMEWORK})
80 SET(ENABLE_SPARKLE 1 CACHE BOOLEAN "Enable Sparkle")
81 ADD_DEFINITIONS(-DENABLE_SPARKLE=1)
82 MESSAGE("Sparkle is here:" ${SPARKLE_FRAMEWORK})
83 FIND_PATH(SPARKLE_INCLUDE_DIR Sparkle.h HINTS ${SPARKLE_FRAMEWORK}/Headers)
Alexandre Lision3d4143a2015-06-10 14:27:49 -040084 # we need to copy the public key to check the updates
85 SET(PUBLIC_KEY_PATH "${CMAKE_CURRENT_SOURCE_DIR}/sparkle/dsa_pub.pem")
86 IF(EXISTS ${PUBLIC_KEY_PATH})
87 MESSAGE(STATUS "Looking for Public Key - found")
88 SET_SOURCE_FILES_PROPERTIES(${PUBLIC_KEY_PATH} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
89 SET(PUBLIC_KEY ${PUBLIC_KEY_PATH})
90 ELSE(EXISTS ${PUBLIC_KEY_PATH})
91 MESSAGE(WARNING "Looking for Public Key - not found")
92 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")
93 ENDIF(EXISTS ${PUBLIC_KEY_PATH})
94 ELSE()
Alexandre Lisionfba8f792016-03-08 13:45:51 -050095 MESSAGE(WARNING "Sparkle framework not found, disabling it... to build it see README")
96 SET(ENABLE_SPARKLE 0 CACHE BOOLEAN "Enable Sparkle")
Alexandre Lision3d4143a2015-06-10 14:27:49 -040097 ENDIF(EXISTS ${SPARKLE_FRAMEWORK})
98ENDIF(NOT (${ENABLE_SPARKLE} MATCHES false))
99
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500100INCLUDE_DIRECTORIES(SYSTEM ${Qt5Core_INCLUDE_DIRS})
Alexandre Lision3b0bd332015-03-15 18:43:07 -0400101INCLUDE_DIRECTORIES(SYSTEM ${Qt5MacExtras_INCLUDE_DIRS})
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500102INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
103INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR})
104INCLUDE_DIRECTORIES(${LIB_RING_CLIENT_INCLUDE_DIR})
Anthony Léonard14e7bf32017-06-08 08:13:16 -0400105INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500106
Alexandre Lision04946de2016-03-08 09:31:38 -0500107SET(CMAKE_MACOSX_RPATH ON)
108SET(CMAKE_SKIP_BUILD_RPATH FALSE)
109SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
110SET(CMAKE_INSTALL_RPATH "${CMAKE_CURRENT_SOURCE_DIR}")
111SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
112
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400113MESSAGE("LRC is here:" ${LIB_RING_CLIENT_INCLUDE_DIR})
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500114SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
115
116#Files to compile
Alexandre Lision4ba18022015-04-23 12:17:40 -0400117SET(ringclient_CONTROLLERS
Alexandre Lision7d2a48b2015-03-30 14:59:58 -0400118 src/CurrentCallVC.mm
Alexandre Lision4ba18022015-04-23 12:17:40 -0400119 src/CurrentCallVC.h
Alexandre Lision7d2a48b2015-03-30 14:59:58 -0400120 src/GeneralPrefsVC.mm
121 src/RingWizardWC.mm
Alexandre Lision4ba18022015-04-23 12:17:40 -0400122 src/RingWizardWC.h
123 src/RingWindowController.mm
124 src/RingWindowController.h
Alexandre Lisionbfa68f62015-09-10 08:38:42 -0400125 src/PreferencesWC.mm
126 src/PreferencesWC.h
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400127 src/AccSipGeneralVC.mm
128 src/AccSipGeneralVC.h
Alexandre Lision4ba18022015-04-23 12:17:40 -0400129 src/AccAdvancedVC.mm
130 src/AccAdvancedVC.h
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400131 src/AccRingGeneralVC.mm
132 src/AccRingGeneralVC.h
133 src/AccAdvancedSipVC.mm
134 src/AccAdvancedSipVC.h
135 src/AccAdvancedRingVC.mm
136 src/AccAdvancedRingVC.h
Alexandre Lision4de68ce2015-04-24 18:22:49 -0400137 src/CertificateWC.mm
138 src/CertificateWC.h
Alexandre Lision4ba18022015-04-23 12:17:40 -0400139 src/AudioPrefsVC.mm
140 src/AudioPrefsVC.h
Alexandre Lision4ba18022015-04-23 12:17:40 -0400141 src/VideoPrefsVC.mm
142 src/VideoPrefsVC.h
143 src/GeneralPrefsVC.h
Alexandre Lision58cab672015-06-09 15:25:40 -0400144 src/ChatVC.mm
Alexandre Lision2db8f472015-07-22 15:05:46 -0400145 src/ChatVC.h
Alexandre Lision4dfcafc2015-08-20 12:43:23 -0400146 src/SmartViewVC.mm
Alexandre Lision883719f2015-10-22 17:37:45 -0400147 src/SmartViewVC.h
Alexandre Lision0f66bd32016-01-18 11:30:45 -0500148 src/ConversationVC.mm
Loïc Siret31d5cc02016-09-08 14:38:24 -0400149 src/ConversationVC.h
150 src/LoadingWCDelegate.h
151 src/AbstractLoadingWC.h
152 src/AbstractLoadingWC.mm
Alexandre Lision45f1f542016-08-25 15:16:17 -0400153 src/ExportPasswordWC.mm
154 src/ExportPasswordWC.h
Alexandre Lision624b1a82016-09-11 19:29:01 -0400155 src/MigrateRingAccountsWC.mm
156 src/MigrateRingAccountsWC.h
Loïc Siretfcb4ca62016-09-21 17:12:09 -0400157 src/RingWizardChooseVC.h
158 src/RingWizardChooseVC.mm
159 src/RingWizardLinkAccountVC.h
160 src/RingWizardLinkAccountVC.mm
161 src/RingWizardNewAccountVC.mm
162 src/RingWizardNewAccountVC.h
Alexandre Lision62005312016-01-28 15:55:16 -0500163 src/DialpadWC.mm
164 src/DialpadWC.h
Alexandre Lision34079c22016-10-31 16:14:02 -0400165 src/RegisterNameWC.mm
166 src/RegisterNameWC.h
Kateryna Kostiuk13b76882017-03-30 09:18:44 -0400167 src/ChooseAccountVC.h
168 src/ChooseAccountVC.mm
Kateryna Kostiuk58276bc2017-06-07 08:50:48 -0400169 src/MessagesVC.h
170 src/MessagesVC.mm
Anthony Léonard1f70f722017-10-02 10:53:32 -0400171 src/PasswordChangeWC.h
172 src/PasswordChangeWC.mm
Kateryna Kostiukecaa3952018-07-13 16:00:34 -0400173 src/LrcModelsProtocol.h
174 src/AddSIPAccountVC.mm
175 src/AddSIPAccountVC.h
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400176 src/AccountSettingsVC.mm
177 src/AccountSettingsVC.h
Kateryna Kostiukf6317422018-09-27 17:08:20 -0400178 src/LeaveMessageVC.mm
179 src/LeaveMessageVC.h
Kateryna Kostiukfbe1b2f2019-10-07 17:32:26 -0400180 src/RecordFileVC.mm
181 src/RecordFileVC.h
Kateryna Kostiuk4db61092019-10-17 16:57:40 -0400182 src/ChooseContactVC.mm
183 src/ChooseContactVC.h
184 src/CallInConferenceVC.mm
185 src/CallInConferenceVC.h
Kateryna Kostiukc7e68f32019-10-09 16:15:45 -0400186 src/ConnectToAccManagerVC.mm
187 src/ConnectToAccManagerVC.h
Kateryna Kostiuk61d41162019-10-25 16:51:44 -0400188 src/AccountBackupVC.mm
189 src/AccountBackupVC.h
Loïc Siret31d5cc02016-09-08 14:38:24 -0400190)
Alexandre Lision74dd47f2015-04-14 13:47:42 -0400191
Alexandre Lision4ba18022015-04-23 12:17:40 -0400192SET(ringclient_VIEWS
193 src/views/CallView.mm
194 src/views/CallView.h
Anthony Léonard14e7bf32017-06-08 08:13:16 -0400195 src/views/CallLayer.mm
196 src/views/CallLayer.h
Alexandre Lisionf47a2562015-06-15 15:48:29 -0400197 src/views/ITProgressIndicator.mm
198 src/views/ITProgressIndicator.h
Alexandre Lision2db8f472015-07-22 15:05:46 -0400199 src/views/RingOutlineView.mm
Alexandre Lision7f8351b2015-08-20 11:43:37 -0400200 src/views/RingOutlineView.h
Olivier Soldanod4311552017-11-20 15:09:53 -0500201 src/views/RingTableView.mm
202 src/views/RingTableView.h
Alexandre Lision7f8351b2015-08-20 11:43:37 -0400203 src/views/RingIDField.mm
Alexandre Lision4e280d62015-09-09 15:56:30 -0400204 src/views/RingIDField.h
205 src/views/HoverTableRowView.mm
206 src/views/HoverTableRowView.h
207 src/views/NSColor+RingTheme.mm
208 src/views/NSColor+RingTheme.h
Alexandre Lision261f1b92016-04-04 12:35:34 -0400209 src/views/NSImage+Extensions.mm
210 src/views/NSImage+Extensions.h
Alexandre Lision4e280d62015-09-09 15:56:30 -0400211 src/views/ContextualTableCellView.mm
Alexandre Lision6da08a82015-09-24 17:09:24 -0400212 src/views/ContextualTableCellView.h
213 src/views/IconButton.h
Alexandre Lision0f66bd32016-01-18 11:30:45 -0500214 src/views/IconButton.mm
Alexandre Lisione77f6f92016-04-17 23:39:39 -0400215 src/views/BackgroundView.h
216 src/views/BackgroundView.mm
Alexandre Lision0f66bd32016-01-18 11:30:45 -0500217 src/views/IMTableCellView.h
Kateryna Kostiuk13b76882017-03-30 09:18:44 -0400218 src/views/IMTableCellView.mm
219 src/views/AccountMenuItemView.h
Kateryna Kostiuka9e5c712017-05-15 16:46:16 -0400220 src/views/AccountMenuItemView.mm
Kateryna Kostiukd9039e92017-05-24 14:29:54 -0400221 src/views/RoundedTextField.h
Kateryna Kostiuk58276bc2017-06-07 08:50:48 -0400222 src/views/RoundedTextField.mm
223 src/views/MessageBubbleView.h
224 src/views/MessageBubbleView.mm
Kateryna Kostiuk64d025a2017-07-14 11:30:44 -0400225 src/views/SendMessagePanel.h
226 src/views/SendMessagePanel.mm
Kateryna Kostiuk958cd072017-07-14 15:56:35 -0400227 src/views/HoverButton.h
228 src/views/HoverButton.mm
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400229 src/views/CenteredClipView.h
230 src/views/CenteredClipView.mm
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400231 src/views/CallMTKView.h
232 src/views/CallMTKView.mm
Kateryna Kostiuk88a6ee82019-09-10 17:55:08 -0400233 src/views/GradientView.h
234 src/views/GradientView.mm
Kateryna Kostiuk6891d4f2019-09-19 17:44:33 -0400235 src/views/MovableView.h
236 src/views/MovableView.mm
Kateryna Kostiuk58276bc2017-06-07 08:50:48 -0400237)
Alexandre Lision4ba18022015-04-23 12:17:40 -0400238
239SET(ringclient_OTHERS
240 src/main.mm
241 src/AppDelegate.mm
242 src/AppDelegate.h
Alexandre Lision9fe374b2016-01-06 10:17:31 -0500243 src/Constants.h
Kateryna Kostiukc5fd3b92019-07-24 10:12:44 -0400244 src/VideoCommon.h
245 src/VideoCommon.mm
Alexandre Lision83180df2016-01-18 11:32:20 -0500246 src/INDSequentialTextSelectionManager.mm
247 src/INDSequentialTextSelectionManager.h
Alexandre Lision4ba18022015-04-23 12:17:40 -0400248 src/delegates/ImageManipulationDelegate.mm
Kateryna Kostiuka16c9862017-05-03 13:30:14 -0400249 src/delegates/ImageManipulationDelegate.h
250 src/AccountSelectionManager.h
Olivier Soldanod4311552017-11-20 15:09:53 -0500251 src/AccountSelectionManager.mm
Andreas Traczyk252a94a2018-04-20 16:36:20 -0400252 src/utils.h
253 src/NSString+Extensions.h
Kateryna Kostiuk465cfbe2018-06-05 16:13:05 -0400254 src/NSString+Extensions.mm
255 src/RingMainWindow.h
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400256 src/RingMainWindow.mm
257 src/Shader.metal
258)
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500259
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400260SET(ringclient_XIBS
261 MainMenu
262 RingWindow
263 CurrentCall
264 GeneralPrefs
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400265 AccSipGeneral
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400266 AccRingGeneral
267 AccAdvancedSip
268 AccAdvancedRing
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400269 AudioPrefs
270 VideoPrefs
Alexandre Lisionbfa68f62015-09-10 08:38:42 -0400271 PreferencesWindow
Alexandre Lision4de68ce2015-04-24 18:22:49 -0400272 RingWizard
Alexandre Lision2db8f472015-07-22 15:05:46 -0400273 CertificateWindow
Alexandre Lision45f1f542016-08-25 15:16:17 -0400274 ExportPasswordWindow
Alexandre Lision624b1a82016-09-11 19:29:01 -0400275 MigrateRingAccountsWindow
Alexandre Lision45f1f542016-08-25 15:16:17 -0400276 Conversation
Loïc Siretfcb4ca62016-09-21 17:12:09 -0400277 RingWizardLinkAccount
278 RingWizardNewAccount
Alexandre Lision62005312016-01-28 15:55:16 -0500279 RingWizardChoose
280 Dialpad
Alexandre Lision34079c22016-10-31 16:14:02 -0400281 RegisterNameWindow
Kateryna Kostiuk13b76882017-03-30 09:18:44 -0400282 AccountMenuItemView
Anthony Léonard1f70f722017-10-02 10:53:32 -0400283 PasswordChange
Kateryna Kostiukae660fd2018-04-24 14:10:41 -0400284 MessageCells
Kateryna Kostiukecaa3952018-07-13 16:00:34 -0400285 AddSIPAccountVC
Kateryna Kostiuk1f8c1252018-07-30 18:18:57 -0400286 AccountSettings
Kateryna Kostiukf6317422018-09-27 17:08:20 -0400287 LeaveMessageVC
Kateryna Kostiukfbe1b2f2019-10-07 17:32:26 -0400288 RecordFileVC
Kateryna Kostiuk4db61092019-10-17 16:57:40 -0400289 ChooseContactVC
290 CallInConferenceVC
Kateryna Kostiukc7e68f32019-10-09 16:15:45 -0400291 ConnectToAccManagerVC
Kateryna Kostiuk61d41162019-10-25 16:51:44 -0400292 AccountBackupVC
Alexandre Lision62005312016-01-28 15:55:16 -0500293)
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500294
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500295# Icons
Alexandre Lision5db3e4e2015-03-24 17:25:55 -0400296# This part tells CMake where to find and install the file itself
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500297SET(myApp_ICON ${CMAKE_CURRENT_SOURCE_DIR}/data/appicon.icns)
298SET_SOURCE_FILES_PROPERTIES(${myApp_ICON} PROPERTIES
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500299 MACOSX_PACKAGE_LOCATION Resources)
Alexandre Lision7f8351b2015-08-20 11:43:37 -0400300SET(ring_ICONS
Kateryna Kostiukf6317422018-09-27 17:08:20 -0400301${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_audio_file.png
302${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_exit.png
303${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_stoprecord.png
304${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_audio.png
Kateryna Kostiuk54d76972018-06-07 15:45:07 -0400305${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_audio.png
Kateryna Kostiuk67735232018-05-10 15:05:32 -0400306${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_folder.png
Andreas Traczyk252a94a2018-04-20 16:36:20 -0400307${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_block.png
Kateryna Kostiukae660fd2018-04-24 14:10:41 -0400308${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_attachment.png
Andreas Traczyk87c999f2018-04-12 17:38:25 -0400309${CMAKE_CURRENT_SOURCE_DIR}/data/default_avatar_overlay.png
Alexandre Lision7f8351b2015-08-20 11:43:37 -0400310${CMAKE_CURRENT_SOURCE_DIR}/data/symbol_name.png
Alexandre Lisione77f6f92016-04-17 23:39:39 -0400311${CMAKE_CURRENT_SOURCE_DIR}/data/background-light.png
312${CMAKE_CURRENT_SOURCE_DIR}/data/background-dark.png
Alexandre Lision34607032016-02-08 16:16:49 -0500313${CMAKE_CURRENT_SOURCE_DIR}/data/symbol_blue.png
Alexandre Lision6da08a82015-09-24 17:09:24 -0400314${CMAKE_CURRENT_SOURCE_DIR}/data/background_tile.png
Alexandre Lision62005312016-01-28 15:55:16 -0500315${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_more.png
316${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_dialpad.png
Alexandre Lision7f8351b2015-08-20 11:43:37 -0400317${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_accept.png
Alexandre Lision0f66bd32016-01-18 11:30:45 -0500318${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_arrow_back.png
Alexandre Lision392ee722015-01-23 16:27:10 -0500319${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_call.png
320${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_cancel.png
Alexandre Lisiond18fa272015-06-15 11:18:03 -0400321${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_hangup.png
322${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_hold.png
323${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_holdoff.png
324${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_mute_video.png
325${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_mute_audio.png
326${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_chat.png
Alexandre Lision392ee722015-01-23 16:27:10 -0500327${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_search.png
Alexandre Lisionf23ec5a2015-07-16 11:24:06 -0400328${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_quality.png
Alexandre Lision266fca02015-09-28 14:47:05 -0400329${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_record.png
Alexandre Lision4dfcafc2015-08-20 12:43:23 -0400330${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_call_received.png
331${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_call_missed.png
332${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_call_made.png
Alexandre Lision883719f2015-10-22 17:37:45 -0400333${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_transfer.png
Alexandre Lision89edc6a2015-11-09 11:30:47 -0500334${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_add_participant.png
335${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_merge_calls.png
Alexandre Lisiond5229f32015-11-16 11:17:41 -0500336${CMAKE_CURRENT_SOURCE_DIR}/data/default_user_icon.png
Alexandre Lision0f66bd32016-01-18 11:30:45 -0500337${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_send.png
Alexandre Lision4a7b95e2015-02-20 10:06:43 -0500338${CMAKE_CURRENT_SOURCE_DIR}/data/dark/audio.png
Alexandre Lision2db8f472015-07-22 15:05:46 -0400339${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_person_add.png
Alexandre Lision4dfcafc2015-08-20 12:43:23 -0400340${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_persons.png
341${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_history.png
Alexandre Lision4a7b95e2015-02-20 10:06:43 -0500342${CMAKE_CURRENT_SOURCE_DIR}/data/dark/general.png
343${CMAKE_CURRENT_SOURCE_DIR}/data/dark/video.png
Alexandre Lisionf46768f2016-04-18 09:56:26 -0400344${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_delete.png
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -0400345${CMAKE_CURRENT_SOURCE_DIR}/data/dark/qrcode.png
Kateryna Kostiukdb1f3a12017-04-24 12:08:28 -0400346${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_video.png
Anthony Léonarde7d62ed2018-01-25 10:51:47 -0500347${CMAKE_CURRENT_SOURCE_DIR}/data/dark/pending_contact_request.png
Kateryna Kostiuk87ae2bf2018-05-04 13:46:17 -0400348${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_file_upload.png
Kateryna Kostiuk88a6ee82019-09-10 17:55:08 -0400349${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_record_stop.png
Kateryna Kostiukfbe1b2f2019-10-07 17:32:26 -0400350${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_camera.png
Kateryna Kostiuka7404812019-10-28 12:24:46 -0400351${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_audio_msg.png
Kateryna Kostiuk87ae2bf2018-05-04 13:46:17 -0400352${CMAKE_CURRENT_SOURCE_DIR}/data/light/ic_picture.png)
Alexandre Lision5db3e4e2015-03-24 17:25:55 -0400353
Alexandre Lision392ee722015-01-23 16:27:10 -0500354SET_SOURCE_FILES_PROPERTIES(${ring_ICONS} PROPERTIES
Alexandre Lision5855b6a2015-02-03 11:31:05 -0500355 MACOSX_PACKAGE_LOCATION Resources)
Alexandre Lisionbb306132015-03-27 11:30:02 -0400356SET_SOURCE_FILES_PROPERTIES(Credits.rtf PROPERTIES
357 MACOSX_PACKAGE_LOCATION Resources)
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400358SET_SOURCE_FILES_PROPERTIES(Shader.metallib PROPERTIES
359 MACOSX_PACKAGE_LOCATION Resources)
Alexandre Lision392ee722015-01-23 16:27:10 -0500360
Alexandre Lision88ee6cc2016-05-05 14:32:43 -0400361# package ringtones
362IF(NOT IS_DIRECTORY ${RINGTONE_DIR})
363 MESSAGE("No ringtone folder provided, use RINGTONE_DIR to specify one")
364 SET(RINGTONE_DIR ${CMAKE_INSTALL_PREFIX}/share/ring/ringtones)
365 MESSAGE("Trying ${RINGTONE_DIR}")
366ENDIF()
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500367
Alexandre Lision88ee6cc2016-05-05 14:32:43 -0400368IF(IS_DIRECTORY ${RINGTONE_DIR})
369 FILE(GLOB RINGTONE_LIST ${RINGTONE_DIR}/*)
370 FOREACH(RINGTONE ${RINGTONE_LIST})
371 MESSAGE("Adding ringtone ${RINGTONE}")
372 GET_FILENAME_COMPONENT(FILE_PATH ${RINGTONE} ABSOLUTE)
373 SET(ring_RINGTONES ${ring_RINGTONES} ${FILE_PATH})
374 ENDFOREACH()
375ELSE()
376 MESSAGE("${RINGTONE_DIR} does not exist or is not readable")
377ENDIF()
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500378
379SET_SOURCE_FILES_PROPERTIES(${ring_RINGTONES}
380 PROPERTIES MACOSX_PACKAGE_LOCATION Resources/ringtones)
Alexandre Lision46dc0c32015-09-15 10:22:59 -0400381
382# Check which translations are found for LRC
383SET(LRC_TRANSLATIONS_PATH ${CMAKE_INSTALL_PREFIX}/share/libringclient/translations)
384FILE(GLOB QM_LIST ${LRC_TRANSLATIONS_PATH}/*.qm)
385
386FOREACH(QM_FILE ${QM_LIST})
387 # Extract country code from filename
388 GET_FILENAME_COMPONENT(FILENAME ${QM_FILE} NAME_WE)
389 STRING(REGEX REPLACE "^lrc_" "" LANG ${FILENAME})
390
391 SET_SOURCE_FILES_PROPERTIES(${LRC_TRANSLATIONS_PATH}/lrc_${LANG}.qm
392 PROPERTIES MACOSX_PACKAGE_LOCATION Resources/QtTranslations)
393 SET(LOCALIZED_${LANG} ${LOCALIZED_${LANG}}
394 "${LRC_TRANSLATIONS_PATH}/lrc_${LANG}.qm")
Alexandre Lision922380d2015-09-15 10:25:17 -0400395ENDFOREACH()
396
397# Check which translations are found for the client
398FILE(GLOB LPROJ_LIST ui/*.lproj)
399
400FOREACH(LPROJ ${LPROJ_LIST})
401 # Extract country code from <lang>.lproj folder name
402 GET_FILENAME_COMPONENT(LANG ${LPROJ} NAME_WE)
403 IF(EXISTS "${LPROJ}/Localizable.strings")
404 MESSAGE("Localizable:" ${LANG})
405 SET_SOURCE_FILES_PROPERTIES(${LPROJ}/Localizable.strings
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500406 PROPERTIES MACOSX_PACKAGE_LOCATION Resources/${LANG}.lproj)
Alexandre Lision922380d2015-09-15 10:25:17 -0400407
408 SET(LOCALIZED_${LANG} ${LOCALIZED_${LANG}}
409 ${LPROJ}/Localizable.strings)
410 ENDIF()
411 FOREACH(xib ${ringclient_XIBS})
412 IF(EXISTS "${LPROJ}/${xib}.strings")
413 SET_SOURCE_FILES_PROPERTIES(${LPROJ}/${xib}.strings
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500414 PROPERTIES MACOSX_PACKAGE_LOCATION Resources/${LANG}.lproj)
Alexandre Lision922380d2015-09-15 10:25:17 -0400415
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500416 SET(LOCALIZED_${LANG} ${LOCALIZED_${LANG}}
Alexandre Lision922380d2015-09-15 10:25:17 -0400417 ${LPROJ}/${xib}.strings)
418 ENDIF()
419 ENDFOREACH()
Alexandre Lision46dc0c32015-09-15 10:22:59 -0400420
421 # Regroup those files under a .lproj folder
422 SOURCE_GROUP("Resources\\${LANG}.lproj" FILES
423 ${LOCALIZED_${LANG}})
424 # Add them to the list of files to package
425 SET(LOCALIZABLE_FILES ${LOCALIZABLE_FILES} ${LOCALIZED_${LANG}})
426ENDFOREACH()
427
Alexandre Lision5db3e4e2015-03-24 17:25:55 -0400428# append '.xib' extension before linking xib files in executable
429FOREACH(xib ${ringclient_XIBS})
Alexandre Lision922380d2015-09-15 10:25:17 -0400430 SET(ringclient_XIBS_FOR_EXECUTABLE ${ringclient_XIBS_FOR_EXECUTABLE} ui/Base.lproj/${xib}.xib)
Alexandre Lision5db3e4e2015-03-24 17:25:55 -0400431ENDFOREACH()
432
Alexandre Lision46dc0c32015-09-15 10:22:59 -0400433SET(TO_ADD
Alexandre Lision4ba18022015-04-23 12:17:40 -0400434 ${ringclient_CONTROLLERS}
Alexandre Lision4ba18022015-04-23 12:17:40 -0400435 ${ringclient_VIEWS}
436 ${ringclient_OTHERS}
Alexandre Lision5db3e4e2015-03-24 17:25:55 -0400437 ${ringclient_XIBS_FOR_EXECUTABLE}
Alexandre Lision46dc0c32015-09-15 10:22:59 -0400438 ${LOCALIZABLE_FILES}
Alexandre Lision392ee722015-01-23 16:27:10 -0500439 ${myApp_ICON}
Alexandre Lisionbb306132015-03-27 11:30:02 -0400440 Credits.rtf
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400441 Shader.metallib
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500442 ${ring_ICONS}
443 ${ring_RINGTONES})
Alexandre Lision5855b6a2015-02-03 11:31:05 -0500444
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400445IF(ENABLE_SPARKLE)
446 SET( TO_ADD ${TO_ADD} ${PUBLIC_KEY} ${SPARKLE_FRAMEWORK})
447ENDIF(ENABLE_SPARKLE)
448
449ADD_EXECUTABLE(${PROJ_NAME} MACOSX_BUNDLE ${TO_ADD})
450
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -0400451ADD_DEPENDENCIES(${PROJ_NAME} libqrencode)
452
Alexandre Lision4ba18022015-04-23 12:17:40 -0400453# Follow Xcode hierarchy principles
454SOURCE_GROUP("Controllers" FILES ${ringclient_CONTROLLERS})
455SOURCE_GROUP("Backends" FILES ${ringclient_BACKENDS})
456SOURCE_GROUP("CustomViews" FILES ${ringclient_VIEWS})
457SOURCE_GROUP("Classes" FILES ${ringclient_OTHERS})
Alexandre Lision46dc0c32015-09-15 10:22:59 -0400458SOURCE_GROUP("Resources\\Interface Builder" FILES
459 ${ringclient_XIBS_FOR_EXECUTABLE})
Alexandre Lision3278ffe2016-02-03 14:45:22 -0500460SOURCE_GROUP("Resources\\ringtones" FILES ${ring_RINGTONES})
Alexandre Lision4ba18022015-04-23 12:17:40 -0400461
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400462IF(ENABLE_SPARKLE)
463 SOURCE_GROUP("Frameworks" FILES ${SPARKLE_FRAMEWORK})
464ENDIF(ENABLE_SPARKLE)
Alexandre Lision4ba18022015-04-23 12:17:40 -0400465
Alexandre Lisionb47b4c82015-01-20 11:29:03 -0500466TARGET_LINK_LIBRARIES( ${PROJ_NAME}
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500467 ${LIB_RING_CLIENT_LIBRARY}
Alexandre Lision5855b6a2015-02-03 11:31:05 -0500468 ${Qt5Core_LIBRARIES}
Alexandre Lision3b0bd332015-03-15 18:43:07 -0400469 ${Qt5MacExtras_LIBRARIES}
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500470 ${Qt5Widgets_LIBRARIES}
Anthony Léonard14e7bf32017-06-08 08:13:16 -0400471 ${OPENGL_LIBRARIES}
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -0400472 -lqrencode
Alexandre Lision10e86dd2015-01-19 16:11:14 -0500473)
474
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400475target_link_libraries(${PROJ_NAME} ${PARENT_DIR}/daemon/contrib/x86_64-apple-darwin${CMAKE_SYSTEM_VERSION}/lib/libavutil.a)
476
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400477IF(ENABLE_SPARKLE)
478 TARGET_LINK_LIBRARIES(${PROJ_NAME} ${SPARKLE_FRAMEWORK})
479ENDIF(ENABLE_SPARKLE)
480
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400481SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AppKit")
482SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa")
483SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Quartz")
484SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AVFoundation")
485SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AddressBook")
Alexandre Lisionb9f3f942016-07-23 14:29:33 -0400486SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework SystemConfiguration")
Kateryna Kostiuk00dcbff2019-07-11 15:42:13 -0400487SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework MetalKit")
488SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Metal")
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400489
490# These variables are specific to our plist and are NOT standard CMake variables
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400491SET(MACOSX_BUNDLE_NSMAIN_NIB_FILE "MainMenu")
492SET(MACOSX_BUNDLE_NSPRINCIPAL_CLASS "NSApplication")
Alexandre Lision392ee722015-01-23 16:27:10 -0500493
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -0400494# App store version should be sandboxed and using different bundle identifier
495IF("${RELEASE_TYPE}" STREQUAL "AppStore")
496 SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES
497 MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MacOSXBundleInfo.plist.in
498 MACOSX_BUNDLE_GUI_IDENTIFIER "com.savoirfairelinux.ring.macos"
Kateryna Kostiuk85a334e2018-12-03 15:54:19 -0500499 XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_LIST_DIR}/data/Jami.entitlements"
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -0400500 MACOSX_BUNDLE_SHORT_VERSION_STRING "${RING_VERSION_NAME}"
501 MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJ_NAME} ${RING_VERSION_NAME}"
502 MACOSX_BUNDLE_BUNDLE_VERSION ${RING_VERSION}
503 MACOSX_BUNDLE_COPYRIGHT "${PROJ_COPYRIGHT}"
504 MACOSX_BUNDLE_INFO_STRING "Build of ${PROJ_NAME}, version ${RING_VERSION}"
505 MACOSX_BUNDLE_BUNDLE_NAME ${PROJ_NAME}
506 MACOSX_BUNDLE_ICON_FILE "appicon.icns"
507 )
508ELSE()
509 SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES
Alexandre Lisionb47b4c82015-01-20 11:29:03 -0500510 MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MacOSXBundleInfo.plist.in
511 MACOSX_BUNDLE_GUI_IDENTIFIER "cx.ring"
Kateryna Kostiuk03ce9b22019-07-15 08:58:09 -0400512 XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_LIST_DIR}/data/HardenedRuntimeEntitlements/Jami.entitlements"
Alexandre Lision7208b762015-08-13 12:39:49 -0400513 MACOSX_BUNDLE_SHORT_VERSION_STRING "${RING_VERSION_NAME}"
Anthony Léonardf79fd7c2018-01-31 13:28:46 -0500514 MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJ_NAME} ${RING_VERSION_NAME}"
Alexandre Lision7208b762015-08-13 12:39:49 -0400515 MACOSX_BUNDLE_BUNDLE_VERSION ${RING_VERSION}
Alexandre Lisionbb306132015-03-27 11:30:02 -0400516 MACOSX_BUNDLE_COPYRIGHT "${PROJ_COPYRIGHT}"
Anthony Léonardf79fd7c2018-01-31 13:28:46 -0500517 MACOSX_BUNDLE_INFO_STRING "Build of ${PROJ_NAME}, version ${RING_VERSION}"
Alexandre Lisionb47b4c82015-01-20 11:29:03 -0500518 MACOSX_BUNDLE_BUNDLE_NAME ${PROJ_NAME}
519 MACOSX_BUNDLE_ICON_FILE "appicon.icns"
Kateryna Kostiuk03ce9b22019-07-15 08:58:09 -0400520 XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME TRUE
Alexandre Lisionb47b4c82015-01-20 11:29:03 -0500521 )
Kateryna Kostiuk5d10ee22018-05-16 10:09:05 -0400522ENDIF()
Kateryna Kostiuk09365c02019-09-13 14:23:27 -0400523set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400524# Make sure we can find the 'ibtool' program. If we can NOT find it we
525# skip generation of this project
526FIND_PROGRAM(IBTOOL ibtool HINTS "/usr/bin" "${OSX_DEVELOPER_ROOT}/usr/bin")
527IF(${IBTOOL} STREQUAL "IBTOOL-NOTFOUND")
528 MESSAGE(SEND_ERROR "ibtool can not be found and is needed to compile the .xib files. It should have been installed with
529 the Apple developer tools. The default system paths were searched in addition to ${OSX_DEVELOPER_ROOT}/usr/bin")
530endif()
531
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400532# Compile the .xib files using the 'ibtool' program with the destination being the app package
533FOREACH(xib ${ringclient_XIBS})
534 ADD_CUSTOM_COMMAND(TARGET ${PROJ_NAME} POST_BUILD
535 COMMAND ${IBTOOL} --errors --warnings --notices --output-format human-readable-text
Alexandre Lision922380d2015-09-15 10:25:17 -0400536 --compile ${CMAKE_CURRENT_BINARY_DIR}/\${CONFIGURATION}/${PROJ_NAME}.app/Contents/Resources/Base.lproj/${xib}.nib
537 ${CMAKE_CURRENT_SOURCE_DIR}/ui/Base.lproj/${xib}.xib
538 COMMENT "Compiling ${CMAKE_CURRENT_SOURCE_DIR}/ui/Base.lproj/${xib}.xib")
Alexandre Lisionf241c6a2015-03-24 14:53:47 -0400539
540ENDFOREACH()
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400541
Alexandre Lision3d4143a2015-06-10 14:27:49 -0400542SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${CMAKE_INSTALL_PREFIX})
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400543
544SET(APPS "\${CMAKE_INSTALL_PREFIX}/${PROJ_NAME}.app")
545
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400546INSTALL(TARGETS ${PROJ_NAME} BUNDLE DESTINATION . COMPONENT Runtime)
547
Alexandre Lision3a70f4f2015-04-15 14:18:26 -0400548SET(QT_PLUGINS_DESTDIR ${PROJ_NAME}.app/Contents/Plugins)
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400549#--------------------------------------------------------------------------------
550# Install needed Qt plugins by copying directories from the qt installation
Alexandre Lision3a70f4f2015-04-15 14:18:26 -0400551
552
553#MESSAGE("GUI====")
554#foreach(plugin ${Qt5Gui_PLUGINS})
555# message("Plugin ${plugin} is at location ${_loc}")
556#endforeach()
557
558LIST(APPEND QT_PLUGINS_IMAGEFORMAT Qt5::QTgaPlugin
559 Qt5::QGifPlugin
560 Qt5::QICNSPlugin
561 Qt5::QICOPlugin
562 Qt5::QJpegPlugin
Alexandre Lision8ac5c842017-03-18 08:45:31 +0100563 Qt5::QTiffPlugin)
Alexandre Lision3a70f4f2015-04-15 14:18:26 -0400564
565# we need two plugin directories platform and imageformats
566GET_TARGET_PROPERTY(_loc Qt5::QCocoaIntegrationPlugin LOCATION)
567INSTALL(FILES ${_loc} DESTINATION ${QT_PLUGINS_DESTDIR}/platforms COMPONENT Runtime)
568LIST(APPEND QT_PLUGINS Qt5::QCocoaIntegrationPlugin)
569
570FOREACH(plugin ${QT_PLUGINS_IMAGEFORMAT})
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400571 GET_TARGET_PROPERTY(_loc ${plugin} LOCATION)
Alexandre Lision3a70f4f2015-04-15 14:18:26 -0400572 INSTALL(FILES ${_loc} DESTINATION ${QT_PLUGINS_DESTDIR}/imageformats COMPONENT Runtime)
573 LIST(APPEND QT_PLUGINS ${plugin})
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400574ENDFOREACH()
575
Anthony Léonard786d4182017-11-08 14:26:31 -0500576# Add SQLite driver for QtSql
577GET_TARGET_PROPERTY(_loc Qt5::QSQLiteDriverPlugin LOCATION)
578INSTALL(FILES ${_loc} DESTINATION ${QT_PLUGINS_DESTDIR}/sqldrivers COMPONENT Runtime)
579LIST(APPEND QT_PLUGINS Qt5::QSQLiteDriverPlugin)
580
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400581# directories to look for dependencies
Alexandre Lisionfd0d6c82016-03-29 17:06:54 -0400582SET(DIRS ${CMAKE_INSTALL_PREFIX}/lib
583 ${QT_LIB_DIR}
584 ${CMAKE_CURRENT_SOURCE_DIR}/sparkle
585 ${CMAKE_CURRENT_SOURCE_DIR}/libqrencode/lib)
Alexandre Lisione7e01ba2015-03-30 13:30:51 -0400586
587INSTALL(CODE "
588 file(GLOB_RECURSE QTPLUGINS
589 \"\${CMAKE_INSTALL_PREFIX}/${QT_PLUGINS_DESTDIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\")
590 include(BundleUtilities)
591 SET(BU_CHMOD_BUNDLE_ITEMS TRUE)
592 fixup_bundle(\"${APPS}\" \"\${QTPLUGINS}\" \"${DIRS}\")
593 " COMPONENT Runtime)
594
595#================================
596# Packaging
597#================================
598SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJ_NAME})
599SET( CPACK_PACKAGE_NAME ${PROJ_NAME} )
600SET( CPACK_PACKAGE_CONTACT "Alexandre Lision")
601SET( CPACK_PACKAGE_VENDOR "Savoir-faire Linux")
602SET( CPACK_PACKAGE_VERSION_MAJOR ${PROG_MAJOR_VERSION})
603SET( CPACK_PACKAGE_VERSION_MINOR ${PROG_MINOR_VERSION})
604SET( CPACK_PACKAGE_VERSION_PATCH ${PROG_PATCH_VERSION})
605SET(CPACK_BINARY_DRAGNDROP ON)
606SET( CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}")
607INCLUDE(CPack)