You may use a checksum check to trigger the build again if needed:
add_library(ObjLib OBJECT ${CMAKE_BINARY_DIR}/gtest-tidy-mwe.cpp)
# NOTE: OBJECT_DEPENDS does not help? CK
# TODO: set_property(TARGET ObjLib PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/verify/gtest-tidy-mwe.md5)
add_executable(gtest-tidy-mwe $<TARGET_OBJECTS:ObjLib>)
target_link_libraries(gtest-tidy-mwe PRIVATE GTest::gtest_main)
# enable clang-tidy for my target only!
target_enable_clang_tidy(gtest-tidy-mwe)
enable_testing()
add_test(NAME gtest-tidy-mwe COMMAND gtest-tidy-mwe)
install(TARGETS gtest-tidy-mwe)
# Additional command which will run after the above from a different directory
add_custom_command(
TARGET gtest-tidy-mwe
POST_BUILD
COMMAND md5sum $<TARGET_OBJECTS:ObjLib> $<TARGET_FILE:gtest-tidy-mwe> > gtest-tidy-mwe.md5
BYPRODUCTS ${CMAKE_BINARY_DIR}/verify/gtest-tidy-mwe.md5
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/verify
)
# Additional target the depends on BYPRODUCT above ...
add_custom_target(
check
COMMAND md5sum -c gtest-tidy-mwe.md5 || touch $<TARGET_OBJECTS:ObjLib>
DEPENDS gtest-tidy-mwe
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/verify
)