# ---[ gflags # We will try to use the config mode first, and then manual find. find_package(gflags CONFIG QUIET) if(NOT TARGET gflags) find_package(gflags MODULE QUIET) endif() if(TARGET gflags) message(STATUS "Caffe2: Found gflags with new-style gflags target.") elseif(GFLAGS_FOUND) message(STATUS "Caffe2: Found gflags with old-style gflag starget.") add_library(gflags UNKNOWN IMPORTED) set_property( TARGET gflags PROPERTY IMPORTED_LOCATION ${GFLAGS_LIBRARY}) set_property( TARGET gflags PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GFLAGS_INCLUDE_DIR}) else() message(STATUS "Caffe2: Cannot find gflags automatically. Using legacy find.") # - Try to find GFLAGS in the legacy way. # # The following variables are optionally searched for defaults # GFLAGS_ROOT_DIR: Base directory where all GFLAGS components are found # # The following are set after configuration is done: # GFLAGS_FOUND # GFLAGS_INCLUDE_DIRS # GFLAGS_LIBRARIES # GFLAGS_LIBRARYRARY_DIRS include(FindPackageHandleStandardArgs) set(GFLAGS_ROOT_DIR "" CACHE PATH "Folder contains Gflags") # We are testing only a couple of files in the include directories if(WIN32) find_path(GFLAGS_INCLUDE_DIR gflags/gflags.h PATHS ${GFLAGS_ROOT_DIR}/src/windows) else() find_path(GFLAGS_INCLUDE_DIR gflags/gflags.h PATHS ${GFLAGS_ROOT_DIR}) endif() if(WIN32) find_library(GFLAGS_LIBRARY_RELEASE NAMES libgflags PATHS ${GFLAGS_ROOT_DIR} PATH_SUFFIXES Release) find_library(GFLAGS_LIBRARY_DEBUG NAMES libgflags-debug PATHS ${GFLAGS_ROOT_DIR} PATH_SUFFIXES Debug) set(GFLAGS_LIBRARY optimized ${GFLAGS_LIBRARY_RELEASE} debug ${GFLAGS_LIBRARY_DEBUG}) else() find_library(GFLAGS_LIBRARY gflags) endif() find_package_handle_standard_args( gflags DEFAULT_MSG GFLAGS_INCLUDE_DIR GFLAGS_LIBRARY) if(GFLAGS_FOUND) message( STATUS "Caffe2: Found gflags (include: ${GFLAGS_INCLUDE_DIR}, " "library: ${GFLAGS_LIBRARY})") add_library(gflags UNKNOWN IMPORTED) set_property( TARGET gflags PROPERTY IMPORTED_LOCATION ${GFLAGS_LIBRARY}) set_property( TARGET gflags PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${GFLAGS_INCLUDE_DIR}) endif() endif() # After above, we should have the gflags target now. if(NOT TARGET gflags) message(WARNING "Caffe2: gflags cannot be found. Depending on whether you are building " "Caffe2 or a Caffe2 dependent library, the next warning / error will " "give you more info.") endif()