blob: 5f5c91c09626c19d20ef2a28039385332eccf36b [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
#include "CommonDefines.h"
/// For version metadata defined in the source, see:
/// core/bin/lib/Common/CommonDefines.h
/// core/bin/lib/Common/ChakraCoreVersion.h
///
/// Build number is defined in the Chakra.Generated.BuildInfo.props file generated by
/// Build/scripts/pre_build.ps1
/// e.g.:
/// <ChakraVersionBuildNumber>1</ChakraVersionBuildNumber>
/// <ChakraVersionBuildQFENumber>23456</ChakraVersionBuildQFENumber>
/// Which are used to define the C++ macros below, respectively:
/// CHAKRA_VERSION_BUILD_NUMBER
/// CHAKRA_VERSION_BUILD_QFE
///
/// Binary version string is composed from the following values:
/// CHAKRA_CORE_MAJOR_VERSION . CHAKRA_CORE_MINOR_VERSION . CHAKRA_CORE_PATCH_VERSION . CHAKRA_CORE_VERSION_RELEASE_QFE
/// e.g. 1.2.1.0
/// These fields must be explicitly set in the source.
/// Note: VER_PRODUCTBUILD is always set to 0.
#define VER_COMPANYNAME_STR "Microsoft Corporation"
#define VER_FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
#define VER_FILEOS VOS_NT_WINDOWS32
#define VER_PRODUCTMAJORVERSION CHAKRA_CORE_MAJOR_VERSION
#define VER_PRODUCTMINORVERSION CHAKRA_CORE_MINOR_VERSION
#define VER_PRODUCTPATCHVERSION CHAKRA_CORE_PATCH_VERSION
// File Flags
#if DBG
#define VER_DEBUG VS_FF_DEBUG
#else
#define VER_DEBUG 0
#endif
#if CHAKRA_CORE_VERSION_RELEASE
#define VER_PRIVATE 0
#else
#define VER_PRIVATE VS_FF_PRIVATEBUILD
#endif
#if CHAKRA_CORE_VERSION_RELEASE && CHAKRA_CORE_VERSION_PRERELEASE
#define VER_PRERELEASE VS_FF_PRERELEASE
#else
#define VER_PRERELEASE 0
#endif
#define VER_FILEFLAGS (VER_DEBUG|VER_PRIVATE|VER_PRERELEASE)
// File description suffix
#if DBG
#define VER_FILEDESCRIPTION_SUFFIX1_STR L"Debug"
#elif defined(ENABLE_DEBUG_CONFIG_OPTIONS)
#define VER_FILEDESCRIPTION_SUFFIX1_STR L"Test"
// else, we don't display a build configuration suffix for Release builds
#endif
#if !CHAKRA_CORE_VERSION_RELEASE
#define VER_FILEDESCRIPTION_SUFFIX2_STR L"Private"
#elif CHAKRA_CORE_VERSION_PRERELEASE // _RELEASE && _PRERELEASE
#define VER_FILEDESCRIPTION_SUFFIX2_STR L"Pre-release"
// else _RELEASE && !_PRERELEASE
// we don't display a suffix because this binary was built to potentially be released
#endif
#define VER_PRODUCTBUILD 0
#define VER_PRODUCTBUILD_QFE CHAKRA_CORE_VERSION_RELEASE_QFE
#ifdef CHAKRA_VERSION_BUILD_COMMIT
#define __BUILDMACHINE__ CHAKRA_VERSION_BUILD_COMMIT
#endif
#if defined(CHAKRA_VERSION_BUILD_NUMBER) && defined(CHAKRA_VERSION_BUILD_QFE)
#if (CHAKRA_VERSION_BUILD_NUMBER < 10)
#define CHAKRA_VERSION_BUILD_NUMBER_PADDING 0000
#elif (CHAKRA_VERSION_BUILD_NUMBER < 100)
#define CHAKRA_VERSION_BUILD_NUMBER_PADDING 000
#elif (CHAKRA_VERSION_BUILD_NUMBER < 1000)
#define CHAKRA_VERSION_BUILD_NUMBER_PADDING 00
#elif (CHAKRA_VERSION_BUILD_NUMBER < 10000)
#define CHAKRA_VERSION_BUILD_NUMBER_PADDING 0
#endif
#if (CHAKRA_VERSION_BUILD_QFE < 10)
#define CHAKRA_VERSION_BUILD_QFE_PADDING 0000
#elif (CHAKRA_VERSION_BUILD_QFE < 100)
#define CHAKRA_VERSION_BUILD_QFE_PADDING 000
#elif (CHAKRA_VERSION_BUILD_QFE < 1000)
#define CHAKRA_VERSION_BUILD_QFE_PADDING 00
#elif (CHAKRA_VERSION_BUILD_QFE < 10000)
#define CHAKRA_VERSION_BUILD_QFE_PADDING 0
#endif
#define CONCAT_PADDING_(padding,value) padding ## value
#define CONCAT_PADDING(padding,value) CONCAT_PADDING_(padding,value)
#ifdef CHAKRA_VERSION_BUILD_NUMBER_PADDING
#define PADDED_CHAKRA_VERSION_BUILD_NUMBER CONCAT_PADDING(CHAKRA_VERSION_BUILD_NUMBER_PADDING,CHAKRA_VERSION_BUILD_NUMBER)
#else
#define PADDED_CHAKRA_VERSION_BUILD_NUMBER CHAKRA_VERSION_BUILD_NUMBER
#endif
#ifdef CHAKRA_VERSION_BUILD_QFE_PADDING
#define PADDED_CHAKRA_VERSION_BUILD_QFE CONCAT_PADDING(CHAKRA_VERSION_BUILD_QFE_PADDING,CHAKRA_VERSION_BUILD_QFE)
#else
#define PADDED_CHAKRA_VERSION_BUILD_QFE CHAKRA_VERSION_BUILD_QFE
#endif
#ifdef CHAKRA_VERSION_BUILD_DATE
#define __BUILDDATE__ PADDED_CHAKRA_VERSION_BUILD_NUMBER.PADDED_CHAKRA_VERSION_BUILD_QFE.CHAKRA_VERSION_BUILD_DATE
#else
#define __BUILDDATE__ PADDED_CHAKRA_VERSION_BUILD_NUMBER.PADDED_CHAKRA_VERSION_BUILD_QFE
#endif
#else // defined(CHAKRA_VERSION_BUILD_NUMBER) && defined(CHAKRA_VERSION_BUILD_QFE)
#ifdef CHAKRA_VERSION_BUILD_DATE
#define __BUILDDATE__ CHAKRA_VERSION_BUILD_DATE
#endif
#endif // defined(CHAKRA_VERSION_BUILD_NUMBER) && defined(CHAKRA_VERSION_BUILD_QFE)
#define VER_PRODUCTVERSION VER_PRODUCTMAJORVERSION,VER_PRODUCTMINORVERSION,VER_PRODUCTPATCHVERSION,VER_PRODUCTBUILD_QFE
#define VER_PRODUCTVERSION_MAJORMINOR2(x,y) #x "." #y
#define VER_PRODUCTVERSION_MAJORMINOR1(x,y) VER_PRODUCTVERSION_MAJORMINOR2(x, y)
#define VER_PRODUCTVERSION_STRING VER_PRODUCTVERSION_MAJORMINOR1(VER_PRODUCTMAJORVERSION, VER_PRODUCTMINORVERSION)
#define VER_PRODUCTVERSION_STR4(x) VER_PRODUCTVERSION_STRING "." #x
#define VER_PRODUCTVERSION_STR3(x) VER_PRODUCTVERSION_STR4(x)
#define VER_PRODUCTVERSION_STR2(x,y) VER_PRODUCTVERSION_STRING "." #x "." #y
#define VER_PRODUCTVERSION_STR1(x,y) VER_PRODUCTVERSION_STR2(x, y)
#define VER_PRODUCTVERSION_STR VER_PRODUCTVERSION_STR1(VER_PRODUCTPATCHVERSION, VER_PRODUCTBUILD_QFE)
#ifdef VER_FILEDESCRIPTION_SUFFIX1_STR
#ifdef VER_FILEDESCRIPTION_SUFFIX2_STR
#define VER_FILEDESCRIPTION_SUFFIX_STR L" (" VER_FILEDESCRIPTION_SUFFIX1_STR L" " VER_FILEDESCRIPTION_SUFFIX2_STR L")"
#else
#define VER_FILEDESCRIPTION_SUFFIX_STR L" (" VER_FILEDESCRIPTION_SUFFIX1_STR L")"
#endif
#elif defined(VER_FILEDESCRIPTION_SUFFIX2_STR)
#define VER_FILEDESCRIPTION_SUFFIX_STR L" (" VER_FILEDESCRIPTION_SUFFIX2_STR L")"
#else
#define VER_FILEDESCRIPTION_SUFFIX_STR
#endif
#define VER_PRODUCTNAME_STR VER_PRODUCTNAME L"\0"
#define VER_FILEDESCRIPTION_STR VER_PRODUCTNAME VER_FILEDESCRIPTION_SUFFIX_STR L"\0"
#include "common.ver"