File: func_accept_args.cmake

package info (click to toggle)
orthanc-postgresql 5.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 1,372 kB
  • sloc: cpp: 18,362; python: 388; sql: 275; makefile: 30; sh: 13
file content (59 lines) | stat: -rw-r--r-- 2,023 bytes parent folder | download | duplicates (10)
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
# This mimics ac_func_accept_argtypes.m4

check_include_files(sys/types.h HAVE_SYS_TYPES_H)
check_include_files(sys/socket.h HAVE_SYS_SOCKET_H)

if(HAVE_SYS_TYPES_H)
  set(INCLUDE_SYS_TYPES_H "#include <sys/types.h>")
endif(HAVE_SYS_TYPES_H)

if(HAVE_SYS_SOCKET_H)
  set(INCLUDE_SYS_SOCKET_H "#include <sys/socket.h>")
endif(HAVE_SYS_SOCKET_H)

message(STATUS "Looking for accept function args")
set(CMAKE_REQUIRED_QUIET 1)
foreach(ac_cv_func_accept_return "int" "unsigned int PASCAL" "SOCKET WSAAPI")
  foreach(ac_cv_func_accept_arg1 "int" "unsigned int" "SOCKET")
    foreach(ac_cv_func_accept_arg2 "struct sockaddr *" "const struct sockaddr *" "void *")
      foreach(ac_cv_func_accept_arg3 "int" "size_t" "socklen_t" "unsigned int" "void")
	unset(AC_FUNC_ACCEPT CACHE)
	CHECK_C_SOURCE_COMPILES("
${INCLUDE_SYS_TYPES_H}
${INCLUDE_SYS_SOCKET_H}
extern ${ac_cv_func_accept_return} accept (${ac_cv_func_accept_arg1}, ${ac_cv_func_accept_arg2}, ${ac_cv_func_accept_arg3} *);
int main(void)
{
  return 0;
}
				" AC_FUNC_ACCEPT)
	if(AC_FUNC_ACCEPT)
	  set(ACCEPT_TYPE_RETURN ${ac_cv_func_accept_return})
	  set(ACCEPT_TYPE_ARG1 ${ac_cv_func_accept_arg1})
	  set(ACCEPT_TYPE_ARG2 ${ac_cv_func_accept_arg2})
	  set(ACCEPT_TYPE_ARG3 ${ac_cv_func_accept_arg3})
	  break()
	endif(AC_FUNC_ACCEPT)
      endforeach(ac_cv_func_accept_arg3)
      if(AC_FUNC_ACCEPT)
	break()
      endif(AC_FUNC_ACCEPT)
    endforeach(ac_cv_func_accept_arg2)
    if(AC_FUNC_ACCEPT)
      break()
    endif(AC_FUNC_ACCEPT)
  endforeach(ac_cv_func_accept_arg1)
  if(AC_FUNC_ACCEPT)
    break()
  endif(AC_FUNC_ACCEPT)
endforeach(ac_cv_func_accept_return)
unset(CMAKE_REQUIRED_QUIET)

if(NOT AC_FUNC_ACCEPT)
  message(ERROR "could not determine argument types")
endif(NOT AC_FUNC_ACCEPT)
if(ac_cv_func_accept_arg3 EQUAL "void")
  set(ac_cv_func_accept_arg3 "int")
endif(ac_cv_func_accept_arg3 EQUAL "void")

message(STATUS "Looking for accept function args - found ${ACCEPT_TYPE_RETURN}, ${ACCEPT_TYPE_ARG1}, ${ACCEPT_TYPE_ARG2}, ${ACCEPT_TYPE_ARG3} *")