ECC-1508: Set project language to be C++

This commit is contained in:
Shahram Najm 2023-01-28 15:18:23 +00:00
parent d22b3b1dec
commit 130c61e755
524 changed files with 435 additions and 504 deletions

View File

@ -21,7 +21,7 @@ cmake_minimum_required( VERSION 3.12 FATAL_ERROR )
find_package( ecbuild 3.7 REQUIRED HINTS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../ecbuild) find_package( ecbuild 3.7 REQUIRED HINTS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../ecbuild)
# Initialise project # Initialise project
project( eccodes VERSION 2.29.0 LANGUAGES C ) project( eccodes VERSION 2.29.0 LANGUAGES CXX )
############################################################################### ###############################################################################
# system checks needed for eccodes_config.h and some options like MEMFS # system checks needed for eccodes_config.h and some options like MEMFS
@ -65,15 +65,9 @@ ecbuild_info("Operating system=${CMAKE_SYSTEM} (${EC_OS_BITS} bits)")
############################################################################### ###############################################################################
# some variables/options of this project # some variables/options of this project
ecbuild_add_option( FEATURE EXPERIMENTAL_BUILD_WITH_CXX
DESCRIPTION "Build ecCodes with a C++ compiler (Experimental)"
DEFAULT OFF )
if( HAVE_EXPERIMENTAL_BUILD_WITH_CXX )
enable_language( CXX )
if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Cray" ) if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Cray" )
set(CMAKE_CXX_FLAGS "-hstd=c++11 ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "-hstd=c++11 ${CMAKE_CXX_FLAGS}")
endif() endif()
endif()
ecbuild_add_option( FEATURE PRODUCT_GRIB ecbuild_add_option( FEATURE PRODUCT_GRIB
DESCRIPTION "Support for the product GRIB" DESCRIPTION "Support for the product GRIB"
@ -502,9 +496,3 @@ ecbuild_info(" | bindings from PyPI with: |")
ecbuild_info(" | $ pip3 install eccodes |") ecbuild_info(" | $ pip3 install eccodes |")
ecbuild_info(" +--------------------------------------+") ecbuild_info(" +--------------------------------------+")
ecbuild_info("") ecbuild_info("")
if( HAVE_EXPERIMENTAL_BUILD_WITH_CXX )
ecbuild_warn("Please note:\n"
"The option of building with C++ is currently experimental."
"Do not use in operations.")
endif()

View File

@ -11,356 +11,356 @@
list( APPEND eccodes_src_files list( APPEND eccodes_src_files
grib_api.h grib_api.h
eccodes.h eccodes.h
action.c action.cpp
action_class_alias.c action_class_alias.cpp
action_class_gen.c action_class_gen.cpp
action_class_if.c action_class_if.cpp
action_class_switch.c action_class_switch.cpp
grib_accessor_class_g1fcperiod.c grib_accessor_class_g1fcperiod.cpp
grib_accessor_class_g1end_of_interval_monthly.c grib_accessor_class_g1end_of_interval_monthly.cpp
grib_accessor_class_mars_param.c grib_accessor_class_mars_param.cpp
action_class_section.c action_class_section.cpp
action_class_list.c action_class_list.cpp
action_class_while.c action_class_while.cpp
action_class_put.c action_class_put.cpp
action_class_meta.c action_class_meta.cpp
action_class_remove.c action_class_remove.cpp
action_class_rename.c action_class_rename.cpp
action_class_assert.c action_class_assert.cpp
action_class_template.c action_class_template.cpp
action_class_trigger.c action_class_trigger.cpp
action_class_when.c action_class_when.cpp
action_class_concept.c action_class_concept.cpp
action_class_hash_array.c action_class_hash_array.cpp
action_class_set.c action_class_set.cpp
action_class_set_sarray.c action_class_set_sarray.cpp
action_class_set_darray.c action_class_set_darray.cpp
action_class_set_iarray.c action_class_set_iarray.cpp
action_class_noop.c action_class_noop.cpp
action_class_write.c action_class_write.cpp
action_class_print.c action_class_print.cpp
action_class_close.c action_class_close.cpp
action_class_variable.c action_class_variable.cpp
action_class_modify.c action_class_modify.cpp
action_class_transient_darray.c action_class_transient_darray.cpp
eccodes.c eccodes.cpp
grib_accessor.c grib_accessor.cpp
grib_concept.c grib_concept.cpp
grib_hash_array.c grib_hash_array.cpp
grib_bufr_descriptor.c grib_bufr_descriptor.cpp
grib_bufr_descriptors_array.c grib_bufr_descriptors_array.cpp
grib_darray.c grib_darray.cpp
grib_sarray.c grib_sarray.cpp
grib_oarray.c grib_oarray.cpp
grib_vdarray.c grib_vdarray.cpp
grib_vsarray.c grib_vsarray.cpp
grib_iarray.c grib_iarray.cpp
grib_viarray.c grib_viarray.cpp
codes_memfs.c codes_memfs.cpp
grib_accessor_class_array.c grib_accessor_class_array.cpp
grib_accessor_class_assert.c grib_accessor_class_assert.cpp
grib_accessor_class_ascii.c grib_accessor_class_ascii.cpp
grib_accessor_class_bit.c grib_accessor_class_bit.cpp
grib_accessor_class_bitmap.c grib_accessor_class_bitmap.cpp
grib_accessor_class_bits.c grib_accessor_class_bits.cpp
grib_accessor_class_bits_per_value.c grib_accessor_class_bits_per_value.cpp
grib_accessor_class_bufr_elements_table.c grib_accessor_class_bufr_elements_table.cpp
grib_accessor_class_bufr_data_array.c grib_accessor_class_bufr_data_array.cpp
grib_accessor_class_bufr_data_element.c grib_accessor_class_bufr_data_element.cpp
grib_accessor_class_bufr_group.c grib_accessor_class_bufr_group.cpp
grib_accessor_class_bufr_string_values.c grib_accessor_class_bufr_string_values.cpp
grib_accessor_class_pack_bufr_values.c grib_accessor_class_pack_bufr_values.cpp
grib_accessor_class_unpack_bufr_values.c grib_accessor_class_unpack_bufr_values.cpp
grib_accessor_class_apply_operators.c grib_accessor_class_apply_operators.cpp
grib_accessor_class_group.c grib_accessor_class_group.cpp
grib_accessor_class_non_alpha.c grib_accessor_class_non_alpha.cpp
grib_accessor_class_g1bitmap.c grib_accessor_class_g1bitmap.cpp
grib_accessor_class_g2bitmap.c grib_accessor_class_g2bitmap.cpp
grib_accessor_class_concept.c grib_accessor_class_concept.cpp
grib_accessor_class_hash_array.c grib_accessor_class_hash_array.cpp
grib_accessor_class_decimal_precision.c grib_accessor_class_decimal_precision.cpp
grib_accessor_class_divdouble.c grib_accessor_class_divdouble.cpp
grib_accessor_class_budgdate.c grib_accessor_class_budgdate.cpp
grib_accessor_class_validity_date.c grib_accessor_class_validity_date.cpp
grib_accessor_class_validity_time.c grib_accessor_class_validity_time.cpp
grib_accessor_class_bytes.c grib_accessor_class_bytes.cpp
grib_accessor_class.c grib_accessor_class.cpp
grib_accessor_class_change_alternative_row_scanning.c grib_accessor_class_change_alternative_row_scanning.cpp
grib_accessor_class_change_scanning_direction.c grib_accessor_class_change_scanning_direction.cpp
grib_accessor_class_check_internal_version.c grib_accessor_class_check_internal_version.cpp
grib_accessor_class_codeflag.c grib_accessor_class_codeflag.cpp
grib_accessor_class_smart_table.c grib_accessor_class_smart_table.cpp
grib_accessor_class_smart_table_column.c grib_accessor_class_smart_table_column.cpp
grib_accessor_class_codetable.c grib_accessor_class_codetable.cpp
grib_accessor_class_codetable_units.c grib_accessor_class_codetable_units.cpp
grib_accessor_class_codetable_title.c grib_accessor_class_codetable_title.cpp
grib_accessor_class_step_human_readable.c grib_accessor_class_step_human_readable.cpp
grib_accessor_class_count_file.c grib_accessor_class_count_file.cpp
grib_accessor_class_count_total.c grib_accessor_class_count_total.cpp
grib_accessor_class_double.c grib_accessor_class_double.cpp
grib_accessor_class_element.c grib_accessor_class_element.cpp
grib_accessor_class_evaluate.c grib_accessor_class_evaluate.cpp
grib_accessor_class_g1area.c grib_accessor_class_g1area.cpp
grib_accessor_class_g1date.c grib_accessor_class_g1date.cpp
grib_accessor_class_g1monthlydate.c grib_accessor_class_g1monthlydate.cpp
grib_accessor_class_library_version.c grib_accessor_class_library_version.cpp
grib_accessor_class_when.c grib_accessor_class_when.cpp
grib_accessor_class_g1verificationdate.c grib_accessor_class_g1verificationdate.cpp
grib_accessor_class_g1day_of_the_year_date.c grib_accessor_class_g1day_of_the_year_date.cpp
grib_accessor_class_g1_half_byte_codeflag.c grib_accessor_class_g1_half_byte_codeflag.cpp
grib_accessor_class_g1forecastmonth.c grib_accessor_class_g1forecastmonth.cpp
grib_accessor_class_g1step_range.c grib_accessor_class_g1step_range.cpp
grib_accessor_class_g2step_range.c grib_accessor_class_g2step_range.cpp
grib_accessor_class_data_g22order_packing.c grib_accessor_class_data_g22order_packing.cpp
grib_accessor_class_mars_step.c grib_accessor_class_mars_step.cpp
grib_accessor_class_message_copy.c grib_accessor_class_message_copy.cpp
grib_accessor_class_dictionary.c grib_accessor_class_dictionary.cpp
grib_accessor_class_latlon_increment.c grib_accessor_class_latlon_increment.cpp
grib_accessor_class_g2date.c grib_accessor_class_g2date.cpp
grib_accessor_class_g2level.c grib_accessor_class_g2level.cpp
grib_accessor_class_g2end_step.c grib_accessor_class_g2end_step.cpp
grib_accessor_class_g2latlon.c grib_accessor_class_g2latlon.cpp
grib_accessor_class_g2lon.c grib_accessor_class_g2lon.cpp
grib_accessor_class_global_gaussian.c grib_accessor_class_global_gaussian.cpp
grib_accessor_class_gaussian_grid_name.c grib_accessor_class_gaussian_grid_name.cpp
grib_accessor_class_gen.c grib_accessor_class_gen.cpp
grib_accessor_class_getenv.c grib_accessor_class_getenv.cpp
grib_accessor_class_gts_header.c grib_accessor_class_gts_header.cpp
grib_accessor_class_ifs_param.c grib_accessor_class_ifs_param.cpp
grib_accessor_class_julian_day.c grib_accessor_class_julian_day.cpp
grib_accessor_class_julian_date.c grib_accessor_class_julian_date.cpp
grib_accessor_class_closest_date.c grib_accessor_class_closest_date.cpp
grib_accessor_class_latlonvalues.c grib_accessor_class_latlonvalues.cpp
grib_accessor_class_latitudes.c grib_accessor_class_latitudes.cpp
grib_accessor_class_longitudes.c grib_accessor_class_longitudes.cpp
grib_accessor_class_missing.c grib_accessor_class_missing.cpp
grib_accessor_class_offset_file.c grib_accessor_class_offset_file.cpp
grib_accessor_class_scale.c grib_accessor_class_scale.cpp
grib_accessor_class_from_scale_factor_scaled_value.c grib_accessor_class_from_scale_factor_scaled_value.cpp
grib_accessor_class_times.c grib_accessor_class_times.cpp
grib_accessor_class_forward.c grib_accessor_class_forward.cpp
grib_accessor_class_g2bitmap_present.c grib_accessor_class_g2bitmap_present.cpp
grib_accessor_class_ibmfloat.c grib_accessor_class_ibmfloat.cpp
grib_accessor_class_ieeefloat.c grib_accessor_class_ieeefloat.cpp
grib_accessor_class_constant.c grib_accessor_class_constant.cpp
grib_accessor_class_iterator.c grib_accessor_class_iterator.cpp
grib_accessor_class_message.c grib_accessor_class_message.cpp
grib_accessor_class_nearest.c grib_accessor_class_nearest.cpp
grib_accessor_class_box.c grib_accessor_class_box.cpp
grib_accessor_class_ksec1expver.c grib_accessor_class_ksec1expver.cpp
grib_accessor_class_laplacian.c grib_accessor_class_laplacian.cpp
grib_accessor_class_label.c grib_accessor_class_label.cpp
grib_accessor_class_long.c grib_accessor_class_long.cpp
grib_accessor_class_lookup.c grib_accessor_class_lookup.cpp
grib_accessor_class_octahedral_gaussian.c grib_accessor_class_octahedral_gaussian.cpp
grib_accessor_class_octet_number.c grib_accessor_class_octet_number.cpp
grib_accessor_class_headers_only.c grib_accessor_class_headers_only.cpp
grib_accessor_class_padding.c grib_accessor_class_padding.cpp
grib_accessor_class_pad.c grib_accessor_class_pad.cpp
grib_accessor_class_padto.c grib_accessor_class_padto.cpp
grib_accessor_class_padtoeven.c grib_accessor_class_padtoeven.cpp
grib_accessor_class_padtomultiple.c grib_accessor_class_padtomultiple.cpp
grib_accessor_class_section_padding.c grib_accessor_class_section_padding.cpp
grib_accessor_class_section_pointer.c grib_accessor_class_section_pointer.cpp
grib_accessor_class_position.c grib_accessor_class_position.cpp
grib_accessor_class_signed.c grib_accessor_class_signed.cpp
grib_accessor_class_signed_bits.c grib_accessor_class_signed_bits.cpp
grib_accessor_class_section.c grib_accessor_class_section.cpp
grib_accessor_class_step_in_units.c grib_accessor_class_step_in_units.cpp
grib_accessor_class_section_length.c grib_accessor_class_section_length.cpp
grib_accessor_class_g1_message_length.c grib_accessor_class_g1_message_length.cpp
grib_accessor_class_g1_section4_length.c grib_accessor_class_g1_section4_length.cpp
grib_accessor_class_size.c grib_accessor_class_size.cpp
grib_accessor_class_rdbtime_guess_date.c grib_accessor_class_rdbtime_guess_date.cpp
grib_accessor_class_scale_values.c grib_accessor_class_scale_values.cpp
grib_accessor_class_offset_values.c grib_accessor_class_offset_values.cpp
grib_accessor_class_sprintf.c grib_accessor_class_sprintf.cpp
grib_accessor_class_round.c grib_accessor_class_round.cpp
grib_accessor_class_spectral_truncation.c grib_accessor_class_spectral_truncation.cpp
grib_accessor_class_time.c grib_accessor_class_time.cpp
grib_accessor_class_transient.c grib_accessor_class_transient.cpp
grib_accessor_class_trim.c grib_accessor_class_trim.cpp
grib_accessor_class_transient_darray.c grib_accessor_class_transient_darray.cpp
grib_accessor_class_values.c grib_accessor_class_values.cpp
grib_accessor_class_simple_packing_error.c grib_accessor_class_simple_packing_error.cpp
grib_accessor_class_data_simple_packing.c grib_accessor_class_data_simple_packing.cpp
grib_accessor_class_count_missing.c grib_accessor_class_count_missing.cpp
grib_accessor_class_data_sh_packed.c grib_accessor_class_data_sh_packed.cpp
grib_accessor_class_data_sh_unpacked.c grib_accessor_class_data_sh_unpacked.cpp
grib_accessor_class_number_of_values_data_raw_packing.c grib_accessor_class_number_of_values_data_raw_packing.cpp
grib_accessor_class_data_g1simple_packing.c grib_accessor_class_data_g1simple_packing.cpp
grib_accessor_class_data_g1shsimple_packing.c grib_accessor_class_data_g1shsimple_packing.cpp
grib_accessor_class_data_shsimple_packing.c grib_accessor_class_data_shsimple_packing.cpp
grib_accessor_class_data_dummy_field.c grib_accessor_class_data_dummy_field.cpp
grib_2order_packer_simple.c grib_2order_packer_simple.cpp
grib_accessor_class_variable.c grib_accessor_class_variable.cpp
grib_accessor_class_second_order_bits_per_value.c grib_accessor_class_second_order_bits_per_value.cpp
grib_accessor_class_data_g2simple_packing.c grib_accessor_class_data_g2simple_packing.cpp
grib_accessor_class_data_g2simple_packing_with_preprocessing.c grib_accessor_class_data_g2simple_packing_with_preprocessing.cpp
grib_accessor_class_data_g2shsimple_packing.c grib_accessor_class_data_g2shsimple_packing.cpp
grib_accessor_class_data_g2complex_packing.c grib_accessor_class_data_g2complex_packing.cpp
grib_accessor_class_data_2order_packing.c grib_accessor_class_data_2order_packing.cpp
grib_accessor_class_data_g1second_order_row_by_row_packing.c grib_accessor_class_data_g1second_order_row_by_row_packing.cpp
grib_accessor_class_data_g1second_order_constant_width_packing.c grib_accessor_class_data_g1second_order_constant_width_packing.cpp
grib_accessor_class_data_g1second_order_general_packing.c grib_accessor_class_data_g1second_order_general_packing.cpp
grib_accessor_class_data_g1second_order_general_extended_packing.c grib_accessor_class_data_g1second_order_general_extended_packing.cpp
grib_accessor_class_g2grid.c grib_accessor_class_g2grid.cpp
grib_accessor_class_unexpanded_descriptors.c grib_accessor_class_unexpanded_descriptors.cpp
grib_accessor_class_expanded_descriptors.c grib_accessor_class_expanded_descriptors.cpp
grib_accessor_class_bufrdc_expanded_descriptors.c grib_accessor_class_bufrdc_expanded_descriptors.cpp
grib_accessor_class_data_apply_bitmap.c grib_accessor_class_data_apply_bitmap.cpp
grib_accessor_class_data_apply_boustrophedonic.c grib_accessor_class_data_apply_boustrophedonic.cpp
grib_accessor_class_data_apply_boustrophedonic_bitmap.c grib_accessor_class_data_apply_boustrophedonic_bitmap.cpp
grib_accessor_class_data_secondary_bitmap.c grib_accessor_class_data_secondary_bitmap.cpp
grib_accessor_class_data_g1secondary_bitmap.c grib_accessor_class_data_g1secondary_bitmap.cpp
grib_accessor_class_data_g2secondary_bitmap.c grib_accessor_class_data_g2secondary_bitmap.cpp
grib_accessor_class_data_jpeg2000_packing.c grib_accessor_class_data_jpeg2000_packing.cpp
grib_accessor_class_data_png_packing.c grib_accessor_class_data_png_packing.cpp
grib_accessor_class_data_ccsds_packing.c grib_accessor_class_data_ccsds_packing.cpp
grib_accessor_class_data_raw_packing.c grib_accessor_class_data_raw_packing.cpp
grib_accessor_class_data_complex_packing.c grib_accessor_class_data_complex_packing.cpp
grib_accessor_class_data_g1complex_packing.c grib_accessor_class_data_g1complex_packing.cpp
grib_accessor_class_gds_not_present_bitmap.c grib_accessor_class_gds_not_present_bitmap.cpp
grib_accessor_class_data_apply_gdsnotpresent.c grib_accessor_class_data_apply_gdsnotpresent.cpp
grib_accessor_class_gds_is_present.c grib_accessor_class_gds_is_present.cpp
grib_accessor_class_select_step_template.c grib_accessor_class_select_step_template.cpp
grib_accessor_class_local_definition.c grib_accessor_class_local_definition.cpp
grib_accessor_class_g2_eps.c grib_accessor_class_g2_eps.cpp
grib_accessor_class_g2_aerosol.c grib_accessor_class_g2_aerosol.cpp
grib_accessor_class_g2_chemical.c grib_accessor_class_g2_chemical.cpp
grib_accessor_class_g2_mars_labeling.c grib_accessor_class_g2_mars_labeling.cpp
grib_accessor_class_md5.c grib_accessor_class_md5.cpp
grib_accessor_class_proj_string.c grib_accessor_class_proj_string.cpp
grib_jasper_encoding.c grib_jasper_encoding.cpp
grib_openjpeg_encoding.c grib_openjpeg_encoding.cpp
action_class_set_missing.c action_class_set_missing.cpp
grib_accessor_class_number_of_points.c grib_accessor_class_number_of_points.cpp
grib_accessor_class_suppressed.c grib_accessor_class_suppressed.cpp
grib_index.c grib_index.cpp
grib_accessor_class_number_of_points_gaussian.c grib_accessor_class_number_of_points_gaussian.cpp
grib_accessor_class_number_of_values.c grib_accessor_class_number_of_values.cpp
grib_accessor_class_number_of_coded_values.c grib_accessor_class_number_of_coded_values.cpp
grib_accessor_class_g1number_of_coded_values_sh_complex.c grib_accessor_class_g1number_of_coded_values_sh_complex.cpp
grib_accessor_class_g1number_of_coded_values_sh_simple.c grib_accessor_class_g1number_of_coded_values_sh_simple.cpp
grib_accessor_class_dirty.c grib_accessor_class_dirty.cpp
grib_accessor_class_statistics.c grib_accessor_class_statistics.cpp
grib_accessor_class_statistics_spectral.c grib_accessor_class_statistics_spectral.cpp
grib_accessor_class_unsigned.c grib_accessor_class_unsigned.cpp
grib_accessor_class_unsigned_bits.c grib_accessor_class_unsigned_bits.cpp
grib_accessor_class_raw.c grib_accessor_class_raw.cpp
grib_accessor_class_bufr_simple_thinning.c grib_accessor_class_bufr_simple_thinning.cpp
grib_accessor_class_bufr_extract_subsets.c grib_accessor_class_bufr_extract_subsets.cpp
grib_accessor_class_bufr_extract_area_subsets.c grib_accessor_class_bufr_extract_area_subsets.cpp
grib_accessor_class_bufr_extract_datetime_subsets.c grib_accessor_class_bufr_extract_datetime_subsets.cpp
grib_accessor_class_spd.c grib_accessor_class_spd.cpp
grib_accessor_class_sum.c grib_accessor_class_sum.cpp
grib_accessor_class_to_integer.c grib_accessor_class_to_integer.cpp
grib_accessor_class_to_double.c grib_accessor_class_to_double.cpp
grib_accessor_class_to_string.c grib_accessor_class_to_string.cpp
grib_accessor_class_sexagesimal2decimal.c grib_accessor_class_sexagesimal2decimal.cpp
grib_accessor_class_vector.c grib_accessor_class_vector.cpp
grib_accessor_class_long_vector.c grib_accessor_class_long_vector.cpp
grib_gaussian_reduced.c grib_gaussian_reduced.cpp
grib_accessor_class_abstract_vector.c grib_accessor_class_abstract_vector.cpp
grib_accessor_class_abstract_long_vector.c grib_accessor_class_abstract_long_vector.cpp
grib_loader_from_handle.c grib_loader_from_handle.cpp
grib_bits.c grib_bits.cpp
grib_timer.c grib_timer.cpp
grib_ibmfloat.c grib_ibmfloat.cpp
grib_ieeefloat.c grib_ieeefloat.cpp
grib_accessor_class_reference_value_error.c grib_accessor_class_reference_value_error.cpp
grib_memory.c grib_memory.cpp
grib_buffer.c grib_buffer.cpp
grib_dumper.c grib_dumper.cpp
grib_dumper_class_serialize.c grib_dumper_class_serialize.cpp
grib_dumper_class_debug.c grib_dumper_class_debug.cpp
grib_dumper_class_default.c grib_dumper_class_default.cpp
grib_dumper_class_keys.c grib_dumper_class_keys.cpp
grib_dumper_class_bufr_encode_C.c grib_dumper_class_bufr_encode_C.cpp
grib_dumper_class_bufr_encode_filter.c grib_dumper_class_bufr_encode_filter.cpp
grib_dumper_class_bufr_encode_fortran.c grib_dumper_class_bufr_encode_fortran.cpp
grib_dumper_class_bufr_encode_python.c grib_dumper_class_bufr_encode_python.cpp
grib_dumper_class_bufr_decode_C.c grib_dumper_class_bufr_decode_C.cpp
grib_dumper_class_bufr_decode_filter.c grib_dumper_class_bufr_decode_filter.cpp
grib_dumper_class_bufr_decode_fortran.c grib_dumper_class_bufr_decode_fortran.cpp
grib_dumper_class_bufr_decode_python.c grib_dumper_class_bufr_decode_python.cpp
grib_dumper_class_bufr_simple.c grib_dumper_class_bufr_simple.cpp
grib_dumper_class_json.c grib_dumper_class_json.cpp
grib_dumper_class_grib_encode_C.c grib_dumper_class_grib_encode_C.cpp
grib_dumper_class_wmo.c grib_dumper_class_wmo.cpp
grib_dumper_class.c grib_dumper_class.cpp
grib_context.c grib_context.cpp
grib_date.c grib_date.cpp
grib_fieldset.c grib_fieldset.cpp
grib_filepool.c grib_filepool.cpp
grib_geography.c grib_geography.cpp
grib_handle.c grib_handle.cpp
grib_header_compute.c grib_header_compute.cpp
grib_hash_keys.c grib_hash_keys.cpp
grib_io.c grib_io.cpp
grib_trie.c grib_trie.cpp
grib_trie_with_rank.c grib_trie_with_rank.cpp
grib_itrie.c grib_itrie.cpp
grib_rules.c grib_rules.cpp
grib_keys_iterator.c grib_keys_iterator.cpp
bufr_keys_iterator.c bufr_keys_iterator.cpp
grib_parse_utils.c grib_parse_utils.cpp
grib_query.c grib_query.cpp
grib_scaling.c grib_scaling.cpp
grib_templates.c grib_templates.cpp
grib_dependency.c grib_dependency.cpp
grib_value.c grib_value.cpp
grib_errors.c grib_errors.cpp
grib_expression_class_binop.c grib_expression_class_binop.cpp
grib_expression_class_logical_and.c grib_expression_class_logical_and.cpp
grib_expression_class_logical_or.c grib_expression_class_logical_or.cpp
grib_expression_class_is_in_dict.c grib_expression_class_is_in_dict.cpp
grib_expression_class_true.c grib_expression_class_true.cpp
grib_expression_class_string_compare.c grib_expression_class_string_compare.cpp
grib_expression_class_unop.c grib_expression_class_unop.cpp
grib_expression_class_functor.c grib_expression_class_functor.cpp
grib_expression_class_accessor.c grib_expression_class_accessor.cpp
grib_expression_class_is_in_list.c grib_expression_class_is_in_list.cpp
grib_expression_class_is_integer.c grib_expression_class_is_integer.cpp
grib_expression_class_length.c grib_expression_class_length.cpp
grib_expression_class_long.c grib_expression_class_long.cpp
grib_expression_class_double.c grib_expression_class_double.cpp
grib_expression_class_string.c grib_expression_class_string.cpp
grib_expression_class_sub_string.c grib_expression_class_sub_string.cpp
grib_box.c grib_box.cpp
grib_box_class.c grib_box_class.cpp
grib_box_class_gen.c grib_box_class_gen.cpp
grib_nearest.c grib_nearest.cpp
grib_nearest_class.c grib_nearest_class.cpp
grib_nearest_class_gen.c grib_nearest_class_gen.cpp
grib_nearest_class_regular.c grib_nearest_class_regular.cpp
grib_nearest_class_reduced.c grib_nearest_class_reduced.cpp
grib_nearest_class_latlon_reduced.c grib_nearest_class_latlon_reduced.cpp
grib_nearest_class_sh.c grib_nearest_class_sh.cpp
grib_nearest_class_lambert_conformal.c grib_nearest_class_lambert_conformal.cpp
grib_nearest_class_lambert_azimuthal_equal_area.c grib_nearest_class_lambert_azimuthal_equal_area.cpp
grib_nearest_class_mercator.c grib_nearest_class_mercator.cpp
grib_nearest_class_polar_stereographic.c grib_nearest_class_polar_stereographic.cpp
grib_nearest_class_space_view.c grib_nearest_class_space_view.cpp
grib_iterator_class_polar_stereographic.c grib_iterator_class_polar_stereographic.cpp
grib_iterator_class_lambert_azimuthal_equal_area.c grib_iterator_class_lambert_azimuthal_equal_area.cpp
grib_iterator_class_lambert_conformal.c grib_iterator_class_lambert_conformal.cpp
grib_iterator_class_mercator.c grib_iterator_class_mercator.cpp
grib_iterator.c grib_iterator.cpp
grib_iterator_class.c grib_iterator_class.cpp
grib_iterator_class_gaussian.c grib_iterator_class_gaussian.cpp
grib_iterator_class_gaussian_reduced.c grib_iterator_class_gaussian_reduced.cpp
grib_iterator_class_latlon_reduced.c grib_iterator_class_latlon_reduced.cpp
grib_iterator_class_gen.c grib_iterator_class_gen.cpp
grib_iterator_class_latlon.c grib_iterator_class_latlon.cpp
grib_iterator_class_regular.c grib_iterator_class_regular.cpp
grib_iterator_class_space_view.c grib_iterator_class_space_view.cpp
grib_expression.c grib_expression.cpp
codes_util.c codes_util.cpp
grib_util.c grib_util.cpp
bufr_util.c bufr_util.cpp
string_util.c string_util.cpp
functions.c functions.cpp
grib_accessor_class.h grib_accessor_class.h
grib_accessor_factory.h grib_accessor_factory.h
grib_api_internal.h grib_api_internal.h
@ -376,43 +376,43 @@ list( APPEND eccodes_src_files
grib_nearest_factory.h grib_nearest_factory.h
grib_yacc.h grib_yacc.h
md5.h md5.h
md5.c md5.cpp
grib_accessor_class_int16.c grib_accessor_class_int16.cpp
grib_accessor_class_int16_little_endian.c grib_accessor_class_int16_little_endian.cpp
grib_accessor_class_int32.c grib_accessor_class_int32.cpp
grib_accessor_class_int32_little_endian.c grib_accessor_class_int32_little_endian.cpp
grib_accessor_class_int64.c grib_accessor_class_int64.cpp
grib_accessor_class_int64_little_endian.c grib_accessor_class_int64_little_endian.cpp
grib_accessor_class_int8.c grib_accessor_class_int8.cpp
grib_accessor_class_uint16.c grib_accessor_class_uint16.cpp
grib_accessor_class_uint16_little_endian.c grib_accessor_class_uint16_little_endian.cpp
grib_accessor_class_uint32.c grib_accessor_class_uint32.cpp
grib_accessor_class_uint32_little_endian.c grib_accessor_class_uint32_little_endian.cpp
grib_accessor_class_uint64.c grib_accessor_class_uint64.cpp
grib_accessor_class_uint64_little_endian.c grib_accessor_class_uint64_little_endian.cpp
grib_accessor_class_uint8.c grib_accessor_class_uint8.cpp
grib_accessor_class_blob.c grib_accessor_class_blob.cpp
grib_optimize_decimal_factor.c grib_optimize_decimal_factor.cpp
grib_accessor_class_data_g2bifourier_packing.c grib_accessor_class_data_g2bifourier_packing.cpp
grib_accessor_class_data_run_length_packing.c grib_accessor_class_data_run_length_packing.cpp
eccodes_windef.h eccodes_windef.h
# We ship our own generated lex/yacc C files # We ship our own generated lex/yacc C files
grib_yacc.c grib_lex.c ) grib_yacc.cpp grib_lex.cpp )
list( APPEND eccodes_extra_src_files list( APPEND eccodes_extra_src_files
grib_bits_fast_big_endian.c grib_bits_any_endian.c grib_bits_fast_big_endian.cpp grib_bits_any_endian.cpp
grib_bits_fast_big_endian_vector.c grib_bits_any_endian_vector.c grib_bits_fast_big_endian_vector.cpp grib_bits_any_endian_vector.cpp
grib_bits_fast_big_endian_simple.c grib_bits_any_endian_simple.c grib_bits_fast_big_endian_simple.cpp grib_bits_any_endian_simple.cpp
grib_bits_fast_big_endian_omp.c grib_bits_any_endian_omp.c grib_bits_fast_big_endian_omp.cpp grib_bits_any_endian_omp.cpp
encode_double_array.c encode_double_array.cpp
grib_bits_ibmpow.c grib_bits_ibmpow.cpp
grib_bits_ibmpow_opt.c grib_bits_ibmpow_opt.cpp
minmax_val.c ) minmax_val.cpp )
if(UNIX) if(UNIX)
ecbuild_get_date(eccodes_BUILD_DATE) ecbuild_get_date(eccodes_BUILD_DATE)
endif() endif()
configure_file( grib_api_version.c.in grib_api_version.c @ONLY ) configure_file( grib_api_version.cpp.in grib_api_version.cpp @ONLY )
configure_file( eccodes_version.h.in eccodes_version.h @ONLY ) configure_file( eccodes_version.h.in eccodes_version.h @ONLY )
# We ship our own generated lex/yacc C files # We ship our own generated lex/yacc C files
@ -423,24 +423,15 @@ configure_file( eccodes_version.h.in eccodes_version.h @ONLY )
# LEX_FLAGS " " # LEX_FLAGS " "
# BISON_FLAGS "-y" # BISON_FLAGS "-y"
# YACC_FLAGS "-y" # YACC_FLAGS "-y"
# DEPENDANT action.c ) # DEPENDANT action.cpp )
if( HAVE_MEMFS ) if( HAVE_MEMFS )
list(APPEND ECCODES_EXTRA_LIBRARIES eccodes_memfs) list(APPEND ECCODES_EXTRA_LIBRARIES eccodes_memfs)
endif() endif()
if( HAVE_EXPERIMENTAL_BUILD_WITH_CXX )
foreach( _src ${eccodes_src_files} )
get_filename_component( _ext ${_src} EXT )
if( _ext STREQUAL ".c" )
set_source_files_properties( ${_src} PROPERTIES LANGUAGE CXX )
endif()
endforeach()
endif()
ecbuild_add_library( TARGET eccodes ecbuild_add_library( TARGET eccodes
SOURCES ${CMAKE_CURRENT_BINARY_DIR}/grib_api_version.c SOURCES ${CMAKE_CURRENT_BINARY_DIR}/grib_api_version.cpp
# griby.c gribl.c # griby.cpp gribl.cpp
${eccodes_src_files} ${eccodes_src_files}
#PRIVATE_LIBS ${ECCODES_EXTRA_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${CMATH_LIBRARIES} #PRIVATE_LIBS ${ECCODES_EXTRA_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${CMATH_LIBRARIES}
PRIVATE_INCLUDES "${AEC_INCLUDE_DIRS}" "${PNG_INCLUDE_DIRS}" PRIVATE_INCLUDES "${AEC_INCLUDE_DIRS}" "${PNG_INCLUDE_DIRS}"

View File

@ -161,8 +161,8 @@ sub write_F90_errors {
sub write_C_errors { sub write_C_errors {
my ($public,$internal) = @_; my ($public,$internal) = @_;
open(C,">grib_errors.c.new") or die "grib_errors.c.new: $!"; open(C,">grib_errors.cpp.new") or die "grib_errors.cpp.new: $!";
open(IN,"<grib_errors.c.in") or die "grib_errors.c.in: $!"; open(IN,"<grib_errors.cpp.in") or die "grib_errors.cpp.in: $!";
foreach (<IN>) { foreach (<IN>) {
if (/^!ERRORS/) { if (/^!ERRORS/) {

View File

@ -1,9 +1,9 @@
.grib.c:; ./grib2c.pl $< .grib.c:; ./grib2c.pl $<
# .req.grib:; mars $< # .req.grib:; mars $<
grib_errors.c : grib_errors.txt errors.pl grib_errors.cpp : grib_errors.txt errors.pl
./errors.pl ./errors.pl
cmp -s grib_errors.c grib_errors.c.new || (cp grib_errors.c.new grib_errors.c) cmp -s grib_errors.cpp grib_errors.cpp.new || (cp grib_errors.cpp.new grib_errors.cpp)
cmp -s grib_api.h grib_api.h.new || (cp grib_api.h.new grib_api.h) cmp -s grib_api.h grib_api.h.new || (cp grib_api.h.new grib_api.h)
cmp -s eccodes.h eccodes.h.new || (mv eccodes.h.new eccodes.h) cmp -s eccodes.h eccodes.h.new || (mv eccodes.h.new eccodes.h)
cmp -s ../fortran/grib_api_constants.h grib_api_constants.h.new || (mv grib_api_constants.h.new ../fortran/grib_api_constants.h) cmp -s ../fortran/grib_api_constants.h grib_api_constants.h.new || (mv grib_api_constants.h.new ../fortran/grib_api_constants.h)
@ -20,25 +20,25 @@ templates:
-chmod +w grib_templates.h -chmod +w grib_templates.h
./grib2c.pl ../templates/*.grib ./grib2c.pl ../templates/*.grib
grib_lex.c : gribl.l grib_yacc.h grib_lex.cpp : gribl.l grib_yacc.h
$(LEX) gribl.l $(LEX) gribl.l
sed 's/yy/grib_yy/g' < $(LEX_OUTPUT_ROOT).c | sed 's/static void grib_yyunput/void grib_yyunput/' > grib_lex1.c sed 's/yy/grib_yy/g' < $(LEX_OUTPUT_ROOT).cpp | sed 's/static void grib_yyunput/void grib_yyunput/' > grib_lex1.cpp
sed 's/fgetc/getc/g' < grib_lex1.c > grib_lex.c sed 's/fgetc/getc/g' < grib_lex1.cpp > grib_lex.cpp
rm -f grib_lex1.c rm -f grib_lex1.cpp
rm -f $(LEX_OUTPUT_ROOT).c rm -f $(LEX_OUTPUT_ROOT).cpp
grib_yacc.h grib_yacc.c : griby.y grib_yacc.h grib_yacc.cpp : griby.y
$(YACC) -d griby.y $(YACC) -d griby.y
sed 's/yy/grib_yy/g' < y.tab.c > grib_yacc1.c sed 's/yy/grib_yy/g' < y.tab.c > grib_yacc1.cpp
sed 's/fgetc/getc/g' < grib_yacc1.c > grib_yacc.c sed 's/fgetc/getc/g' < grib_yacc1.cpp > grib_yacc.cpp
rm -f grib_yacc1.c rm -f grib_yacc1.cpp
sed 's/yy/grib_yy/g' < y.tab.h > grib_yacc.h sed 's/yy/grib_yy/g' < y.tab.h > grib_yacc.h
rm -f y.tab.c y.tab.h rm -f y.tab.c y.tab.h
hash_keys: hash_keys:
./make_hash_keys.sh ./make_hash_keys.sh
grib_accessor_classes_hash.c: grib_accessor_classes_hash.cpp:
./make_accessor_class_hash.sh ./make_accessor_class_hash.sh
SUFFIXES= .conf .grib .req .txt SUFFIXES= .conf .grib .req .txt

View File

@ -10,7 +10,7 @@
#include "grib_api_internal.h" #include "grib_api_internal.h"
#include "grib_accessor_classes_hash.c" #include "grib_accessor_classes_hash.cpp"
/* grib level */ /* grib level */

Some files were not shown because too many files have changed in this diff Show More