2
0

CoreCommon.ver 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #include "CommonDefines.h"
  6. /// For version metadata defined in the source, see:
  7. /// core/bin/lib/Common/CommonDefines.h
  8. /// core/bin/lib/Common/ChakraCoreVersion.h
  9. ///
  10. /// Build number is defined in the Chakra.Generated.BuildInfo.props file generated by
  11. /// Build/scripts/pre_build.ps1
  12. /// e.g.:
  13. /// <ChakraVersionBuildNumber>1</ChakraVersionBuildNumber>
  14. /// <ChakraVersionBuildQFENumber>23456</ChakraVersionBuildQFENumber>
  15. /// Which are used to define the C++ macros below, respectively:
  16. /// CHAKRA_VERSION_BUILD_NUMBER
  17. /// CHAKRA_VERSION_BUILD_QFE
  18. ///
  19. /// Binary version string is composed from the following values:
  20. /// CHAKRA_CORE_MAJOR_VERSION . CHAKRA_CORE_MINOR_VERSION . CHAKRA_CORE_PATCH_VERSION . CHAKRA_CORE_VERSION_RELEASE_QFE
  21. /// e.g. 1.2.1.0
  22. /// These fields must be explicitly set in the source.
  23. /// Note: VER_PRODUCTBUILD is always set to 0.
  24. #define VER_COMPANYNAME_STR "Microsoft Corporation"
  25. #define VER_FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
  26. #define VER_FILEOS VOS_NT_WINDOWS32
  27. #define VER_PRODUCTMAJORVERSION CHAKRA_CORE_MAJOR_VERSION
  28. #define VER_PRODUCTMINORVERSION CHAKRA_CORE_MINOR_VERSION
  29. #define VER_PRODUCTPATCHVERSION CHAKRA_CORE_PATCH_VERSION
  30. // File Flags
  31. #if DBG
  32. #define VER_DEBUG VS_FF_DEBUG
  33. #else
  34. #define VER_DEBUG 0
  35. #endif
  36. #if CHAKRA_CORE_VERSION_RELEASE
  37. #define VER_PRIVATE 0
  38. #else
  39. #define VER_PRIVATE VS_FF_PRIVATEBUILD
  40. #endif
  41. #if CHAKRA_CORE_VERSION_RELEASE && CHAKRA_CORE_VERSION_PRERELEASE
  42. #define VER_PRERELEASE VS_FF_PRERELEASE
  43. #else
  44. #define VER_PRERELEASE 0
  45. #endif
  46. #define VER_FILEFLAGS (VER_DEBUG|VER_PRIVATE|VER_PRERELEASE)
  47. // File description suffix
  48. #if DBG
  49. #define VER_FILEDESCRIPTION_SUFFIX1_STR L"Debug"
  50. #elif defined(ENABLE_DEBUG_CONFIG_OPTIONS)
  51. #define VER_FILEDESCRIPTION_SUFFIX1_STR L"Test"
  52. // else, we don't display a build configuration suffix for Release builds
  53. #endif
  54. #if !CHAKRA_CORE_VERSION_RELEASE
  55. #define VER_FILEDESCRIPTION_SUFFIX2_STR L"Private"
  56. #elif CHAKRA_CORE_VERSION_PRERELEASE // _RELEASE && _PRERELEASE
  57. #define VER_FILEDESCRIPTION_SUFFIX2_STR L"Pre-release"
  58. // else _RELEASE && !_PRERELEASE
  59. // we don't display a suffix because this binary was built to potentially be released
  60. #endif
  61. #define VER_PRODUCTBUILD 0
  62. #define VER_PRODUCTBUILD_QFE CHAKRA_CORE_VERSION_RELEASE_QFE
  63. #ifdef CHAKRA_VERSION_BUILD_COMMIT
  64. #define __BUILDMACHINE__ CHAKRA_VERSION_BUILD_COMMIT
  65. #endif
  66. #if defined(CHAKRA_VERSION_BUILD_NUMBER) && defined(CHAKRA_VERSION_BUILD_QFE)
  67. #if (CHAKRA_VERSION_BUILD_NUMBER < 10)
  68. #define CHAKRA_VERSION_BUILD_NUMBER_PADDING 0000
  69. #elif (CHAKRA_VERSION_BUILD_NUMBER < 100)
  70. #define CHAKRA_VERSION_BUILD_NUMBER_PADDING 000
  71. #elif (CHAKRA_VERSION_BUILD_NUMBER < 1000)
  72. #define CHAKRA_VERSION_BUILD_NUMBER_PADDING 00
  73. #elif (CHAKRA_VERSION_BUILD_NUMBER < 10000)
  74. #define CHAKRA_VERSION_BUILD_NUMBER_PADDING 0
  75. #endif
  76. #if (CHAKRA_VERSION_BUILD_QFE < 10)
  77. #define CHAKRA_VERSION_BUILD_QFE_PADDING 0000
  78. #elif (CHAKRA_VERSION_BUILD_QFE < 100)
  79. #define CHAKRA_VERSION_BUILD_QFE_PADDING 000
  80. #elif (CHAKRA_VERSION_BUILD_QFE < 1000)
  81. #define CHAKRA_VERSION_BUILD_QFE_PADDING 00
  82. #elif (CHAKRA_VERSION_BUILD_QFE < 10000)
  83. #define CHAKRA_VERSION_BUILD_QFE_PADDING 0
  84. #endif
  85. #define CONCAT_PADDING_(padding,value) padding ## value
  86. #define CONCAT_PADDING(padding,value) CONCAT_PADDING_(padding,value)
  87. #ifdef CHAKRA_VERSION_BUILD_NUMBER_PADDING
  88. #define PADDED_CHAKRA_VERSION_BUILD_NUMBER CONCAT_PADDING(CHAKRA_VERSION_BUILD_NUMBER_PADDING,CHAKRA_VERSION_BUILD_NUMBER)
  89. #else
  90. #define PADDED_CHAKRA_VERSION_BUILD_NUMBER CHAKRA_VERSION_BUILD_NUMBER
  91. #endif
  92. #ifdef CHAKRA_VERSION_BUILD_QFE_PADDING
  93. #define PADDED_CHAKRA_VERSION_BUILD_QFE CONCAT_PADDING(CHAKRA_VERSION_BUILD_QFE_PADDING,CHAKRA_VERSION_BUILD_QFE)
  94. #else
  95. #define PADDED_CHAKRA_VERSION_BUILD_QFE CHAKRA_VERSION_BUILD_QFE
  96. #endif
  97. #ifdef CHAKRA_VERSION_BUILD_DATE
  98. #define __BUILDDATE__ PADDED_CHAKRA_VERSION_BUILD_NUMBER.PADDED_CHAKRA_VERSION_BUILD_QFE.CHAKRA_VERSION_BUILD_DATE
  99. #else
  100. #define __BUILDDATE__ PADDED_CHAKRA_VERSION_BUILD_NUMBER.PADDED_CHAKRA_VERSION_BUILD_QFE
  101. #endif
  102. #else // defined(CHAKRA_VERSION_BUILD_NUMBER) && defined(CHAKRA_VERSION_BUILD_QFE)
  103. #ifdef CHAKRA_VERSION_BUILD_DATE
  104. #define __BUILDDATE__ CHAKRA_VERSION_BUILD_DATE
  105. #endif
  106. #endif // defined(CHAKRA_VERSION_BUILD_NUMBER) && defined(CHAKRA_VERSION_BUILD_QFE)
  107. #define VER_PRODUCTVERSION VER_PRODUCTMAJORVERSION,VER_PRODUCTMINORVERSION,VER_PRODUCTPATCHVERSION,VER_PRODUCTBUILD_QFE
  108. #define VER_PRODUCTVERSION_MAJORMINOR2(x,y) #x "." #y
  109. #define VER_PRODUCTVERSION_MAJORMINOR1(x,y) VER_PRODUCTVERSION_MAJORMINOR2(x, y)
  110. #define VER_PRODUCTVERSION_STRING VER_PRODUCTVERSION_MAJORMINOR1(VER_PRODUCTMAJORVERSION, VER_PRODUCTMINORVERSION)
  111. #define VER_PRODUCTVERSION_STR4(x) VER_PRODUCTVERSION_STRING "." #x
  112. #define VER_PRODUCTVERSION_STR3(x) VER_PRODUCTVERSION_STR4(x)
  113. #define VER_PRODUCTVERSION_STR2(x,y) VER_PRODUCTVERSION_STRING "." #x "." #y
  114. #define VER_PRODUCTVERSION_STR1(x,y) VER_PRODUCTVERSION_STR2(x, y)
  115. #define VER_PRODUCTVERSION_STR VER_PRODUCTVERSION_STR1(VER_PRODUCTPATCHVERSION, VER_PRODUCTBUILD_QFE)
  116. #ifdef VER_FILEDESCRIPTION_SUFFIX1_STR
  117. #ifdef VER_FILEDESCRIPTION_SUFFIX2_STR
  118. #define VER_FILEDESCRIPTION_SUFFIX_STR L" (" VER_FILEDESCRIPTION_SUFFIX1_STR L" " VER_FILEDESCRIPTION_SUFFIX2_STR L")"
  119. #else
  120. #define VER_FILEDESCRIPTION_SUFFIX_STR L" (" VER_FILEDESCRIPTION_SUFFIX1_STR L")"
  121. #endif
  122. #elif defined(VER_FILEDESCRIPTION_SUFFIX2_STR)
  123. #define VER_FILEDESCRIPTION_SUFFIX_STR L" (" VER_FILEDESCRIPTION_SUFFIX2_STR L")"
  124. #else
  125. #define VER_FILEDESCRIPTION_SUFFIX_STR
  126. #endif
  127. #define VER_PRODUCTNAME_STR VER_PRODUCTNAME L"\0"
  128. #define VER_FILEDESCRIPTION_STR VER_PRODUCTNAME VER_FILEDESCRIPTION_SUFFIX_STR L"\0"
  129. #include "common.ver"