File: FindWBclient.cmake

package info (click to toggle)
ntirpc 4.3-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 2,116 kB
  • sloc: ansic: 32,323; makefile: 10
file content (61 lines) | stat: -rw-r--r-- 1,467 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Try to find a sufficiently recent wbclient

if(SAMBA4_PREFIX)
  set(SAMBA4_INCLUDE_DIRS ${SAMBA4_PREFIX}/include)
  set(SAMBA4_LIBRARIES ${SAMBA4_PREFIX}/lib${LIB_SUFFIX})
endif()

if(NOT WIN32)
  find_package(PkgConfig)
  if(PKG_CONFIG_FOUND)
    pkg_check_modules(_WBCLIENT_PC QUIET wbclient)
  endif(PKG_CONFIG_FOUND)
endif(NOT WIN32)

find_path(WBCLIENT_INCLUDE_DIR wbclient.h
  ${_WBCLIENT_PC_INCLUDE_DIRS}
  ${SAMBA4_INCLUDE_DIRS}
  /usr/include
  /usr/local/include
  )

set(CMAKE_REQUIRED_INCLUDES ${WBCLIENT_INCLUDE_DIR})

find_library(WBCLIENT_LIBRARIES NAMES wbclient
  PATHS
  ${_WBCLIENT_PC_LIBDIR}
  )

check_library_exists(
  wbclient
  wbcLookupSids
  ${WBCLIENT_LIBRARIES}
  WBCLIENT_LIB_OK
  )

# the stdint and stdbool includes are required (silly Cmake)
check_include_files("stdint.h;stdbool.h;wbclient.h" WBCLIENT_H)

# XXX this check is doing the heavy lifting
set(CMAKE_REQUIRED_LIBRARIES ${WBCLIENT_LIBRARIES})
if(WBCLIENT_H)
  check_c_source_compiles("
/* do the enum */
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <wbclient.h>

int main(void)
{
  enum wbcAuthUserLevel level = WBC_AUTH_USER_LEVEL_PAC;
  return (0);
}" WBCLIENT4_H)
endif(WBCLIENT_H)

if(WBCLIENT_LIB_OK AND WBCLIENT4_H)
  set(WBCLIENT_FOUND 1)
  message(STATUS "Found Winbind4 client: ${WBCLIENT_LIB}")
else(WBCLIENT_LIB_OK AND WBCLIENT4_H)
  message(STATUS "Winbind4 client not found ${SAMBA4_PREFIX}/lib")
endif(WBCLIENT_LIB_OK AND WBCLIENT4_H)