@@ -109,7 +109,7 @@ macro( ecbuild_add_option )
109
109
set ( _p_DEFAULT ON )
110
110
else ()
111
111
if ( NOT _p_DEFAULT MATCHES "[Oo][Nn]" AND NOT _p_DEFAULT MATCHES "[Oo][Ff][Ff]" )
112
- ecbuild_critical ("In macro ecbuild_add_option(), DEFAULT is either ON or OFF: \" ${_p_DEFAULT} \" " )
112
+ ecbuild_critical ("In macro ecbuild_add_option(), DEFAULT must be either ON or OFF, but found : \" ${_p_DEFAULT} \" " )
113
113
endif ()
114
114
endif ()
115
115
ecbuild_debug ("ecbuild_add_option(${_p_FEATURE} ): defaults to ${_p_DEFAULT} " )
@@ -153,12 +153,6 @@ macro( ecbuild_add_option )
153
153
# define the option -- for cmake GUI
154
154
155
155
option ( ENABLE_${_p_FEATURE} "${_p_DESCRIPTION} " ${_p_DEFAULT} )
156
- get_property ( _feature_desc GLOBAL PROPERTY _CMAKE_${_p_FEATURE}_DESCRIPTION )
157
- if ( _feature_desc )
158
- add_feature_info ( ${_p_FEATURE} ENABLE_${_p_FEATURE} "${_feature_desc} , ${PROJECT_NAME} : ${_p_DESCRIPTION} " )
159
- else ()
160
- add_feature_info ( ${_p_FEATURE} ENABLE_${_p_FEATURE} "${PROJECT_NAME} : ${_p_DESCRIPTION} " )
161
- endif ()
162
156
163
157
ecbuild_debug ("ecbuild_add_option(${_p_FEATURE} ): defining option ENABLE_${_p_FEATURE} '${_p_DESCRIPTION} ' ${_p_DEFAULT} " )
164
158
ecbuild_debug ("ecbuild_add_option(${_p_FEATURE} ): ENABLE_${_p_FEATURE} =${ENABLE_${_p_FEATURE} }" )
@@ -176,6 +170,26 @@ macro( ecbuild_add_option )
176
170
set ( ENABLE_${_p_FEATURE} ${${PNAME}_ENABLE_${_p_FEATURE}} )
177
171
endif ()
178
172
173
+ ## Update the description of the feature summary
174
+ # Choose the correct tick
175
+ if (ENABLE_${_p_FEATURE} )
176
+ set ( _tick "✔" )
177
+ else ()
178
+ set ( _tick "✘" )
179
+ endif ()
180
+ set (_enabled "${ENABLE_${_p_FEATURE} }" )
181
+ get_property ( _enabled_features GLOBAL PROPERTY ENABLED_FEATURES )
182
+ if ( "${_p_FEATURE} " IN_LIST _enabled_features )
183
+ set (_enabled ON )
184
+ endif ()
185
+ # Retrieve any existing description (n.b. occurs when the same feature is added at multiple projects)
186
+ get_property ( _feature_desc GLOBAL PROPERTY _CMAKE_${_p_FEATURE}_DESCRIPTION )
187
+ # Append the new description
188
+ if ( _feature_desc )
189
+ add_feature_info ( ${_p_FEATURE} ${_enabled} "${_feature_desc} , ${PROJECT_NAME} (${_tick} ): '${_p_DESCRIPTION} '" )
190
+ else ()
191
+ add_feature_info ( ${_p_FEATURE} ${_enabled} "${PROJECT_NAME} (${_tick} ): '${_p_DESCRIPTION} '" )
192
+ endif ()
179
193
180
194
set ( ${PROJECT_NAME} _HAVE_${_p_FEATURE} 0 )
181
195
@@ -250,7 +264,7 @@ macro( ecbuild_add_option )
250
264
251
265
else () # if user provided input and we cannot satisfy FAIL otherwise WARN
252
266
253
- ecbuild_disable_feature ( ${_p_FEATURE} )
267
+ ecbuild_disable_unused_feature ( ${_p_FEATURE} )
254
268
255
269
if ( ${_p_FEATURE} _user_provided_input )
256
270
if ( NOT _${_p_FEATURE}_condition )
@@ -267,16 +281,16 @@ macro( ecbuild_add_option )
267
281
ecbuild_info ( "Feature ${_p_FEATURE} was not enabled (also not requested) -- following required packages weren't found: ${_failed_to_find_packages} " )
268
282
endif ()
269
283
set ( ENABLE_${_p_FEATURE} OFF )
270
- ecbuild_disable_feature ( ${_p_FEATURE} )
284
+ ecbuild_disable_unused_feature ( ${_p_FEATURE} )
271
285
endif ()
272
286
273
287
endif ()
274
288
275
289
else ()
276
290
277
- ecbuild_debug ( "ecbuild_add_option( ${_p_FEATURE} ): feature disabled" )
291
+ ecbuild_info ( "Feature ${_p_FEATURE} disabled" )
278
292
set ( ${PROJECT_NAME} _HAVE_${_p_FEATURE} 0 )
279
- ecbuild_disable_feature ( ${_p_FEATURE} )
293
+ ecbuild_disable_unused_feature ( ${_p_FEATURE} )
280
294
281
295
endif ()
282
296
0 commit comments