diff --git a/CMakeLists.txt b/CMakeLists.txt index de667e7d7..253255ce5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,6 +82,10 @@ ecbuild_add_option( FEATURE EXAMPLES DESCRIPTION "Build the examples" DEFAULT ON ) +ecbuild_add_option( FEATURE BUILD_TOOLS + DESCRIPTION "Build the command line tools" + DEFAULT ON ) + ecbuild_add_option( FEATURE JPG DESCRIPTION "Support for JPG decoding/encoding" DEFAULT ON ) @@ -399,7 +403,9 @@ include_directories( ${ECCODES_INCLUDE_DIRS} ${ECCODES_EXTRA_INCLUDE_DIRS} ) add_subdirectory( definitions ) # must be before memfs add_subdirectory( memfs ) add_subdirectory( src ) -add_subdirectory( tools ) +if( HAVE_BUILD_TOOLS ) + add_subdirectory( tools ) +endif() add_subdirectory( fortran ) if( PYTHON_VERSION_MAJOR GREATER 2 ) diff --git a/examples/C/CMakeLists.txt b/examples/C/CMakeLists.txt index 9b850c9fc..1539428ac 100644 --- a/examples/C/CMakeLists.txt +++ b/examples/C/CMakeLists.txt @@ -59,59 +59,91 @@ endforeach() # Now add each test (shell scripts) ######################################################################## -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_multiple - grib_multi - set_missing - 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_set_keys - bufr_subset - get_product_kind -) +if( HAVE_BUILD_TOOLS ) + 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_multiple + grib_multi + set_missing + 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_set_keys + bufr_subset + get_product_kind) +else() + # No 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 + 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_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 ) + 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 ) + 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() ######################################################################## diff --git a/examples/F90/CMakeLists.txt b/examples/F90/CMakeLists.txt index d22a8b30f..ef6394921 100644 --- a/examples/F90/CMakeLists.txt +++ b/examples/F90/CMakeLists.txt @@ -6,52 +6,91 @@ 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 tests_sanity - grib_set_pv - grib_set_data - grib_ecc-671 ) -list( APPEND tests_extra - grib_index - grib_copy_message - bufr_copy_message - grib_get_keys - grib_get_data - get_pl - get_pv - grib_keys_iterator - grib_multi_write - grib_multi - grib_nearest - grib_precision - grib_print_data - grib_set_keys - grib_set_bitmap - grib_set_missing - grib_samples - grib_count_messages - grib_count_messages_multi - grib_copy_namespace - read_message - read_from_file - get_set_uuid - grib_clone - bufr_attributes - bufr_copy_data - bufr_clone - bufr_expanded - bufr_get_keys - bufr_get_string_array - bufr_keys_iterator - bufr_read_header - bufr_read_scatterometer - bufr_read_synop - bufr_read_temp - bufr_read_tropical_cyclone - bufr_set_keys - bufr_copy_keys - bufr_subset - get_product_kind ) +############################################# +if( HAVE_BUILD_TOOLS ) + list( APPEND tests_sanity + grib_set_pv + grib_set_data + grib_ecc-671 ) + list( APPEND tests_extra + grib_index + grib_copy_message + bufr_copy_message + grib_get_keys + grib_get_data + get_pl + get_pv + grib_keys_iterator + grib_multi_write + grib_multi + grib_nearest + grib_precision + grib_print_data + grib_set_keys + grib_set_bitmap + grib_set_missing + grib_samples + grib_count_messages + grib_count_messages_multi + grib_copy_namespace + read_message + read_from_file + get_set_uuid + grib_clone + bufr_attributes + bufr_copy_data + bufr_clone + bufr_expanded + bufr_get_keys + bufr_get_string_array + bufr_keys_iterator + bufr_read_header + bufr_read_scatterometer + bufr_read_synop + bufr_read_temp + bufr_read_tropical_cyclone + bufr_set_keys + bufr_copy_keys + bufr_subset + get_product_kind ) +else() + # No tools + list( APPEND tests_sanity + grib_set_pv + grib_set_data + grib_ecc-671 ) + list( APPEND tests_extra + grib_index + grib_get_keys + grib_get_data + get_pl + get_pv + grib_keys_iterator + grib_multi + grib_nearest + grib_precision + grib_print_data + grib_set_missing + grib_samples + grib_count_messages + grib_count_messages_multi + read_from_file + grib_clone + bufr_attributes + bufr_clone + bufr_expanded + bufr_get_keys + bufr_get_string_array + bufr_keys_iterator + bufr_read_header + bufr_read_scatterometer + bufr_read_synop + bufr_read_temp + bufr_read_tropical_cyclone + bufr_set_keys + bufr_subset + get_product_kind ) +endif() foreach( tool ${tests_sanity} ) ecbuild_add_test( TARGET eccodes_f_${tool} diff --git a/examples/python/CMakeLists.txt b/examples/python/CMakeLists.txt index 158b0629f..a39b5b927 100644 --- a/examples/python/CMakeLists.txt +++ b/examples/python/CMakeLists.txt @@ -25,46 +25,82 @@ endforeach() # Now add each test -################################################# -list(APPEND tests_basic - grib_set_pv - grib_read_sample - bufr_read_sample - bufr_ecc-869 -) -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 -) +################################################ +if( HAVE_BUILD_TOOLS ) + list(APPEND tests_basic + grib_set_pv + grib_read_sample + bufr_read_sample + bufr_ecc-869 + ) + 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 + ) +else() + # No tools + list(APPEND tests_basic + grib_read_sample + bufr_read_sample + ) + list(APPEND tests_extra + grib_clone + grib_count_messages + grib_get_keys + grib_index + grib_iterator + grib_keys_iterator + grib_multi_write + grib_nearest + grib_print_data + grib_samples + bufr_attributes + bufr_clone + 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 + ) +endif() # The high level python test requires new features in the unittest # which are only there for python 2.7 onwards @@ -97,7 +133,7 @@ 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 + CONDITION HAVE_PYTHON AND ENABLE_EXTRA_TESTS AND HAVE_BUILD_TOOLS ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE} RESOURCES flight_data.csv TEST_DEPENDS eccodes_download_bufrs ) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index eb0d2f516..0e95fc7a7 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -47,295 +47,316 @@ endforeach() # Now add each test (shell scripts) ################################################# -# These tests do not require any data downloads -list(APPEND tests_no_data_reqd - unit_tests - julian - grib_dump_samples - bufr_dump_samples - bufr_check_descriptors - definitions - grib_calendar - grib_md5 - filter_substr - grib_uerra - grib_2nd_order_numValues - grib_ecc-136 - grib_ecc-967 - grib_ecc-1065 - grib_ecc-1053 - bufr_json_samples - bufr_ecc-359 - bufr_ecc-517 - bufr_rdbSubTypes - grib_efas - grib_sh_imag - pseudo_diag - grib_grid_unstructured - grib_grid_lambert_conformal - grib_grid_polar_stereographic - grib_grid_space_view - grib_g1fcperiod) +if( HAVE_BUILD_TOOLS ) -# These tests do require data downloads -list(APPEND tests_data_reqd - grib_data_quality_checks - grib_bpv_limit - grib_complex - grib_double_cmp - grib_change_packing - bufr_dump_data - bufr_dump_descriptors - bufr_dump_subset - bufr_dump_decode_filter - bufr_dump_encode_filter - bufrdc_desc_ref - bufrdc_ref - bufr_compare - bufr_copy - bufr_count - bufr_get - bufr_filter - bufr_filter_extract_datetime - bufr_filter_extract_area - bufr_json_data - bufr_ls - bufr_ls_json - bufr_change_edition - bufr_keys_iter - bufr_get_element - bufr_wmo_tables - bufr_extract_headers - bufr_ecc-673 - bufr_ecc-428 - bufr_ecc-286 - bufr_ecc-288 - bufr_ecc-313 - bufr_ecc-616 - bufr_ecc-686 - bufr_ecc-690 - bufr_ecc-379 - bufr_ecc-393 - bufr_ecc-433 - bufr_ecc-750 - bufr_ecc-765 - bufr_ecc-875 - bufr_ecc-887 - grib_ecc-490 - grib_ecc-756 - grib_ecc-873 - grib_ecc-600 - grib_ecc-923 - grib_ecc-979 - grib_ecc-984 - grib_ecc-1000 - grib_ecc-1001 - grib_ecc-1030 - bufr_ecc-556 - gts_get - gts_ls - gts_count - gts_compare - metar_ls - metar_get - metar_dump - metar_compare - bufr_set - ieee - grib_sh_ieee64 - grib_optimize_scaling - grib_optimize_scaling_sh - grib_lam_bf - grib_lam_gp - grib1to2 - grib2to1 - grib1to3 - grib2to3 - grib3_templates - badgrib - grib_ls - grib_ls_json - grib_filter - grib_multi - grib_nearest_test - pseudo_budg - grib_gridType - grib_octahedral - grib_grid_mercator - grib_global - grib_concept - grib_decimalPrecision - grib_bitsPerValue - grib_get_fail - grib_missing - grib_local - grib_step - grib_set - grib_iterator - grib_proj_string - grib_compare - grib_copy - grib_level - grib_indexing - grib_bitmap - grib_list - grib_second_order - grib_multi_from_message - grib_change_scanning - grib_statistics - grib_tigge - read_any - grib_dump - grib_dump_debug - grib_dump_json - grib_local_MeteoFrance - grib_neg_fctime - codes_split_file - grib_mars_types) + # These tests do not require any data downloads + list(APPEND tests_no_data_reqd + unit_tests + julian + grib_dump_samples + bufr_dump_samples + bufr_check_descriptors + definitions + grib_calendar + grib_md5 + filter_substr + grib_uerra + grib_2nd_order_numValues + grib_ecc-136 + grib_ecc-967 + grib_ecc-1065 + grib_ecc-1053 + bufr_json_samples + bufr_ecc-359 + bufr_ecc-517 + bufr_rdbSubTypes + grib_efas + grib_sh_imag + pseudo_diag + grib_grid_unstructured + grib_grid_lambert_conformal + grib_grid_polar_stereographic + grib_grid_space_view + grib_g1fcperiod) -if( HAVE_FORTRAN AND ENABLE_EXTRA_TESTS ) - list(APPEND tests_data_reqd bufr_dump_encode_fortran) - list(APPEND tests_data_reqd bufr_dump_decode_fortran) -endif() -if( ENABLE_EXTRA_TESTS ) - list(APPEND tests_data_reqd grib_util_set_spec) - list(APPEND tests_data_reqd grib_padding) - list(APPEND tests_data_reqd grib_tigge_conversions) - list(APPEND tests_data_reqd bufr_dump_encode_C) - list(APPEND tests_data_reqd bufr_dump_decode_C) -endif() + # These tests do require data downloads + list(APPEND tests_data_reqd + grib_data_quality_checks + grib_bpv_limit + grib_complex + grib_double_cmp + grib_change_packing + bufr_dump_data + bufr_dump_descriptors + bufr_dump_subset + bufr_dump_decode_filter + bufr_dump_encode_filter + bufrdc_desc_ref + bufrdc_ref + bufr_compare + bufr_copy + bufr_count + bufr_get + bufr_filter + bufr_filter_extract_datetime + bufr_filter_extract_area + bufr_json_data + bufr_ls + bufr_ls_json + bufr_change_edition + bufr_keys_iter + bufr_get_element + bufr_wmo_tables + bufr_extract_headers + bufr_ecc-673 + bufr_ecc-428 + bufr_ecc-286 + bufr_ecc-288 + bufr_ecc-313 + bufr_ecc-616 + bufr_ecc-686 + bufr_ecc-690 + bufr_ecc-379 + bufr_ecc-393 + bufr_ecc-433 + bufr_ecc-750 + bufr_ecc-765 + bufr_ecc-875 + bufr_ecc-887 + grib_ecc-490 + grib_ecc-756 + grib_ecc-873 + grib_ecc-600 + grib_ecc-923 + grib_ecc-979 + grib_ecc-984 + grib_ecc-1000 + grib_ecc-1001 + grib_ecc-1030 + bufr_ecc-556 + gts_get + gts_ls + gts_count + gts_compare + metar_ls + metar_get + metar_dump + metar_compare + bufr_set + ieee + grib_sh_ieee64 + grib_optimize_scaling + grib_optimize_scaling_sh + grib_lam_bf + grib_lam_gp + grib1to2 + grib2to1 + grib1to3 + grib2to3 + grib3_templates + badgrib + grib_ls + grib_ls_json + grib_filter + grib_multi + grib_nearest_test + pseudo_budg + grib_gridType + grib_octahedral + grib_grid_mercator + grib_global + grib_concept + grib_decimalPrecision + grib_bitsPerValue + grib_get_fail + grib_missing + grib_local + grib_step + grib_set + grib_iterator + grib_proj_string + grib_compare + grib_copy + grib_level + grib_indexing + grib_bitmap + grib_list + grib_second_order + grib_multi_from_message + grib_change_scanning + grib_statistics + grib_tigge + read_any + grib_dump + grib_dump_debug + grib_dump_json + grib_local_MeteoFrance + grib_neg_fctime + codes_split_file + grib_mars_types) -# These tests do not require any data downloads -foreach( test ${tests_no_data_reqd} ) + if( HAVE_FORTRAN AND ENABLE_EXTRA_TESTS ) + list(APPEND tests_data_reqd bufr_dump_encode_fortran) + list(APPEND tests_data_reqd bufr_dump_decode_fortran) + endif() + if( ENABLE_EXTRA_TESTS ) + list(APPEND tests_data_reqd grib_util_set_spec) + list(APPEND tests_data_reqd grib_padding) + list(APPEND tests_data_reqd grib_tigge_conversions) + list(APPEND tests_data_reqd bufr_dump_encode_C) + list(APPEND tests_data_reqd bufr_dump_decode_C) + endif() + + # These tests do not require any data downloads + foreach( test ${tests_no_data_reqd} ) + ecbuild_add_test( TARGET eccodes_t_${test} + TYPE SCRIPT + LABELS "sanity" + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh ) + endforeach() + ecbuild_add_test( TARGET eccodes_t_grib_check_gaussian_grids + TYPE SCRIPT + CONDITION ECCODES_INSTALL_EXTRA_TOOLS + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_check_gaussian_grids.sh ) + + + # Note: making the test dependent on the grib files (with DEPENDS) + # means they will be downloaded at "make" time + # rather than when you do "ctest". Use TEST_DEPENDS instead + foreach( test ${tests_data_reqd} ) + ecbuild_add_test( TARGET eccodes_t_${test} + TYPE SCRIPT + CONDITION ENABLE_EXTRA_TESTS + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh + RESOURCES asca_139.t1.ref + TEST_DEPENDS eccodes_download_gribs eccodes_download_tigge_gribs + eccodes_download_bufrs eccodes_download_metars eccodes_download_gts ) + endforeach() + + if( HAVE_FORTRAN AND ENABLE_EXTRA_TESTS ) + set_tests_properties( eccodes_t_bufr_dump_encode_fortran PROPERTIES TIMEOUT 2500 ) + endif() + if( ENABLE_EXTRA_TESTS ) + set_tests_properties( eccodes_t_bufr_dump_encode_C PROPERTIES TIMEOUT 2500 ) + endif() + + + if( HAVE_PYTHON AND ENABLE_EXTRA_TESTS ) + list( APPEND ptests bufr_dump_encode_python bufr_dump_decode_python ) + foreach( test ${ptests} ) + ecbuild_add_test( TARGET eccodes_t_${test} + TYPE SCRIPT + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh + ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE} PYTHONPATH=${PROJECT_BINARY_DIR}/python + TEST_DEPENDS eccodes_download_bufrs ) + endforeach() + endif() + + ########################################### + # Note: the reference file is in the tests dir not data dir! + ecbuild_add_test( TARGET eccodes_t_grib_grid_lamb_az_eq_area + TYPE SCRIPT + CONDITION ENABLE_EXTRA_TESTS + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_grid_lamb_az_eq_area.sh + RESOURCES grib_lamb_az_eq_area.ref + TEST_DEPENDS eccodes_download_gribs ) + + # These ones are conditional + ########################################### + ecbuild_add_test( TARGET eccodes_t_tools_data_from_stdin + TYPE SCRIPT + CONDITION NOT ECCODES_ON_WINDOWS AND ENABLE_EXTRA_TESTS + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tools_data_from_stdin.sh + TEST_DEPENDS eccodes_download_bufrs ) + + ecbuild_add_test( TARGET eccodes_t_bufr_ecc-197 + TYPE SCRIPT + CONDITION NOT ECCODES_ON_WINDOWS AND ENABLE_EXTRA_TESTS + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_ecc-197.sh + TEST_DEPENDS eccodes_download_bufrs ) + + if( ENABLE_EXTRA_TESTS AND HAVE_ECCODES_THREADS ) + ecbuild_add_executable( TARGET grib_encode_pthreads + NOINSTALL + SOURCES grib_encode_pthreads.c + LIBS eccodes ) + ecbuild_add_test( TARGET eccodes_t_grib_encode_pthreads + TYPE SCRIPT + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_encode_pthreads.sh ) + + foreach( test grib_threads_ecc-604 grib_threads_ecc-604-encode bufr_threads_ecc-604 ) + ecbuild_add_executable( TARGET ${test} + NOINSTALL + SOURCES ${test}.c + LIBS eccodes ) + endforeach() + ecbuild_add_test( TARGET eccodes_t_grib_threads_ecc-604 + TYPE SCRIPT + TEST_DEPENDS eccodes_download_gribs + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_threads_ecc-604.sh ) + ecbuild_add_test( TARGET eccodes_t_bufr_threads_ecc-604 + TYPE SCRIPT + TEST_DEPENDS eccodes_download_bufrs + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_threads_ecc-604.sh ) + endif() + + ecbuild_add_test( TARGET eccodes_t_grib_to_netcdf + TYPE SCRIPT + CONDITION HAVE_NETCDF AND ENABLE_EXTRA_TESTS + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_to_netcdf.sh + TEST_DEPENDS eccodes_download_gribs ) + + ecbuild_add_test( TARGET eccodes_t_grib_jpeg + TYPE SCRIPT + CONDITION HAVE_JPEG AND ENABLE_EXTRA_TESTS + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_jpeg.sh + TEST_DEPENDS eccodes_download_gribs ) + + ecbuild_add_test( TARGET eccodes_t_grib_png + TYPE SCRIPT + CONDITION HAVE_PNG AND ENABLE_EXTRA_TESTS + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_png.sh + TEST_DEPENDS eccodes_download_gribs ) + + ecbuild_add_test( TARGET eccodes_t_grib_ccsds + TYPE SCRIPT + CONDITION HAVE_AEC AND ENABLE_EXTRA_TESTS + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ccsds.sh + TEST_DEPENDS eccodes_download_gribs ) + + ecbuild_add_test( TARGET eccodes_t_grib_check_param_concepts + TYPE SCRIPT + CONDITION ENABLE_EXTRA_TESTS + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_check_param_concepts.sh ) + + ecbuild_add_test( TARGET eccodes_t_bufr_split_by_rdbSubtype + TYPE SCRIPT + CONDITION ENABLE_EXTRA_TESTS AND ECCODES_INSTALL_EXTRA_TOOLS + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_split_by_rdbSubtype.sh + TEST_DEPENDS eccodes_download_bufrs ) + + # Performance test. Must have -DENABLE_GRIB_TIMER=ON + ecbuild_add_test( TARGET eccodes_t_grib_ecc-386 + TYPE SCRIPT + CONDITION ENABLE_EXTRA_TESTS AND ENABLE_GRIB_TIMER + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ecc-386.sh + TEST_DEPENDS eccodes_download_gribs ) +else() + # No tools + list(APPEND tests_no_tools + unit_tests + julian + bufr_check_descriptors + grib_sh_imag + grib_2nd_order_numValues + grib_sh_ieee64 + ) + + foreach( test ${tests_no_tools} ) ecbuild_add_test( TARGET eccodes_t_${test} TYPE SCRIPT LABELS "sanity" COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh ) -endforeach() -ecbuild_add_test( TARGET eccodes_t_grib_check_gaussian_grids - TYPE SCRIPT - CONDITION ECCODES_INSTALL_EXTRA_TOOLS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_check_gaussian_grids.sh ) - - -# Note: making the test dependent on the grib files (with DEPENDS) -# means they will be downloaded at "make" time -# rather than when you do "ctest". Use TEST_DEPENDS instead -foreach( test ${tests_data_reqd} ) - ecbuild_add_test( TARGET eccodes_t_${test} - TYPE SCRIPT - CONDITION ENABLE_EXTRA_TESTS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh - RESOURCES asca_139.t1.ref - TEST_DEPENDS eccodes_download_gribs eccodes_download_tigge_gribs - eccodes_download_bufrs eccodes_download_metars eccodes_download_gts ) -endforeach() - -if( HAVE_FORTRAN AND ENABLE_EXTRA_TESTS ) - set_tests_properties( eccodes_t_bufr_dump_encode_fortran PROPERTIES TIMEOUT 2500 ) -endif() -if( ENABLE_EXTRA_TESTS ) - set_tests_properties( eccodes_t_bufr_dump_encode_C PROPERTIES TIMEOUT 2500 ) -endif() - - -if( HAVE_PYTHON AND ENABLE_EXTRA_TESTS ) - list( APPEND ptests bufr_dump_encode_python bufr_dump_decode_python ) - foreach( test ${ptests} ) - ecbuild_add_test( TARGET eccodes_t_${test} - TYPE SCRIPT - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh - ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE} PYTHONPATH=${PROJECT_BINARY_DIR}/python - TEST_DEPENDS eccodes_download_bufrs ) endforeach() + endif() - -########################################### -# Note: the reference file is in the tests dir not data dir! -ecbuild_add_test( TARGET eccodes_t_grib_grid_lamb_az_eq_area - TYPE SCRIPT - CONDITION ENABLE_EXTRA_TESTS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_grid_lamb_az_eq_area.sh - RESOURCES grib_lamb_az_eq_area.ref - TEST_DEPENDS eccodes_download_gribs ) - -# These ones are conditional -########################################### -ecbuild_add_test( TARGET eccodes_t_tools_data_from_stdin - TYPE SCRIPT - CONDITION NOT ECCODES_ON_WINDOWS AND ENABLE_EXTRA_TESTS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tools_data_from_stdin.sh - TEST_DEPENDS eccodes_download_bufrs ) - -ecbuild_add_test( TARGET eccodes_t_bufr_ecc-197 - TYPE SCRIPT - CONDITION NOT ECCODES_ON_WINDOWS AND ENABLE_EXTRA_TESTS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_ecc-197.sh - TEST_DEPENDS eccodes_download_bufrs ) - -if( ENABLE_EXTRA_TESTS AND HAVE_ECCODES_THREADS ) - ecbuild_add_executable( TARGET grib_encode_pthreads - NOINSTALL - SOURCES grib_encode_pthreads.c - LIBS eccodes ) - ecbuild_add_test( TARGET eccodes_t_grib_encode_pthreads - TYPE SCRIPT - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_encode_pthreads.sh ) - - foreach( test grib_threads_ecc-604 grib_threads_ecc-604-encode bufr_threads_ecc-604 ) - ecbuild_add_executable( TARGET ${test} - NOINSTALL - SOURCES ${test}.c - LIBS eccodes ) - endforeach() - ecbuild_add_test( TARGET eccodes_t_grib_threads_ecc-604 - TYPE SCRIPT - TEST_DEPENDS eccodes_download_gribs - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_threads_ecc-604.sh ) - ecbuild_add_test( TARGET eccodes_t_bufr_threads_ecc-604 - TYPE SCRIPT - TEST_DEPENDS eccodes_download_bufrs - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_threads_ecc-604.sh ) -endif() - -ecbuild_add_test( TARGET eccodes_t_grib_to_netcdf - TYPE SCRIPT - CONDITION HAVE_NETCDF AND ENABLE_EXTRA_TESTS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_to_netcdf.sh - TEST_DEPENDS eccodes_download_gribs ) - -ecbuild_add_test( TARGET eccodes_t_grib_jpeg - TYPE SCRIPT - CONDITION HAVE_JPEG AND ENABLE_EXTRA_TESTS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_jpeg.sh - TEST_DEPENDS eccodes_download_gribs ) - -ecbuild_add_test( TARGET eccodes_t_grib_png - TYPE SCRIPT - CONDITION HAVE_PNG AND ENABLE_EXTRA_TESTS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_png.sh - TEST_DEPENDS eccodes_download_gribs ) - -ecbuild_add_test( TARGET eccodes_t_grib_ccsds - TYPE SCRIPT - CONDITION HAVE_AEC AND ENABLE_EXTRA_TESTS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ccsds.sh - TEST_DEPENDS eccodes_download_gribs ) - -ecbuild_add_test( TARGET eccodes_t_grib_check_param_concepts - TYPE SCRIPT - CONDITION ENABLE_EXTRA_TESTS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_check_param_concepts.sh ) - -ecbuild_add_test( TARGET eccodes_t_bufr_split_by_rdbSubtype - TYPE SCRIPT - CONDITION ENABLE_EXTRA_TESTS AND ECCODES_INSTALL_EXTRA_TOOLS - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_split_by_rdbSubtype.sh - TEST_DEPENDS eccodes_download_bufrs ) - -# Performance test. Must have -DENABLE_GRIB_TIMER=ON -ecbuild_add_test( TARGET eccodes_t_grib_ecc-386 - TYPE SCRIPT - CONDITION ENABLE_EXTRA_TESTS AND ENABLE_GRIB_TIMER - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ecc-386.sh - TEST_DEPENDS eccodes_download_gribs ) diff --git a/tigge/CMakeLists.txt b/tigge/CMakeLists.txt index 10c4aaec8..b2a1c6a4c 100644 --- a/tigge/CMakeLists.txt +++ b/tigge/CMakeLists.txt @@ -1,31 +1,33 @@ -# tigge +if( HAVE_BUILD_TOOLS ) -# library -ecbuild_add_library(TARGET tigge_tools - TYPE STATIC - NOINSTALL - SOURCES tigge_tools.c tigge_tools.h) + # library + ecbuild_add_library(TARGET tigge_tools + TYPE STATIC + NOINSTALL + SOURCES tigge_tools.c tigge_tools.h) -# executables -ecbuild_add_executable(TARGET tigge_check - SOURCES tigge_check.c - INCLUDES ${ECCODES_EXTRA_INCLUDE_DIRS} - LIBS eccodes tigge_tools) + # executables + ecbuild_add_executable(TARGET tigge_check + SOURCES tigge_check.c + INCLUDES ${ECCODES_EXTRA_INCLUDE_DIRS} + LIBS eccodes tigge_tools) -ecbuild_add_executable(TARGET tigge_name - SOURCES tigge_name.c - INCLUDES ${ECCODES_EXTRA_INCLUDE_DIRS} - CONDITION ECCODES_INSTALL_EXTRA_TOOLS - LIBS eccodes tigge_tools) + ecbuild_add_executable(TARGET tigge_name + SOURCES tigge_name.c + INCLUDES ${ECCODES_EXTRA_INCLUDE_DIRS} + CONDITION ECCODES_INSTALL_EXTRA_TOOLS + LIBS eccodes tigge_tools) -ecbuild_add_executable(TARGET tigge_accumulations - SOURCES tigge_accumulations.c - INCLUDES ${ECCODES_EXTRA_INCLUDE_DIRS} - CONDITION ECCODES_INSTALL_EXTRA_TOOLS - LIBS eccodes tigge_tools) + ecbuild_add_executable(TARGET tigge_accumulations + SOURCES tigge_accumulations.c + INCLUDES ${ECCODES_EXTRA_INCLUDE_DIRS} + CONDITION ECCODES_INSTALL_EXTRA_TOOLS + LIBS eccodes tigge_tools) -ecbuild_add_executable(TARGET tigge_split - SOURCES tigge_split.c - INCLUDES ${ECCODES_EXTRA_INCLUDE_DIRS} - CONDITION ECCODES_INSTALL_EXTRA_TOOLS - LIBS eccodes tigge_tools) + ecbuild_add_executable(TARGET tigge_split + SOURCES tigge_split.c + INCLUDES ${ECCODES_EXTRA_INCLUDE_DIRS} + CONDITION ECCODES_INSTALL_EXTRA_TOOLS + LIBS eccodes tigge_tools) + +endif()