4

私は、database.proc と呼ばれる Pro*C ソース ファイルを含む Windows 用の cmake のプロジェクトを持っています。私の目標は、.proc ファイルから C ソース ファイルを生成し、それをプロジェクトに追加して、他のソース ファイルに沿ってリンクすることです。これを達成するためにカスタムコマンドを追加しようとしましたが、成功しませんでした

add_custom_command(TARGET myproj OUTPUT PRE_LINK
    COMMAND ${PROC} iname=${PROJECT_SOURCE_DIR}/connection.proc SQLCHECK=SYNTAX
        MODE=ANSI IRECLEN=255 ORECLEN=255
        ONAME=${PROJECT_SOURCE_DIR}/connection.c
    COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS}
            ${PROJECT_SOURCE_DIR}/connection.c )

これを行う方法はありますか?

4

1 に答える 1

2

私はPro*Cに精通していませんが、2つの異なるバージョンを混ぜ合わせているようですadd_custom_command

最初のバージョンadd_custom_command(OUTPUT ...)はファイルを生成するために使用され、ファイルは別のCMakeターゲットの依存関係として追加されます。そのターゲットが構築されると、出力ファイルを生成するためにカスタムコマンドが最初に実行されます。

2番目のバージョンadd_custom_command(TARGET ...)は、ビルド前、リンク前、またはビルド後のコマンドを定義するために使用されます。必ずしもファイルを作成する必要はありませんが、関連するターゲットの構築と組み合わせて実行されます。

Pro * Cの出力に依存するターゲットが1つしかない場合は、最初のバージョンがおそらく最善の策です。

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>)
于 2013-01-23T22:40:12.543 に答える