CMakeでは、Cテストプログラムをビルドする必要があるが、実行しないことをどのように指定するのだろうか?CMakeにテストをビルドさせるが、テストは実行されない
天気、気候、宇宙科学者が使用するフリーソフトウェアサイエンスデータパッケージであるNetCDF Cライブラリについては、CMakeとautotoolsの両方のビルドがあります。コードはgithubにあります。そこにCMakeファイルがあります。
テストでは、シェルスクリプトといくつかのCプログラムがあります。この場合、Cテストを実行する前に、シェルスクリプトアクションを完了する必要があります。私はこのすべてを並列ビルドで動作させたいので、最も簡単な解決策は、シェルプログラムがCテストプログラムを呼び出す必要があるときにシェルプログラムに呼び出させ、テスト中にCテストプログラムを呼び出さないようにすることです。
たとえば、テストプログラムtst_interops3.c(ディレクトリnc_test4)があります。私はまた、シェルスクリプトテストrun_get_hdf4_files.shを持っています。ここでは、次のとおりです。
#!/bin/sh
# This shell gets files from the netCDF ftp site for testing.
# $Id: run_get_hdf4_files.sh,v 1.4 2009/07/15 15:16:05 ed Exp $
set -e
echo ""
file_list="AMSR_E_L2_Rain_V10_200905312326_A.hdf AMSR_E_L3_DailyLand_V06_20020619.hdf \
MYD29.A2009152.0000.005.2009153124331.hdf MYD29.A2002185.0000.005.2007160150627.hdf \
MOD29.A2000055.0005.005.2006267200024.hdf"
echo "Getting HDF4 test files $file_list"
for f1 in $file_list
do
if ! test -f $f1; then
curl -O "ftp://ftp.unidata.ucar.edu/pub/netcdf/sample_data/hdf4/$f1.gz"
gunzip $f1.gz
fi
done
${execdir}/tst_interops3
echo "SUCCESS!!!"
exit 0
このスクリプトは、いくつかのデータファイルをダウンロードした後、NetCDFファイルは、HDF4データファイルを読むことができることを確実にするために、データファイルを読み込むプログラムtst_interops3を実行します。 (HDF4は従来の科学データフォーマットです)。
autotoolsでは、私はcheck_PROGRAMSにtst_interops3をリストアップしますが、TESTSはリストしません。これにより、ビルドされますが、実行されません。 (それはスクリプトで実行されます)
しかし、私はCMakeで同じことをする方法を理解することはできません。テストプログラムをビルドするにはどうすればよいですか?
はすでにcmakeのに持っているものをご提示ください、そして:
ですから、「チェック」手動でターゲットを定義し、あなたがこの段階で構築したい(実行ファイルのように)すべてのターゲットからそれが依存して設定することができ –