| //------------------------------------------------------------------------------------------------------- |
| // 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" |