From 95bfa196fdfb737356b8a09ab2944e765a71280a Mon Sep 17 00:00:00 2001 From: Peter0x44 Date: Fri, 8 May 2026 09:08:09 +0100 Subject: [PATCH] [cmake] Fix config.h parsing into cmake options (#5844) Parse SUPPORT_ defines from src/config.h by their actual 0/1 values so CUSTOMIZE_BUILD exposes the correct defaults. Apply INCLUDE_EVERYTHING explicitly when registering dependent options. --- CMakeOptions.txt | 8 ++++++-- cmake/ParseConfigHeader.cmake | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CMakeOptions.txt b/CMakeOptions.txt index 55375116e..5eff4c311 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -29,11 +29,15 @@ option(GLFW_BUILD_WAYLAND "Build the bundled GLFW with Wayland support" OFF) option(GLFW_BUILD_X11 "Build the bundled GLFW with X11 support" ON) option(INCLUDE_EVERYTHING "Include everything disabled by default (for CI usage)" OFF) -set(OFF ${INCLUDE_EVERYTHING} CACHE INTERNAL "Replace any OFF by default with \${OFF} to have it covered by this option") include(ParseConfigHeader) foreach(FLAG IN LISTS CONFIG_HEADER_FLAGS) string(REGEX MATCH "([^=]+)=(.+)" _ ${FLAG}) - cmake_dependent_option(${CMAKE_MATCH_1} "" ${CMAKE_MATCH_2} CUSTOMIZE_BUILD ${CMAKE_MATCH_2}) + set(CONFIG_HEADER_FLAG_DEFAULT ${CMAKE_MATCH_2}) + if (INCLUDE_EVERYTHING AND "${CONFIG_HEADER_FLAG_DEFAULT}" STREQUAL "OFF") + set(CONFIG_HEADER_FLAG_DEFAULT ON) + endif() + + cmake_dependent_option(${CMAKE_MATCH_1} "" ${CONFIG_HEADER_FLAG_DEFAULT} CUSTOMIZE_BUILD ${CONFIG_HEADER_FLAG_DEFAULT}) endforeach() diff --git a/cmake/ParseConfigHeader.cmake b/cmake/ParseConfigHeader.cmake index 797eea3cd..6a4b96145 100644 --- a/cmake/ParseConfigHeader.cmake +++ b/cmake/ParseConfigHeader.cmake @@ -10,7 +10,9 @@ string(REGEX MATCHALL ${MACRO_REGEX} MACRO_LIST ${CONFIG_HEADER_CONTENT}) set(CONFIG_HEADER_FLAGS ${MACRO_LIST}) list(FILTER CONFIG_HEADER_FLAGS INCLUDE REGEX "^.+SUPPORT_") list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE ${MACRO_REGEX} [[\2=OFF]] REGEX "^//") -list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE ${MACRO_REGEX} [[\2=ON]]) +list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE ${MACRO_REGEX} [[\2=\3]] REGEX "^[^/]") +list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE [[=0$]] [[=OFF]]) +list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE [[=1$]] [[=ON]]) set(CONFIG_HEADER_VALUES ${MACRO_LIST}) list(FILTER CONFIG_HEADER_VALUES EXCLUDE REGEX "(^.+SUPPORT_)|(^//)")