13

libevent ライブラリを含む C++ プロジェクトがあります。プロジェクトの構造:

.
|_ CMakeLists.txt
|_ Makefile
|_ src
| |_ my_lib.cpp
|_ test
| |_ my_lib_test.cpp
|_ lib
  |_ libevent
    |_ CMakeLists.txt
    |_ ...

テストをビルドして実行すると、libevent テストも実行されます。それらを除外して、自分のテストのみを実行するにはどうすればよいですか?

4

4 に答える 4

6

より一般的な方法もあります。という名前のファイルCTestCustom.cmakeをソース ツリーに追加し、実行したくCTestないテストのリストを追加します。

set(CTEST_CUSTOM_TESTS_IGNORE
   test1
   ....
   testN
)

このファイルを、テストが実行されるビルド ディレクトリにコピーします。

configure_file(${CMAKE_SOURCE_DIR}/CTestCustom.cmake ${CMAKE_BINARY_DIR})

これによりCTest、リストされたテストが無視されます。詳細については、これを参照してください。

于 2015-02-19T11:07:06.123 に答える
4

libevent の CMakeLists.txt ファイルで利用可能なoptionsを見ると、に設定EVENT__DISABLE_TESTSすることでこれらを非常に簡単に無効にできるようONです。

libevent が含まれる前に、独自の CMakeLists.txt でこれを行うことができます。

set(EVENT__DISABLE_TESTS ON)
...
add_subdirectory(lib/libevent)

または、コマンド ラインで CMake を呼び出す場合:

cmake . -DEVENT__DISABLE_TESTS=ON
于 2014-05-17T18:54:36.560 に答える