summaryrefslogtreecommitdiff
path: root/infra/cmake/packages/GoogleDoubleConversionConfig.cmake
blob: 3fdc861026683c97b2cce2892ec412ca88df1673 (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
# https://github.com/google/double-conversion
set(GOOGLE_DOUBLE_CONVERSION_PREFIX "/usr" CACHE PATH "Google DoubleConversion install prefix")

function(_GoogleDoubleConversion_import)
  # Find the header & lib
  find_library(GoogleDoubleConversion_LIB
    NAMES double-conversion
    PATHS "${GOOGLE_DOUBLE_CONVERSION_PREFIX}/lib"
  )

  find_path(GoogleDoubleConversion_INCLUDE_DIR
    NAMES double-conversion/double-conversion.h
    PATHS "${GOOGLE_DOUBLE_CONVERSION_PREFIX}/include"
  )

  # TODO Version check
  set(GoogleDoubleConversion_FOUND TRUE)

  if(NOT GoogleDoubleConversion_LIB)
    set(GoogleDoubleConversion_FOUND FALSE)
  endif(NOT GoogleDoubleConversion_LIB)

  if(NOT GoogleDoubleConversion_INCLUDE_DIR)
    set(GoogleDoubleConversion_FOUND FALSE)
  endif(NOT GoogleDoubleConversion_INCLUDE_DIR)

  set(GoogleDoubleConversion_FOUND ${GoogleDoubleConversion_FOUND} PARENT_SCOPE)

  unset(MESSAGE)
  list(APPEND MESSAGE "Found Google Double Conversion")

  if(NOT GoogleDoubleConversion_FOUND)
    list(APPEND MESSAGE ": FALSE")
  else(NOT GoogleDoubleConversion_FOUND)
    list(APPEND MESSAGE " (include: ${GoogleDoubleConversion_INCLUDE_DIR} library: ${GoogleDoubleConversion_LIB})")

    # Add target
    if(NOT TARGET google_double_conversion)
      # NOTE IMPORTED target may be more appropriate for this case
      add_library(google_double_conversion INTERFACE)
      target_link_libraries(google_double_conversion INTERFACE ${GoogleDoubleConversion_LIB})
      target_include_directories(google_double_conversion INTERFACE ${GoogleDoubleConversion_INCLUDE_DIR})

      add_library(Google::DoubleConversion ALIAS google_double_conversion)
    endif(NOT TARGET google_double_conversion)
  endif(NOT GoogleDoubleConversion_FOUND)

  message(STATUS ${MESSAGE})
  set(GoogleDoubleConversion_FOUND ${GoogleDoubleConversion_FOUND} PARENT_SCOPE)
endfunction(_GoogleDoubleConversion_import)

_GoogleDoubleConversion_import()