Saya tidak terbiasa dengan Pro*C, tetapi sepertinya Anda menggabungkan dua versi berbeda dari add_custom_command
.
Versi pertama add_custom_command(OUTPUT ...)
digunakan untuk menghasilkan file yang kemudian ditambahkan sebagai ketergantungan target CMake lain. Ketika target itu dibuat, perintah khusus dijalankan terlebih dahulu untuk menghasilkan file keluaran.
Versi kedua add_custom_command(TARGET ...)
digunakan untuk mendefinisikan perintah pre-build, pre-link atau post-build; salah satu yang tidak harus membuat file, tetapi yang dijalankan bersama dengan membangun target terkait.
Jika Anda hanya memiliki satu target yang bergantung pada keluaran Pro*C, maka versi pertama mungkin adalah pilihan terbaik Anda:
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>)