// Copyright (c) 2025-2026 Rocky Software Inc.
// All rights reserved.
//
// This file is part of the RockyGuard library and is distributed under
// the terms of the RockyGuard Library Software License Agreement. See
// docs/RockyGuard_License_Agreement.pdf in the distribution.
//
// No part of this file may be copied, modified, or distributed except
// as expressly permitted by the license agreement.

#pragma once

// ============================================================================
// RockyGuard Library - Version information
//
// This file is AUTO-GENERATED from version.h.in by CMake. Do NOT edit the
// generated version.h directly — edit the 1.2.1 substitution
// source (project(rockyguard VERSION ...) in the top-level CMakeLists.txt)
// and rebuild.
//
// See docs/RockyGuard_Versioning_Policy.txt for the full versioning scheme.
// ============================================================================

#define ROCKYGUARD_VERSION_MAJOR  1
#define ROCKYGUARD_VERSION_MINOR  2
#define ROCKYGUARD_VERSION_PATCH  1
// Full SemVer 2.0.0 string including any pre-release suffix
// (e.g. "1.2.1-dev"). Numeric components above stay clean.
#define ROCKYGUARD_VERSION_STRING "1.2.1"

// Packed integer form: 0xMMmmpp where MM=major, mm=minor, pp=patch.
// Convenient for #if comparisons. Example: #if ROCKYGUARD_VERSION >= 0x010200
#define ROCKYGUARD_VERSION \
    ((ROCKYGUARD_VERSION_MAJOR << 16) | \
     (ROCKYGUARD_VERSION_MINOR <<  8) | \
     (ROCKYGUARD_VERSION_PATCH <<  0))

namespace rockyguard {

constexpr int VERSION_MAJOR = ROCKYGUARD_VERSION_MAJOR;
constexpr int VERSION_MINOR = ROCKYGUARD_VERSION_MINOR;
constexpr int VERSION_PATCH = ROCKYGUARD_VERSION_PATCH;
constexpr const char* VERSION_STRING = ROCKYGUARD_VERSION_STRING;

} // namespace rockyguard
