xref: /aosp_15_r20/external/pytorch/cmake/Modules/FindGloo.cmake (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Worker# Try to find the Gloo library and headers.
2*da0073e9SAndroid Build Coastguard Worker#  Gloo_FOUND        - system has Gloo lib
3*da0073e9SAndroid Build Coastguard Worker#  Gloo_INCLUDE_DIRS - the Gloo include directory
4*da0073e9SAndroid Build Coastguard Worker#  Gloo_LIBRARY/Gloo_NATIVE_LIBRARY    - libraries needed to use Gloo
5*da0073e9SAndroid Build Coastguard Worker
6*da0073e9SAndroid Build Coastguard Workerfind_path(Gloo_INCLUDE_DIR
7*da0073e9SAndroid Build Coastguard Worker  NAMES gloo/common/common.h
8*da0073e9SAndroid Build Coastguard Worker  DOC "The directory where Gloo includes reside"
9*da0073e9SAndroid Build Coastguard Worker)
10*da0073e9SAndroid Build Coastguard Worker
11*da0073e9SAndroid Build Coastguard Workerfind_library(Gloo_NATIVE_LIBRARY
12*da0073e9SAndroid Build Coastguard Worker  NAMES gloo
13*da0073e9SAndroid Build Coastguard Worker  DOC "The Gloo library (without CUDA)"
14*da0073e9SAndroid Build Coastguard Worker)
15*da0073e9SAndroid Build Coastguard Worker
16*da0073e9SAndroid Build Coastguard Workerfind_library(Gloo_CUDA_LIBRARY
17*da0073e9SAndroid Build Coastguard Worker  NAMES gloo_cuda
18*da0073e9SAndroid Build Coastguard Worker  DOC "The Gloo library (with CUDA)"
19*da0073e9SAndroid Build Coastguard Worker)
20*da0073e9SAndroid Build Coastguard Worker
21*da0073e9SAndroid Build Coastguard Workerset(Gloo_INCLUDE_DIRS ${Gloo_INCLUDE_DIR})
22*da0073e9SAndroid Build Coastguard Worker
23*da0073e9SAndroid Build Coastguard Worker# use the CUDA library depending on the Gloo_USE_CUDA variable
24*da0073e9SAndroid Build Coastguard Workerif (DEFINED Gloo_USE_CUDA)
25*da0073e9SAndroid Build Coastguard Worker  if (${Gloo_USE_CUDA})
26*da0073e9SAndroid Build Coastguard Worker    set(Gloo_LIBRARY ${Gloo_CUDA_LIBRARY})
27*da0073e9SAndroid Build Coastguard Worker    set(Gloo_NATIVE_LIBRARY ${Gloo_NATIVE_LIBRARY})
28*da0073e9SAndroid Build Coastguard Worker  else()
29*da0073e9SAndroid Build Coastguard Worker    set(Gloo_LIBRARY ${Gloo_NATIVE_LIBRARY})
30*da0073e9SAndroid Build Coastguard Worker    set(Gloo_NATIVE_LIBRARY ${Gloo_NATIVE_LIBRARY})
31*da0073e9SAndroid Build Coastguard Worker  endif()
32*da0073e9SAndroid Build Coastguard Workerelse()
33*da0073e9SAndroid Build Coastguard Worker  # else try to use the CUDA library if found
34*da0073e9SAndroid Build Coastguard Worker  if (${Gloo_CUDA_LIBRARY} STREQUAL "Gloo_CUDA_LIBRARY-NOTFOUND")
35*da0073e9SAndroid Build Coastguard Worker    set(Gloo_LIBRARY ${Gloo_NATIVE_LIBRARY})
36*da0073e9SAndroid Build Coastguard Worker    set(Gloo_NATIVE_LIBRARY ${Gloo_NATIVE_LIBRARY})
37*da0073e9SAndroid Build Coastguard Worker  else()
38*da0073e9SAndroid Build Coastguard Worker    set(Gloo_LIBRARY ${Gloo_CUDA_LIBRARY})
39*da0073e9SAndroid Build Coastguard Worker    set(Gloo_NATIVE_LIBRARY ${Gloo_NATIVE_LIBRARY})
40*da0073e9SAndroid Build Coastguard Worker  endif()
41*da0073e9SAndroid Build Coastguard Workerendif()
42*da0073e9SAndroid Build Coastguard Worker
43*da0073e9SAndroid Build Coastguard Workerinclude(FindPackageHandleStandardArgs)
44*da0073e9SAndroid Build Coastguard Workerfind_package_handle_standard_args(Gloo
45*da0073e9SAndroid Build Coastguard Worker  FOUND_VAR Gloo_FOUND
46*da0073e9SAndroid Build Coastguard Worker  REQUIRED_VARS Gloo_INCLUDE_DIR Gloo_LIBRARY
47*da0073e9SAndroid Build Coastguard Worker)
48*da0073e9SAndroid Build Coastguard Worker
49*da0073e9SAndroid Build Coastguard Workermark_as_advanced(Gloo_FOUND)
50