//------------------------------------------------------------------------------------------------------- // 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.: /// 1 /// 23456 /// 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"