Merge "Added new method to the NotificationManager Interface" into tizen_2.2
[platform/framework/native/appfw.git] / src / appfw / CMakeLists.txt
1 SET (this_target osp-appfw)
2
3 INCLUDE_DIRECTORIES(
4         ${SLP_INCLUDE_DIRS}
5         ${CMAKE_SOURCE_DIR}/inc
6         ${CMAKE_SOURCE_DIR}/src/base/inc
7         ${CMAKE_SOURCE_DIR}/src/app/inc
8         ${CMAKE_SOURCE_DIR}/src/security/inc
9         ${CMAKE_SOURCE_DIR}/src/io/inc
10         )
11
12 SET (${this_target}_SOURCE_FILES
13         ${CMAKE_SOURCE_DIR}/src/osp-init/Osp.cpp
14 )
15     
16 SET(EXTRA_CFLAGS  "${EXTRA_CFLAGS} -Wall" )
17
18 ## SET C COMPILER FLAGS
19 SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
20
21 ## SET CPP COMPILER FLAGS
22 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
23 SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
24
25 ## Create Library
26 ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
27
28 SET(STATIC_LIBS app base base-runtime io locales security system text)
29
30 SET_TARGET_PROPERTIES(${this_target} PROPERTIES LINK_INTERFACE_LIBRARIES "")
31
32 ADD_DEPENDENCIES(${this_target} ${STATIC_LIBS})
33
34 MACRO(OSP_ADD_OBJS_IN_ARCHIVE archives)
35     SET(LINK_OBJECTS_IN_ARCHIVE)
36     FOREACH(archive ${ARGV})
37       SET(LINK_OBJECTS_IN_ARCHIVE "${LINK_OBJECTS_IN_ARCHIVE} -l${archive}")
38     ENDFOREACH(archive)
39     SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--whole-archive ${LINK_OBJECTS_IN_ARCHIVE} -Wl,-no-whole-archive")
40 ENDMACRO(OSP_ADD_OBJS_IN_ARCHIVE)
41
42 OSP_ADD_OBJS_IN_ARCHIVE(${STATIC_LIBS})
43
44 # add explicit dependency
45 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed")
46
47 TARGET_LINK_LIBRARIES( ${this_target} ${STATIC_LIBS})
48 TARGET_LINK_LIBRARIES(${this_target} "-ldl" )
49 TARGET_LINK_LIBRARIES(${this_target} "-lpthread" )
50 TARGET_LINK_LIBRARIES(${this_target} "-lrt" )
51 #TARGET_LINK_LIBRARIES(${this_target} "-ldukgenerator" )
52 #TARGET_LINK_LIBRARIES(${this_target} "-lcryptsvc" )
53 TARGET_LINK_LIBRARIES(${this_target} "-lprivacy-manager-client" )
54 TARGET_LINK_LIBRARIES(${this_target} "-lcapi-security-privilege-manager" )
55 TARGET_LINK_LIBRARIES(${this_target} ${pkgs_LDFLAGS})
56
57
58 SET_TARGET_PROPERTIES(${this_target}
59                 PROPERTIES
60                 VERSION ${FULLVER}
61                 SOVERSION ${MAJORVER}
62                 CLEAN_DIRECT_OUTPUT 1
63 )
64 ADD_CUSTOM_COMMAND(TARGET ${this_target}
65                 POST_BUILD
66                 COMMAND ${CMAKE_COMMAND} -E copy ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} 
67                 COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${MAJORVER}
68                 COMMAND ${CMAKE_STRIP} --strip-unneeded ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}
69                 COMMENT "strip ${this_target}"
70 )   
71
72
73 SET(PC_NAME ${this_target})
74 SET(PC_REQUIRED ${pc_requires})
75 SET(PC_LDFLAGS -l${this_target})
76 SET(VERSION ${FULLVER})
77
78 # pkgconfig file
79 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)