#pragma once

// This file is transformed from keymanversion_build.in to keymanversion_build.h by /common/include/build.sh

// Legacy version number defines
#define KEYMANVERSION	"$RELEASE"
#define KEYMANVERSIONW	L"$RELEASE"

// Current version number defines
#define KEYMAN_Version            "$Version"
#define KEYMAN_Version_W          L"$Version"

#define KEYMAN_VersionWin         "$VersionWin"
#define KEYMAN_VersionWin_W       L"$VersionWin"
#define KEYMAN_VersionWin_W16     u"$VersionWin"

#define KEYMAN_VersionRelease     "$VersionRelease"
#define KEYMAN_VersionRelease_W   L"$VersionRelease"

#define KEYMAN_VersionMajor       $VersionMajor
#define KEYMAN_VersionMinor       $VersionMinor
#define KEYMAN_VersionPatch       $VersionPatch

#define KEYMAN_Tier               "$Tier"
#define KEYMAN_Tier_W             L"$Tier"

#define KEYMAN_Tag                "$Tag"
#define KEYMAN_Tag_W              L"$Tag"

#define KEYMAN_VersionWithTag     "$VersionWithTag"
#define KEYMAN_VersionWithTag_W   L"$VersionWithTag"

#define KEYMAN_VersionRc          "$VersionRc"
#define KEYMAN_VersionRc_W        L"$VersionRc"

#define KEYMAN_Environment        "$Environment"
#define KEYMAN_Environment_W      L"$Environment"

#define KEYMAN_VersionGitTag      "$VersionGitTag"
#define KEYMAN_VersionGitTag_W    L"$VersionGitTag"

//
// Version macros for .rc files
///

#define kv_version_stringify(x) kv_version_to_string(x)
#define kv_version_to_string(x) #x

// Product versioning

#define KV_VERSION_MAJOR $VersionMajor
#define KV_VERSION_MINOR $VersionMinor
#define KV_VERSION_PATCH $VersionPatch
#define KV_VERSION_STRING kv_version_stringify($VersionMajor ## . ## $VersionMinor ## . ## $VersionPatch ## .0) "\0"

#define KV_FILEVERSION KV_VERSION_MAJOR, KV_VERSION_MINOR, KV_VERSION_PATCH, 0
#define KV_PRODUCTVERSION KV_VERSION_MAJOR, KV_VERSION_MINOR, KV_VERSION_PATCH, 0
