Merge branch 'devel/tizen_3.0' into tizen
[platform/core/api/sensor.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(capi-system-sensor)
3 INCLUDE(GNUInstallDirs)
4
5 SET(DEPENDENTS "dlog sensor capi-base-common")
6
7 IF("${PROFILE}" STREQUAL "mobile" OR "${PROFILE}" STREQUAL "wearable")
8         SET(DEPENDENTS "${DEPENDENTS} context-common")
9 ENDIF()
10
11 SET(VERSION ${FULLVER})
12 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
13
14 SET(PC_NAME ${PROJECT_NAME})
15 SET(PC_DESCRIPTION "Sensor C-API library")
16 SET(PC_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/sensor")
17 SET(PC_DEPENDENTS "${DEPENDENTS}")
18 SET(PC_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
19 SET(PC_LDFLAGS "-l${PROJECT_NAME}")
20
21 INCLUDE_DIRECTORIES(include ${CMAKE_CURRENT_SOURCE_DIR})
22
23 # Build options
24 INCLUDE(FindPkgConfig)
25 PKG_CHECK_MODULES(${PROJECT_NAME} REQUIRED ${DEPENDENTS})
26
27 FOREACH(flag ${${PROJECT_NAME}_CFLAGS})
28     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
29 ENDFOREACH(flag)
30
31 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fPIC -Wall -Werror -g -fdump-rtl-expand")
32 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++0x")
33 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
34 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl, --rpath=${LIB_INSTALL_DIR}")
35
36 # Internal Logging Option
37 #ADD_DEFINITIONS("-DTIZEN_DEBUG")
38
39 # Compile Source files
40 SET(SOURCES src/geomagnetic_field.c
41             src/fusion_util.c
42             src/sensor.cpp)
43
44 IF("${PROFILE}" STREQUAL "mobile" OR "${PROFILE}" STREQUAL "wearable")
45         SET(SOURCES ${SOURCES} src/sensor_recorder.cpp)
46 ELSE()
47         SET(SOURCES ${SOURCES} src/sensor_recorder_dummy.cpp)
48 ENDIF()
49
50 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SOURCES})
51
52 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_LDFLAGS})
53 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${FULLVER} SOVERSION ${MAJORVER} CLEAN_DIRECT_OUTPUT 1)
54 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc @ONLY)
55 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
56 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries)
57 INSTALL(FILES include/sensor.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sensor)
58
59 # ###
60 IF(UNIX)
61 ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
62 ADD_CUSTOM_COMMAND(
63         DEPENDS clean
64         COMMENT "distribution clean"
65         COMMAND find
66         ARGS    .
67         -not -name config.cmake -and \(
68         -name tester.c -or
69         -name Testing -or
70         -name CMakeFiles -or
71         -name cmake.depends -or
72         -name cmake.check_depends -or
73         -name CMakeCache.txt -or
74         -name cmake.check_cache -or
75         -name *.cmake -or
76         -name Makefile -or
77         -name core -or
78         -name core.* -or
79         -name gmon.out -or
80         -name install_manifest.txt -or
81         -name *.pc -or
82         -name *~ \)
83         | grep -v TC | xargs rm -rf
84         TARGET  distclean
85         VERBATIM
86 )
87 ENDIF(UNIX)
88