bufr2synop 0.24.0
bufr2tac.c
Go to the documentation of this file.
1/***************************************************************************
2 * Copyright (C) 2013-2022 by Guillermo Ballester Valor *
3 * gbv@ogimet.com *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
20/*!
21 \file bufr2tac.c
22 \brief This file has the code for functions to get information about library bufr2tac, and global vars
23*/
24#ifndef CONFIG_H
25# include "config.h"
26# define CONFIG_H
27#endif
28
29#include "bufr2tac.h"
30
31int BUFR2TAC_DEBUG_LEVEL = 0; /*!< Set debug level. 0 -> no debug. 1 -> debug. 2 -> verbose debug */
32
33/*!
34 \fn char *bufr2tac_get_version(char *version, char *build, char *builder, int *version_major, int *version_minor, int *version_patch)
35 \brief Get strings with version information and build date and time
36 \param version pointer to string with version as result if not NULL
37 \param dversion dimension of string \ref version
38 \param build pointer to string with compiler and compilation date and time if not NULL
39 \param dbuild dimension of string \ref build
40 \param builder pointer to string with builder utility. 'cmake' or 'autotools' if not NULL
41 \param dbuilder dimension of string \ref builder
42 \param version_major pointer to string with version_major component if not NULL
43 \param version_minor pointer to string with version_minor component if not NULL
44 \param version_patch pointer to string with version_patch component if not NULL
45
46 Retuns string pointer \ref version.
47 */
48char *bufr2tac_get_version(char *version, size_t dversion, char *build, size_t dbuild, char *builder, size_t dbuilder,
49 int *version_major, int *version_minor, int *version_patch)
50{
51 int major = 0, minor = 0, patch = 0;
52 size_t used;
53
54 if (version == NULL)
55 return NULL;
56 snprintf(version, dversion, "%s", VERSION);
57 // default
58 sscanf(version, "%d.%d.%d", &major, &minor, &patch);
59
60 if (build)
61 {
62 used = 0;
63#if defined(__INTEL_COMPILER)
64 used += snprintf(build + used, dbuild - used, "using INTEL C compiler icc %d.%d ", __INTEL_COMPILER, __INTEL_COMPILER_UPDATE);
65#elif defined(__clang_version__)
66 used += snprintf(build + used, dbuild - used, "using clang C compiler ", __clang_version__);
67#elif defined(__GNUC__)
68 used += snprintf(build + used, dbuild - used, "using GNU C compiler gcc %d.%d.%d ", __GNUC__ , __GNUC_MINOR__ , __GNUC_PATCHLEVEL__);
69#elif defined(_MSC_VER)
70 used += snprintf(build + used, dbuild - used, "using MICROSOFT C compiler %d ", _MSC_VER);
71#else
72 used += snprintf(build + used, dbuild - used, "using an unknown C compiler ");
73#endif
74 snprintf(build + used, dbuild - used,"at %s %s",__DATE__,__TIME__);
75 }
76
77 if (builder)
78#ifdef BUILD_USING_CMAKE
79 strncpy(builder, "cmake", dbuilder);
80#else
81 strncpy(builder, "autotools", dbuilder);
82#endif
83 if (version_major)
84 *version_major = major;
85 if (version_minor)
86 *version_minor = minor;
87 if (version_patch)
88 *version_patch = patch;
89 return version;
90}
91
92
94{
95 if (level < 0 || level > 2)
96 return 1; // Bad debug level
97
98 // Here we set
100 return 0;
101}
char * bufr2tac_get_version(char *version, size_t dversion, char *build, size_t dbuild, char *builder, size_t dbuilder, int *version_major, int *version_minor, int *version_patch)
Definition: bufr2tac.c:48
int BUFR2TAC_DEBUG_LEVEL
Definition: bufr2tac.c:31
int bufr2tac_set_debug_level(int level)
Definition: bufr2tac.c:93
Include header file for binary bufr2tac.
#define VERSION
Definition: config.h:8