1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(sensor-hal-emulator CXX)
3 INCLUDE(GNUInstallDirs)
11 SET(GEOMAG_UNCAL "OFF")
18 SET(TEMPERATURE "OFF")
20 SET(TEMP_HUMIDITY "OFF")
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}")
33 # Internal Debugging Options
34 #ADD_DEFINITIONS(-Wall -g -D_DEBUG)
36 INCLUDE(FindPkgConfig)
37 PKG_CHECK_MODULES(HAL_PKGS REQUIRED dlog glib-2.0 gio-2.0 gobject-2.0 vconf libxml-2.0)
39 FOREACH(flag ${HAL_PKGS_CFLAGS})
40 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
43 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
45 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
46 FILE(GLOB SRCS src/*.cpp)
48 IF("${ACCEL}" STREQUAL "ON")
49 FILE(GLOB_RECURSE SRCS ${SRCS} src/accel/*.cpp)
50 ADD_DEFINITIONS(-DENABLE_ACCEL)
53 IF("${GYRO}" STREQUAL "ON")
54 FILE(GLOB_RECURSE SRCS ${SRCS} src/gyro/*.cpp)
55 ADD_DEFINITIONS(-DENABLE_GYRO)
58 IF("${GYRO_UNCAL}" STREQUAL "ON")
59 FILE(GLOB_RECURSE SRCS ${SRCS} src/gyro_uncal/*.cpp)
60 ADD_DEFINITIONS(-DENABLE_GYRO_UNCAL)
63 IF("${PROXIMITY}" STREQUAL "ON")
64 FILE(GLOB_RECURSE SRCS ${SRCS} src/proxi/*.cpp)
65 ADD_DEFINITIONS(-DENABLE_PROXIMITY)
68 IF("${LIGHT}" STREQUAL "ON")
69 FILE(GLOB_RECURSE SRCS ${SRCS} src/light/*.cpp)
70 ADD_DEFINITIONS(-DENABLE_LIGHT)
73 IF("${GEOMAG}" STREQUAL "ON")
74 FILE(GLOB_RECURSE SRCS ${SRCS} src/geomag/*.cpp)
75 ADD_DEFINITIONS(-DENABLE_GEOMAG)
78 IF("${GEOMAG_UNCAL}" STREQUAL "ON")
79 FILE(GLOB_RECURSE SRCS ${SRCS} src/geo_uncal/*.cpp)
80 ADD_DEFINITIONS(-DENABLE_GEOMAG_UNCAL)
83 IF("${HRM_RAW}" STREQUAL "ON")
84 FILE(GLOB_RECURSE SRCS ${SRCS} src/hrm_raw/*.cpp)
85 ADD_DEFINITIONS(-DENABLE_HRM_RAW)
88 IF("${HRM}" STREQUAL "ON")
89 FILE(GLOB_RECURSE SRCS ${SRCS} src/hrm/*.cpp)
90 ADD_DEFINITIONS(-DENABLE_HRM)
93 IF("${RV}" STREQUAL "ON")
94 FILE(GLOB_RECURSE SRCS ${SRCS} src/rv/*.cpp)
95 ADD_DEFINITIONS(-DENABLE_RV)
98 IF("${PRESSURE}" STREQUAL "ON")
99 FILE(GLOB_RECURSE SRCS ${SRCS} src/pressure/*.cpp)
100 ADD_DEFINITIONS(-DENABLE_PRESSURE)
103 IF("${ULTRAVIOLET}" STREQUAL "ON")
104 FILE(GLOB_RECURSE SRCS ${SRCS} src/ultraviolet/*.cpp)
105 ADD_DEFINITIONS(-DENABLE_UV)
108 IF("${PIR}" STREQUAL "ON")
109 FILE(GLOB_RECURSE SRCS ${SRCS} src/pir/*.cpp)
110 ADD_DEFINITIONS(-DENABLE_PIR)
113 IF("${PIR_LONG}" STREQUAL "ON")
114 FILE(GLOB_RECURSE SRCS ${SRCS} src/pir_long/*.cpp)
115 ADD_DEFINITIONS(-DENABLE_PIR_LONG)
118 IF("${TEMPERATURE}" STREQUAL "ON")
119 FILE(GLOB_RECURSE SRCS ${SRCS} src/temperature/*.cpp)
120 ADD_DEFINITIONS(-DENABLE_TEMPERATURE)
123 IF("${HUMIDITY}" STREQUAL "ON")
124 FILE(GLOB_RECURSE SRCS ${SRCS} src/humidity/*.cpp)
125 ADD_DEFINITIONS(-DENABLE_HUMIDITY)
128 IF("${TEMP_HUMIDITY}" STREQUAL "ON")
129 FILE(GLOB_RECURSE SRCS ${SRCS} src/temp_humidity/*.cpp)
130 ADD_DEFINITIONS(-DENABLE_TEMP_HUMIDITY)
133 IF("${ULTRAVIOLET}" STREQUAL "ON")
134 FILE(GLOB_RECURSE SRCS ${SRCS} src/ultraviolet/*.cpp)
135 ADD_DEFINITIONS(-DENABLE_ULTRAVIOLET)
138 IF("${DUST}" STREQUAL "ON")
139 FILE(GLOB_RECURSE SRCS ${SRCS} src/dust/*.cpp)
140 ADD_DEFINITIONS(-DENABLE_DUST)
143 IF("${GSR}" STREQUAL "ON")
144 FILE(GLOB_RECURSE SRCS ${SRCS} src/gsr/*.cpp)
145 ADD_DEFINITIONS(-DENABLE_GSR)
148 IF("${SENSORHUB}" STREQUAL "ON")
149 FILE(GLOB_RECURSE SRCS ${SRCS} src/sensorhub/*.cpp)
150 ADD_DEFINITIONS(-DENABLE_SENSORHUB)
153 MESSAGE("Sources: ${SRCS}")
154 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
155 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${HAL_PKGS_LDFLAGS})
157 CONFIGURE_FILE(sensor.xml.in sensor.xml @ONLY)
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)