enable_language(CXX) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/main.cpp "int main() {}") add_executable(main ${CMAKE_CURRENT_BINARY_DIR}/main.cpp) #============================================================================ # add_custom_command(TARGET) #============================================================================ # Unsupported keywords. Need to test them in batches to avoid other checks. add_custom_command(TARGET main POST_BUILD COMMAND ${CMAKE_COMMAND} -E true # None of the following are allowed for the TARGET form #APPEND # Has its own check requiring OUTPUT to be set #CODEGEN # Other checks will fail before the CMP0175 check DEPENDS valueDoesNotMatterHere DEPENDS_EXPLICIT_ONLY YES DEPFILE valueDoesNotMatterHere #IMPLICIT_DEPENDS # Earlier check fails when DEPFILE is present JOB_POOL valueDoesNotMatterHere MAIN_DEPENDENCY valueDoesNotMatterHere #OUTPUT # Other checks will fail before the CMP0175 check #OUTPUTS # Special case, not a documented keyword (used for deprecated form) #SOURCE # Old signature, special handling makes it hard to check ) add_custom_command(TARGET main POST_BUILD COMMAND ${CMAKE_COMMAND} -E true # Has to be tested separately due to separate check for clash with DEPFILE IMPLICIT_DEPENDS valueDoesNotMatterHere # Has to be tested separately due to separate check for clash with JOB_POOL. # This one is supported, but was erroneously rejected in the 3.31.0 release. # We keep this here to verify the fix for that regression. USES_TERMINAL NO ) # Missing any PRE_BUILD, PRE_LINK, or POST_BUILD add_custom_command(TARGET main COMMAND ${CMAKE_COMMAND} -E true ) # More than one of PRE_BUILD, PRE_LINK, or POST_BUILD add_custom_command(TARGET main PRE_BUILD PRE_LINK POST_BUILD COMMAND ${CMAKE_COMMAND} -E true ) # Missing COMMAND add_custom_command(TARGET main POST_BUILD COMMENT "Need at least 4 arguments, so added this comment" ) #============================================================================ # add_custom_command(OUTPUT) #============================================================================ add_custom_command(OUTPUT blah.txt OUTPUTS POST_BUILD PRE_BUILD PRE_LINK SOURCE )