eccodes/examples/C/CMakeLists.txt

180 lines
4.8 KiB
CMake

# examples/C/CMakeLists.txt
# Configure the file which all CMake tests will include
configure_file( include.ctest.sh.in include.ctest.sh @ONLY )
# Build the executables used by test scripts
#############################################
list( APPEND test_bins
grib_nearest
grib_set_bitmap
grib_iterator
grib_get_keys
grib_print_data
grib_set_keys
grib_index
grib_set_missing
grib_keys_iterator
grib_set_data
grib_nearest_multiple
grib_multi
grib_multi_write
grib_precision
grib_set_pv
grib_list
grib_get_data
grib_sections_copy
grib_iterator_bitmap
grib_clone
grib_copy_message
grib_ensemble_index
bufr_copy_data
bufr_attributes
bufr_clone
bufr_expanded
bufr_get_keys
bufr_get_string_array
bufr_keys_iterator
bufr_missing
bufr_read_header
bufr_read_scatterometer
bufr_read_synop
bufr_read_temp
bufr_read_tempf
bufr_set_keys
bufr_subset
mars_param
grib_values_check
multi2
large_grib1
get_product_kind)
foreach( tool ${test_bins} )
ecbuild_add_executable( TARGET c_${tool}
NOINSTALL
SOURCES ${tool}.c
LIBS eccodes )
endforeach()
# Now add each test (shell scripts)
####################################
if( HAVE_BUILD_TOOLS )
# Command line tools are available
list(APPEND tests_sanity
grib_set_data
large_grib1
grib_sections_copy
get_product_kind_samples)
list(APPEND tests_extra
grib_iterator
grib_get_keys
grib_print_data
grib_set_keys
grib_keys_iterator
grib_multi_write
grib_precision
grib_clone
grib_copy_message
grib_ensemble_index
grib_set_pv
grib_set_bitmap
grib_list
grib_get_data
grib_nearest
grib_nearest_multiple
grib_multi
grib_set_missing
grib_values_check
bufr_attributes
bufr_copy_data
bufr_clone
bufr_expanded
bufr_get_keys
bufr_get_string_array
bufr_keys_iterator
bufr_missing
bufr_read_header
bufr_read_scatterometer
bufr_read_synop
bufr_read_temp
bufr_read_tempf
bufr_set_keys
bufr_subset
get_product_kind)
else()
# No command line tools
list(APPEND tests_sanity
grib_set_data
get_product_kind_samples)
list(APPEND tests_extra
grib_iterator
grib_get_keys
grib_print_data
grib_set_keys
grib_keys_iterator
grib_precision
grib_ensemble_index
grib_set_pv
grib_list
grib_get_data
grib_nearest_multiple
grib_multi
grib_set_missing
bufr_attributes
bufr_expanded
bufr_get_keys
bufr_get_string_array
bufr_keys_iterator
bufr_missing
bufr_read_header
bufr_read_scatterometer
bufr_read_synop
bufr_read_temp
bufr_read_tempf
bufr_set_keys
bufr_subset
get_product_kind)
endif()
foreach( test ${tests_sanity} )
ecbuild_add_test( TARGET eccodes_c_${test}
TYPE SCRIPT
LABELS "sanity"
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh )
endforeach()
foreach( test ${tests_extra} )
ecbuild_add_test( TARGET eccodes_c_${test}
TYPE SCRIPT
CONDITION ENABLE_EXTRA_TESTS
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh
TEST_DEPENDS eccodes_download_gribs eccodes_download_bufrs )
endforeach()
# Tests which are conditional
#############################
if( ENABLE_EXTRA_TESTS AND HAVE_ECCODES_THREADS )
# For POSIX threads
list(APPEND pthread_tests grib_pthreads bufr_pthreads)
foreach( test ${pthread_tests} )
ecbuild_add_executable( TARGET c_${test}
NOINSTALL
SOURCES ${test}.c
LIBS eccodes ${CMAKE_THREAD_LIBS_INIT} )
ecbuild_add_test( TARGET eccodes_c_${test}
TYPE SCRIPT
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh
TEST_DEPENDS eccodes_download_gribs eccodes_download_bufrs )
endforeach()
endif()
# Tests with no script
######################
ecbuild_add_test(
TARGET eccodes_c_new_sample
SOURCES new_sample.c
LIBS eccodes
ARGS "out.grib"
ENVIRONMENT "ECCODES_SAMPLES_PATH=${PROJECT_SOURCE_DIR}/samples" "ECCODES_DEFINITION_PATH=${PROJECT_SOURCE_DIR}/definitions"
)