/***************************************************************************
 *   Copyright (C) 2005-2019 by the FIFE team                              *
 *   http://www.fifengine.net                                              *
 *   This file is part of FIFE.                                            *
 *                                                                         *
 *   FIFE is free software; you can redistribute it and/or                 *
 *   modify it under the terms of the GNU Lesser General Public            *
 *   License as published by the Free Software Foundation; either          *
 *   version 2.1 of the License, or (at your option) any later version.    *
 *                                                                         *
 *   This library 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     *
 *   Lesser General Public License for more details.                       *
 *                                                                         *
 *   You should have received a copy of the GNU Lesser General Public      *
 *   License along with this library; if not, write to the                 *
 *   Free Software Foundation, Inc.,                                       *
 *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
 ***************************************************************************/

#ifndef FIFE_VERSION_H
#define FIFE_VERSION_H

/**
 * These version numbers are updated as part of the release process.
 *
 * The file "version.h.in" is a template file with placeholder tokens.
 * CMake replaces these tokens during the project configuration phase
 * and creates the file "version.h", see CMakeLists.txt.
 */

#define FIFE_VERSION        "@FIFE_VERSION@"
#define FIFE_VERSION_SHORT  "@FIFE_VERSION_SHORT@"
#define FIFE_MAJOR_VERSION  @FIFE_MAJOR_VERSION@
#define FIFE_MINOR_VERSION  @FIFE_MINOR_VERSION@
#define FIFE_PATCH_VERSION  @FIFE_PATCH_VERSION@
#define FIFE_GIT_HASH       "@FIFE_GIT_HASH@"

/**
 *  All FIFE related code is in the "FIFE" namespace.
 *  The namespace "fcn" (fifechan) is used for our custom widgets.
 */
namespace FIFE {
    inline const char* getVersion() {
        return FIFE_VERSION;
    }

    inline const char* getVersionShort() {
        return FIFE_VERSION_SHORT;
    }

    inline int getMajor() {
        return FIFE_MAJOR_VERSION;
    }

    inline int getMinor() {
        return FIFE_MINOR_VERSION;
    }

    inline int getPatch() {
        return FIFE_PATCH_VERSION;
    }

    inline const char* getHash() {
        return FIFE_GIT_HASH;
    }

    inline const int getVersionId() {
        return FIFE_MAJOR_VERSION * 10000 + FIFE_MINOR_VERSION * 100 + FIFE_PATCH_VERSION; // 3.2.1 = 30201
    }
} //FIFE

#endif //FIFE_VERSION_H

