CMakeLists.txt 3.73 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
Alexandre Lision's avatar
Alexandre Lision committed
34 35 36
   AudioPrefsVC.mm
   VideoPrefsVC.mm
   GeneralPrefsVC.mm
Alexandre Lision's avatar
Alexandre Lision committed
37
   HistoryViewController.mm
Alexandre Lision's avatar
Alexandre Lision committed
38
   MinimalHistoryBackend.mm)
Alexandre Lision's avatar
Alexandre Lision committed
39 40

SET(ringclient_FORMS
Alexandre Lision's avatar
Alexandre Lision committed
41 42
   MainMenu.xib
   RingWindow.xib
Alexandre Lision's avatar
Alexandre Lision committed
43 44 45 46
   GeneralPrefs.xib
   AudioPrefs.xib
   VideoPrefs.xib
   PreferencesScreen.xib)
Alexandre Lision's avatar
Alexandre Lision committed
47 48

SET(ringclient_HDRS
Alexandre Lision's avatar
Alexandre Lision committed
49 50 51
   AppDelegate.h
   RingWindowController.h
   ConversationsViewController.h
Alexandre Lision's avatar
Alexandre Lision committed
52 53 54 55
   PreferencesViewController.h
   AudioPrefsVC.h
   VideoPrefsVC.h
   GeneralPrefsVC.h
Alexandre Lision's avatar
Alexandre Lision committed
56 57 58
   HistoryViewController.h
   QNSTreeController.h
   MinimalHistoryBackend.h)
Alexandre Lision's avatar
Alexandre Lision committed
59 60 61 62 63

# Icons

# NOTE: Don't include the path in MACOSX_BUNDLE_ICON_FILE -- this is
# the property added to Info.plist
64
#SET(MACOSX_BUNDLE_ICON_FILE appicon.icns)
Alexandre Lision's avatar
Alexandre Lision committed
65 66 67 68 69 70

# 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
71 72 73 74 75 76
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
77 78 79 80
${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
81 82
${CMAKE_CURRENT_SOURCE_DIR}/data/dark/ic_action_video.png)
SET_SOURCE_FILES_PROPERTIES(${ring_ICONS} PROPERTIES
Alexandre Lision's avatar
Alexandre Lision committed
83
       MACOSX_PACKAGE_LOCATION Resources)
Alexandre Lision's avatar
Alexandre Lision committed
84

Alexandre Lision's avatar
Alexandre Lision committed
85 86
SET_SOURCE_FILES_PROPERTIES(${ringclient_FORMS} PROPERTIES
       MACOSX_PACKAGE_LOCATION Resources)
Alexandre Lision's avatar
Alexandre Lision committed
87

88
ADD_EXECUTABLE(${PROJ_NAME} MACOSX_BUNDLE
Alexandre Lision's avatar
Alexandre Lision committed
89
   ${ringclient_SRCS}
Alexandre Lision's avatar
Alexandre Lision committed
90 91
   ${ringclient_HDRS}
   ${ringclient_FORMS}
Alexandre Lision's avatar
Alexandre Lision committed
92
   ${myApp_ICON}
Alexandre Lision's avatar
Alexandre Lision committed
93 94
   ${ring_ICONS})

95
TARGET_LINK_LIBRARIES( ${PROJ_NAME}
Alexandre Lision's avatar
Alexandre Lision committed
96
   ${LIB_RING_CLIENT_LIBRARY}
Alexandre Lision's avatar
Alexandre Lision committed
97
   ${Qt5Core_LIBRARIES}
Alexandre Lision's avatar
Alexandre Lision committed
98 99 100
   ${Qt5Widgets_LIBRARIES}
)

Alexandre Lision's avatar
Alexandre Lision committed
101 102
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
103 104
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
105
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework AddressBook")
Alexandre Lision's avatar
Alexandre Lision committed
106

107 108 109 110 111 112 113 114 115 116 117
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"
    )