<div dir="ltr"><div><div><div><div><div><div><br></div>The answer to what parameters can be specified the "whitelist" as it is refereed to is documented (thanks to Raul's help):<br><br><a href="https://cmake.org/cmake/help/v3.9/command/add_library.html?highlight=interface_#interface-libraries">https://cmake.org/cmake/help/v3.9/command/add_library.html?highlight=interface_#interface-libraries</a><br></div><br></div>with these key bits:<br><br> "Details
about the imported library are specified by setting properties whose names
begin in <code class="gmail-docutils gmail-literal"><span class="gmail-pre">IMPORTED_</span></code> and <code class="gmail-docutils gmail-literal"><span class="gmail-pre"><span class="gmail-highlighted">INTERFACE_</span></span></code>.  The most important such
property is <span class="gmail-target" id="gmail-index-0-prop_tgt:IMPORTED_LOCATION"></span><a class="gmail-reference gmail-internal" href="https://cmake.org/cmake/help/v3.9/prop_tgt/IMPORTED_LOCATION.html#prop_tgt:IMPORTED_LOCATION" title="IMPORTED_LOCATION"><code class="gmail-xref gmail-cmake gmail-cmake-prop_tgt gmail-docutils gmail-literal"><span class="gmail-pre">IMPORTED_LOCATION</span></code></a> (and its per-configuration
variant <span class="gmail-target" id="gmail-index-0-prop_tgt:IMPORTED_LOCATION_<CONFIG>"></span><a class="gmail-reference gmail-internal" href="https://cmake.org/cmake/help/v3.9/prop_tgt/IMPORTED_LOCATION_CONFIG.html#prop_tgt:IMPORTED_LOCATION_%3CCONFIG%3E" title="IMPORTED_LOCATION_<CONFIG>"><code class="gmail-xref gmail-cmake gmail-cmake-prop_tgt gmail-docutils gmail-literal"><span class="gmail-pre">IMPORTED_LOCATION_<CONFIG></span></code></a>) which specifies the
location of the main library file on disk.  See documentation of the
<code class="gmail-docutils gmail-literal"><span class="gmail-pre">IMPORTED_*</span></code> and <code class="gmail-docutils gmail-literal"><span class="gmail-pre"><span class="gmail-highlighted">INTERFACE_</span>*</span></code> properties for more information."<br><br></div>Then searching <a href="https://cmake.org/cmake/help/v3.9/manual/cmake-properties.7.html?highlight=property">https://cmake.org/cmake/help/v3.9/manual/cmake-properties.7.html?highlight=property</a><br><br></div>grep'in for IMPORTED_ or INTERFACE_ yields the full white list.  What I have found to be:<br><br>    IMPORTED_CONFIGURATIONS<br>    IMPORTED_IMPLIB_<CONFIG><br>    IMPORTED_IMPLIB<br>    IMPORTED_LIBNAME_<CONFIG><br>    IMPORTED_LIBNAME<br>    IMPORTED_LINK_DEPENDENT_LIBRARIES_<CONFIG><br>    IMPORTED_LINK_DEPENDENT_LIBRARIES<br>    IMPORTED_LINK_INTERFACE_LANGUAGES_<CONFIG><br>    IMPORTED_LINK_INTERFACE_LANGUAGES<br>    IMPORTED_LINK_INTERFACE_LIBRARIES_<CONFIG><br>    IMPORTED_LINK_INTERFACE_LIBRARIES<br>    IMPORTED_LINK_INTERFACE_MULTIPLICITY_<CONFIG><br>    IMPORTED_LINK_INTERFACE_MULTIPLICITY<br>    IMPORTED_LOCATION_<CONFIG><br>    IMPORTED_LOCATION<br>    IMPORTED_NO_SONAME_<CONFIG><br>    IMPORTED_NO_SONAME<br>    IMPORTED_OBJECTS_<CONFIG><br>    IMPORTED_OBJECTS<br>    IMPORTED<br>    IMPORTED_SONAME_<CONFIG><br>    IMPORTED_SONAME<br><br>    INTERFACE_AUTOUIC_OPTIONS<br>    INTERFACE_COMPILE_DEFINITIONS<br>    INTERFACE_COMPILE_FEATURES<br>    INTERFACE_COMPILE_OPTIONS<br>    INTERFACE_INCLUDE_DIRECTORIES<br>    INTERFACE_LINK_LIBRARIES<br>    INTERFACE_POSITION_INDEPENDENT_CODE<br>    INTERFACE_SOURCES<br>    INTERFACE_SYSTEM_INCLUDE_DIRECTORIES<br><br><br></div><div>Read -> as maps to and X as nothing, zip, zilch, nadahey, bubkis, etc.  So:<br><br></div>SUFFIX to -> X<br><div><div><div><div><div><div>INSTALL_RPATH -> X<br></div><div>LINK_FLAGS -> X<br></div><div><br></div><div>I am sure this is useful for some use case I an quite baffled as to what it is and I have request clarification from devs at:<br><br><a href="https://gitlab.kitware.com/cmake/cmake/issues/17216">https://gitlab.kitware.com/cmake/cmake/issues/17216</a><br></div><div><br></div><div>I clearly don't get something here.  I am interested to figure out what it is designed for.<br><br></div><div>I have also asked that the error:<br><br>CMake Error at CMakeLists.txt:45 (set_target_properties):<br>  INTERFACE_LIBRARY targets may only have whitelisted properties.  The<br>  property "SUFFIX" is not allowed.<br></div><div><br></div><div>provide better direction to user.<br></div><div><br><a href="https://gitlab.kitware.com/cmake/cmake/issues/17217">https://gitlab.kitware.com/cmake/cmake/issues/17217</a><br><br></div><div>Possibly:<br></div><div><br>e << "INTERFACE_LIBRARY targets may only have properties beginning with INTERFACE_* or IMPORTED_*.  See cmake-properties for more information."<br>"The property \""<br><< prop << "\" is not allowed.";<br><br></div></div></div></div></div></div></div>