Skip to content

Commit 80ea359

Browse files
committed
options: Add support for deprecating option in CMake logic
1 parent 6fd0155 commit 80ea359

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

cmake/f3dOptions.cmake

+10-2
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ function(_parse_json_option _top_json)
108108
# Recover default_value if any
109109
string(JSON _option_default_value ERROR_VARIABLE _default_value_error GET ${_cur_json} "default_value")
110110

111+
# Recover deprecated if any
112+
string(JSON _option_deprecated ERROR_VARIABLE _deprecated_error GET ${_cur_json} "deprecated")
113+
111114
set(_option_name "${_option_basename}${_member_name}")
112115

113116
# Identify types
@@ -138,16 +141,21 @@ function(_parse_json_option _top_json)
138141

139142
# Add option to struct and methods
140143

144+
set(_option_deprecated_string "")
145+
if(_deprecated_error STREQUAL "NOTFOUND" AND _option_deprecated)
146+
set(_option_deprecated_string "F3D_DEPRECATED ")
147+
endif()
148+
141149
if(_default_value_error STREQUAL "NOTFOUND")
142150
# Use default_value
143151
set(_optional_default_value_initialize "${_option_default_value_start}${_option_default_value}${_option_default_value_end}")
144-
string(APPEND _options_struct "${_option_indent} ${_option_actual_type} ${_member_name} = ${_optional_default_value_initialize};\n")
152+
string(APPEND _options_struct "${_option_indent} ${_option_deprecated_string}${_option_actual_type} ${_member_name} = ${_optional_default_value_initialize};\n")
145153
set(_optional_getter "")
146154
list(APPEND _options_is_optional "if (name == \"${_option_name}\") return false")
147155
list(APPEND _options_reset "if (name == \"${_option_name}\") opt.${_option_name} = ${_optional_default_value_initialize}")
148156
else()
149157
# No default_value, it is an std::optional
150-
string(APPEND _options_struct "${_option_indent} std::optional<${_option_actual_type}> ${_member_name};\n")
158+
string(APPEND _options_struct "${_option_indent} ${_option_deprecated_string}std::optional<${_option_actual_type}> ${_member_name};\n")
151159
set(_optional_getter ".value()")
152160
list(APPEND _options_is_optional "if (name == \"${_option_name}\") return true")
153161
list(APPEND _options_reset "if (name == \"${_option_name}\") opt.${_option_name}.reset()")

0 commit comments

Comments
 (0)