Ik ben niet bekend met Pro*C, maar het lijkt erop dat je de twee verschillende versies van add_custom_command
.
De eerste versie add_custom_command(OUTPUT ...)
wordt gebruikt om een bestand te genereren dat vervolgens wordt toegevoegd als een afhankelijkheid van een ander CMake-doel. Wanneer dat doel is gebouwd, wordt eerst het aangepaste commando uitgevoerd om het uitvoerbestand te genereren.
De tweede versie add_custom_command(TARGET ...)
wordt gebruikt om een pre-build, pre-link of post-build commando te definiëren; een die niet noodzakelijk een bestand maakt, maar die wordt uitgevoerd in combinatie met het bouwen van het bijbehorende doel.
Als je maar één doel hebt dat afhangt van de output van Pro*C, dan is de eerste versie waarschijnlijk de beste keuze:
add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/connection.c
COMMAND ${PROC} iname=${PROJECT_SOURCE_DIR}/connection.proc SQLCHECK=SYNTAX
MODE=ANSI IRECLEN=255 ORECLEN=255
ONAME=${PROJECT_SOURCE_DIR}/connection.c)
add_executable(myproj ${PROJECT_SOURCE_DIR}/connection.c <other sources>)