Skip to content
  • Stephen Kelly's avatar
    cmTarget: Add interface for compatible numeric properties · ff6c4013
    Stephen Kelly authored
    When using the boost MPL library, one can set a define to increase
    the limit of how many variadic elements should be supported. The
    default for BOOST_MPL_LIMIT_VECTOR_SIZE is 20:
    
     http://www.boost.org/doc/libs/1_36_0/libs/mpl/doc/refmanual/limit-vector-size.html
    
    If the foo library requires that to be set to 30, and the independent
    bar library requires it to be set to 40, consumers of both need to set
    it to 40.
    
     add_library(foo INTERFACE)
     set_property(TARGET foo PROPERTY INTERFACE_boost_mpl_vector_size 30)
     set_property(TARGET foo PROPERTY COMPATIBLE_INTERFACE_NUMBER_MAX boost_mpl_vector_size)
     target_compile_definitions(foo INTERFACE BOOST_MPL_LIMIT_VECTOR_SIZE=$<TARGET_PROPERTY:boost_mpl_vector_size>)
    
     add_library(bar INTERFACE)
     set_property(TARGET bar PROPERTY INTERFACE_boost_mpl_vector_size 40)
     # Technically the next two lines are redundant, but as foo and bar are
     # independent, they both set these interfaces.
     set_property(TARGET bar PR...
    ff6c4013