Nie znam Pro*C, ale wygląda na to, że mieszasz dwie różne wersje add_custom_command
.
Pierwsza wersja add_custom_command(OUTPUT ...)
służy do generowania pliku, który jest następnie dodawany jako zależność innego celu CMake. Po zbudowaniu tego celu najpierw wykonywane jest niestandardowe polecenie w celu wygenerowania pliku wyjściowego.
Druga wersja add_custom_command(TARGET ...)
służy do definiowania polecenia pre-build, pre-link lub post-build; taki, który niekoniecznie tworzy plik, ale jest wykonywany w połączeniu z budowaniem powiązanego celu.
Jeśli masz tylko jeden cel, który zależy od wyników Pro*C, to pierwsza wersja jest prawdopodobnie najlepszym wyborem:
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>)