cmake
[awesomized/libmemcached] / CMake / CheckDependency.cmake
index 862321fb4e2dd85c71d29f46d14a6d9a612ea08f..bb6fd7d0a68c9f5986b1cca6091e541858407641 100644 (file)
@@ -25,33 +25,34 @@ function(check_dependency_basic NAME LIB HEADER)
        if(FOUND)
                message("--   Found library '${LIB${LIB}}'")
                message("--   Found include '${${HEADER_CONST}_ROOT}'")
+        set(${NAME} ${NAME} PARENT_SCOPE)
+        add_library(${NAME} INTERFACE IMPORTED)
+        set_target_properties(${NAME} PROPERTIES
+                INTERFACE_INCLUDE_DIRECTORIES ${${HEADER_CONST}_ROOT}
+                INTERFACE_LINK_LIBRARIES ${LIB${LIB}})
        else()
                message("--   No library '${LIB}' found")
        endif()
-       set(${NAME} ${FOUND} PARENT_SCOPE)
-       set(${NAME}_LIBRARIES ${LIB${LIB}} PARENT_SCOPE)
-       set(${NAME}_INCLUDEDIR ${${HEADER_CONST}_ROOT} PARENT_SCOPE)
+       set(${NAME}_FOUND ${FOUND} PARENT_SCOPE)
 endfunction()
 
 function(check_dependency NAME LIB HEADER)
     if(PKG_CONFIG_FOUND)
-        pkg_check_modules(${NAME} lib${LIB}${ARGN})
+        pkg_check_modules(${NAME} lib${LIB}${ARGN} IMPORTED_TARGET)
         if(NOT ${NAME}_FOUND)
             pkg_check_modules(${NAME} ${LIB}${ARGN})
         endif()
-               if(NOT ${NAME}_FOUND)
-                       check_dependency_basic(${NAME} ${LIB} ${HEADER})
-               else()
-                       set(${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
-                       set(${NAME}_LIBRARIES ${${NAME}_LDFLAGS} PARENT_SCOPE)
-                       set(${NAME}_INCLUDEDIR ${${NAME}_INCLUDEDIR} PARENT_SCOPE)
+        if(${NAME}_FOUND)
+            set(${NAME} PkgConfig::${NAME} PARENT_SCOPE)
+        endif()
+    endif()
+    if(NOT ${NAME}_FOUND)
+        check_dependency_basic(${NAME} ${LIB} ${HEADER})
+    endif()
 
-                       safe_string(${LIB} LIB_CONST)
-                       set(HAVE_${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
-                       safe_string(${HEADER} HEADER_CONST)
-                       find_path(HAVE_${HEADER_CONST} ${HEADER} PATHS ${${NAME}_INCLUDEDIR})
-               endif()
-    else()
-               check_dependency_basic(${NAME} ${LIB} ${HEADER})
+    set(HAVE_${NAME} ${${NAME}_FOUND} PARENT_SCOPE)
+    if(${NAME}_FOUND)
+        safe_string(${HEADER} HEADER_CONST)
+        find_path(HAVE_${HEADER_CONST} ${HEADER} PATHS ${${NAME}_INCLUDEDIR})
     endif()
 endfunction()