Skip to content

Commit 65f5cd5

Browse files
committed
build: reapply options when groups change
Signed-off-by: Ra'Jiska <dodo.lasticot@gmail.com>
1 parent 52a64a1 commit 65f5cd5

1 file changed

Lines changed: 36 additions & 1 deletion

File tree

cmake/plugins_options.cmake

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,36 @@ macro(DEFINE_OPTION option_name description default_value)
33
if(FLB_MINIMAL)
44
set(temp_value OFF)
55
endif()
6-
if(NOT "${FLB_GROUP_OVERRIDE}" STREQUAL "Inherit")
6+
string(TOLOWER "${FLB_GROUP_OVERRIDE}" group_override)
7+
if(NOT group_override STREQUAL "inherit")
78
set(temp_value ${FLB_GROUP_OVERRIDE})
89
endif()
10+
11+
if(temp_value)
12+
set(temp_value ON)
13+
else()
14+
set(temp_value OFF)
15+
endif()
16+
17+
get_property(option_type CACHE ${option_name} PROPERTY TYPE)
18+
if(option_type STREQUAL "UNINITIALIZED")
19+
set(_FLB_PINNED_${option_name} ON CACHE INTERNAL "")
20+
endif()
21+
922
option(${option_name} "${description}" ${temp_value})
23+
24+
if(NOT DEFINED _FLB_INHERITED_${option_name})
25+
set(_FLB_INHERITED_${option_name} "${${option_name}}" CACHE INTERNAL "")
26+
else()
27+
if(NOT _FLB_PINNED_${option_name} AND
28+
NOT "${${option_name}}" STREQUAL "${_FLB_INHERITED_${option_name}}")
29+
set(_FLB_PINNED_${option_name} ON CACHE INTERNAL "")
30+
endif()
31+
if(NOT _FLB_PINNED_${option_name} AND "${${option_name}}" STREQUAL "${_FLB_INHERITED_${option_name}}")
32+
set(${option_name} ${temp_value} CACHE BOOL "${description}" FORCE)
33+
endif()
34+
set(_FLB_INHERITED_${option_name} ${temp_value} CACHE INTERNAL "")
35+
endif()
1036
endmacro()
1137

1238
# Add the FLB_MINIMAL option
@@ -22,6 +48,15 @@ set_property(CACHE FLB_ALL_PROCESSORS PROPERTY STRINGS "On;Off;Inherit")
2248
set_property(CACHE FLB_ALL_FILTERS PROPERTY STRINGS "On;Off;Inherit")
2349
set_property(CACHE FLB_ALL_OUTPUTS PROPERTY STRINGS "On;Off;Inherit")
2450

51+
foreach(group_option FLB_ALL_INPUTS FLB_ALL_PROCESSORS FLB_ALL_FILTERS FLB_ALL_OUTPUTS)
52+
string(TOLOWER "${${group_option}}" group_value)
53+
if(NOT group_value MATCHES "^(on|off|inherit)$")
54+
message(FATAL_ERROR
55+
"${group_option} must be one of On, Off or Inherit "
56+
"(got '${${group_option}}')")
57+
endif()
58+
endforeach()
59+
2560
# Inputs (sources, data collectors)
2661
# =================================
2762
set(FLB_GROUP_OVERRIDE ${FLB_ALL_INPUTS})

0 commit comments

Comments
 (0)