瀏覽代碼

cmake: Calculate padding for dislaying options automatically.

Ryan C. Gordon 4 年之前
父節點
當前提交
60d59aeb61
共有 2 個文件被更改,包括 14 次插入5 次删除
  1. 3 2
      CMakeLists.txt
  2. 11 3
      cmake/macros.cmake

+ 3 - 2
CMakeLists.txt

@@ -313,6 +313,8 @@ if (NOT DEFINED SDL_SHARED_ENABLED_BY_DEFAULT)
   endif()
   endif()
 endif()
 endif()
 
 
+set(LONGESTOPTIONNAME 0)  # set_option and friends will change this.
+
 set(SDL_SUBSYSTEMS
 set(SDL_SUBSYSTEMS
     Atomic Audio Video Render Events Joystick Haptic Power Threads Timers
     Atomic Audio Video Render Events Joystick Haptic Power Threads Timers
     File Loadso CPUinfo Filesystem Dlopen Sensor Locale)
     File Loadso CPUinfo Filesystem Dlopen Sensor Locale)
@@ -2533,10 +2535,9 @@ message(STATUS "")
 message(STATUS "Options:")
 message(STATUS "Options:")
 list(SORT ALLOPTIONS)
 list(SORT ALLOPTIONS)
 foreach(_OPT ${ALLOPTIONS})
 foreach(_OPT ${ALLOPTIONS})
-  # Longest option is SDL_WAYLAND_LIBDECOR_SHARED = 27 characters
   # Get the padding
   # Get the padding
   string(LENGTH ${_OPT} _OPTLEN)
   string(LENGTH ${_OPT} _OPTLEN)
-  math(EXPR _PADLEN "28 - ${_OPTLEN}")
+  math(EXPR _PADLEN "(${LONGESTOPTIONNAME} + 1) - ${_OPTLEN}")
   string(RANDOM LENGTH ${_PADLEN} ALPHABET " " _PADDING)
   string(RANDOM LENGTH ${_PADLEN} ALPHABET " " _PADDING)
   message_tested_option(${_OPT} ${_PADDING})
   message_tested_option(${_OPT} ${_PADDING})
 endforeach()
 endforeach()

+ 11 - 3
cmake/macros.cmake

@@ -1,5 +1,13 @@
+macro(ADD_TO_ALLOPTIONS _NEWNAME)
+  list(APPEND ALLOPTIONS ${_NEWNAME})
+  string(LENGTH ${_NEWNAME} _SLEN)
+  if(${LONGESTOPTIONNAME} LESS ${_SLEN})
+    set(LONGESTOPTIONNAME ${_SLEN})
+  endif()
+endmacro()
+
 macro(SET_OPTION _NAME _DESC)
 macro(SET_OPTION _NAME _DESC)
-  list(APPEND ALLOPTIONS ${_NAME})
+  add_to_alloptions(${_NAME})
   if(${ARGC} EQUAL 3)
   if(${ARGC} EQUAL 3)
     set(_DEFLT ${ARGV2})
     set(_DEFLT ${ARGV2})
   else()
   else()
@@ -9,12 +17,12 @@ macro(SET_OPTION _NAME _DESC)
 endmacro()
 endmacro()
 
 
 macro(DEP_OPTION _NAME _DESC _DEFLT _DEPTEST _FAILDFLT)
 macro(DEP_OPTION _NAME _DESC _DEFLT _DEPTEST _FAILDFLT)
-  list(APPEND ALLOPTIONS ${_NAME})
+  add_to_alloptions(${_NAME})
   cmake_dependent_option(${_NAME} ${_DESC} ${_DEFLT} ${_DEPTEST} ${_FAILDFLT})
   cmake_dependent_option(${_NAME} ${_DESC} ${_DEFLT} ${_DEPTEST} ${_FAILDFLT})
 endmacro()
 endmacro()
 
 
 macro(OPTION_STRING _NAME _DESC _VALUE)
 macro(OPTION_STRING _NAME _DESC _VALUE)
-  list(APPEND ALLOPTIONS ${_NAME})
+  add_to_alloptions(${_NAME})
   set(${_NAME} ${_VALUE} CACHE STRING "${_DESC}")
   set(${_NAME} ${_VALUE} CACHE STRING "${_DESC}")
   set(HAVE_${_NAME} ${_VALUE})
   set(HAVE_${_NAME} ${_VALUE})
 ENDMACRO()
 ENDMACRO()