1// Licensed to the .NET Foundation under one or more agreements.
2// The .NET Foundation licenses this file to you under the MIT license.
3// See the LICENSE file in the project root for more information.
4
5//
6// Insert just the #defines in winver.h, so that the
7// C# compiler can include this file after macro preprocessing.
8//
9
10#ifdef __cplusplus
11#ifndef FXVER_H_
12#define FXVER_H_
13#define INCLUDE_FXVER_H
14#endif
15#else
16#define RC_INVOKED 1
17#define INCLUDE_FXVER_H
18#endif
19
20#ifdef INCLUDE_FXVER_H
21#undef INCLUDE_FXVER_H
22
23#ifndef RC_INVOKED
24#define FXVER_H_RC_INVOKED_ENABLED
25#define RC_INVOKED 1
26#endif
27
28#include <verrsrc.h>
29
30#ifdef FXVER_H_RC_INVOKED_ENABLED
31#undef RC_INVOKED
32#undef FXVER_H_RC_INVOKED_ENABLED
33#endif
34
35//
36// Include the definitions for rmj, rmm, rup, rpt
37//
38
39#include <product_version.h>
40
41/*
42 * Product version, name and copyright
43 */
44
45#include "fxverstrings.h"
46
47/*
48 * File version, names, description.
49 */
50
51// FX_VER_INTERNALNAME_STR is passed in by the build environment.
52#ifndef FX_VER_INTERNALNAME_STR
53#define FX_VER_INTERNALNAME_STR UNKNOWN_FILE
54#endif
55
56#define VER_INTERNALNAME_STR QUOTE_MACRO(FX_VER_INTERNALNAME_STR)
57#define VER_ORIGINALFILENAME_STR QUOTE_MACRO(FX_VER_INTERNALNAME_STR)
58
59// FX_VER_FILEDESCRIPTION_STR is defined in RC files that include fxver.h
60
61#ifndef FX_VER_FILEDESCRIPTION_STR
62#define FX_VER_FILEDESCRIPTION_STR QUOTE_MACRO(FX_VER_INTERNALNAME_STR)
63#endif
64
65#define VER_FILEDESCRIPTION_STR FX_VER_FILEDESCRIPTION_STR
66
67#ifndef FX_VER_FILEVERSION_STR
68#define FX_VER_FILEVERSION_STR FX_FILEVERSION_STR
69#endif
70
71#define VER_FILEVERSION_STR FX_VER_FILEVERSION_STR
72#define VER_FILEVERSION_STR_L VER_PRODUCTVERSION_STR_L
73
74#ifndef FX_VER_FILEVERSION
75#define FX_VER_FILEVERSION VER_DOTFILEVERSION
76#endif
77
78#define VER_FILEVERSION FX_VER_FILEVERSION
79
80//URT_VFT passed in by the build environment.
81#ifndef FX_VFT
82#define FX_VFT VFT_UNKNOWN
83#endif
84
85#define VER_FILETYPE FX_VFT
86#define VER_FILESUBTYPE VFT2_UNKNOWN
87
88/* default is nodebug */
89#if DBG
90#define VER_DEBUG VS_FF_DEBUG
91#else
92#define VER_DEBUG 0
93#endif
94
95#define VER_PRERELEASE 0
96
97#define EXPORT_TAG
98
99#if OFFICIAL_BUILD
100#define VER_PRIVATE 0
101#else
102#define VER_PRIVATE VS_FF_PRIVATEBUILD
103#endif
104
105#define VER_SPECIALBUILD 0
106
107#define VER_FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
108#define VER_FILEFLAGS (VER_PRERELEASE|VER_DEBUG|VER_PRIVATE|VER_SPECIALBUILD)
109#define VER_FILEOS VOS__WINDOWS32
110
111#define VER_COMPANYNAME_STR "Microsoft Corporation"
112
113#ifdef VER_LANGNEUTRAL
114#define VER_VERSION_UNICODE_LANG "000004B0" /* LANG_NEUTRAL/SUBLANG_NEUTRAL, Unicode CP */
115#define VER_VERSION_ANSI_LANG "000004E4" /* LANG_NEUTRAL/SUBLANG_NEUTRAL, Ansi CP */
116#define VER_VERSION_TRANSLATION 0x0000, 0x04B0
117#else
118#define VER_VERSION_UNICODE_LANG "040904B0" /* LANG_ENGLISH/SUBLANG_ENGLISH_US, Unicode CP */
119#define VER_VERSION_ANSI_LANG "040904E4" /* LANG_ENGLISH/SUBLANG_ENGLISH_US, Ansi CP */
120#define VER_VERSION_TRANSLATION 0x0409, 0x04B0
121#endif
122
123#if defined(CSC_INVOKED)
124#define VER_COMMENTS_STR "Flavor=" + QUOTE_MACRO(URTBLDENV_FRIENDLY)
125#else
126#define VER_COMMENTS_STR "Flavor=" QUOTE_MACRO(URTBLDENV_FRIENDLY)
127#endif
128
129#define VER_PRIVATEBUILD_STR QUOTE_MACRO(FX_VER_PRIVATEBUILD_STR)
130
131#if defined(__BUILDMACHINE__)
132#if defined(__BUILDDATE__)
133#define B2(x,y) " (" #x "." #y ")"
134#define B1(x,y) B2(x, y)
135#define BUILD_MACHINE_TAG B1(__BUILDMACHINE__, __BUILDDATE__)
136#else
137#define B2(x) " built by: " #x
138#define B1(x) B2(x)
139#define BUILD_MACHINE_TAG B1(__BUILDMACHINE__)
140#endif
141#if defined(__BUILDMACHINE_LEN__)
142#if __BUILDMACHINE_LEN__ >= 25
143#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG
144#elif __BUILDMACHINE_LEN__ == 24
145#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
146#elif __BUILDMACHINE_LEN__ == 23
147#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
148#elif __BUILDMACHINE_LEN__ == 22
149#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
150#elif __BUILDMACHINE_LEN__ == 21
151#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
152#elif __BUILDMACHINE_LEN__ == 20
153#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
154#elif __BUILDMACHINE_LEN__ == 19
155#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
156#elif __BUILDMACHINE_LEN__ == 18
157#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
158#elif __BUILDMACHINE_LEN__ == 17
159#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
160#elif __BUILDMACHINE_LEN__ == 16
161#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
162#elif __BUILDMACHINE_LEN__ == 15
163#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
164#elif __BUILDMACHINE_LEN__ == 14
165#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
166#elif __BUILDMACHINE_LEN__ == 13
167#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
168#elif __BUILDMACHINE_LEN__ == 12
169#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
170#elif __BUILDMACHINE_LEN__ == 11
171#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
172#elif __BUILDMACHINE_LEN__ == 10
173#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
174#elif __BUILDMACHINE_LEN__ == 9
175#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
176#elif __BUILDMACHINE_LEN__ == 8
177#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
178#elif __BUILDMACHINE_LEN__ == 7
179#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
180#elif __BUILDMACHINE_LEN__ == 6
181#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
182#elif __BUILDMACHINE_LEN__ == 5
183#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
184#elif __BUILDMACHINE_LEN__ == 4
185#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
186#elif __BUILDMACHINE_LEN__ == 3
187#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
188#elif __BUILDMACHINE_LEN__ == 2
189#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
190#elif __BUILDMACHINE_LEN__ == 1
191#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG " "
192#else
193#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG
194#endif
195#else
196#define BUILD_MACHINE_TAG_PADDED BUILD_MACHINE_TAG
197#endif
198#else
199#define BUILD_MACHINE_TAG
200#define BUILD_MACHINE_TAG_PADDED
201#endif
202
203#endif
204