1find_package(PkgConfig QUIET) 2pkg_check_modules(libdl QUIET "libdl") 3 4include(FindPackageHandleStandardArgs) 5find_path(LIBDL_INCLUDE_DIR 6 NAMES 7 dlfcn.h 8 PATH 9 include 10) 11find_library(LIBDL_LIBRARY 12 dl 13 PATH_SUFFIXES 14 lib64 15 lib 16) 17find_package_handle_standard_args(libdl 18 DEFAULT_MSGS 19 LIBDL_INCLUDE_DIR 20 LIBDL_LIBRARY 21) 22mark_as_advanced( 23 LIBDL_INCLUDE_DIR 24 LIBDL_LIBRARY 25) 26 27if (libdl_FOUND) 28 set(LIBDL_LIBRARIES ${LIBDL_LIBRARY}) 29 set(LIBDL_INCLUDE_DIRS ${LIBDL_INCLUDE_DIR}) 30 set(LIBDL_CFLAGS "-DHAS_LIBDL") 31 32 if (LIBDL_LIBRARY AND NOT TARGET libdl::libdl) 33 if(IS_ABSOLUTE "${LIBDL_LIBRARY}") 34 add_library(libdl::libdl UNKNOWN IMPORTED) 35 set_target_properties(libdl::libdl PROPERTIES IMPORTED_LOCATION 36 "${LIBDL_LIBRARY}") 37 else() 38 add_library(libdl::libdl INTERFACE IMPORTED) 39 set_target_properties(libdl::libdl PROPERTIES IMPORTED_LIBNAME 40 "${LIBDL_LIBRARY}") 41 endif() 42 set_target_properties(libdl::libdl PROPERTIES INTERFACE_INCLUDE_DIRECTORIES 43 "${LIBDL_INCLUDE_DIR}") 44 endif() 45endif() 46