0d1dd81dc80e9c0478794dec4dbaf9cd58fb6b08
[platform/core/connectivity/smartcard-service.git] / server / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(smartcard-daemon CXX)
3
4 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../common)
5 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../common/include)
6 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
7
8 AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/ SRCS)
9
10 ### for private
11 ADD_DEFINITIONS("-D__PRIVATE")
12
13 FIND_PROGRAM(GDBUS_CODEGEN NAMES gdbus-codegen)
14 EXEC_PROGRAM(${GDBUS_CODEGEN} ARGS
15         " \\
16         --generate-c-code ${CMAKE_CURRENT_SOURCE_DIR}/private/access-control-gdbus \\
17         --c-namespace SmartcardService\\
18         --interface-prefix org.tizen.SmartcardService. \\
19         ${CMAKE_CURRENT_SOURCE_DIR}/private/access-control-gdbus.xml \\
20         ")
21
22 AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/private SRCS)
23 ##############
24
25 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
26         SET(CMAKE_BUILD_TYPE "Release")
27 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
28
29 # pkg config
30 INCLUDE(FindPkgConfig)
31
32 SET(PKG_MODULE glib-2.0 gio-2.0 gio-unix-2.0 dlog)
33
34 pkg_check_modules(pkgs_server REQUIRED ${PKG_MODULE})
35
36 FOREACH(flag ${pkgs_server_CFLAGS})
37         SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
38         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
39 ENDFOREACH(flag)
40
41 MESSAGE("CHECK MODULE in ${PROJECT_NAME} ${pkgs_server_LDFLAGS}")
42
43 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -pipe -fomit-frame-pointer -Wall -Wno-trigraphs  -fno-strict-aliasing -Wl,-zdefs -fvisibility=hidden")
44 SET(ARM_CFLAGS "${ARM_CLAGS} -mapcs -mno-sched-prolog -mabi=aapcs-linux -Uarm -fno-common -fpic")
45 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC")
46 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
47
48 SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} -pipe -fomit-frame-pointer -Wall -Wno-trigraphs  -fno-strict-aliasing -Wl,-zdefs -fvisibility=hidden -std=c++0x")
49 SET(ARM_CXXFLAGS "${ARM_CXXLAGS} -mapcs -mno-sched-prolog -mabi=aapcs-linux -Uarm -fno-common -fpic")
50 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -fPIC")
51 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
52
53 FIND_PROGRAM(UNAME NAMES uname)
54 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
55 IF("${ARCH}" MATCHES "^arm.*")
56         ADD_DEFINITIONS("-DTARGET")
57         MESSAGE("add -DTARGET")
58         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARM_CXXFLAGS}")
59         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARM_CFLAGS}")
60 ENDIF()
61
62 ADD_DEFINITIONS("-DPREFIX=\"/usr/apps/smartcard-service-server\"")
63 ADD_DEFINITIONS("-DLOG_TAG=\"SMARTCARD_SERVICE_SERVER\"")
64
65 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
66
67 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
68
69 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_server_LDFLAGS} "-L../common" "-lsmartcard-service-common" "-pie -ldl")
70
71 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/apps/smartcard-service-server/bin)
72 IF("${USE_AUTOSTART}" STREQUAL "1")
73         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/org.tizen.SmartcardService.service DESTINATION share/dbus-1/system-services)
74 ENDIF()
75 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/smartcard-service-server.xml DESTINATION share/packages)