Neznám Pro*C, ale vypadá to, že mícháte dohromady dvě různé verze add_custom_command
.
První verze add_custom_command(OUTPUT ...)
se používá ke generování souboru, který je poté přidán jako závislost jiného cíle CMake. Když je tento cíl vytvořen, je nejprve proveden vlastní příkaz, aby se vygeneroval výstupní soubor.
Druhá verze add_custom_command(TARGET ...)
používá se k definování příkazu pre-build, pre-link nebo post-build; takový, který nutně nevytváří soubor, ale který se provádí ve spojení s vytvářením přidruženého cíle.
Pokud máte pouze jeden cíl, který závisí na výstupu Pro*C, pak je pravděpodobně nejlepší první verze:
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>)