blob: b8d8994600df7623a91aa3a6956dbaa2356a7fef [file] [edit]
include(GeneratedCommon.cmake)
# Each property uses its own target so that preparing one file cannot
# produce another as a side effect.
foreach(property IN ITEMS PUBLIC_HEADER PRIVATE_HEADER RESOURCE)
string(TOLOWER "${property}" name)
add_generated_file(generated_file "generated_${name}.h")
add_library(generated_${name} STATIC EXCLUDE_FROM_ALL
"${generated_target_source}" "${generated_file}")
set_property(TARGET generated_${name}
PROPERTY ${property} "${generated_file}")
install(TARGETS generated_${name}
ARCHIVE DESTINATION lib
COMPONENT Archive
EXCLUDE_FROM_ALL
${property} DESTINATION include/${name}
COMPONENT Headers
)
endforeach()
# Public headers that are not generated do not need their target built.
add_library(plain_headers STATIC EXCLUDE_FROM_ALL neverbuild.c plain.h)
set_property(TARGET plain_headers PROPERTY PUBLIC_HEADER plain.h)
install(TARGETS plain_headers
ARCHIVE DESTINATION lib
COMPONENT Archive
EXCLUDE_FROM_ALL
PUBLIC_HEADER DESTINATION include
COMPONENT Headers
)
add_library(unit_tests STATIC neverbuild.c)