Skip to content

Commit 95bfa19

Browse files
authored
[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.
1 parent aceb8ce commit 95bfa19

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

CMakeOptions.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,15 @@ option(GLFW_BUILD_WAYLAND "Build the bundled GLFW with Wayland support" OFF)
2929
option(GLFW_BUILD_X11 "Build the bundled GLFW with X11 support" ON)
3030

3131
option(INCLUDE_EVERYTHING "Include everything disabled by default (for CI usage)" OFF)
32-
set(OFF ${INCLUDE_EVERYTHING} CACHE INTERNAL "Replace any OFF by default with \${OFF} to have it covered by this option")
3332

3433
include(ParseConfigHeader)
3534

3635
foreach(FLAG IN LISTS CONFIG_HEADER_FLAGS)
3736
string(REGEX MATCH "([^=]+)=(.+)" _ ${FLAG})
38-
cmake_dependent_option(${CMAKE_MATCH_1} "" ${CMAKE_MATCH_2} CUSTOMIZE_BUILD ${CMAKE_MATCH_2})
37+
set(CONFIG_HEADER_FLAG_DEFAULT ${CMAKE_MATCH_2})
38+
if (INCLUDE_EVERYTHING AND "${CONFIG_HEADER_FLAG_DEFAULT}" STREQUAL "OFF")
39+
set(CONFIG_HEADER_FLAG_DEFAULT ON)
40+
endif()
41+
42+
cmake_dependent_option(${CMAKE_MATCH_1} "" ${CONFIG_HEADER_FLAG_DEFAULT} CUSTOMIZE_BUILD ${CONFIG_HEADER_FLAG_DEFAULT})
3943
endforeach()

cmake/ParseConfigHeader.cmake

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ string(REGEX MATCHALL ${MACRO_REGEX} MACRO_LIST ${CONFIG_HEADER_CONTENT})
1010
set(CONFIG_HEADER_FLAGS ${MACRO_LIST})
1111
list(FILTER CONFIG_HEADER_FLAGS INCLUDE REGEX "^.+SUPPORT_")
1212
list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE ${MACRO_REGEX} [[\2=OFF]] REGEX "^//")
13-
list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE ${MACRO_REGEX} [[\2=ON]])
13+
list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE ${MACRO_REGEX} [[\2=\3]] REGEX "^[^/]")
14+
list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE [[=0$]] [[=OFF]])
15+
list(TRANSFORM CONFIG_HEADER_FLAGS REPLACE [[=1$]] [[=ON]])
1416

1517
set(CONFIG_HEADER_VALUES ${MACRO_LIST})
1618
list(FILTER CONFIG_HEADER_VALUES EXCLUDE REGEX "(^.+SUPPORT_)|(^//)")

0 commit comments

Comments
 (0)