Fused Location
[platform/core/location/lbs-location.git] / location / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(location C)
3
4 SET(LIB_NAME "lbs-location")
5 SET(INC_DIR "include")
6 SET(MANAGER_DIR "manager")
7 SET(MODULE_DIR "module")
8
9 IF(TIZEN_PRODUCT_TV_OPTIMIZATION)
10         SET (PRIVACY_SRC "")
11 ELSE(TIZEN_PRODUCT_TV_OPTIMIZATION)
12         SET (PRIVACY_SRC "${MANAGER_DIR}/location-privacy.c")
13 ENDIF(TIZEN_PRODUCT_TV_OPTIMIZATION)
14
15 ADD_DEFINITIONS("-DLIBDIR=\"${LIBDIR}\"")
16
17 INCLUDE_DIRECTORIES(
18         ${INC_DIR}
19         ${MANAGER_DIR}
20         ${MODULE_DIR}
21 )
22
23 ### Build ###
24 SET(SRCS
25         ${MANAGER_DIR}/location.c
26         ${MANAGER_DIR}/location-marshal.c
27         ${MANAGER_DIR}/location-ielement.c
28         ${MANAGER_DIR}/location-setting.c
29         ${MANAGER_DIR}/location-position.c
30         ${MANAGER_DIR}/location-batch.c
31         ${MANAGER_DIR}/location-velocity.c
32         ${MANAGER_DIR}/location-accuracy.c
33         ${MANAGER_DIR}/location-boundary.c
34         ${MANAGER_DIR}/location-satellite.c
35         ${MANAGER_DIR}/location-signaling-util.c
36         ${MANAGER_DIR}/location-common-util.c
37         ${MANAGER_DIR}/location-gps.c
38         ${MANAGER_DIR}/location-wps.c
39         ${MANAGER_DIR}/location-passive.c
40         ${MANAGER_DIR}/location-fused.c
41         ${PRIVACY_SRC}
42
43         ${MODULE_DIR}/module-internal.c
44 )
45
46 SET(SRCS_MOBILE
47         ${MANAGER_DIR}/location-hybrid-mobile.c
48 )
49
50 SET (INSTALL_HEADERS
51         ${INC_DIR}/location-types.h
52
53         ${MANAGER_DIR}/location.h
54         ${MANAGER_DIR}/location-position.h
55         ${MANAGER_DIR}/location-batch.h
56         ${MANAGER_DIR}/location-velocity.h
57         ${MANAGER_DIR}/location-accuracy.h
58         ${MANAGER_DIR}/location-boundary.h
59         ${MANAGER_DIR}/location-satellite.h
60         ${MANAGER_DIR}/location-setting.h
61
62         ${MODULE_DIR}/location-module.h
63 )
64
65 ADD_LIBRARY(${LIB_NAME} SHARED ${SRCS} ${SRCS_MOBILE})
66 TARGET_LINK_LIBRARIES(${LIB_NAME} ${pkgs_LDFLAGS} -lm)
67 SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES VERSION ${FULLVER} SOVERSION ${MAJORVER} CLEAN_DIRECT_OUTPUT 1)
68
69 IF (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${MANAGER_DIR}/location-marshal.c)
70         MESSAGE ("")
71         MESSAGE ("<<< Generating location-marshal.c >>>")
72
73         EXECUTE_PROCESS(
74                 COMMAND glib-genmarshal --header --prefix=location ${CMAKE_CURRENT_SOURCE_DIR}/manager/location-marshal.list
75                 OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/manager/location-marshal.h
76         )
77
78         EXECUTE_PROCESS(
79                 COMMAND glib-genmarshal --body --prefix=location ${CMAKE_CURRENT_SOURCE_DIR}/manager/location-marshal.list
80                 OUTPUT_VARIABLE marshal_var
81         )
82
83         EXECUTE_PROCESS(
84                 COMMAND echo "#include \"location-marshal.h\" ${marshal_var}"
85                 OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/manager/location-marshal.c
86         )
87
88 ENDIF (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${MANAGER_DIR}/location-marshal.c)
89
90 INSTALL(TARGETS ${LIB_NAME} DESTINATION ${LIBDIR} COMPONENT Runtime)
91 FOREACH(ITEM IN ITEMS ${INSTALL_HEADERS})
92         MESSAGE ("${ITEM}")
93         INSTALL(FILES ${ITEM} DESTINATION ${INCLUDEDIR}/${PROJECT_NAME})
94 ENDFOREACH()