13

CMake を使用して、システムと単体テストをビルドしています。

また、アウトオブソース ビルドも行っています。

ADD_TEST() コマンドを使用すると、テスト実行可能ファイルをインストールする必要がないことがわかりました (make install を実行すると実行されるだけで、これはすばらしいことです)。

ただし、単体テストはいくつかの入力ファイルに依存しているため、実行可能ファイルをビルドする場所にコピーする必要があります。

私が知る限り、INSTALL() を使用してそこにファイルをコピーすることはできません。どこにあるのかを指定していないためです。ビルド コマンドが呼び出される場所によって異なります。

テストファイルを実行可能ファイルをビルドするのと同じ場所にコピーするように CMake に指示する方法はありますか?

4

5 に答える 5

4

確かに、これは構成ステップで次のように行うことができます。

execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${fileFrom} ${fileTo})

入力ファイルがビルドによって生成されたものに依存している場合は、そのターゲットを作成して、ターゲットに追加できますall

add_custom_target(copy_my_files ALL
    COMMAND ${CMAKE_COMMAND} -E copy_if_different ${fileFrom} ${fileTo}
    DEPENDS ${fileFrom}
)
于 2012-09-07T12:22:35.007 に答える
2

これは最善の解決策ではないかもしれませんが、現在私はこれを行っています:

file(COPY my_directory DESTINATION ${CMAKE_CURRENT_BINARY_DIR})

これはトリックをしているようです。

于 2012-09-11T05:09:24.737 に答える