<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>