CMakeLists.txt 4.19 KB
Newer Older
Alexandre Lision's avatar
Alexandre Lision committed
1 2 3 4 5 6
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

IF(POLICY CMP0022)
  CMAKE_POLICY(SET CMP0022 NEW)
ENDIF(POLICY CMP0022)

7 8 9
SET(PROJ_NAME Ring)
SET(RING_VERSION 1.0)

Alexandre Lision's avatar
Alexandre Lision committed
10
ADD_DEFINITIONS("-std=c++11")
Alexandre Lision's avatar
Alexandre Lision committed
11

Alexandre Lision's avatar
Alexandre Lision committed
12
PROJECT(${PROJ_NAME})
Alexandre Lision's avatar
Alexandre Lision committed
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

FIND_PACKAGE(Qt5Core REQUIRED)
FIND_PACKAGE(Qt5Widgets REQUIRED)
FIND_PACKAGE(LibRingClient REQUIRED)

INCLUDE_DIRECTORIES(SYSTEM ${Qt5Core_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR})
INCLUDE_DIRECTORIES(${LIB_RING_CLIENT_INCLUDE_DIR})

MESSAGE("LibRingClient is here:" ${LIB_RING_CLIENT_INCLUDE_DIR})
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")

#Files to compile
SET(ringclient_SRCS
Alexandre Lision's avatar
Alexandre Lision committed
28 29 30 31
   main.mm
   AppDelegate.mm
   RingWindowController.mm
   ConversationsViewController.mm
Alexandre Lision's avatar
Alexandre Lision committed
32
   PreferencesViewController.mm
Alexandre Lision's avatar
Alexandre Lision committed
33
   QNSTreeController.mm
34 35 36 37 38 39 40
   AccGeneralVC.mm
   AccAudioVC.mm
   AccVideoVC.mm
   AccRingVC.mm
   AccAdvancedVC.mm
   AccSecurityVC.mm
   AccountsVC.mm
41
   CurrentCallVC.mm
Alexandre Lision's avatar
Alexandre Lision committed
42 43 44
   AudioPrefsVC.mm
   VideoPrefsVC.mm
   GeneralPrefsVC.mm
45
   RingWizardWC.mm
Alexandre Lision's avatar
Alexandre Lision committed
46
   HistoryViewController.mm
Alexandre Lision's avatar
Alexandre Lision committed
47
   MinimalHistoryBackend.mm)
Alexandre Lision's avatar
Alexandre Lision committed
48 49

SET(ringclient_FORMS
Alexandre Lision's avatar
Alexandre Lision committed
50 51
   MainMenu.xib
   RingWindow.xib
52
   CurrentCall.xib
Alexandre Lision's avatar
Alexandre Lision committed
53
   GeneralPrefs.xib
54 55 56 57 58 59 60
   Accounts.xib
   AccGeneral.xib
   AccAudio.xib
   AccVideo.xib
   AccRing.xib
   AccAdvanced.xib
   AccSecurity.xib
Alexandre Lision's avatar
Alexandre Lision committed
61 62
   AudioPrefs.xib
   VideoPrefs.xib
63 64
   PreferencesScreen.xib
   RingWizard.xib)
Alexandre Lision's avatar
Alexandre Lision committed
65 66

SET(ringclient_HDRS
Alexandre Lision's avatar
Alexandre Lision committed
67 68
   AppDelegate.h
   RingWindowController.h
69
   CurrentCallVC.h
Alexandre Lision's avatar
Alexandre Lision committed
70
   ConversationsViewController.h
Alexandre Lision's avatar
Alexandre Lision committed
71
   PreferencesViewController.h
72 73 74 75 76 77
   AccGeneralVC.h
   AccVideoVC.h
   AccAudioVC.h
   AccRingVC.h
   AccAdvancedVC.h
   AccSecurityVC.h
Alexandre Lision's avatar
Alexandre Lision committed
78
   AudioPrefsVC.h
79
   AccountsVC.h
Alexandre Lision's avatar
Alexandre Lision committed
80 81
   VideoPrefsVC.h
   GeneralPrefsVC.h
Alexandre Lision's avatar
Alexandre Lision committed
82
   HistoryViewController.h
83
   RingWizardWC.h
Alexandre Lision's avatar
Alexandre Lision committed
84 85
   QNSTreeController.h
   MinimalHistoryBackend.h)
