File: FindLibUUID.cmake

package info (click to toggle)
swi-prolog 9.0.4%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 82,408 kB
  • sloc: ansic: 387,503; perl: 359,326; cpp: 6,613; lisp: 6,247; java: 5,540; sh: 3,147; javascript: 2,668; python: 1,900; ruby: 1,594; yacc: 845; makefile: 428; xml: 317; sed: 12; sql: 6
file content (82 lines) | stat: -rw-r--r-- 2,276 bytes parent folder | download
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
if(NOT UUID_LIBRARY)

if(EXISTS ${LibUUID_ROOT}/bin/uuid-config)
  set(UUID_CONFIG ${LibUUID_ROOT}/bin/uuid-config CACHE FILEPATH
      "Path name for ossp-uuid library config tool")
else()
  find_program(
      UUID_CONFIG
      uuid-config
      PATH_SUFFIXES ""
      DOC "OSSP uuid config tool")
endif()
mark_as_advanced(UUID_CONFIG)

if(UUID_CONFIG)
  message("-- Using ${UUID_CONFIG} to find ossp-uuid")
  exec_program(${UUID_CONFIG} ARGS --version OUTPUT_VARIABLE UUID_VERSION)
  if(UUID_VERSION MATCHES "OSSP")
    exec_program(${UUID_CONFIG} ARGS --includedir
		 OUTPUT_VARIABLE LIBUUID_INCLUDE_DIR)
    exec_program(${UUID_CONFIG} ARGS --libdir
		 OUTPUT_VARIABLE LIBUUID_LIBRARY_DIR)
    exec_program(${UUID_CONFIG} ARGS --libs
		 OUTPUT_VARIABLE LIBUUID_LIBFLAG)

    string(REPLACE "-l" "" LIBUUID_LIB ${LIBUUID_LIBFLAG})
    find_library(UUID_LIBRARY
		 NAMES ${LIBUUID_LIB}
		 PATHS ${LIBUUID_LIBRARY_DIR}
		 NO_DEFAULT_PATH)
    if(NOT UUID_LIBRARY AND LIBUUID_LIB MATCHES "ossp")
      find_library(UUID_LIBRARY
		   NAMES ${LIBUUID_LIB}
		   PATHS ${LIBUUID_LIBRARY_DIR})
    endif()

    set(LIBUUID_INCLUDE_DIR ${LIBUUID_INCLUDE_DIR} CACHE INTERNAL
	"Directory holding OSSP UUID <uuid.h>")
  else()
    set(UUID_CONFIG "")
  endif()
endif()

if(NOT UUID_CONFIG)

find_package(PkgConfig QUIET)
pkg_check_modules(PC_LIBUUID QUIET ossp-uuid)

find_path(LIBUUID_INCLUDE_DIR
	  NAMES uuid.h
	  PATH_SUFFIXES ossp
	  HINTS ${PC_LIBUUID_INCLUDEDIR}
	        ${PC_LIBUUID_INCLUDE_DIRS})

# MinGW version seems very aggressive finding uuid.h from our version,
# but libuuid.a from the system directory.  As ossp-uuid is not part
# of most defaults, we'll try ignoring this.

string(REPLACE "/include" "/lib" i_libuuid_libdir ${LIBUUID_INCLUDE_DIR})
find_library(UUID_LIBRARY
	     NAMES ossp-uuid uuid
	     HINTS ${i_libuuid_libdir}
	           ${PC_LIBUUID_LIBDIR}
	           ${PC_LIBUUID_LIBRARY_DIRS}
	     NO_CMAKE_SYSTEM_PATH)
if(NOT UUID_LIBRARY)
  find_library(UUID_LIBRARY
	       NAMES ossp-uuid uuid)
endif()

endif(NOT UUID_CONFIG)

mark_as_advanced(LIBUUID_INCLUDE_DIR
		 UUID_LIBRARY)

endif(NOT UUID_LIBRARY)

include(FindPackageHandleStandardArgs)

find_package_handle_standard_args(
    LibUUID
    REQUIRED_VARS LIBUUID_INCLUDE_DIR UUID_LIBRARY)