1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(sensor-fusion CXX)
3 INCLUDE(GNUInstallDirs)
5 SET(AUTO_ROTATION "ON")
12 ${CMAKE_SOURCE_DIR}/src/shared
13 ${CMAKE_CURRENT_SOURCE_DIR}
17 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2 -omit-frame-pointer -std=gnu++0x")
18 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdata-sections -ffunction-sections")
19 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections -Wl,--print-gc-sections")
20 MESSAGE("FLAGS: ${CMAKE_CXX_FLAGS}")
21 MESSAGE("FLAGS: ${CMAKE_EXE_LINKER_FLAGS}")
23 # Internal Debugging Options
24 #ADD_DEFINITIONS(-Wall -g -D_DEBUG)
26 INCLUDE(FindPkgConfig)
27 PKG_CHECK_MODULES(PLUGINS_PKGS REQUIRED dlog)
29 FOREACH(flag ${PLUGINS_PKGS_CFLAGS})
30 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
33 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
37 IF("${AUTO_ROTATION}" STREQUAL "ON")
38 FILE(GLOB_RECURSE SRCS ${SRCS} auto_rotation/*.cpp)
39 ADD_DEFINITIONS(-DENABLE_AUTO_ROTATION)
42 IF("${GRAVITY}" STREQUAL "ON")
43 FILE(GLOB_RECURSE SRCS ${SRCS} gravity/*.cpp)
44 ADD_DEFINITIONS(-DENABLE_GRAVITY)
47 IF("${LINEAR_ACCEL}" STREQUAL "ON")
48 FILE(GLOB_RECURSE SRCS ${SRCS} linear_accel/*.cpp)
49 ADD_DEFINITIONS(-DENABLE_LINEAR_ACCEL)
52 IF("${RV}" STREQUAL "ON")
53 FILE(GLOB_RECURSE SRCS ${SRCS} rotation_vector/*.cpp)
54 ADD_DEFINITIONS(-DENABLE_ROTATION_VECTOR)
57 IF("${ORIENTATION}" STREQUAL "ON")
58 FILE(GLOB_RECURSE SRCS ${SRCS} orientation/*.cpp)
59 ADD_DEFINITIONS(-DENABLE_ORIENTATION)
62 MESSAGE("Sources: ${SRCS}")
63 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
64 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PLUGINS_PKGS_LDFLAGS})
65 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR}/sensor/fusion)