1 # Helper function for coupling add_feature_info(), option(), and add_definitions()
3 function(optional_compile_definitions _name)
5 set(oneValueArgs DESCRIPTION DEFAULT)
6 set(multiValueArgs ENABLED DISABLED)
7 cmake_parse_arguments(OCD "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
8 option(${_name} "${OCD_DESCRIPTION}" ${OCD_DEFAULT})
10 set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY COMPILE_DEFINITIONS ${OCD_ENABLED})
12 set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY COMPILE_DEFINITIONS ${OCD_DISABLED})
15 add_feature_info(${_name} ${_name} "${OCD_DESCRIPTION}")
19 macro(feature_option _name _description _default)
20 option(${_name} "${_description}" ${_default})
21 add_feature_info(${_name} ${_name} "${_description}")