Merge branch 'develop' into bugfix/ECC-1502-BufrEncodingString

This commit is contained in:
Shahram Najm 2023-01-30 18:06:05 +00:00
commit 6aee1310f8
595 changed files with 2531 additions and 2366 deletions

View File

@ -77,7 +77,6 @@ build_script:
-D ENABLE_AEC=0 ^
-D IEEE_LE=1 ^
-D ENABLE_MEMFS=1 ^
-D ENABLE_EXPERIMENTAL_BUILD_WITH_CXX=1 ^
-D ENABLE_EXTRA_TESTS=ON ^
-D WINDOWS_TESTING_BASHRC=%WINDOWS_TESTING_BASHRC% ^
..

1
.github/.cmake-options vendored Normal file
View File

@ -0,0 +1 @@
-DENABLE_EXTRA_TESTS=1

View File

@ -21,7 +21,10 @@ cmake_minimum_required( VERSION 3.12 FATAL_ERROR )
find_package( ecbuild 3.7 REQUIRED HINTS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../ecbuild)
# Initialise project
project( eccodes VERSION 2.28.0 LANGUAGES C )
project( eccodes VERSION 2.30.0 LANGUAGES CXX )
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
###############################################################################
# system checks needed for eccodes_config.h and some options like MEMFS
@ -65,14 +68,12 @@ ecbuild_info("Operating system=${CMAKE_SYSTEM} (${EC_OS_BITS} bits)")
###############################################################################
# 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" )
set(CMAKE_CXX_FLAGS "-hstd=c++11 ${CMAKE_CXX_FLAGS}")
endif()
if( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
ecbuild_add_cxx_flags("-Wno-write-strings -Wno-deprecated")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
ecbuild_add_cxx_flags("-Wno-write-strings -Wno-deprecated")
elseif( CMAKE_CXX_COMPILER_ID STREQUAL "Cray" )
set(CMAKE_CXX_FLAGS "-hstd=c++11 ${CMAKE_CXX_FLAGS}")
endif()
ecbuild_add_option( FEATURE PRODUCT_GRIB
@ -138,17 +139,7 @@ ecbuild_add_option( FEATURE AEC
ecbuild_find_python( VERSION 2.6 NO_LIBS )
find_package( NumPy )
ecbuild_add_option( FEATURE PYTHON2
DESCRIPTION "Build the ecCodes Python2 interface (deprecated)"
DEFAULT OFF
#CONDITION Python_FOUND AND NumPy_FOUND
CONDITION PYTHON_FOUND AND NUMPY_FOUND
)
# For Python2 we build our own bindings (using SWIG) in the build directory
# but for Python3 one has to add the eccodes from pip3 AFTER the install
if( PYTHON_VERSION_MAJOR EQUAL 3 )
set( HAVE_PYTHON 0 )
endif()
set( HAVE_PYTHON 0 )
## TODO REQUIRED_LANGUAGES Fortran
ecbuild_add_option( FEATURE FORTRAN
@ -432,15 +423,6 @@ if( HAVE_BUILD_TOOLS )
endif()
add_subdirectory( fortran )
if( PYTHON_VERSION_MAJOR GREATER 2 )
# Python3 is no longer built with SWIG but is a separate
# package. User should do: pip3 install eccodes
#add_subdirectory( python3 )
set( ECCODES_PYTHON_DIR "python3" )
else()
add_subdirectory( python )
set( ECCODES_PYTHON_DIR "python" )
endif()
add_subdirectory( tests )
add_subdirectory( examples )
add_subdirectory( data )
@ -478,7 +460,7 @@ ecbuild_pkgconfig(
IGNORE_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS} ${NETCDF_INCLUDE_DIRS}
VARIABLES HAVE_MEMFS HAVE_JPEG HAVE_LIBJASPER HAVE_LIBOPENJPEG
HAVE_ECCODES_THREADS HAVE_ECCODES_OMP_THREADS
HAVE_NETCDF HAVE_PYTHON2 HAVE_FORTRAN HAVE_PNG HAVE_AEC
HAVE_NETCDF HAVE_FORTRAN HAVE_PNG HAVE_AEC
)
if( HAVE_FORTRAN )
ecbuild_pkgconfig(
@ -490,7 +472,7 @@ if( HAVE_FORTRAN )
${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS} ${NETCDF_INCLUDE_DIRS}
VARIABLES HAVE_MEMFS HAVE_JPEG HAVE_LIBJASPER HAVE_LIBOPENJPEG
HAVE_ECCODES_THREADS HAVE_ECCODES_OMP_THREADS
HAVE_NETCDF HAVE_PYTHON2 HAVE_PNG HAVE_AEC
HAVE_NETCDF HAVE_PNG HAVE_AEC
)
endif()
@ -513,10 +495,6 @@ ecbuild_info(" | ecCodes version ${eccodes_VERSION} |")
ecbuild_info(" +--------------------------+")
ecbuild_info("")
if( HAVE_PYTHON2 )
ecbuild_deprecate("Python2 support is deprecated and will be discontinued")
endif()
ecbuild_info(" +--------------------------------------+")
ecbuild_info(" | Please note: |")
ecbuild_info(" | For Python3 support, first install |")
@ -525,9 +503,3 @@ ecbuild_info(" | bindings from PyPI with: |")
ecbuild_info(" | $ pip3 install eccodes |")
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

@ -45,8 +45,8 @@ You can also pass options to the cmake command above. Some typical examples are:
-DENABLE_ECCODES_THREADS=ON Enable POSIX threads
-DENABLE_JPG=ON Enable JPEG encoding/decoding (for GRIB packing)
-DCMAKE_Fortran_COMPILER=pgf90 Set Fortran compiler to Portland Group F90 compiler
-DCMAKE_C_FLAGS="-O2 -Wall" Prepend the specified flags at the front
of the compilation command for C source files
-DCMAKE_CXX_FLAGS="-O2 -Wall" Prepend the specified flags at the front
of the compilation command for C++ source files
By default the ctest step above does NOT require any data to be downloaded and only runs basic sanity tests.
However if you wish to exercise more of the functionality of ecCodes, you are advised to configure the build with:

View File

@ -1,19 +1,19 @@
#!/bin/bash
[[ $(uname) == "Darwin" ]] && return
# [[ $(uname) == "Darwin" ]] && return
# initialise module environment if it is not
if [[ ! $(command -v module > /dev/null 2>&1) ]]; then
. /usr/local/apps/module/init/bash
fi
#if [[ ! $(command -v module > /dev/null 2>&1) ]]; then
# . /usr/local/apps/module/init/bash
#fi
module unload grib_api
module unload eccodes
module unload emos
module unload fftw
module unload libemos
module unload metview
#module unload grib_api
#module unload eccodes
#module unload emos
#module unload fftw
#module unload libemos
#module unload metview
module load cmake/3.16.5
module load aec
#module load cmake/3.16.5
#module load aec

View File

View File

@ -5,7 +5,9 @@
include "grib2/template.4.parameter.def"
include "grib2/template.4.postproc.def"
include "grib2/template.4.generating_process.def"
#include "grib2/template.4.forecast_time.def"
#include "grib2/template.4.point_in_time.def"
include "grib2/template.4.horizontal.def"
include "grib2/template.4.localtime.def"

View File

@ -5,8 +5,10 @@
include "grib2/template.4.parameter.def"
include "grib2/template.4.postproc.def"
include "grib2/template.4.generating_process.def"
#include "grib2/template.4.forecast_time.def"
#include "grib2/template.4.point_in_time.def"
include "grib2/template.4.horizontal.def"
include "grib2/template.4.eps.def"
include "grib2/template.4.localtime.def"

View File

@ -4,7 +4,9 @@
include "grib2/template.4.parameter.def"
include "grib2/template.4.generating_process.def"
# no template.4.forecast_time.def component in this template.
include "grib2/template.4.horizontal.def"
include "grib2/template.4.localtime_statistical.def"
include "grib2/template.4.localtime.def"

View File

@ -4,8 +4,10 @@
include "grib2/template.4.parameter.def"
include "grib2/template.4.generating_process.def"
#include "grib2/template.4.forecast_time.def"
#include "grib2/template.4.point_in_time.def"
include "grib2/template.4.horizontal.def"
include "grib2/template.4.eps.def"
include "grib2/template.4.localtime_statistical.def"

View File

@ -5,8 +5,10 @@
include "grib2/template.4.parameter.def"
include "grib2/template.4.postproc.def"
include "grib2/template.4.generating_process.def"
#include "grib2/template.4.forecast_time.def"
#include "grib2/template.4.point_in_time.def"
include "grib2/template.4.horizontal.def"
include "grib2/template.4.localtime_statistical.def"
include "grib2/template.4.localtime.def"

View File

@ -5,8 +5,10 @@
include "grib2/template.4.parameter.def"
include "grib2/template.4.postproc.def"
include "grib2/template.4.generating_process.def"
#include "grib2/template.4.forecast_time.def"
#include "grib2/template.4.point_in_time.def"
include "grib2/template.4.horizontal.def"
include "grib2/template.4.eps.def"
include "grib2/template.4.localtime_statistical.def"

View File

@ -3,6 +3,11 @@
remove is_localtime;
transient is_localtime=1;
alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
alias time.stepUnits = stepUnits;
# Method used to calculate the field value at the local time specified in section 1
codetable[1] localTimeMethod ('4.248.table',masterDir,localDir)=255 : dump;
@ -45,7 +50,7 @@ localTimeForecastList list(numberOfForecastsUsedInLocalTime)
unsigned[4] timeIncrement=0 : dump;
}
alias ls.time=dataTime;
alias ls.time = dataTime;
# See ECC-707
transient lsdate_bug = 1: hidden;
transient lstime_bug = 1: hidden;
@ -78,6 +83,10 @@ if (numberOfForecastsUsedInLocalTime == 1) {
alias mars.time = timeOfForecastUsedInLocalTime : dump;
alias mars.step = endStep;
alias time.dataDate = dateOfForecastUsedInLocalTime;
alias time.dataTime = timeOfForecastUsedInLocalTime;
alias time.endStep = endStep;
}
if (numberOfForecastsUsedInLocalTime > 1) {
meta selectedFcIndex closest_date(dataDate, dataTime,
@ -106,5 +115,10 @@ if (numberOfForecastsUsedInLocalTime > 1) {
alias mars.date = dateOfForecastUsedInLocalTime : dump;
alias mars.time = timeOfForecastUsedInLocalTime : dump;
alias mars.step = endStep;
alias time.dataDate = dateOfForecastUsedInLocalTime;
alias time.dataTime = timeOfForecastUsedInLocalTime;
alias time.endStep = endStep;
}
}

View File

@ -0,0 +1,11 @@
# (C) Copyright 2005- ECMWF.
# Grid point data - Run length encoding
unsigned[1] bitsPerValue : dump;
unsigned[2] maxLevelValue : dump;
unsigned[2] numberOfLevelValues : dump;
unsigned[1] decimalScaleFactor : dump;
level_value_list list(numberOfLevelValues) {
unsigned[2] levelValues : dump;
}

View File

@ -0,0 +1,28 @@
# (C) Copyright 2005- ECMWF.
# Grid point data - Run length encoding
meta codedValues data_run_length_packing(
section7Length,
offsetBeforeData,
offsetSection7,
numberOfValues,
bitsPerValue,
maxLevelValue,
numberOfLevelValues,
decimalScaleFactor,
levelValues
): read_only;
meta values data_apply_bitmap(codedValues,
bitmap,
missingValue,
binaryScaleFactor,
numberOfDataPoints,
numberOfValues) : dump;
alias data.packedValues = codedValues;
template statistics "common/statistics_grid.def";
template missing_values "common/missing_values_grid.def";

View File

@ -14,8 +14,6 @@
#
#
from __future__ import print_function
import sys
import traceback

View File

@ -10,8 +10,6 @@
# Description: Verify the given BUFR table (B or D) are correctly formed for ecCodes
#
from __future__ import print_function
import os
import sys

View File

@ -13,7 +13,6 @@
# Description: How to copy all the values in the data section that are present in the same
# position in the data tree and with the same number of values to the output handle
#
from __future__ import print_function
import sys
import traceback

View File

@ -14,7 +14,6 @@
# position in the data tree and with the same number of values to the output handle.
# This example is for messages which use the operator 203YYY (overridden reference values)
#
from __future__ import print_function
import sys
import traceback

View File

@ -14,7 +14,6 @@
# position in the data tree and with the same number of values to the output handle.
# In this example we add the WIGOS sequence 301150 to a SYNOP
#
from __future__ import print_function
import sys
import traceback

View File

@ -7,7 +7,6 @@
# granted to it by virtue of its status as an intergovernmental organisation
# nor does it submit to any jurisdiction.
from __future__ import print_function
import sys
import traceback

View File

@ -2,8 +2,6 @@
# and then edited to add the bitmap.
# See ECC-869
from __future__ import print_function
import sys
import traceback

View File

@ -10,8 +10,6 @@
# Description: how to encode flight dataset into BUFR
from __future__ import print_function
import sys
import traceback
from datetime import datetime

View File

@ -13,7 +13,7 @@
# Description: how to read values of different type of keys from BUFR messages.
#
from __future__ import absolute_import, print_function
from __future__ import absolute_import
import sys
import traceback

View File

@ -14,8 +14,6 @@
#
#
from __future__ import print_function
import sys
import traceback

View File

@ -15,8 +15,6 @@
# keys in a BUFR message.
from __future__ import print_function
import sys
import traceback

View File

@ -15,8 +15,6 @@
#
#
from __future__ import print_function
import sys
import traceback

View File

@ -13,8 +13,6 @@
# Description: read key values from a BUFR sample message.
#
from __future__ import print_function
import sys
import traceback

View File

@ -19,8 +19,6 @@
# understand the structure of these messages.
#
from __future__ import print_function
import sys
import traceback

View File

@ -18,8 +18,6 @@
# messages than the one used in the example. It is advised to use bufr_dump to
# understand the structure of the messages.
from __future__ import print_function
import sys
import traceback

View File

@ -19,7 +19,6 @@
# messages than the one used in the example. It is advised to use bufr_dump to
# understand the structure of the messages.
#
from __future__ import print_function
import sys
import traceback

View File

@ -22,7 +22,6 @@
# messages than the one used in the example. It is advised to use bufr_dump to
# understand the structure of the messages.
#
from __future__ import print_function
import sys
import traceback

View File

@ -16,8 +16,6 @@
# understand the structure of the messages.
#
from __future__ import print_function
import collections
import sys
import traceback

View File

@ -14,8 +14,6 @@
#
#
from __future__ import print_function
import sys
import traceback

View File

@ -14,8 +14,6 @@
#
#
from __future__ import print_function
import sys
import traceback

View File

@ -14,7 +14,6 @@
# Description: how to process a file containing a mix of messages
# and print the kind of product (e.g. GRIB, BUFR etc)
from __future__ import print_function
import sys
import traceback

View File

@ -7,8 +7,6 @@
# granted to it by virtue of its status as an intergovernmental organisation
# nor does it submit to any jurisdiction.
from __future__ import print_function
import sys
import traceback

View File

@ -9,8 +9,6 @@
# nor does it submit to any jurisdiction.
#
from __future__ import print_function
import sys
import traceback

View File

@ -12,8 +12,6 @@
# Description: how to get values using keys from GRIB messages
#
from __future__ import print_function
import sys
import traceback

View File

@ -14,8 +14,6 @@
# Description: how to get the message offset
#
from __future__ import print_function
import sys
import traceback

View File

@ -12,8 +12,6 @@
# Description: How to create and use an index to access GRIB messages from
# a file
from __future__ import print_function
import os
import sys
import traceback

View File

@ -8,8 +8,6 @@
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
#
from __future__ import print_function
import sys
import traceback

View File

@ -12,7 +12,6 @@
# for missing values
# (rather than compare each value with the missingValue key)
#
from __future__ import print_function
import sys
import traceback

View File

@ -9,8 +9,6 @@
# nor does it submit to any jurisdiction.
#
from __future__ import print_function
import sys
import traceback

View File

@ -11,8 +11,6 @@
# Description: how to read data of the ECMWF EPS tropical cyclone tracks encoded in BUFR format.
#
from __future__ import print_function
import getopt
import os
import sys

View File

@ -9,8 +9,6 @@
# nor does it submit to any jurisdiction.
#
from __future__ import print_function
import sys
import traceback

View File

@ -9,8 +9,6 @@
# nor does it submit to any jurisdiction.
#
from __future__ import print_function
import sys
import traceback

View File

@ -13,8 +13,6 @@
# Description: read key values from a GRIB sample message.
#
from __future__ import print_function
import sys
import traceback

View File

@ -6,7 +6,6 @@
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
from __future__ import print_function
import sys
import traceback

View File

@ -12,8 +12,6 @@
# Description: how to set key values in GRIB messages
#
from __future__ import print_function
import sys
import traceback
from collections import OrderedDict

View File

@ -13,8 +13,6 @@
# Description: how to read values of different type of keys from GTS messages.
#
from __future__ import print_function
import sys
import traceback

View File

@ -9,7 +9,6 @@
# nor does it submit to any jurisdiction.
#
from __future__ import print_function
import sys
import traceback

View File

@ -14,8 +14,6 @@
#
#
from __future__ import print_function
import sys
import traceback

View File

View File

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

View File

@ -1,6 +1,7 @@
Accessor Class Hierarchy.
Generated by src/make_accessor_class_hierarchy_dirs.sh
|-grib_accessor_class_forward
|-grib_accessor_class_gen
|---grib_accessor_class_abstract_long_vector
|-----grib_accessor_class_g1step_range
@ -17,11 +18,11 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh
|-----grib_accessor_class_mars_param
|-----grib_accessor_class_mars_step
|-----grib_accessor_class_sprintf
|-----grib_accessor_class_trim
|---grib_accessor_class_assert
|---grib_accessor_class_bits
|---grib_accessor_class_blob
|---grib_accessor_class_box
|---grib_accessor_class_bufr_data
|---grib_accessor_class_bufr_data_array
|---grib_accessor_class_bufr_data_element
|---grib_accessor_class_bufr_elements_table
@ -40,6 +41,7 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh
|-------grib_accessor_class_padtoeven
|-------grib_accessor_class_padtomultiple
|-------grib_accessor_class_section_padding
|---grib_accessor_class_change_alternative_row_scanning
|---grib_accessor_class_change_scanning_direction
|---grib_accessor_class_codetable_title
|---grib_accessor_class_codetable_units
@ -61,6 +63,7 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh
|-------grib_accessor_class_statistics
|-------grib_accessor_class_statistics_spectral
|-------grib_accessor_class_vector
|-----grib_accessor_class_closest_date
|-----grib_accessor_class_divdouble
|-----grib_accessor_class_from_scale_factor_scaled_value
|-----grib_accessor_class_g1area
@ -170,10 +173,12 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh
|---grib_accessor_class_number_of_values_data_raw_packing
|---grib_accessor_class_pack_bufr_values
|---grib_accessor_class_position
|---grib_accessor_class_proj_string
|---grib_accessor_class_raw
|---grib_accessor_class_section
|---grib_accessor_class_section_pointer
|---grib_accessor_class_smart_table_column
|---grib_accessor_class_step_human_readable
|---grib_accessor_class_to_double
|-----grib_accessor_class_sexagesimal2decimal
|---grib_accessor_class_to_integer
@ -193,6 +198,7 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh
|-----grib_accessor_class_data_g22order_packing
|-----grib_accessor_class_data_png_packing
|-----grib_accessor_class_data_raw_packing
|-----grib_accessor_class_data_run_length_packing
|-----grib_accessor_class_data_simple_packing
|-------grib_accessor_class_data_complex_packing
|---------grib_accessor_class_data_g1complex_packing

View File

@ -1,5 +1,5 @@
Action Class Hierarchy
|action
|-action_class_alias
|-action_class_assert

View File

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -1,9 +1,9 @@
.grib.c:; ./grib2c.pl $<
# .req.grib:; mars $<
grib_errors.c : grib_errors.txt errors.pl
grib_errors.cc : grib_errors.txt 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.cc grib_errors.cc.new || (cp grib_errors.cc.new grib_errors.cc)
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 ../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
./grib2c.pl ../templates/*.grib
grib_lex.c : gribl.l grib_yacc.h
grib_lex.cc : gribl.l grib_yacc.h
$(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/fgetc/getc/g' < grib_lex1.c > grib_lex.c
rm -f grib_lex1.c
rm -f $(LEX_OUTPUT_ROOT).c
sed 's/yy/grib_yy/g' < $(LEX_OUTPUT_ROOT).cc | sed 's/static void grib_yyunput/void grib_yyunput/' > grib_lex1.cc
sed 's/fgetc/getc/g' < grib_lex1.cc > grib_lex.cc
rm -f grib_lex1.cc
rm -f $(LEX_OUTPUT_ROOT).cc
grib_yacc.h grib_yacc.c : griby.y
grib_yacc.h grib_yacc.cc : griby.y
$(YACC) -d griby.y
sed 's/yy/grib_yy/g' < y.tab.c > grib_yacc1.c
sed 's/fgetc/getc/g' < grib_yacc1.c > grib_yacc.c
rm -f grib_yacc1.c
sed 's/yy/grib_yy/g' < y.tab.c > grib_yacc1.cc
sed 's/fgetc/getc/g' < grib_yacc1.cc > grib_yacc.cc
rm -f grib_yacc1.cc
sed 's/yy/grib_yy/g' < y.tab.h > grib_yacc.h
rm -f y.tab.c y.tab.h
hash_keys:
./make_hash_keys.sh
grib_accessor_classes_hash.c:
grib_accessor_classes_hash.cc:
./make_accessor_class_hash.sh
SUFFIXES= .conf .grib .req .txt

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