Generator expression not evaluated when setting `C_STANDARD`
The property C_STANDARD
doesn't work with generator expressions.
Minimal example:
main.c:
#include <stdio.h>
int main(void){
printf("hello, world\n");
}
CMakeLists.txt:
cmake_minimum_required(VERSION 3.23)
project(minRepEx C)
add_library(myLib main.c)
set_target_properties(myLib
PROPERTIES
C_STANDARD 11
)
add_library(myLib2 main.c)
set_target_properties(myLib2
PROPERTIES
C_STANDARD $<TARGET_PROPERTIES:myLib,C_STANDARD>
)
output:
$> cmake-3.28.1-linux-x86_64/bin/cmake -S .. -B .
-- Configuring done (0.0s)
CMake Error at CMakeLists.txt:10 (add_library):
C_STANDARD is set to invalid value '$<TARGET_PROPERTIES:myLib,C_STANDARD>'
If I dump to a file what $<TARGET_PROPERTIES:myLib,C_STANDARD>
evaluates to, I get 11
. And other properties like C_STANDARD_REQUIRED
or C_EXTENSIONS
do not have the problem. Using get_target_properties
to set a variable and then passing that to set_target_properties
works as expected.