summaryrefslogtreecommitdiff
path: root/infra/cmake/packages/GoogleNSyncConfig.cmake
blob: 1fdf8cc200f9969f71ccc46b4c056437e0490700 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# https://github.com/google/nsync
set(GOOGLE_NSYNC_PREFIX "/usr" CACHE PATH "Where to find Google NSync library")

function(_GoogleNSync_import)
  # Find the header & lib
  find_library(GoogleNSync_C_LIB
    NAMES nsync
    PATHS "${GOOGLE_NSYNC_PREFIX}/lib"
  )

  find_library(GoogleNSync_CPP_LIB
    NAMES nsync_cpp
    PATHS "${GOOGLE_NSYNC_PREFIX}/lib"
  )

  find_path(GoogleNSync_INCLUDE_DIR
    NAMES nsync.h
    PATHS "${GOOGLE_NSYNC_PREFIX}/include"
  )

  message(STATUS "GoogleNSync_C_LIB: ${GoogleNSync_C_LIB}")
  message(STATUS "GoogleNSync_CPP_LIB: ${GoogleNSync_CPP_LIB}")
  message(STATUS "GoogleNSync_INCLUDE_DIR: ${GoogleNSync_INCLUDE_DIR}")

  set(GoogleNSync_FOUND TRUE)

  if(NOT GoogleNSync_C_LIB)
    set(GoogleNSync_FOUND FALSE)
  endif(NOT GoogleNSync_C_LIB)

  if(NOT GoogleNSync_CPP_LIB)
    set(GoogleNSync_FOUND FALSE)
  endif(NOT GoogleNSync_CPP_LIB)

  if(NOT GoogleNSync_INCLUDE_DIR)
    set(GoogleNSync_FOUND FALSE)
  endif(NOT GoogleNSync_INCLUDE_DIR)

  unset(MESSAGE)
  list(APPEND MESSAGE "Found Google NSync")

  if(NOT GoogleNSync_FOUND)
    list(APPEND MESSAGE ": FALSE")
  else(NOT GoogleNSync_FOUND)
    list(APPEND MESSAGE " (include: ${GoogleNSync_INCLUDE_DIR} library: ${GoogleNSync_C_LIB} ${GoogleNSync_CPP_LIB})")

    # Add target
    if(NOT TARGET google_nsync)
      # NOTE IMPORTED target may be more appropriate for this case
      add_library(google_nsync INTERFACE)
      target_link_libraries(google_nsync INTERFACE ${GoogleNSync_C_LIB} ${GoogleNSync_CPP_LIB})
      target_include_directories(google_nsync INTERFACE ${GoogleNSync_INCLUDE_DIR})

      add_library(Google::NSync ALIAS google_nsync)
    endif(NOT TARGET google_nsync)
  endif(NOT GoogleNSync_FOUND)

  message(STATUS ${MESSAGE})
  set(GoogleNSync_FOUND ${GoogleNSync_FOUND} PARENT_SCOPE)
endfunction(_GoogleNSync_import)

_GoogleNSync_import()