eccodes/examples/python/CMakeLists.txt

117 lines
3.6 KiB
CMake

# examples/python/CMakeLists.txt
# Configure the file which all CMake tests will include
configure_file( include.ctest.sh.in include.ctest.sh @ONLY )
execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include.sh ${CMAKE_CURRENT_BINARY_DIR} )
# Build the executables used by test scripts
################################################
list( APPEND test_bins
grib_keys_iterator
grib_print_data
grib_iterator
grib_count_messages
)
foreach( tool ${test_bins} )
ecbuild_add_executable( TARGET p_${tool}
NOINSTALL
SOURCES ${tool}.c
CONDITION HAVE_PYTHON
LIBS eccodes
)
list( APPEND ptools p_${tool} )
endforeach()
# Now add each test
#################################################
list( APPEND tests_basic
grib_set_pv
grib_read_sample
bufr_read_sample
)
list( APPEND tests_extra
grib_clone
grib_count_messages
grib_get_message_offset
grib_get_keys
grib_index
grib_iterator
grib_keys_iterator
grib_multi_write
grib_nearest
grib_print_data
grib_samples
grib_set_missing
binary_message
grib_set_bitmap
bufr_attributes
bufr_clone
bufr_copy_data
bufr_expanded
bufr_get_keys
bufr_keys_iterator
bufr_read_header
bufr_read_scatterometer
bufr_read_tropical_cyclone
bufr_read_synop
bufr_read_temp
bufr_set_keys
bufr_subset
get_product_kind
gts_get_keys
metar_get_keys
bufr_ecc-448
)
# The high level python test requires new features in the unittest
# which are only there for python 2.7 onwards
if( HAVE_PYTHON AND PYTHON_VERSION_STRING VERSION_GREATER "2.7" )
ecbuild_info("Python examples: Adding test for High-level Pythonic Interface")
list( APPEND tests_extra high_level_api )
list( APPEND tests_extra grib_set_keys ) # Uses OrderedDict
endif()
foreach( test ${tests_basic} )
ecbuild_add_test( TARGET eccodes_p_${test}_test
TYPE SCRIPT
DEPENDS ${ptools}
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh
CONDITION HAVE_PYTHON
ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE}
)
endforeach()
foreach( test ${tests_extra} )
ecbuild_add_test( TARGET eccodes_p_${test}_test
TYPE SCRIPT
DEPENDS ${ptools}
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh
CONDITION HAVE_PYTHON AND ENABLE_EXTRA_TESTS
ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE}
TEST_DEPENDS eccodes_download_gribs eccodes_download_tigge_gribs eccodes_download_bufrs
)
endforeach()
# Add test which requires input CSV file
ecbuild_add_test( TARGET eccodes_p_bufr_encode_flight_test
TYPE SCRIPT
DEPENDS ${ptools}
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_encode_flight.sh
CONDITION HAVE_PYTHON AND ENABLE_EXTRA_TESTS
ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE}
RESOURCES flight_data.csv
TEST_DEPENDS eccodes_download_bufrs
)
# Conditional tests
ecbuild_add_test( TARGET eccodes_p_grib_ccsds_test
TYPE SCRIPT
DEPENDS ${ptools}
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ccsds.sh
CONDITION HAVE_PYTHON AND HAVE_AEC AND ENABLE_EXTRA_TESTS
ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE}
TEST_DEPENDS eccodes_download_gribs
)