memaslap: mv src/bin/contrib => contrib/bin
[awesomized/libmemcached] / CMake / CheckDependency.cmake
index 1003d68c28b0e4d759186ff9ee08e9de619869be..f78390b4044fd8b6b9114a9e0bac501f82fc62e4 100644 (file)
@@ -3,55 +3,52 @@ find_package(PkgConfig)
 include(SafeString)
 include(CheckHeader)
 
-function(check_dependency_basic NAME LIB HEADER)
-       set(FOUND 1)
-       message("-- Checking for library '${LIB}' with header '${HEADER}' ...")
-       find_library(LIB${LIB} NAMES ${LIB})
-       if(NOT LIB${LIB})
-               set(FOUND 0)
-       endif()
-       if(HEADER)
-               safe_string(${HEADER} HEADER_CONST)
-               check_header(${HEADER})
-               if(NOT HAVE_${HEADER_CONST})
-                       set(FOUND 0)
-               else()
-                       find_path(${HEADER_CONST}_ROOT ${HEADER})
-                       if(NOT ${HEADER_CONST}_ROOT)
-                               set(FOUND 0)
-                       endif()
-               endif()
-       endif()
-       if(FOUND)
-               message("--   Found library '${LIB${LIB}}'")
-               message("--   Found include '${${HEADER_CONST}_ROOT}'")
-       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)
-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})
+            pkg_check_modules(${NAME} ${LIB}${ARGN} IMPORTED_TARGET)
+        endif()
+        if(${NAME}_FOUND)
+            set(${NAME} PkgConfig::${NAME} PARENT_SCOPE)
+        endif()
+    endif()
+    if(NOT ${NAME}_FOUND)
+        set(FOUND 1)
+        message(STATUS "Checking for library '${LIB}' with header '${HEADER}' ...")
+        find_library(LIB${LIB} NAMES ${LIB})
+        if(NOT LIB${LIB})
+            set(FOUND 0)
+        endif()
+        if(HEADER)
+            safe_string(${HEADER} HEADER_CONST)
+            check_header(${HEADER})
+            if(NOT HAVE_${HEADER_CONST})
+                set(FOUND 0)
+            else()
+                find_path(${HEADER_CONST}_ROOT ${HEADER})
+                if(NOT ${HEADER_CONST}_ROOT)
+                    set(FOUND 0)
+                endif()
+            endif()
         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(FOUND)
+            message(STATUS "  Found library '${LIB${LIB}}'")
+            message(STATUS "  Found include '${${HEADER_CONST}_ROOT}'")
+            set(${NAME} Imported::${NAME} PARENT_SCOPE)
+            add_library(Imported::${NAME} INTERFACE IMPORTED)
+            set_target_properties(Imported::${NAME} PROPERTIES
+                    INTERFACE_INCLUDE_DIRECTORIES ${${HEADER_CONST}_ROOT}
+                    INTERFACE_LINK_LIBRARIES ${LIB${LIB}})
+        else()
+            message("--   No library '${LIB}' found")
+        endif()
+        set(${NAME}_FOUND ${FOUND})
+    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()