summaryrefslogtreecommitdiff
path: root/infra/nncc/cmake/packages/GFlagsConfig.cmake
blob: 891320a95a6d93ebde17103fb33c51cf65bcaae0 (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
function(_GFlags_import)
  if(TARGET gflags)
    set(GFlags_FOUND True PARENT_SCOPE)
    return()
  endif()

  nncc_find_package(GFlagsSource QUIET)

  if(GFlagsSource_FOUND)
    nncc_include(ExternalProjectTools)
    # build shared multi-threading gflag library
    set(BUILD_SHARED_LIBS On)
    set(BUILD_STATIC_LIBS Off)
    set(BUILD_gflags_LIB On)
    set(BUILD_gflags_nothreads_LIB Off)
    add_extdirectory(${GFLAGS_SOURCE_DIR} gflags)
  else(GFlagsSource_FOUND)
    set(GFLAGS_ROOT_DIR "" CACHE PATH "Folder contains GFlags")
    find_path(GFLAGS_INCLUDE_DIR gflags/gflags.h PATHS ${GFLAGS_ROOT_DIR})
    find_library(GFLAGS_LIBRARY gflags)

    if(NOT GFLAGS_INCLUDE_DIR)
      set(GFlags_FOUND False PARENT_SCOPE)
      return()
    endif(NOT GFLAGS_INCLUDE_DIR)

    add_library(gflags INTERFACE)
    target_include_directories(gflags INTERFACE ${GFLAGS_INCLUDE_DIR})
    target_link_libraries(gflags INTERFACE ${GFLAGS_LIBRARY})
  endif(GFlagsSource_FOUND)

  set(GFlags_FOUND True PARENT_SCOPE)
endfunction(_GFlags_import)

_GFlags_import()