| # - 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 | |
| # Utils functions. | |
| include("${CMAKE_CURRENT_LIST_DIR}/public/utils.cmake") | |
| # Depending on whether Caffe2 uses gflags during compile time or | |
| # not, invoke gflags. | |
| if(@USE_GFLAGS@) | |
| 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(@USE_GLOG@) | |
| 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(@CAFFE2_LINK_LOCAL_PROTOBUF@) | |
| 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(@CAFFE2_KNOWN_PROTOBUF_VERSION@) | |
| if(NOT (${Protobuf_VERSION} VERSION_EQUAL @Protobuf_VERSION@)) | |
| message(FATAL_ERROR | |
| "Your installed Caffe2 is built with protobuf " | |
| "@Protobuf_VERSION@" | |
| ", 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 (@USE_ROCM@) | |
| include("${CMAKE_CURRENT_LIST_DIR}/public/LoadHIP.cmake") | |
| endif() | |
| if(@USE_CUDA@) | |
| # 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 @USE_CUDA@) | |
| # Add current directory to module path so we pick up FindCUDAToolkit.cmake | |
| set(old_CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}") | |
| list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") | |
| include("${CMAKE_CURRENT_LIST_DIR}/public/cuda.cmake") | |
| set(CMAKE_MODULE_PATH "${old_CMAKE_MODULE_PATH}") | |
| if(@CAFFE2_USE_CUDA@ 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() | |
| endif() | |
| if(@USE_XPU@) | |
| # Add current directory to module path so we pick up FindSYCLToolkit.cmake | |
| set(old_CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}") | |
| list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") | |
| include("${CMAKE_CURRENT_LIST_DIR}/public/xpu.cmake") | |
| set(CMAKE_MODULE_PATH "${old_CMAKE_MODULE_PATH}") | |
| endif() | |
| if(@CAFFE2_USE_MKL@) | |
| include("${CMAKE_CURRENT_LIST_DIR}/public/mkl.cmake") | |
| endif() | |
| if(@USE_MKLDNN@) | |
| 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") |