need to specialize INTERFACE_POSITION_INDEPENDENT_CODE for executables
the purpose of INTERFACE_POSITION_INDEPENDENT_CODE is to force consumers to set POSITION_INDEPENDENT_CODE . What is desired is to specify this for executable targets only. A new property is needed (INTERFACE_POSITION_INDEPENDENT_EXECUTABLE ?).
Rationale: it is sometimes necessary to ensure that any executables created with library X are non-PIE due to the PIE mechanism interfering with the mechanics of X. Setting INTERFACE_POSITION_INDEPENDENT_CODE property for X not only forces the executables linking against X to set POSITION_INDEPENDENT_CODE but also the libraries linking against X to set POSITION_INDEPENDENT_CODE; these two are quite different things and only the former is necessary to ensure that X works correctly. This places an unnecessary burden on the user of X.