fix: GFLAGS_* variables take precedence in gflags_define
diff --git a/cmake/utils.cmake b/cmake/utils.cmake
index d039e5c..0b8333a 100644
--- a/cmake/utils.cmake
+++ b/cmake/utils.cmake
@@ -65,16 +65,18 @@
message (FATAL_ERROR "gflags_variable: Too many macro arguments")
endif ()
if (NOT DEFINED GFLAGS_${varname})
- if (GFLAGS_IS_SUBPROJECT AND "${ARGC}" EQUAL 5)
- set (GFLAGS_${varname} "${ARGV4}")
+ if (DEFINED ${varname})
+ set(GFLAGS_${varname} "${${varname}}")
else ()
- set (GFLAGS_${varname} "${default}")
+ if (GFLAGS_IS_SUBPROJECT AND "${ARGC}" EQUAL 5)
+ set (GFLAGS_${varname} "${ARGV4}")
+ else ()
+ set (GFLAGS_${varname} "${default}")
+ endif ()
endif ()
endif ()
if (GFLAGS_IS_SUBPROJECT)
- if (NOT DEFINED ${varname})
- set (${varname} "${GFLAGS_${varname}}")
- endif ()
+ set (${varname} "${GFLAGS_${varname}}")
else ()
set (${varname} "${GFLAGS_${varname}}" CACHE ${type} "${docstring}")
endif ()