sensor-hal: re-organize build procedure
[platform/adaptation/tm1/sensor-hal-tm1.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(sensor-plugins-tm1 CXX)
3 INCLUDE(GNUInstallDirs)
4
5
6 SET(ACCEL "ON")
7 SET(GYRO "OFF")
8 SET(PROXIMITY "ON")
9 SET(LIGHT "OFF")
10 SET(MAGNETIC "OFF")
11 SET(PRESSURE "OFF")
12 SET(TEMPERATURE "OFF")
13 SET(ULTRAVIOLET "OFF")
14 SET(ROTATION_VECTOR "OFF")
15 SET(HRM_LED_RED "OFF")
16
17
18 # Common Options
19 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2 -omit-frame-pointer -std=gnu++0x")
20 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdata-sections -ffunction-sections")
21 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-section -Wl,--print-gc-section")
22 MESSAGE("FLAGS: ${CMAKE_CXX_FLAGS}")
23 MESSAGE("FLAGS: ${CMAKE_EXE_LINKER_FLAGS}")
24
25 # Internal Debugging Options
26 #ADD_DEFINITIONS(-Wall -g -D_DEBUG)
27
28 INCLUDE(FindPkgConfig)
29 PKG_CHECK_MODULES(plugin_pkgs REQUIRED dlog)
30
31 FOREACH(flag ${plugin_pkgs_LDFLAGS})
32         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
33 ENDFOREACH(flag)
34
35 FOREACH(flag ${plugin_pkgs_CFLAGS})
36         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
37 ENDFOREACH(flag)
38
39 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
40
41 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
42 FILE(GLOB SRCS src/*.cpp)
43
44 IF("${ACCEL}" STREQUAL "ON")
45 FILE(GLOB_RECURSE SRCS ${SRCS} src/accel/*.cpp)
46 ADD_DEFINITIONS(-DENABLE_ACCEL)
47 ENDIF()
48
49 IF("${GYRO}" STREQUAL "ON")
50 FILE(GLOB_RECURSE SRCS ${SRCS} src/gyro/*.cpp)
51 ADD_DEFINITIONS(-DENABLE_GYRO)
52 ENDIF()
53
54 IF("${PROXIMITY}" STREQUAL "ON")
55 FILE(GLOB_RECURSE SRCS ${SRCS} src/proximity/*.cpp)
56 ADD_DEFINITIONS(-DENABLE_PROXIMITY)
57 ENDIF()
58
59 IF("${LIGHT}" STREQUAL "ON")
60 FILE(GLOB_RECURSE SRCS ${SRCS} src/light/*.cpp)
61 ADD_DEFINITIONS(-DENABLE_LIGHT)
62 ENDIF()
63
64 IF("${MAGNETIC}" STREQUAL "ON")
65 FILE(GLOB_RECURSE SRCS ${SRCS} src/magnetic/*.cpp)
66 ADD_DEFINITIONS(-DENABLE_MAGNETIC)
67 ENDIF()
68
69 IF("${PRESSURE}" STREQUAL "ON")
70 FILE(GLOB_RECURSE SRCS ${SRCS} src/pressure/*.cpp)
71 ADD_DEFINITIONS(-DENABLE_PRESSURE)
72 ENDIF()
73
74 IF("${TEMPERATURE}" STREQUAL "ON")
75 FILE(GLOB_RECURSE SRCS ${SRCS} src/temperature/*.cpp)
76 ADD_DEFINITIONS(-DENABLE_TEMPERATURE)
77 ENDIF()
78
79 IF("${ULTRAVIOLET}" STREQUAL "ON")
80 FILE(GLOB_RECURSE SRCS ${SRCS} src/ultraviolet/*.cpp)
81 ADD_DEFINITIONS(-DENABLE_ULTRAVIOLET)
82 ENDIF()
83
84 IF("${HRM_LED_RED}" STREQUAL "ON")
85 FILE(GLOB_RECURSE SRCS ${SRCS} src/hrm_led_led/*.cpp)
86 ADD_DEFINITIONS(-DENABLE_HRM_LED_RED)
87 ENDIF()
88
89 IF("${ROTATION_VECTOR}" STREQUAL "ON")
90 FILE(GLOB_RECURSE SRCS ${SRCS} src/rotation_vector/*.cpp)
91 ADD_DEFINITIONS(-DENABLE_ROTATION_VECTOR)
92 ENDIF()
93
94 MESSAGE("Sources: ${SRCS}")
95 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
96 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${plugin_pkgs_LDFLAGS})
97
98 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR}/sensor)