4

私の CMakeLists.txt には、次のようなものがあります。

 set_property(TEST testX APPEND PROPERTY DEPENDS testY)
 set_property(TEST testX APPEND PROPERTY DEPENDS testZ)

testXそして、何らかの方法で実行し、そのすべての依存関係を自動的に実行したいと考えています。何かのようなもの:

ctest <options> testX

その結果、CTest が実行さtextYtestZますtestX。これを行う方法はありますか?

または、現在不可能である場合、依存関係に関する情報を CMake ビルド ディレクトリからスクリプトで抽出する方法はありますか?

4

2 に答える 2

3

私の知る限り、これを行う組み込みの方法はありません。

あなたの目標を達成するために私が考えることができる最善の方法は、テストでLABELSプロパティを使用することです。get_propertyorを使用して依存関係のリストを取得しget_test_property、同じラベルをtestX各依存テストに適用できます。

get_test_property(testX DEPENDS DependenciesOfTestX)
set_tests_properties(testX ${DependenciesOfTestX} PROPERTIES LABELS LabelX)

次に、そのラベルの付いたテストのみを実行するように CTest に指示できます。

ctest -L LabelX
于 2015-06-14T15:19:53.523 に答える