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로 무엇을 보여주십시오과 :
그래서 당신은 "확인"수동 대상으로 정의하고,이 단계에서 구축하고자 (실행 파일처럼) 모든 대상에서 그것을 따라 설정할 수 있습니다 우리는 픽스를 더 잘 지적 할 수있을 것입니다. –