Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • b383306/libcdi
  • mpim-sw/libcdi
  • m214007/libcdi
3 results
Show changes
Commits on Source (24)
......@@ -7,7 +7,6 @@ set(CMAKE_C_STANDARD 11)
include(CTest)
include(CheckIncludeFile)
# Finding libraries
### -------------- Pthread ---------------------------
......@@ -17,6 +16,7 @@ if(${CDI_PTHREAD})
find_package(Threads REQUIRED)
set_target_properties(Threads::Threads PROPERTIES THREADS_PREFER_PTHREAD_FLAG TRUE)
list(APPEND cdi_compile_defs HAVE_PTHREAD=1)
list(APPEND cdi_linked_libs pthread)
endif()
# enable default internal libs
......@@ -45,7 +45,6 @@ if(${CDI_SERVICE})
list(APPEND cdi_compile_defs HAVE_LIBSERVICE=1)
endif()
# ecCodes
option(CDI_ECCODES "Use the eccodes library [default=ON]" ON)
if(${CDI_ECCODES} OR eccodes_ROOT)
......@@ -53,6 +52,7 @@ if(${CDI_ECCODES} OR eccodes_ROOT)
if (${eccodes_FOUND})
list(APPEND cdi_compile_defs HAVE_LIBGRIB_API=${eccodes_FOUND})
message(VERBOSE "added compile definition HAVE_LIBGRIB_API=${eccodes_FOUND}")
list(APPEND cdi_linked_libs eccodes)
else()
message(WARNING "eccodes not found, compiling without eccodes")
endif ()
......@@ -70,6 +70,7 @@ if(${CDI_NETCDF} OR netCDF_ROOT )
HAVE_LIBGRIB_API=${netCDF_FOUND}
HAVE_LIBGRIB=${netCDF_FOUND}
)
list(APPEND cdi_linked_libs netCDF::netcdf)
else()
message(WARNING "netcdf target not found, compiling without netcdf")
endif ()
......@@ -82,8 +83,13 @@ message(VERBOSE "looking for config.h in: ${PROJECT_BINARY_DIR}/src")
list(APPEND cdi_compile_defs CDI=1 CDI_SIZE_TYPE=size_t PACKAGE_NAME="${PROJECT_NAME}" VERSION="${CMAKE_PROJECT_VERSION}")
add_subdirectory(src)
#tests
add_subdirectory(app)
add_subdirectory(tests)
#app
option(CDI_BUILD_APP "Build the app" ON)
if (CDI_BUILD_APP)
add_subdirectory(app)
endif ()
#tests
if (BUILD_TESTING)
add_subdirectory(tests)
endif ()
......@@ -2,6 +2,14 @@
* Version 2.5.1 released
2025-02-28 Uwe Schulzweida
* taxis: added support for CDI_KEY_DATATYPE
2025-02-12 Uwe Schulzweida
* GRIB_API: Handle LLAM as LCC
2025-02-06 Uwe Schulzweida
* Added obsolete functions vlistNgrids() and vlistNzaxis() for ParaView vtkCDIReader
......
......@@ -7,6 +7,6 @@ target_include_directories(cdi PRIVATE
$<INSTALL_INTERFACE:include
)
target_link_libraries(cdi PRIVATE cdilib netCDF::netcdf pthread)
target_link_libraries(cdi PRIVATE cdilib ${cdi_linked_libs})
target_include_directories(cdi PRIVATE "${PROJECT_BINARY_DIR}/src/config.h")
target_compile_definitions(cdi PRIVATE ${cdi_netcdf_definitions})
......@@ -300,8 +300,8 @@ printGridInfoKernel(int gridID, int index, bool lproj)
size_t xsize = (size_t) gridInqXsize(gridID);
size_t ysize = (size_t) gridInqYsize(gridID);
// int prec = gridInqDatatype(gridID);
// int dig = (prec == CDI_DATATYPE_FLT64) ? 15 : 7;
// int datatype;
// cdiInqKeyInt(gridID, CDI_GLOBAL, CDI_KEY_DATATYPE, &datatype);
int dig = 7;
if (!lproj)
......@@ -537,8 +537,9 @@ printZaxisInfo(int vlistID)
int ltype = 0;
cdiInqKeyInt(zaxisID, CDI_GLOBAL, CDI_KEY_TYPEOFFIRSTFIXEDSURFACE, &ltype);
int levelsize = zaxisInqSize(zaxisID);
// int prec = zaxisInqDatatype(zaxisID);
// int dig = (prec == CDI_DATATYPE_FLT64) ? 15 : 7;
// int datatype;
// cdiInqKeyInt(gridID, CDI_GLOBAL, CDI_KEY_DATATYPE, &datatype);
// int dig = (datatype == CDI_DATATYPE_FLT64) ? 15 : 7;
zaxisName(zaxistype, zaxisname);
int length = CDI_MAX_NAME;
......
......@@ -60,7 +60,7 @@ defineGrid()
cdiDefKeyString(gridID, CDI_XAXIS, CDI_KEY_UNITS, "myXunits");
cdiDefKeyString(gridID, CDI_YAXIS, CDI_KEY_UNITS, "myYunits");
gridDefDatatype(gridID, DOUBLE_PRECISION);
cdiDefKeyInt(gridID, CDI_GLOBAL, CDI_KEY_DATATYPE, DOUBLE_PRECISION);
gridDefTrunc(gridID, 1);
cdiDefKeyInt(gridID, CDI_GLOBAL, CDI_KEY_NUMBEROFGRIDUSED, 6);
......
......@@ -190,14 +190,44 @@ list( APPEND cdi_unknown
resource_unpack.h
)
option(CDI_BUILD_UNKNOWN "Build unknown sources in libcdi" ON)
mark_as_advanced(CDI_BUILD_UNKNOWN)
if (CDI_BUILD_UNKNOWN)
list(APPEND cdi_src_files ${cdi_unknown})
endif ()
# Support exporting all symbolds on Windows
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
add_library(cdilib
${cdi_src_files} ${cdi_unknown}
${cdi_src_files}
# INSTALL_HEADERS_LIST cdi.h
)
target_include_directories(cdilib PRIVATE "${PROJECT_BINARY_DIR}/src/config.h")
target_link_libraries(cdilib eccodes netCDF::netcdf)
target_link_libraries(cdilib ${cdi_linked_libs})
target_compile_definitions(cdilib PRIVATE PACKAGE_NAME="${PROJECT_NAME}" VERSION="${CMAKE_PROJECT_VERSION}" ${cdi_compile_defs})
add_library(cdilib::cdilib ALIAS cdilib)
include(GNUInstallDirs)
install(FILES cdi.h calendar.h cdi_datetime.h julian_date.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
install(TARGETS cdilib
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
include(CMakePackageConfigHelpers)
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cdi/cdi-config.cmake.in" "${CMAKE_BINARY_DIR}/cmake/cdi-config.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/cdi")
write_basic_package_version_file(
"${CMAKE_BINARY_DIR}/cmake/cdi-config-version.cmake"
VERSION "${PACKAGE_VERSION}"
COMPATIBILITY SameMajorVersion)
install(
FILES
"${CMAKE_BINARY_DIR}/cmake/cdi-config.cmake"
"${CMAKE_BINARY_DIR}/cmake/cdi-config-version.cmake"
DESTINATION
"${CMAKE_INSTALL_LIBDIR}/cmake/cdi")
......@@ -3,7 +3,9 @@
#endif
#ifdef HAVE_LIBNETCDF
#include "dmemory.h"
#include "stream_cdf.h"
#include "cdf_int.h"
#include "cdf_lazy_grid.h"
static struct gridVirtTable cdfLazyGridVtable;
......
......@@ -19,8 +19,6 @@
#include <string.h>
#include "dmemory.h"
#include "cdf_int.h"
#include "grid.h"
struct xyValGet
......
......@@ -15,7 +15,6 @@
#include "stream_cdf.h"
#include "cdf_int.h"
#include "vlist.h"
#include "vlist_var.h"
static void
cdfReadGridTraj(stream_t *streamptr, int gridID)
......
......@@ -13,7 +13,6 @@
#include <string.h>
#include <ctype.h>
#include "dmemory.h"
#include "cdi.h"
#include "cdi_int.h"
#include "cdf_util.h"
......
#ifndef CDF_UTIL_H_
#define CDF_UTIL_H_
#include <stdlib.h>
#include <stdbool.h>
bool xtypeIsText(int xtype);
......
......@@ -13,7 +13,6 @@
#include "cdf.h"
#include "cdf_int.h"
#include "vlist.h"
#include "vlist_var.h"
void
cdfDefVarDeflate(int ncid, int ncvarID, int shuffle, int compLevel)
......
......@@ -12,6 +12,7 @@
#include "cdi.h"
#include "cdi_int.h"
#include "taxis.h"
#include "zaxis.h"
#include "grid.h"
#include "vlist.h"
......@@ -43,6 +44,12 @@ zaxis_get_keysp(zaxis_t *zaxisptr, int varID)
return (varID == CDI_GLOBAL) ? &zaxisptr->keys : NULL;
}
static cdi_keys_t *
taxis_get_keysp(taxis_t *taxisptr, int varID)
{
return (varID == CDI_GLOBAL) ? &taxisptr->keys : NULL;
}
static cdi_key_t *
new_key(cdi_keys_t *keysp, int key)
{
......@@ -100,6 +107,7 @@ cdi_get_keysp(int objID, int varID)
if (reshID == GRID) return grid_get_keysp(grid_to_pointer(objID), varID);
if (reshID == DIST_GRID) return grid_get_keysp(grid_to_pointer(objID), varID);
if (reshID == ZAXIS) return zaxis_get_keysp(zaxis_to_pointer(objID), varID);
if (reshID == TAXIS) return taxis_get_keysp(taxis_to_pointer(objID), varID);
if (reshID == VLIST) return vlist_get_keysp(vlist_to_pointer(objID), varID);
return NULL;
......
......@@ -2,8 +2,9 @@
#include "config.h"
#endif
#ifndef _WIN32
#include <unistd.h>
#endif
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
......
......@@ -24,7 +24,9 @@ int cdiUUIDIsNull(const unsigned char uuid[])
return isNull;
}
#ifndef _WIN32
void cdiCreateUUID(unsigned char uuid[CDI_UUID_SIZE]);
#endif
int cdiUUID2Str(const unsigned char uuid[], char uuidstr[]);
int cdiStr2UUID(const char *uuidstr, unsigned char uuid[]);
......
# Config file for lib CDI project
# run cmake with CDI_DIR pointing to the directory containing this file.
# set(CDI_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/../../..")
set(CDI_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/../../..")
# use following line instead of previous if this file can be configured
set(CDI_ROOT_DIR "@prefix@")
# set(CDI_ROOT_DIR "@prefix@")
find_path(CDI_INCLUDE_DIRECTORY
cdi.h
......@@ -15,7 +15,7 @@ find_path(CDI_INCLUDE_DIRECTORY
mark_as_advanced(CDI_INCLUDE_DIRECTORY)
find_library(CDI_LIBRARY
NAMES cdi
NAMES cdilib
PATHS "${CDI_ROOT_DIR}/lib"
# use following line instead of previous if this file can be configured
# PATHS "@libdir@"
......
......@@ -5,6 +5,8 @@
#include "config.h"
#endif
#include <stdlib.h>
enum
{
EXT_REAL = 1,
......
......@@ -11,7 +11,6 @@
* next to find out what happened */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
......
......@@ -10,19 +10,25 @@
#include "config.h"
#endif
#include <unistd.h>
#include <assert.h>
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/types.h>
// On Windows, define ssize_t manually
#ifdef _WIN32
#define ssize_t __int64
#include <io.h>
#else
#include <unistd.h>
#endif
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h> // gettimeofday()
......@@ -392,7 +398,7 @@ fileFlush(int fileID)
{
FILE *fp = fileptr->fp;
retval = fflush(fp);
if (retval == 0) retval = fsync(fileno(fp));
if (retval == 0) retval = fflush(fp);
if (retval != 0) retval = errno;
}
......
......@@ -14,6 +14,9 @@
#include <stdlib.h>
#include <stdbool.h>
#include <float.h>
// Required on windows to be able to use M_PI
#define _USE_MATH_DEFINES
#include <math.h>
#ifndef M_SQRT2
......