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