Преглед на файлове

Add ctk_option_logical_expression_to_message function

Jean-Christophe Fillion-Robin преди 13 години
родител
ревизия
954ab39dc9
променени са 1 файла, в които са добавени 18 реда и са изтрити 11 реда
  1. 18 11
      CMake/ctkMacroOptionUtils.cmake

+ 18 - 11
CMake/ctkMacroOptionUtils.cmake

@@ -1,3 +1,20 @@
+
+function(ctk_option_logical_expression_to_message varname logical_expr)
+  set(enabling_msg)
+  foreach(arg ${logical_expr})
+    if(NOT "${${arg}}" STREQUAL "")
+      set(value_as_int 0)
+      if(${${arg}})
+        set(value_as_int 1)
+      endif()
+      set(enabling_msg "${enabling_msg} ${arg}:${value_as_int}")
+    else()
+      set(enabling_msg "${enabling_msg} ${arg}")
+    endif()
+  endforeach()
+  set(${varname} ${enabling_msg} PARENT_SCOPE)
+endfunction()
+
 macro(ctk_option option_prefix name doc default)
   option(${option_prefix}_${name} ${doc} ${default})
   mark_as_advanced(${option_prefix}_${name})
@@ -12,17 +29,7 @@ macro(ctk_option option_prefix name doc default)
       set(${option_prefix}_${name} ON CACHE BOOL ${_doc_string} FORCE)
       # Generate user-friendly message
       set(enabling_msg)
-      foreach(arg ${ARGN})
-        if(NOT "${${arg}}" STREQUAL "")
-          set(value_as_int 0)
-          if(${${arg}})
-            set(value_as_int 1)
-          endif()
-          set(enabling_msg "${enabling_msg} ${arg}:${value_as_int}")
-        else()
-          set(enabling_msg "${enabling_msg} ${arg}")
-        endif()
-      endforeach()
+      ctk_option_logical_expression_to_message(enabling_msg "${ARGN}")
       message("Enabling [${option_prefix}_${name}] because of [${enabling_msg}] evaluates to True")
     endif()
   endif()