diff options
Diffstat (limited to 'infra/nncc/cmake/packages/GFlagsConfig.cmake')
-rw-r--r-- | infra/nncc/cmake/packages/GFlagsConfig.cmake | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/infra/nncc/cmake/packages/GFlagsConfig.cmake b/infra/nncc/cmake/packages/GFlagsConfig.cmake new file mode 100644 index 000000000..891320a95 --- /dev/null +++ b/infra/nncc/cmake/packages/GFlagsConfig.cmake @@ -0,0 +1,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() |