Alexandre Lision's avatar
Alexandre Lision committed
86 87 88 89 90

# Icons

# NOTE: Don't include the path in MACOSX_BUNDLE_ICON_FILE -- this is
# the property added to Info.plist
91
#SET(MACOSX_BUNDLE_ICON_FILE appicon.icns)
Alexandre Lision's avatar
Alexandre Lision committed
92 93 94 95 96 97

# And this part tells CMake where to find and install the file itself
SET(myApp_ICON ${CMAKE_CURRENT_SOURCE_DIR}/data/appicon.icns)
SET_SOURCE_FILES_PROPERTIES(${myApp_ICON} PROPERTIES
       MACOSX_PACKAGE_LOCATION "Resources")

Alexandre Lision's avatar
Alexandre Lision committed
98 99 100 101 102 103
SET(ring_ICONS ${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_accept.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_call.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_cancel.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_email.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_new_email.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_search.png
Alexandre Lision's avatar
Alexandre Lision committed
104 105 106 107
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ancrage.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/audio.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/general.png
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/video.png
Alexandre Lision's avatar
Alexandre Lision committed
108 109
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_video.png)
SET_SOURCE_FILES_PROPERTIES(${ring_ICONS} PROPERTIES
Alexandre Lision's avatar
Alexandre Lision committed
110
       MACOSX_PACKAGE_LOCATION Resources)
Alexandre Lision's avatar
Alexandre Lision committed
111

Alexandre Lision's avatar
Alexandre Lision committed
112 113
SET_SOURCE_FILES_PROPERTIES(${ringclient_FORMS} PROPERTIES
       MACOSX_PACKAGE_LOCATION Resources)
Alexandre Lision's avatar
Alexandre Lision committed
114

115
ADD_EXECUTABLE(${PROJ_NAME} MACOSX_BUNDLE
Alexandre Lision's avatar
Alexandre Lision committed
116
   ${ringclient_SRCS}
Alexandre Lision's avatar
Alexandre Lision committed
117 118
   ${ringclient_HDRS}
   ${ringclient_FORMS}
Alexandre Lision's avatar
Alexandre Lision committed
119
   ${myApp_ICON}
Alexandre Lision's avatar
Alexandre Lision committed
120 121
   ${ring_ICONS})

122
TARGET_LINK_LIBRARIES( ${PROJ_NAME}
Alexandre Lision's avatar
Alexandre Lision committed
123
   ${LIB_RING_CLIENT_LIBRARY}
Alexandre Lision's avatar
Alexandre Lision committed
124
   ${Qt5Core_LIBRARIES}
Alexandre Lision's avatar
Alexandre Lision committed
125 126 127
   ${Qt5Widgets_LIBRARIES}
)

Alexandre Lision's avatar
Alexandre Lision committed
128 129
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AppKit")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa")
Alexandre Lision's avatar
Alexandre Lision committed
130 131
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Quartz")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AVFoundation")
Alexandre Lision's avatar
Alexandre Lision committed
132
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AddressBook")
Alexandre Lision's avatar
Alexandre Lision committed
133

134 135 136 137 138 139 140 141 142 143 144
SET_TARGET_PROPERTIES(${PROJ_NAME} PROPERTIES
        MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/cmake/MacOSXBundleInfo.plist.in
        MACOSX_BUNDLE_GUI_IDENTIFIER "cx.ring"
        MACOSX_BUNDLE_SHORT_VERSION_STRING ${RING_VERSION}
        MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJ_NAME} ${RING_VERSION} Nightly"
        MACOSX_BUNDLE_BUNDLE_VERSION ${RING_VERSION}
        MACOSX_BUNDLE_COPYRIGHT "${PROJ_NAME}"
        MACOSX_BUNDLE_INFO_STRING "Nightly build of ${PROJ_NAME} ${RING_VERSION} for testing and development"
        MACOSX_BUNDLE_BUNDLE_NAME ${PROJ_NAME}
        MACOSX_BUNDLE_ICON_FILE "appicon.icns"
    )