Ich bin mit Pro*C nicht vertraut, aber es sieht so aus, als würden Sie die beiden verschiedenen Versionen von add_custom_command
.
Die erste Version add_custom_command(OUTPUT ...)
wird verwendet, um eine Datei zu generieren, die dann als Abhängigkeit eines anderen CMake-Ziels hinzugefügt wird. Wenn dieses Ziel erstellt wird, wird zuerst der benutzerdefinierte Befehl ausgeführt, um die Ausgabedatei zu generieren.
Die zweite Version add_custom_command(TARGET ...)
wird verwendet, um einen Pre-Build-, Pre-Link- oder Post-Build-Befehl zu definieren; eine, die nicht unbedingt eine Datei erstellt, aber in Verbindung mit dem Erstellen des zugeordneten Ziels ausgeführt wird.
Wenn Sie nur ein Ziel haben, das von der Ausgabe von Pro*C abhängt, dann ist die erste Version wahrscheinlich die beste Wahl:
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>)