add_library(StaticLib STATIC a.c) add_custom_command(TARGET StaticLib POST_BUILD VERBATIM COMMAND ${CMAKE_COMMAND} "-DTARGET_OBJECTS=$" -DEXPECTED_NUM_OBJECTFILES=2 -P "${CMAKE_CURRENT_SOURCE_DIR}/check_object_files.cmake" ) add_library(SharedLib SHARED a.c b.c) target_compile_definitions(SharedLib PRIVATE REQUIRED) add_custom_command(TARGET SharedLib POST_BUILD VERBATIM COMMAND ${CMAKE_COMMAND} "-DTARGET_OBJECTS:STRING=$" -DEXPECTED_NUM_OBJECTFILES=2 -P "${CMAKE_CURRENT_SOURCE_DIR}/check_object_files.cmake" ) add_executable(ExecObjs a.c b.c exe.c) target_compile_definitions(ExecObjs PRIVATE REQUIRED) add_custom_target(check_exec_objs ALL VERBATIM COMMAND ${CMAKE_COMMAND} "-DTARGET_OBJECTS=$" -DEXPECTED_NUM_OBJECTFILES=3 -P "${CMAKE_CURRENT_SOURCE_DIR}/check_object_files.cmake" DEPENDS ExecObjs )