[CMake] Does SET_TARGET_PROPERTIES(foo PROPERTIES INSTALL_RPATH /path1; /path2) still silently ignore path2?

Nils Gladitz nilsgladitz at gmail.com
Tue Aug 11 02:42:56 EDT 2015


On 08/11/2015 12:51 AM, Dan Kegel wrote:
> With cmake 2.8.12.2,
>
> SET_TARGET_PROPERTIES (foo PROPERTIES INSTALL_RPATH ${my_install_rpath})
>
> silently only obeys the first directory in the rpath, but
>
> SET_TARGET_PROPERTIES (foo PROPERTIES INSTALL_RPATH "${my_install_rpath}")
>
> works.  Is it still that way in the latest cmake, and is there
> already a bug for this?  I looked,
> but didn't see one.

It should still be this way.

The command takes any number of key value pairs where each key and value 
are a single argument.

A CMake list when expanded unquoted results in one argument per list item.

When a list is quoted it is a single argument.

Expansion of variables happens before the command itself gets its arguments.

Without the quotes the first item in my_install_rpath will be 
interpreted as a value while the second will be a key etc.

It might therefor be more of a language rather than command specific issue.

One clean alternative is to use set_property() instead since unlike 
set_target_properties() it takes a single key but any number of value 
arguments.

Nils


More information about the CMake mailing list