Squashed 'third_party/google-glog/' content from commit 5d46e1b
Change-Id: I4d7d0b2759aa01069e6990109ae0f5f9897512c4
git-subtree-dir: third_party/google-glog
git-subtree-split: 5d46e1bcfc92bf06a9ca3b3f1c5bb1dc024d9ecd
diff --git a/cmake/DetermineGflagsNamespace.cmake b/cmake/DetermineGflagsNamespace.cmake
new file mode 100755
index 0000000..3dde42b
--- /dev/null
+++ b/cmake/DetermineGflagsNamespace.cmake
@@ -0,0 +1,69 @@
+macro(determine_gflags_namespace VARIABLE)
+ if (NOT DEFINED "${VARIABLE}")
+ if (CMAKE_REQUIRED_INCLUDES)
+ set (CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
+ else ()
+ set (CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS)
+ endif ()
+
+ set(MACRO_CHECK_INCLUDE_FILE_FLAGS ${CMAKE_REQUIRED_FLAGS})
+
+ set(_NAMESPACES gflags google)
+ set(_check_code
+"
+#include <gflags/gflags.h>
+
+int main(int argc, char**argv)
+{
+ GLOG_GFLAGS_NAMESPACE::ParseCommandLineFlags(&argc, &argv, true);
+}
+")
+ if (NOT CMAKE_REQUIRED_QUIET)
+ message (STATUS "Looking for gflags namespace")
+ endif ()
+ if (${ARGC} EQUAL 3)
+ set (CMAKE_CXX_FLAGS_SAVE ${CMAKE_CXX_FLAGS})
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARGV2}")
+ endif ()
+
+ set (_check_file
+ ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/DetermineGflagsNamespace.cxx)
+
+ foreach (_namespace ${_NAMESPACES})
+ file (WRITE "${_check_file}" "${_check_code}")
+ try_compile (${VARIABLE}
+ "${CMAKE_BINARY_DIR}" "${_check_file}"
+ COMPILE_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}" -DGLOG_GFLAGS_NAMESPACE=${_namespace}
+ LINK_LIBRARIES gflags
+ CMAKE_FLAGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ OUTPUT_VARIABLE OUTPUT)
+
+ if (${VARIABLE})
+ set (${VARIABLE} ${_namespace} CACHE INTERNAL "gflags namespace" FORCE)
+ break ()
+ else ()
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Determining the gflags namespace ${_namespace} failed with the following output:\n"
+ "${OUTPUT}\n\n")
+ endif ()
+ endforeach (_namespace)
+
+ if (${ARGC} EQUAL 3)
+ set (CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS_SAVE})
+ endif ()
+
+ if (${VARIABLE})
+ if (NOT CMAKE_REQUIRED_QUIET)
+ message (STATUS "Looking for gflags namespace - ${${VARIABLE}}")
+ endif ()
+ file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Determining the gflags namespace passed with the following output:\n"
+ "${OUTPUT}\n\n")
+ else ()
+ if (NOT CMAKE_REQUIRED_QUIET)
+ message (STATUS "Looking for gflags namespace - failed")
+ endif ()
+ set (${VARIABLE} ${_namespace} CACHE INTERNAL "gflags namespace")
+ endif ()
+ endif ()
+endmacro ()