46 lines
1.1 KiB
CMake
46 lines
1.1 KiB
CMake
find_package(PkgConfig QUIET)
|
|
pkg_check_modules(libdl QUIET "libdl")
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_path(LIBDL_INCLUDE_DIR
|
|
NAMES
|
|
dlfcn.h
|
|
PATH
|
|
include
|
|
)
|
|
find_library(LIBDL_LIBRARY
|
|
dl
|
|
PATH_SUFFIXES
|
|
lib64
|
|
lib
|
|
)
|
|
find_package_handle_standard_args(libdl
|
|
DEFAULT_MSGS
|
|
LIBDL_INCLUDE_DIR
|
|
LIBDL_LIBRARY
|
|
)
|
|
mark_as_advanced(
|
|
LIBDL_INCLUDE_DIR
|
|
LIBDL_LIBRARY
|
|
)
|
|
|
|
if (libdl_FOUND)
|
|
set(LIBDL_LIBRARIES ${LIBDL_LIBRARY})
|
|
set(LIBDL_INCLUDE_DIRS ${LIBDL_INCLUDE_DIR})
|
|
set(LIBDL_CFLAGS "-DHAS_LIBDL")
|
|
|
|
if (LIBDL_LIBRARY AND NOT TARGET libdl::libdl)
|
|
if(IS_ABSOLUTE "${LIBDL_LIBRARY}")
|
|
add_library(libdl::libdl UNKNOWN IMPORTED)
|
|
set_target_properties(libdl::libdl PROPERTIES IMPORTED_LOCATION
|
|
"${LIBDL_LIBRARY}")
|
|
else()
|
|
add_library(libdl::libdl INTERFACE IMPORTED)
|
|
set_target_properties(libdl::libdl PROPERTIES IMPORTED_LIBNAME
|
|
"${LIBDL_LIBRARY}")
|
|
endif()
|
|
set_target_properties(libdl::libdl PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
|
|
"${LIBDL_INCLUDE_DIR}")
|
|
endif()
|
|
endif()
|