Je ne connais pas Pro*C, mais il semble que vous mélangez les deux versions différentes de add_custom_command
.
La première version add_custom_command(OUTPUT ...)
est utilisé pour générer un fichier qui est ensuite ajouté en tant que dépendance d'une autre cible CMake. Lorsque cette cible est construite, la commande personnalisée est exécutée en premier afin de générer le fichier de sortie.
La deuxième version add_custom_command(TARGET ...)
est utilisé pour définir une commande de pré-construction, de pré-lien ou de post-construction ; celui qui ne crée pas nécessairement un fichier, mais qui s'exécute en conjonction avec la construction de la cible associée.
Si vous n'avez qu'un seul objectif qui dépend de la sortie de Pro*C, alors la première version est probablement votre meilleur pari :
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>)