/***************************************************************************
*   Copyright (c) 2005-2024 by Pierre-Henri WUILLEMIN(@LIP6) & Christophe GONZALES(@AMU)   *
*   info_at_agrum_dot_org                                               *
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
*   This program is distributed in the hope that it will be useful,       *
*   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
*   GNU General Public License for more details.                          *
*                                                                         *
*   You should have received a copy of the GNU General Public License     *
*   along with this program; if not, write to the                         *
*   Free Software Foundation, Inc.,                                       *
*   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
***************************************************************************/

// This file is generated by cmake.
// Please do not change its content.
// Please do not add it to the repository.

// To ease the process (especially for pyAgrum and other apps which directly
// use agrum source instead of linking with agrum shared library), this file is
// generated in source directory :
// it should not be different between release and debug versions

#ifndef GUM_CONFIG_H
#define GUM_CONFIG_H

#define GUM_MAJOR_VERSION 3
#define GUM_MINOR_VERSION 0
#define GUM_PATCH_VERSION 0

#define GUM_RANDOMSEED 0

#define GUM_SRC_PATH /build/mingw-w64-agrum/src/aGrUM-3.0.0/src
#define GUM_VERSION "3.0.0"

/* #undef GUM_TRACE_ON */

#define GUM_CHAR_SIZE   1
#define GUM_INT_SIZE    4
#define GUM_LONG_SIZE   4
#define GUM_FLOAT_SIZE  4
#define GUM_DOUBLE_SIZE 8

/* #undef HAVE_MKSTEMP */
/* #undef HAVE_DIRENT_H */
/* #undef HAVE_UNISTD_H */
/* #undef HAVE_SYS_TIME_H */
/* #undef HAVE_EXECINFO_H */

/* #undef GUM_THREADS */


#define GUM_AT_LEAST(x,y,z) (GUM_MAJOR_VERSION>x || (GUM_MAJOR_VERSION>=x && \
                             (GUM_MINOR_VERSION>y || (GUM_MINOR_VERSION>=y && \
                                 GUM_PATCH_VERSION>=z))))

#ifdef __GNUC__
#define GNUC_AT_LEAST(x,y) ((__GNUC__==x && __GNUC_MINOR__>=y) || __GNUC__>x)
#else
#define GNUC_AT_LEAST(x,y) 0
#endif

#ifdef __GNUC__
#define GNUC_AT_MOST(x,y) ((__GNUC__==x && __GNUC_MINOR__<=y) || __GNUC__<x)
#else
#define GNUC_AT_MOST(x,y) 0
#endif

#ifdef __GNUC__
#define GUM_DEPRECATED(func) func __attribute__ ((deprecated))
#elif defined(_MSC_VER)
#define GUM_DEPRECATED(func) __declspec(deprecated) func
#else
#pragma message("WARNING: You need to implement DEPRECATED for this compiler")
#define GUM_DEPRECATED(func) func
#endif

#define GUM_UNUSED(expr) do { (void)(expr); } while (0)

#if defined(_MSC_VER)
#  define GUM_PUBLIC __declspec(dllexport)
#elif defined(__GNUC__) || defined(__clang__)
#  define GUM_PUBLIC __attribute__((visibility("default")))
#else
#  define GUM_PUBLIC
#endif

#ifdef _MSC_VER

#pragma warning(disable : 4503) // removing warning about the truncated names of type (>4096)... stupid compiler

#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS // removing warning about using (non safe) methods instead of (safe but m$-specific) versions.
#endif

#ifndef _CRT_NONSTDC_NO_DEPRECATE
#define _CRT_NONSTDC_NO_DEPRECATE  // removing warning about POSIX name (dup instead of _dup)
#endif

#endif

#endif // GUM_CONFIG_H
