Jeg er ikke bekendt med Pro*C, men det ser ud til, at du blander de to forskellige versioner af add_custom_command
.
Den første version add_custom_command(OUTPUT ...)
bruges til at generere en fil, som derefter tilføjes som en afhængighed af et andet CMake-mål. Når dette mål er bygget, udføres den brugerdefinerede kommando først for at generere outputfilen.
Den anden version add_custom_command(TARGET ...)
bruges til at definere en pre-build, pre-link eller post-build kommando; en, som ikke nødvendigvis opretter en fil, men som udføres i forbindelse med opbygning af det tilknyttede mål.
Hvis du kun har ét mål, der afhænger af outputtet af Pro*C, så er den første version sandsynligvis dit bedste bud:
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>)