Graphviz: Generation fails due to wrong evaluation of non-whitelisted properties on interface libraries
Consider the following CMakeLists.txt file
cmake_minimum_required(VERSION 3.18.3)
project(graphviz_test)
file(WRITE dummy.c "#include <stdio.h>\nint\nmain(int argc, char* argv[])\n{\nreturn 0;\n}")
add_executable(dummy dummy.c)
target_link_libraries(dummy dummylib)
set_property(TARGET dummy PROPERTY PROP var1)
add_library(dummylib INTERFACE)
target_link_libraries(dummylib INTERFACE
test_$<TARGET_PROPERTY:PROP>
)
add_library(test_var1 STATIC dummy.c)
which works fine using CMake's Ninja generator. However, adding --graphviz=cmake.dot
to the command line results in the following error
-- Configuring done
-- Generating done
Generate graphviz: C:/Projects/cmake_graphviz/build/cmake.dot
CMake Error at CMakeLists.txt:10 (add_library):
INTERFACE_LIBRARY targets may only have whitelisted properties. The
property "PROP" is not allowed.
CMake Generate step failed. Build files cannot be regenerated correctly.
Edited by Sebastian Lipponer