Removed redundant NULL check for pin in wifi_direct_get_wps_pin()
[platform/core/api/wifi-direct.git] / src / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(wifi-direct C)
3
4 # Global setting
5 #SET(VERSION 0.0)
6
7 MACRO(GET_TARGET_PROPERTY_WITH_DEFAULT _variable _target _property _default_value)
8         GET_TARGET_PROPERTY (${_variable} ${_target} ${_property})
9         IF (${_variable} MATCHES NOTFOUND)
10                 SET (${_variable} ${_default_value})
11         ENDIF (${_variable} MATCHES NOTFOUND)
12 ENDMACRO (GET_TARGET_PROPERTY_WITH_DEFAULT)
13
14 MACRO(CREATE_LIBTOOL_FILE _target _install_DIR)
15         GET_TARGET_PROPERTY(_target_location ${_target} LOCATION)
16         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_static_lib ${_target} STATIC_LIB "")
17         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dependency_libs ${_target} LT_DEPENDENCY_LIBS "")
18         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_current ${_target} LT_VERSION_CURRENT 0)
19         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_age ${_target} LT_VERSION_AGE 0)
20         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_revision ${_target} LT_VERSION_REVISION 0)
21         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_installed ${_target} LT_INSTALLED yes)
22         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_shouldnotlink ${_target} LT_SHOULDNOTLINK yes)
23         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dlopen ${_target} LT_DLOPEN "")
24         GET_TARGET_PROPERTY_WITH_DEFAULT(_target_dlpreopen ${_target} LT_DLPREOPEN "")
25         GET_FILENAME_COMPONENT(_laname ${_target_location} NAME_WE)
26         GET_FILENAME_COMPONENT(_soname ${_target_location} NAME)
27         SET(_laname2 ${_laname}.la)
28         SET(_laname ${PROJECT_BINARY_DIR}/${_laname}.la)
29         FILE(WRITE ${_laname} "# ${_laname2} - a libtool library file\n")
30         FILE(APPEND ${_laname} "# Generated by CMake ${CMAKE_VERSION} (like GNU libtool)\n")
31         FILE(APPEND ${_laname} "\n# Please DO NOT delete this file!\n# It is necessary for linking the library with libtool.\n\n" )
32         FILE(APPEND ${_laname} "# The name that we can dlopen(3).\n")
33         FILE(APPEND ${_laname} "dlname='${_soname}'\n\n")
34         FILE(APPEND ${_laname} "# Names of this library.\n")
35         FILE(APPEND ${_laname} "library_names='${_soname}.${_target_current}.${_target_age}.${_target_revision} ${_soname}.${_target_current} ${_soname}'\n\n")
36         FILE(APPEND ${_laname} "# The name of the static archive.\n")
37         FILE(APPEND ${_laname} "old_library='${_target_static_lib}'\n\n")
38         FILE(APPEND ${_laname} "# Libraries that this one depends upon.\n")
39         FILE(APPEND ${_laname} "dependency_libs='${_target_dependency_libs}'\n\n")
40         FILE(APPEND ${_laname} "# Names of additional weak libraries provided by this library\n")
41         FILE(APPEND ${_laname} "weak_library_names=\n\n")
42         FILE(APPEND ${_laname} "# Version information for ${_laname2}.\n")
43         FILE(APPEND ${_laname} "current=${_target_current}\n")
44         FILE(APPEND ${_laname} "age=${_target_age}\n")
45         FILE(APPEND ${_laname} "revision=${_target_revision}\n\n")
46         FILE(APPEND ${_laname} "# Is this an already installed library?\n")
47         FILE(APPEND ${_laname} "installed=${_target_installed}\n\n")
48         FILE(APPEND ${_laname} "# Should we warn about portability when linking against -modules?\n")
49         FILE(APPEND ${_laname} "shouldnotlink=${_target_shouldnotlink}\n\n")
50         FILE(APPEND ${_laname} "# Files to dlopen/dlpreopen\n")
51         FILE(APPEND ${_laname} "dlopen='${_target_dlopen}'\n")
52         FILE(APPEND ${_laname} "dlpreopen='${_target_dlpreopen}'\n\n")
53         FILE(APPEND ${_laname} "# Directory that this library needs to be installed in:\n")
54         FILE(APPEND ${_laname} "libdir='${CMAKE_INSTALL_PREFIX}${_install_DIR}'\n")
55         INSTALL( FILES ${_laname} DESTINATION ${_install_DIR})
56 ENDMACRO(CREATE_LIBTOOL_FILE)
57
58 # Build type : Release
59 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
60         SET(CMAKE_BUILD_TYPE "Release")
61 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
62 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
63
64 # Set required packages
65 INCLUDE(FindPkgConfig)
66 pkg_check_modules(pkgs REQUIRED vconf glib-2.0 gio-2.0 gthread-2.0 dlog capi-system-info)
67
68 FOREACH(flag ${pkgs_CFLAGS})
69         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
70 ENDFOREACH(flag)
71
72 SET(LIBDIR ${CMAKE_LIB_DIR})
73
74 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
75                 ${CMAKE_SOURCE_DIR}/src/include)
76
77 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -lpthread -g -DUSE_DLOG")
78 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -DUSE_DLOG")
79 SET(CMAKE_C_FLAGS_RELEASE "-O2")
80
81 FIND_PROGRAM(UNAME NAMES uname)
82 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
83 IF("${ARCH}" STREQUAL "arm")
84         ADD_DEFINITIONS("-DTARGET")
85         MESSAGE("add -DTARGET")
86 ENDIF("${ARCH}" STREQUAL "arm")
87
88 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
89 ADD_DEFINITIONS("-DEXPORT_API=\"__attribute__((visibility(\\\"default\\\")))\" ")
90 IF(TIZEN_FEATURE_SERVICE_DISCOVERY)
91         ADD_DEFINITIONS(-DTIZEN_FEATURE_SERVICE_DISCOVERY)
92         SET(FEATURES "${FEATURES} -DTIZEN_FEATURE_SERVICE_DISCOVERY")
93 ENDIF(TIZEN_FEATURE_SERVICE_DISCOVERY)
94 IF(TIZEN_FEATURE_WIFI_DISPLAY)
95         ADD_DEFINITIONS(-DTIZEN_FEATURE_WIFI_DISPLAY)
96         SET(FEATURES "${FEATURES} -DTIZEN_FEATURE_WIFI_DISPLAY")
97 ENDIF(TIZEN_FEATURE_WIFI_DISPLAY)
98 IF(TIZEN_FEATURE_WIFI_DIRECT_ON_DEMAND)
99         ADD_DEFINITIONS(-DTIZEN_FEATURE_WIFI_DIRECT_ON_DEMAND)
100         SET(FEATURES "${FEATURES} -DTIZEN_FEATURE_WIFI_DIRECT_ON_DEMAND")
101 ENDIF(TIZEN_FEATURE_WIFI_DIRECT_ON_DEMAND)
102
103 # Linker flags
104 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed, --rpath=${LIBDIR}")
105
106 # Build
107 SET(SRCS
108         wifi-direct-client-proxy.c
109         wifi-direct-dbus.c
110 )
111
112 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
113 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
114 SET_TARGET_PROPERTIES(${PROJECT_NAME}
115      PROPERTIES
116      VERSION ${VERSION}
117      SOVERSION ${MAJORVERSION}
118      CLEAN_DIRECT_OUTPUT 1
119 )
120 CREATE_LIBTOOL_FILE(${PROJECT_NAME} ${LIBDIR})
121
122 # pkgconfig file
123 CONFIGURE_FILE(capi-network-wifi-direct.pc.in capi-network-wifi-direct.pc @ONLY)
124
125 # Install
126 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR} COMPONENT Runtime)
127 INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/wifi-direct.h DESTINATION include/wifi-direct)
128 INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/wifi-direct-internal.h DESTINATION include/wifi-direct)
129 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/capi-network-wifi-direct.pc DESTINATION ${LIBDIR}/pkgconfig)
130