Tizen 2.4.0 rev3 SDK Public Release
[framework/location/maps-service.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 SET(fw_name "capi-maps-service")
3
4 PROJECT(${fw_name})
5
6 SET(CMAKE_INSTALL_PREFIX /usr)
7 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
8
9 SET(INC_DIR include)
10 SET(INTERNAL_INC_DIR
11         src
12         src/api
13         src/plugin
14         src/session
15         )
16 INCLUDE_DIRECTORIES(${INC_DIR} ${INTERNAL_INC_DIR})
17
18 SET(dependents "glib-2.0 gmodule-2.0 dlog capi-base-common security-privilege-checker")
19 SET(pc_dependents "capi-base-common")
20
21 INCLUDE(FindPkgConfig)
22 pkg_check_modules(${fw_name} REQUIRED ${dependents})
23 FOREACH(flag ${${fw_name}_CFLAGS})
24         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
25 ENDFOREACH(flag)
26
27 #SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -g -fdump-rtl-expand")
28 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibility=hidden -fvisibility-inlines-hidden")
29 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
30
31 #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -g -fPIC -fdump-rtl-expand -std=c++0x")
32 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibility=hidden")
33 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
34
35 IF("${ARCH}" STREQUAL "arm")
36         ADD_DEFINITIONS("-DTARGET")
37 ENDIF("${ARCH}" STREQUAL "arm")
38
39 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
40 ADD_DEFINITIONS("-DEXPORT_API=__attribute__((visibility(\"default\")))")
41 #ADD_DEFINITIONS("-DTIZEN_DEBUG")
42
43 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed")
44
45 aux_source_directory(src SOURCES)
46 aux_source_directory(src/api SOURCES_API)
47 aux_source_directory(src/plugin SOURCES_PLUGIN)
48 aux_source_directory(src/session SOURCES_SESSION)
49 ADD_LIBRARY(${fw_name} SHARED ${SOURCES} ${SOURCES_API} ${SOURCES_PLUGIN} ${SOURCES_SESSION})
50
51 TARGET_LINK_LIBRARIES(${fw_name} ${${fw_name}_LDFLAGS})
52
53 SET_TARGET_PROPERTIES(${fw_name}
54         PROPERTIES
55         VERSION ${FULLVER}
56         SOVERSION ${MAJORVER}
57         CLEAN_DIRECT_OUTPUT 1
58         )
59
60 INSTALL(TARGETS ${fw_name} DESTINATION ${LIBDIR})
61 INSTALL(
62         DIRECTORY ${INC_DIR}/ DESTINATION include/maps
63         FILES_MATCHING
64         # *_plugin.h" are needed by plugin
65         #        PATTERN "*_plugin.h" EXCLUDE
66         PATTERN "${INC_DIR}/*.h"
67         )
68
69 SET(PC_NAME ${fw_name})
70 SET(PC_DESCRIPTION "Tizen Maps Library")
71 SET(PC_REQUIRED ${pc_dependents})
72 SET(PC_LDFLAGS -l${fw_name})
73 SET(PC_INCLUDE /usr/include/maps)
74
75 CONFIGURE_FILE(
76         ${fw_name}.pc.in
77         ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc
78         @ONLY
79         )
80 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIBDIR}/pkgconfig)
81
82
83
84 # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
85 # WARNING! FOR TESTING PURPOSES ONLY
86 # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
87
88 #Please don't release the below comment when you submit.
89 #Please release the below comment, if you want to test code in local.
90 #It is not good for security and increases binary size.
91 #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibility=default")
92 #ADD_SUBDIRECTORY(test)
93
94 IF(UNIX)
95
96         ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
97         ADD_CUSTOM_COMMAND(
98                 DEPENDS clean
99                 COMMENT "distribution clean"
100                 COMMAND find
101                 ARGS    .
102                 -not -name config.cmake -and \(
103                 -name tester.c -or
104                 -name Testing -or
105                 -name CMakeFiles -or
106                 -name cmake.depends -or
107                 -name cmake.check_depends -or
108                 -name CMakeCache.txt -or
109                 -name cmake.check_cache -or
110                 -name *.cmake -or
111                 -name Makefile -or
112                 -name core -or
113                 -name core.* -or
114                 -name gmon.out -or
115                 -name install_manifest.txt -or
116                 -name *.pc -or
117                 -name *~ \)
118                 | grep -v TC | xargs rm -rf
119                 TARGET  distclean
120                 VERBATIM
121                 )
122
123 ENDIF(UNIX)
124