cmake: Calculate padding for dislaying options automatically.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 60f6ad6..d4a041b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -313,6 +313,8 @@
endif()
endif()
+set(LONGESTOPTIONNAME 0) # set_option and friends will change this.
+
set(SDL_SUBSYSTEMS
Atomic Audio Video Render Events Joystick Haptic Power Threads Timers
File Loadso CPUinfo Filesystem Dlopen Sensor Locale)
@@ -2533,10 +2535,9 @@
message(STATUS "Options:")
list(SORT ALLOPTIONS)
foreach(_OPT ${ALLOPTIONS})
- # Longest option is SDL_WAYLAND_LIBDECOR_SHARED = 27 characters
# Get the padding
string(LENGTH ${_OPT} _OPTLEN)
- math(EXPR _PADLEN "28 - ${_OPTLEN}")
+ math(EXPR _PADLEN "(${LONGESTOPTIONNAME} + 1) - ${_OPTLEN}")
string(RANDOM LENGTH ${_PADLEN} ALPHABET " " _PADDING)
message_tested_option(${_OPT} ${_PADDING})
endforeach()
diff --git a/cmake/macros.cmake b/cmake/macros.cmake
index 578670b..090ffa0 100644
--- a/cmake/macros.cmake
+++ b/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)
- list(APPEND ALLOPTIONS ${_NAME})
+ add_to_alloptions(${_NAME})
if(${ARGC} EQUAL 3)
set(_DEFLT ${ARGV2})
else()
@@ -9,12 +17,12 @@
endmacro()
macro(DEP_OPTION _NAME _DESC _DEFLT _DEPTEST _FAILDFLT)
- list(APPEND ALLOPTIONS ${_NAME})
+ add_to_alloptions(${_NAME})
cmake_dependent_option(${_NAME} ${_DESC} ${_DEFLT} ${_DEPTEST} ${_FAILDFLT})
endmacro()
macro(OPTION_STRING _NAME _DESC _VALUE)
- list(APPEND ALLOPTIONS ${_NAME})
+ add_to_alloptions(${_NAME})
set(${_NAME} ${_VALUE} CACHE STRING "${_DESC}")
set(HAVE_${_NAME} ${_VALUE})
ENDMACRO()