Blame cmake/DetermineGflagsNamespace.cmake

Packit Service 9def5d
macro(determine_gflags_namespace VARIABLE)
Packit Service 9def5d
  if (NOT DEFINED "${VARIABLE}")
Packit Service 9def5d
    if (CMAKE_REQUIRED_INCLUDES)
Packit Service 9def5d
      set (CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
Packit Service 9def5d
    else ()
Packit Service 9def5d
      set (CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS)
Packit Service 9def5d
    endif ()
Packit Service 9def5d
Packit Service 9def5d
    set(MACRO_CHECK_INCLUDE_FILE_FLAGS ${CMAKE_REQUIRED_FLAGS})
Packit Service 9def5d
Packit Service 9def5d
    set(_NAMESPACES gflags google)
Packit Service 9def5d
    set(_check_code
Packit Service 9def5d
"
Packit Service 9def5d
#include <gflags/gflags.h>
Packit Service 9def5d
Packit Service 9def5d
int main(int argc, char**argv)
Packit Service 9def5d
{
Packit Service 9def5d
  GFLAGS_NAMESPACE::ParseCommandLineFlags(&argc, &argv, true);
Packit Service 9def5d
}
Packit Service 9def5d
")
Packit Service 9def5d
    if (NOT CMAKE_REQUIRED_QUIET)
Packit Service 9def5d
      message (STATUS "Looking for gflags namespace")
Packit Service 9def5d
    endif ()
Packit Service 9def5d
    if (${ARGC} EQUAL 3)
Packit Service 9def5d
      set (CMAKE_CXX_FLAGS_SAVE ${CMAKE_CXX_FLAGS})
Packit Service 9def5d
      set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARGV2}")
Packit Service 9def5d
    endif ()
Packit Service 9def5d
Packit Service 9def5d
    set (_check_file
Packit Service 9def5d
        ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/DetermineGflagsNamespace.cxx)
Packit Service 9def5d
Packit Service 9def5d
    foreach (_namespace ${_NAMESPACES})
Packit Service 9def5d
      file (WRITE "${_check_file}" "${_check_code}")
Packit Service 9def5d
      try_compile (${VARIABLE}
Packit Service 9def5d
        "${CMAKE_BINARY_DIR}" "${_check_file}"
Packit Service 9def5d
        COMPILE_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}" -DGFLAGS_NAMESPACE=${_namespace}
Packit Service 9def5d
        LINK_LIBRARIES "${gflags_LIBRARIES}"
Packit Service 9def5d
        CMAKE_FLAGS -DINCLUDE_DIRECTORIES:STRING="${gflags_INCLUDE_DIR}"
Packit Service 9def5d
        OUTPUT_VARIABLE OUTPUT)
Packit Service 9def5d
Packit Service 9def5d
      if (${VARIABLE})
Packit Service 9def5d
        set (${VARIABLE} ${_namespace} CACHE INTERNAL "gflags namespace" FORCE)
Packit Service 9def5d
        break ()
Packit Service 9def5d
      else ()
Packit Service 9def5d
        file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
Packit Service 9def5d
          "Determining the gflags namespace ${_namespace} failed with the following output:\n"
Packit Service 9def5d
          "${OUTPUT}\n\n")
Packit Service 9def5d
      endif ()
Packit Service 9def5d
    endforeach (_namespace)
Packit Service 9def5d
Packit Service 9def5d
    if (${ARGC} EQUAL 3)
Packit Service 9def5d
      set (CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS_SAVE})
Packit Service 9def5d
    endif ()
Packit Service 9def5d
Packit Service 9def5d
    if (${VARIABLE})
Packit Service 9def5d
      if (NOT CMAKE_REQUIRED_QUIET)
Packit Service 9def5d
        message (STATUS "Looking for gflags namespace - ${${VARIABLE}}")
Packit Service 9def5d
      endif ()
Packit Service 9def5d
      file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
Packit Service 9def5d
        "Determining the gflags namespace passed with the following output:\n"
Packit Service 9def5d
        "${OUTPUT}\n\n")
Packit Service 9def5d
    else ()
Packit Service 9def5d
      if (NOT CMAKE_REQUIRED_QUIET)
Packit Service 9def5d
        message (STATUS "Looking for gflags namespace - failed")
Packit Service 9def5d
      endif ()
Packit Service 9def5d
      set (${VARIABLE} ${_namespace} CACHE INTERNAL "gflags namespace")
Packit Service 9def5d
    endif ()
Packit Service 9def5d
  endif ()
Packit Service 9def5d
endmacro ()