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