ec911395b335d35924a676d32a1daa194f62e11b
[platform/core/connectivity/bluetooth-frwk.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(bt-oal C)
3
4 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
5 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/hardware/)
6
7 SET(SRCS
8 oal-hardware.c
9 oal-manager.c
10 oal-adapter-mgr.c
11 oal-device-mgr.c
12 oal-hid-host.c
13 oal-socket.c
14 oal-audio-src.c
15 oal-a2dp-sink.c
16 oal-avrcp-tg.c
17 oal-avrcp-ctrl.c
18 oal-hfp.c
19 oal-hdp.c
20 oal-gatt.c
21 common/oal-utils.c
22 common/oal-common.c
23 common/oal-event-dispatcher.c
24 )
25
26 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
27         SET(CMAKE_BUILD_TYPE "Release")
28 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
29 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
30 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
31 SET(EXEC_PREFIX "\${prefix}")
32 SET(LIBDIR ${CMAKE_LIB_DIR})
33 SET(INCLUDEDIR "\${prefix}/include")
34 SET(VERSION_MAJOR 1)
35 SET(VERSION ${VERSION_MAJOR}.0.0)
36
37 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
38 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/common)
39 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
40
41 LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/lib)
42 LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/bt-oal)
43
44 INCLUDE(FindPkgConfig)
45 pkg_check_modules(packages REQUIRED vconf gio-unix-2.0 dlog gio-2.0 glib-2.0)
46 SET(pc_dependents "vconf gio-unix-2.0 dlog gio-2.0 glib-2.0")
47
48 FOREACH(flag ${packages_CFLAGS})
49         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
50 ENDFOREACH(flag)
51
52 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g ")
53
54 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC")
55
56 FIND_PROGRAM(UNAME NAMES uname)
57 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
58 IF("${ARCH}" STREQUAL "arm")
59         ADD_DEFINITIONS("-DTARGET")
60         MESSAGE("add -DTARGET")
61 ENDIF("${ARCH}" STREQUAL "arm")
62
63 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
64
65 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
66 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
67
68
69 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR})
70 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${packages_LDFLAGS} -ldl)
71
72 INSTALL(
73         DIRECTORY include/ DESTINATION include/bt-oal
74         FILES_MATCHING
75         PATTERN "include/*.h"
76         )
77
78 SET(PC_NAME libbt-oal)
79 SET(PC_REQUIRED ${pc_dependents})
80 SET(PC_LDFLAGS -l${PROJECT_NAME})
81
82 CONFIGURE_FILE(
83     libbt-oal.pc.in
84     ${CMAKE_CURRENT_SOURCE_DIR}/libbt-oal.pc
85     @ONLY
86 )
87
88 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/libbt-oal.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
89
90 ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
91 ADD_CUSTOM_COMMAND(
92         DEPENDS clean 
93         COMMENT "distribution clean"
94         COMMAND find
95         ARGS    . 
96         -not -name config.cmake -and \(
97         -name tester.c -or
98         -name Testing -or
99         -name CMakeFiles -or
100         -name cmake.depends -or
101         -name cmake.check_depends -or
102         -name CMakeCache.txt -or
103         -name cmake.check_cache -or
104         -name *.cmake -or
105         -name Makefile -or
106         -name core -or
107         -name core.* -or
108         -name gmon.out -or
109         -name install_manifest.txt -or
110         -name *.pc -or
111         -name *~ \)
112         | grep -v TC | xargs rm -rf
113         TARGET  distclean
114         VERBATIM
115 )