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