summaryrefslogtreecommitdiff
path: root/infra/nncc/cmake/packages/GFlagsConfig.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'infra/nncc/cmake/packages/GFlagsConfig.cmake')
-rw-r--r--infra/nncc/cmake/packages/GFlagsConfig.cmake35
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()