Не съм запознат с Pro*C, но изглежда, че смесвате двете различни версии на add_custom_command
.
Първата версия add_custom_command(OUTPUT ...)
се използва за генериране на файл, който след това се добавя като зависимост от друга CMake цел. Когато тази цел е изградена, персонализираната команда се изпълнява първо, за да се генерира изходният файл.
Втората версия add_custom_command(TARGET ...)
се използва за дефиниране на команда преди изграждане, преди свързване или след изграждане; такъв, който не създава непременно файл, но който се изпълнява във връзка с изграждането на свързаната цел.
Ако имате само една цел, която зависи от изхода на Pro*C, тогава първата версия вероятно е най-добрият ви залог:
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>)