Some Questions:
[1] "The full list of target properties .. is in cmake_properties(7) ..."
In the example:
add_library(Example)
set_target_properties(Example
PROPERTIES
Key Value
Hello World
)
get_target_property(KeyVar Example Key)
get_target_property(HelloVar Example Hello)
message("Key ${KeyVar}")
message("Hello: ${HelloVar}")
Key and Hello
a. Are not in cmake_properties(7).
b. Are not capitalized.
c. Do not follow naming conventions from Tutorial Step3.
[2] The example seems to indicate arbitrary properties can be applied.
a. What effect do these properties have on generated artifacts.
b. What limitations exist.
c. How can they be configured/used.
d. Do the variables maintain their associations (Global, Directories, ...)
[3] What role does cmake_properties(7) variables have in this command.
a. Are the variables used/not used.
b. How can the variables be set.
[4] Can set(<variable> <value>) be used instead of set_target_properties()
[5] What is the syntax of the commands.
a. Are they all:
<statement> ::= <function>'(' <target> 'PROPERTIES' <key_value_pairlist>')';
<key_value_pairlist> ::= <key_value_pairlist> <key_value_pair> | <key_value_pair>;
<key_value_pair> ::= <unquoted> <unquoted>
<unquoted> ::= [A-Za-Z_]+
[6] Is Key a reference to a string.
a. Can ${Key} be used.
b. Is Key case insensitive.
[7] Can you use ${Key} ${${value}} to good effect.
[8] Is value assumed to be a primitive or a reference.
That is, if Key is shorthand for ${Key} what is value.
[9] Is the scope assumed (PUBLIC, PRIVATE, or INTERFACE).