app-comm-svc: add licenses for BSD-2-Clause/ISC/MIT
[platform/core/convergence/app-comm-svc.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(remote-server CXX)
3 SET(EXTERNAL_RESOURCES_DIR ${CMAKE_CURRENT_BINARY_DIR}/external)
4
5
6 # --- VARIABLES
7
8 # -- building options
9
10 # C++
11 SET(CMAKE_CXX_FLAGS "-Wall -DHAVE_NETINET_IN_H -lsystemd-daemon -lpthread -Wno-variadic-macros -fPIC")
12 SET(CMAKE_CXX_FLAGS_DEBUG "-g -O2")
13 SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
14
15 SET(CMAKE_BUILD_TYPE "Debug")
16
17 SET(CMAKE_VERBOSE_MAKEFILE ON) # make verbosity
18
19 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
20 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
21 SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
22
23 SET(NODE_DIR "/usr/apps/")
24
25 LINK_DIRECTORIES(/usr/lib)
26
27 include_directories(${EXTERNAL_RESOURCES_DIR}/include)
28 link_directories(${EXTERNAL_RESOURCES_DIR}/lib)
29 include_directories(${DBUS_INCLUDE})
30 include_directories(${DBUS_TRY})
31
32
33
34 FIND_PACKAGE(PkgConfig REQUIRED)
35 PKG_CHECK_MODULES(GLIB2 REQUIRED glib-2.0)
36 PKG_CHECK_MODULES(DBUS-GLIB REQUIRED dbus-glib-1)
37
38 INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS} ${DBUS-GLIB_INCLUDE_DIRS})
39 LINK_DIRECTORIES(${GLIB2_LIBRARY_DIRS} ${DBUS-GLIB_LIBRARY_DIRS})
40
41 set(CMAKE_FIND_ROOT_PATH ${EXTERNAL_RESOURCES_DIR})
42 set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
43 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
44
45 # Available Modules : ACL, DIAL, SmartView(Pincode), MSF
46 # All support : High grade TV model (ex. HawkP, HawkM)
47 # ACL only support : LFD
48
49 IF("${PRODUCT_TYPE}" STREQUAL "LFD")
50         ADD_DEFINITIONS("-DSUPPORT_ACL_ONLY")
51
52 SET( CM-MANAGER-SRCS
53         ${CMAKE_SOURCE_DIR}/Src/Common/REMOTEMutex.cpp
54         ${CMAKE_SOURCE_DIR}/Src/Common/REMOTESemaphore.cpp
55         ${CMAKE_SOURCE_DIR}/Src/Common/REMOTEThread.cpp
56         ${CMAKE_SOURCE_DIR}/Src/Common/REMOTEString.cpp
57         ${CMAKE_SOURCE_DIR}/Src/Common/REMOTEApp.cpp
58         )
59
60 else()
61 SET( CM-MANAGER-SRCS
62         ${CMAKE_SOURCE_DIR}/Src/Common/REMOTEMutex.cpp
63         ${CMAKE_SOURCE_DIR}/Src/Common/REMOTESemaphore.cpp
64         ${CMAKE_SOURCE_DIR}/Src/Common/REMOTEThread.cpp
65         ${CMAKE_SOURCE_DIR}/Src/Common/REMOTEString.cpp
66         ${CMAKE_SOURCE_DIR}/Src/Common/REMOTEApp.cpp
67                 ${CMAKE_SOURCE_DIR}/PinCodeService/IPCServer.cpp
68                 ${CMAKE_SOURCE_DIR}/PinCodeService/MSFServer.cpp
69                 ${CMAKE_SOURCE_DIR}/PinCodeService/Util/MSFSend.cpp
70                 ${CMAKE_SOURCE_DIR}/PinCodeService/Util/RemoteLogger.cpp
71                 )
72
73 ENDIF("${PRODUCT_TYPE}" STREQUAL "LFD")
74
75 INCLUDE_DIRECTORIES(
76         ${CMAKE_SOURCE_DIR}/Inc
77 #        ${CMAKE_SOURCE_DIR}/usr/include/webconv
78         ${CMAKE_SOURCE_DIR}/Inc/Common
79         ${CMAKE_SOURCE_DIR}/PinCodeService
80         ${CMAKE_SOURCE_DIR}/PinCodeService/Util
81         ${DBUS_INCLUDE}
82         /usr/include/vd_kernel-headers
83         )
84
85 INCLUDE(FindPkgConfig)
86 pkg_check_modules(packages REQUIRED
87         capi-system-info
88         capi-network-wifi
89         capi-network-connection
90         capi-appfw-app-manager
91         glib-2.0
92         libcurl
93         dlog
94         dbus-glib-1
95         gobject-2.0
96         gmodule-2.0
97         syspopup
98         syspopup-caller
99         capi-appfw-application
100         vconf
101         capi-system-system-settings
102         gio-2.0
103         libsystemd
104         jsoncpp
105         deviced
106         libxml-2.0
107         bluetooth-api
108         argos_watchdog
109         aul
110 )
111
112
113 FOREACH(flag ${packages_CFLAGS})
114        SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
115 ENDFOREACH(flag)
116
117 SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} -fvisibility=hidden -Wall")
118 SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} -g ")
119 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS}")
120
121 ADD_LIBRARY(CManager ${CM-MANAGER-SRCS})
122
123 ADD_EXECUTABLE(${PROJECT_NAME}  ${CMAKE_SOURCE_DIR}/main.cpp ) # compile the main executable file
124
125 TARGET_LINK_LIBRARIES(${PROJECT_NAME}
126     ${GLIB2_LIBRARIES}
127     ${DBUS-GLIB_LIBRARIES}
128     ${packages_LDFLAGS}
129     boost_system
130     boost_thread
131     libexpat.so
132     libcrypto.so
133     CManager
134 ) # link the main executable file with libraries
135
136
137
138 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/MSF-Node/org.tizen.multiscreen DESTINATION ${NODE_DIR})
139
140 INSTALL(FILES packaging/org.tizen.multiscreen.service packaging/remote-server.service DESTINATION /usr/lib/systemd/user)
141 INSTALL(TARGETS ${PROJECT_NAME}
142     RUNTIME DESTINATION bin
143     LIBRARY DESTINATION lib
144 )