Merge branch 'devel/tizen_3.0' into tizen
[platform/adaptation/emulator/sensor-hal-emulator.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(sensor-hal-emulator CXX)
3 INCLUDE(GNUInstallDirs)
4
5 SET(ACCEL "ON")
6 SET(GYRO "ON")
7 SET(GYRO_UNCAL "OFF")
8 SET(PROXIMITY "ON")
9 SET(LIGHT "ON")
10 SET(GEOMAG "ON")
11 SET(GEOMAG_UNCAL "OFF")
12 SET(HRM_RAW "OFF")
13 SET(HRM "ON")
14 SET(RV "OFF")
15 SET(PRESSURE "ON")
16 SET(PIR "OFF")
17 SET(PIR_LONG "OFF")
18 SET(TEMPERATURE "OFF")
19 SET(HUMIDITY "OFF")
20 SET(TEMP_HUMIDITY "OFF")
21 SET(ULTRAVIOLET "ON")
22 SET(DUST "OFF")
23 SET(GSR "OFF")
24 SET(SENSORHUB "OFF")
25
26 # Common Options
27 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2 -omit-frame-pointer -std=gnu++0x")
28 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdata-sections -ffunction-sections")
29 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-section -Wl,--print-gc-section")
30 MESSAGE("FLAGS: ${CMAKE_CXX_FLAGS}")
31 MESSAGE("FLAGS: ${CMAKE_EXE_LINKER_FLAGS}")
32
33 # Internal Debugging Options
34 #ADD_DEFINITIONS(-Wall -g -D_DEBUG)
35
36 INCLUDE(FindPkgConfig)
37 PKG_CHECK_MODULES(HAL_PKGS REQUIRED dlog glib-2.0 gio-2.0 gobject-2.0 vconf libxml-2.0)
38
39 FOREACH(flag ${HAL_PKGS_CFLAGS})
40         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
41 ENDFOREACH(flag)
42
43 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
44
45 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
46 FILE(GLOB SRCS src/*.cpp)
47
48 IF("${ACCEL}" STREQUAL "ON")
49 FILE(GLOB_RECURSE SRCS ${SRCS} src/accel/*.cpp)
50 ADD_DEFINITIONS(-DENABLE_ACCEL)
51 ENDIF()
52
53 IF("${GYRO}" STREQUAL "ON")
54 FILE(GLOB_RECURSE SRCS ${SRCS} src/gyro/*.cpp)
55 ADD_DEFINITIONS(-DENABLE_GYRO)
56 ENDIF()
57
58 IF("${GYRO_UNCAL}" STREQUAL "ON")
59 FILE(GLOB_RECURSE SRCS ${SRCS} src/gyro_uncal/*.cpp)
60 ADD_DEFINITIONS(-DENABLE_GYRO_UNCAL)
61 ENDIF()
62
63 IF("${PROXIMITY}" STREQUAL "ON")
64 FILE(GLOB_RECURSE SRCS ${SRCS} src/proxi/*.cpp)
65 ADD_DEFINITIONS(-DENABLE_PROXIMITY)
66 ENDIF()
67
68 IF("${LIGHT}" STREQUAL "ON")
69 FILE(GLOB_RECURSE SRCS ${SRCS} src/light/*.cpp)
70 ADD_DEFINITIONS(-DENABLE_LIGHT)
71 ENDIF()
72
73 IF("${GEOMAG}" STREQUAL "ON")
74 FILE(GLOB_RECURSE SRCS ${SRCS} src/geomag/*.cpp)
75 ADD_DEFINITIONS(-DENABLE_GEOMAG)
76 ENDIF()
77
78 IF("${GEOMAG_UNCAL}" STREQUAL "ON")
79 FILE(GLOB_RECURSE SRCS ${SRCS} src/geo_uncal/*.cpp)
80 ADD_DEFINITIONS(-DENABLE_GEOMAG_UNCAL)
81 ENDIF()
82
83 IF("${HRM_RAW}" STREQUAL "ON")
84 FILE(GLOB_RECURSE SRCS ${SRCS} src/hrm_raw/*.cpp)
85 ADD_DEFINITIONS(-DENABLE_HRM_RAW)
86 ENDIF()
87
88 IF("${HRM}" STREQUAL "ON")
89 FILE(GLOB_RECURSE SRCS ${SRCS} src/hrm/*.cpp)
90 ADD_DEFINITIONS(-DENABLE_HRM)
91 ENDIF()
92
93 IF("${RV}" STREQUAL "ON")
94 FILE(GLOB_RECURSE SRCS ${SRCS} src/rv/*.cpp)
95 ADD_DEFINITIONS(-DENABLE_RV)
96 ENDIF()
97
98 IF("${PRESSURE}" STREQUAL "ON")
99 FILE(GLOB_RECURSE SRCS ${SRCS} src/pressure/*.cpp)
100 ADD_DEFINITIONS(-DENABLE_PRESSURE)
101 ENDIF()
102
103 IF("${ULTRAVIOLET}" STREQUAL "ON")
104 FILE(GLOB_RECURSE SRCS ${SRCS} src/ultraviolet/*.cpp)
105 ADD_DEFINITIONS(-DENABLE_UV)
106 ENDIF()
107
108 IF("${PIR}" STREQUAL "ON")
109 FILE(GLOB_RECURSE SRCS ${SRCS} src/pir/*.cpp)
110 ADD_DEFINITIONS(-DENABLE_PIR)
111 ENDIF()
112
113 IF("${PIR_LONG}" STREQUAL "ON")
114 FILE(GLOB_RECURSE SRCS ${SRCS} src/pir_long/*.cpp)
115 ADD_DEFINITIONS(-DENABLE_PIR_LONG)
116 ENDIF()
117
118 IF("${TEMPERATURE}" STREQUAL "ON")
119 FILE(GLOB_RECURSE SRCS ${SRCS} src/temperature/*.cpp)
120 ADD_DEFINITIONS(-DENABLE_TEMPERATURE)
121 ENDIF()
122
123 IF("${HUMIDITY}" STREQUAL "ON")
124 FILE(GLOB_RECURSE SRCS ${SRCS} src/humidity/*.cpp)
125 ADD_DEFINITIONS(-DENABLE_HUMIDITY)
126 ENDIF()
127
128 IF("${TEMP_HUMIDITY}" STREQUAL "ON")
129 FILE(GLOB_RECURSE SRCS ${SRCS} src/temp_humidity/*.cpp)
130 ADD_DEFINITIONS(-DENABLE_TEMP_HUMIDITY)
131 ENDIF()
132
133 IF("${ULTRAVIOLET}" STREQUAL "ON")
134 FILE(GLOB_RECURSE SRCS ${SRCS} src/ultraviolet/*.cpp)
135 ADD_DEFINITIONS(-DENABLE_ULTRAVIOLET)
136 ENDIF()
137
138 IF("${DUST}" STREQUAL "ON")
139 FILE(GLOB_RECURSE SRCS ${SRCS} src/dust/*.cpp)
140 ADD_DEFINITIONS(-DENABLE_DUST)
141 ENDIF()
142
143 IF("${GSR}" STREQUAL "ON")
144 FILE(GLOB_RECURSE SRCS ${SRCS} src/gsr/*.cpp)
145 ADD_DEFINITIONS(-DENABLE_GSR)
146 ENDIF()
147
148 IF("${SENSORHUB}" STREQUAL "ON")
149 FILE(GLOB_RECURSE SRCS ${SRCS} src/sensorhub/*.cpp)
150 ADD_DEFINITIONS(-DENABLE_SENSORHUB)
151 ENDIF()
152
153 MESSAGE("Sources: ${SRCS}")
154 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
155 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${HAL_PKGS_LDFLAGS})
156
157 CONFIGURE_FILE(sensor.xml.in sensor.xml @ONLY)
158
159 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.APLv2 DESTINATION share/license RENAME ${PROJECT_NAME})
160 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR}/sensor)
161 INSTALL(FILES sensor.xml DESTINATION etc)