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)
|