Files
CMake/Tests/RunCMake/DependencyGraph/Property.cmake
Kyle Edwards 2e42651dff Add option to optimize link dependencies for static libraries
Add an `OPTIMIZE_DEPENDENCIES` target property and supporting
`CMAKE_OPTIMIZE_DEPENDENCIES` variable to optionally enable pruning and
flattening of outgoing dependencies from static libraries.  Since they
do not actually link, they only depend on side effects of their
dependencies.  Therefore we can drop dependencies that contribute no
side effects.
2020-08-12 11:31:07 -04:00

25 lines
772 B
CMake

enable_language(C)
add_library(Unset STATIC mylib.c)
set(CMAKE_OPTIMIZE_DEPENDENCIES TRUE)
add_library(SetTrue STATIC mylib.c)
set(CMAKE_OPTIMIZE_DEPENDENCIES FALSE)
add_library(SetFalse STATIC mylib.c)
get_property(_set TARGET Unset PROPERTY OPTIMIZE_DEPENDENCIES SET)
if(_set)
message(SEND_ERROR "OPTIMIZE_DEPENDENCIES property should not be set on Unset target")
endif()
get_property(_true TARGET SetTrue PROPERTY OPTIMIZE_DEPENDENCIES)
if(NOT _true STREQUAL "TRUE")
message(SEND_ERROR "OPTIMIZE_DEPENDENCIES property should be TRUE on SetTrue target")
endif()
get_property(_false TARGET SetFalse PROPERTY OPTIMIZE_DEPENDENCIES)
if(NOT _false STREQUAL "FALSE")
message(SEND_ERROR "OPTIMIZE_DEPENDENCIES property should be FALSE on SetFalse target")
endif()