CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(sensor-hal-emulator CXX) INCLUDE(GNUInstallDirs) SET(ACCEL "ON") SET(GYRO "ON") SET(GYRO_UNCAL "OFF") SET(PROXIMITY "ON") SET(LIGHT "ON") SET(GEOMAG "ON") SET(GEOMAG_UNCAL "OFF") SET(HRM_RAW "OFF") SET(HRM "ON") SET(RV "OFF") SET(PRESSURE "ON") SET(PIR "OFF") SET(PIR_LONG "OFF") SET(TEMPERATURE "OFF") SET(HUMIDITY "OFF") SET(TEMP_HUMIDITY "OFF") SET(ULTRAVIOLET "ON") SET(DUST "OFF") SET(GSR "OFF") SET(SENSORHUB "OFF") # Common Options SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2 -omit-frame-pointer -std=gnu++0x") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdata-sections -ffunction-sections") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-section -Wl,--print-gc-section") MESSAGE("FLAGS: ${CMAKE_CXX_FLAGS}") MESSAGE("FLAGS: ${CMAKE_EXE_LINKER_FLAGS}") # Internal Debugging Options #ADD_DEFINITIONS(-Wall -g -D_DEBUG) INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(HAL_PKGS REQUIRED dlog glib-2.0 gio-2.0 gobject-2.0 vconf libxml-2.0) FOREACH(flag ${HAL_PKGS_CFLAGS}) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") ENDFOREACH(flag) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src) FILE(GLOB SRCS src/*.cpp) IF("${ACCEL}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/accel/*.cpp) ADD_DEFINITIONS(-DENABLE_ACCEL) ENDIF() IF("${GYRO}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/gyro/*.cpp) ADD_DEFINITIONS(-DENABLE_GYRO) ENDIF() IF("${GYRO_UNCAL}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/gyro_uncal/*.cpp) ADD_DEFINITIONS(-DENABLE_GYRO_UNCAL) ENDIF() IF("${PROXIMITY}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/proxi/*.cpp) ADD_DEFINITIONS(-DENABLE_PROXIMITY) ENDIF() IF("${LIGHT}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/light/*.cpp) ADD_DEFINITIONS(-DENABLE_LIGHT) ENDIF() IF("${GEOMAG}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/geomag/*.cpp) ADD_DEFINITIONS(-DENABLE_GEOMAG) ENDIF() IF("${GEOMAG_UNCAL}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/geo_uncal/*.cpp) ADD_DEFINITIONS(-DENABLE_GEOMAG_UNCAL) ENDIF() IF("${HRM_RAW}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/hrm_raw/*.cpp) ADD_DEFINITIONS(-DENABLE_HRM_RAW) ENDIF() IF("${HRM}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/hrm/*.cpp) ADD_DEFINITIONS(-DENABLE_HRM) ENDIF() IF("${RV}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/rv/*.cpp) ADD_DEFINITIONS(-DENABLE_RV) ENDIF() IF("${PRESSURE}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/pressure/*.cpp) ADD_DEFINITIONS(-DENABLE_PRESSURE) ENDIF() IF("${ULTRAVIOLET}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/ultraviolet/*.cpp) ADD_DEFINITIONS(-DENABLE_UV) ENDIF() IF("${PIR}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/pir/*.cpp) ADD_DEFINITIONS(-DENABLE_PIR) ENDIF() IF("${PIR_LONG}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/pir_long/*.cpp) ADD_DEFINITIONS(-DENABLE_PIR_LONG) ENDIF() IF("${TEMPERATURE}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/temperature/*.cpp) ADD_DEFINITIONS(-DENABLE_TEMPERATURE) ENDIF() IF("${HUMIDITY}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/humidity/*.cpp) ADD_DEFINITIONS(-DENABLE_HUMIDITY) ENDIF() IF("${TEMP_HUMIDITY}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/temp_humidity/*.cpp) ADD_DEFINITIONS(-DENABLE_TEMP_HUMIDITY) ENDIF() IF("${ULTRAVIOLET}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/ultraviolet/*.cpp) ADD_DEFINITIONS(-DENABLE_ULTRAVIOLET) ENDIF() IF("${DUST}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/dust/*.cpp) ADD_DEFINITIONS(-DENABLE_DUST) ENDIF() IF("${GSR}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/gsr/*.cpp) ADD_DEFINITIONS(-DENABLE_GSR) ENDIF() IF("${SENSORHUB}" STREQUAL "ON") FILE(GLOB_RECURSE SRCS ${SRCS} src/sensorhub/*.cpp) ADD_DEFINITIONS(-DENABLE_SENSORHUB) ENDIF() MESSAGE("Sources: ${SRCS}") ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${HAL_PKGS_LDFLAGS}) CONFIGURE_FILE(sensor.xml.in sensor.xml @ONLY) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.APLv2 DESTINATION share/license RENAME ${PROJECT_NAME}) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR}/sensor) INSTALL(FILES sensor.xml DESTINATION etc)