123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- # - Config file for the Caffe2 package
- # It defines the following variable(s)
- # CAFFE2_INCLUDE_DIRS - include directories for FooBar
- # as well as Caffe2 targets for other cmake libraries to use.
- # library version information
- set(CAFFE2_VERSION_MAJOR 2)
- set(CAFFE2_VERSION_MINOR 0)
- set(CAFFE2_VERSION_PATCH 0)
- set(CAFFE2_VERSION "2.0.0")
- # Utils functions.
- include("${CMAKE_CURRENT_LIST_DIR}/public/utils.cmake")
- # Depending on whether Caffe2 uses gflags during compile time or
- # not, invoke gflags.
- if(OFF)
- include("${CMAKE_CURRENT_LIST_DIR}/public/gflags.cmake")
- if(NOT TARGET gflags)
- message(FATAL_ERROR
- "Your installed Caffe2 version uses gflags but the gflags library "
- "cannot be found. Did you accidentally remove it, or have you set "
- "the right CMAKE_PREFIX_PATH and/or GFLAGS_ROOT_DIR? If you do not "
- "have gflags, you will need to install gflags and set the library "
- "path accordingly.")
- endif()
- endif()
- # Depending on whether Caffe2 uses glog during compile time or
- # not, invoke glog.
- if(OFF)
- include("${CMAKE_CURRENT_LIST_DIR}/public/glog.cmake")
- if(NOT TARGET glog::glog)
- message(FATAL_ERROR
- "Your installed Caffe2 version uses glog but the glog library "
- "cannot be found. Did you accidentally remove it, or have you set "
- "the right CMAKE_PREFIX_PATH and/or GFLAGS_ROOT_DIR? If you do not "
- "have glog, you will need to install glog and set the library "
- "path accordingly.")
- endif()
- endif()
- # Protobuf
- if(ON)
- if(NOT TARGET protobuf::libprotobuf)
- # Define protobuf::libprotobuf as a dummy target to resolve references to
- # protobuf::libprotobuf in Caffe2Targets.cmake.
- add_library(dummy INTERFACE)
- add_library(protobuf::libprotobuf ALIAS dummy)
- endif()
- else()
- include("${CMAKE_CURRENT_LIST_DIR}/public/protobuf.cmake")
- if(NOT TARGET protobuf::libprotobuf)
- message(FATAL_ERROR
- "Your installed Caffe2 version uses protobuf but the protobuf library "
- "cannot be found. Did you accidentally remove it, or have you set "
- "the right CMAKE_PREFIX_PATH? If you do not have protobuf, you will "
- "need to install protobuf and set the library path accordingly.")
- endif()
- message(STATUS "Caffe2: Protobuf version " ${Protobuf_VERSION})
- # If during build time we know the protobuf version, we will also do a sanity
- # check to ensure that the protobuf library that Caffe2 found is consistent
- # with the compiled version.
- if(FALSE)
- if(NOT (${Protobuf_VERSION} VERSION_EQUAL Protobuf_VERSION_NOTFOUND))
- message(FATAL_ERROR
- "Your installed Caffe2 is built with protobuf "
- "Protobuf_VERSION_NOTFOUND"
- ", while your current cmake setting discovers protobuf version "
- ${Protobuf_VERSION}
- ". Please specify a protobuf version that is the same as the built "
- "version.")
- endif()
- endif()
- endif()
- if (OFF)
- include("${CMAKE_CURRENT_LIST_DIR}/public/LoadHIP.cmake")
- endif()
- if(ON)
- # The file public/cuda.cmake exclusively uses CAFFE2_USE_*.
- # If Caffe2 was compiled with the libraries below, they must
- # be found again when including the Caffe2 target.
- set(CAFFE2_USE_CUDA ON)
- set(CAFFE2_USE_TENSORRT OFF)
- include("${CMAKE_CURRENT_LIST_DIR}/public/cuda.cmake")
- if(ON AND NOT CAFFE2_USE_CUDA)
- message(FATAL_ERROR
- "Your installed Caffe2 version uses CUDA but I cannot find the CUDA "
- "libraries. Please set the proper CUDA prefixes and / or install "
- "CUDA.")
- endif()
- if(OFF AND NOT CAFFE2_USE_TENSORRT)
- message(FATAL_ERROR
- "Your installed Caffe2 version uses TensorRT but I cannot find the TensorRT "
- "libraries. Please set the proper TensorRT prefixes and / or install "
- "TensorRT.")
- endif()
- endif()
- include("${CMAKE_CURRENT_LIST_DIR}/public/mkl.cmake")
- if(OFF)
- include("${CMAKE_CURRENT_LIST_DIR}/public/mkldnn.cmake")
- endif()
- # import targets
- include ("${CMAKE_CURRENT_LIST_DIR}/Caffe2Targets.cmake")
- # Interface libraries, that allows one to build proper link flags.
- # We will also define a helper variable, Caffe2_MAIN_LIBS, that resolves to
- # the main caffe2 libraries in cases of cuda presence / absence.
- set(Caffe2_MAIN_LIBS torch_library)
- # include directory.
- #
- # Newer versions of CMake set the INTERFACE_INCLUDE_DIRECTORIES property
- # of the imported targets. It is hence not necessary to add this path
- # manually to the include search path for targets which link to gflags.
- # The following lines are here for backward compatibility, in case one
- # would like to use the old-style include path.
- get_filename_component(
- CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
- # Note: the current list dir is _INSTALL_PREFIX/share/cmake/Gloo.
- get_filename_component(
- _INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
- set(CAFFE2_INCLUDE_DIRS "${_INSTALL_PREFIX}/include")
|