Modify CMake file for using pkgconfig
[platform/framework/native/secure-element.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2
3 SET (this_target osp-secure-element)
4
5 INCLUDE(FindPkgConfig)
6 pkg_check_modules(${this_target} REQUIRED osp-appfw smartcard-service smartcard-service-common)
7
8 SET(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output)
9
10 INCLUDE_DIRECTORIES(
11         ${SLP_INCLUDE_DIRS}
12         ${${this_target}_INCLUDE_DIRS}}
13         inc
14         src
15         src/inc
16         /usr/include/chromium
17         /usr/include/smartcard-service
18         /usr/include/smartcard-service-common
19         /usr/include/glib-2.0 
20         /usr/lib/glib-2.0/include
21         /usr/include/osp
22         /usr/include/osp/base
23         /usr/include/osp/io     
24         /usr/include/osp/security       
25         /usr/include/osp/system 
26 )
27
28 SET (${this_target}_SOURCE_FILES
29     src/FSecSeSecureElementService.cpp
30     src/FSecSe_SecureElementServiceImpl.cpp
31     src/FSecSe_SecureElementServiceEvent.cpp
32     src/FSecSe_SecureElementServiceEventArg.cpp
33     src/FSecSeSecureElementReader.cpp
34     src/FSecSe_SecureElementReaderImpl.cpp
35     src/FSecSe_SecureElementReaderOpenSessionResponseEvent.cpp
36     src/FSecSe_SecureElementReaderOpenSessionResponseArg.cpp
37     src/FSecSeSecureElementSession.cpp
38     src/FSecSe_SecureElementSessionImpl.cpp
39     src/FSecSe_SecureElementSessionCloseResponseListenerEvent.cpp
40     src/FSecSe_SecureElementSessionCloseResponseListenerEventArg.cpp
41     src/FSecSe_SecureElementSessionGetAtrEvent.cpp
42     src/FSecSe_SecureElementSessionGetAtrEventArg.cpp
43     src/FSecSe_SecureElementSessionOpenChannelResponseListenerEvent.cpp
44     src/FSecSe_SecureElementSessionOpenChannelResponseListenerEventArg.cpp
45     src/FSecSeSecureElementChannel.cpp
46     src/FSecSe_SecureElementChannelImpl.cpp
47     src/FSecSe_SecureElementChannelCloseResponseListenerEvent.cpp
48     src/FSecSe_SecureElementChannelCloseResponseListenerEventArg.cpp
49     src/FSecSe_SecureElementChannelTransmitResponseListenerEvent.cpp
50     src/FSecSe_SecureElementChannelTransmitResponseListenerEventArg.cpp
51     )
52
53 SET(EXTRA_CFLAGS  "${EXTRA_CFLAGS} -Wall" )
54
55 ## SET C COMPILER FLAGS
56 SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
57
58 ## SET CPP COMPILER FLAGS
59 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
60 SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
61
62 ## Create Library
63 ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
64
65 ## SET LINKER FLAGS
66 SET(CMAKE_SHARED_LINKER_FLAGS -Wl,--no-undefined)
67
68 TARGET_LINK_LIBRARIES(${this_target} ${${this_target}_LDFLAGS} ${${this_target}_LIBRARIES} )
69
70 SET_TARGET_PROPERTIES(${this_target} 
71         PROPERTIES 
72         VERSION ${FULLVER}
73         SOVERSION ${MAJORVER}
74         CLEAN_DIRECT_OUTPUT 1
75         )
76
77 INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp 
78                                 FILES_MATCHING PATTERN "*.so*" 
79                                 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                                          
80                                                                                 GROUP_EXECUTE GROUP_READ
81                                                                                 WORLD_EXECUTE WORLD_READ)
82
83 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/inc/ DESTINATION include/osp FILES_MATCHING PATTERN "*.h")
84
85 SET(PC_NAME ${this_target})
86 SET(PC_REQUIRED ${pc_requires})
87 SET(PC_LDFLAGS -l${this_target})
88 SET(VERSION ${FULLVER})
89
90 # pkgconfig file
91 CONFIGURE_FILE(${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)
92 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${this_target}.pc DESTINATION lib/pkgconfig)