summaryrefslogtreecommitdiff
path: root/solenv/inc/verinfo.hrc
blob: 5af626c885d58a8afda93e2011ffbc8bcc5a9a39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
/*************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 * 
 * Copyright 2000, 2010 Oracle and/or its affiliates.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/

#ifndef _VERINFO_HRC
#define _VERINFO_HRC

// include ---------------------------------------------------------------

#ifndef WIN32
#include <ver.h>
#else
#include <winver.h>
#endif

// general preprocessor string management --------------------------------

#ifndef PPSX
#define PPSX(s) #s
#endif
#ifndef PPS
#define PPS(s) PPSX(s)
#endif

#ifndef PPCX
#define PPCX(s1, s2) s1##s2
#endif
#ifndef PPCAT
#define PPCAT(s1, s2) PPCX(s1, s2)
#endif

// define order of date parts --------------------------------------------

#define VER_YMD

// set VERVARIANT to 0 if not defined ------------------------------------

#if !defined(VERVARIANT)
  #define VERVARIANT 0
#endif

// define pre release state ----------------------------------------------

#ifdef VER_CONCEPT
  #define VER_PREL 1
  #define VER_COUNT (0+VER_CONCEPT)
  #define VER1 Concept (Level VER_CONCEPT)
#endif

#ifdef VER_ALPHA
  #define VER_PREL 1
  #define VER_COUNT (100+VER_ALPHA)
  #define VER1 Alpha (Level VER_ALPHA)
#endif

#ifdef VER_BETA
  #define VER_PREL 1
  #define VER_COUNT (200+VER_BETA)
  #define VER1 Beta (Level VER_BETA)
#endif

#ifdef VER_GAMMA
  #define VER_PREL 1
  #define VER_COUNT (300+VER_GAMMA)
  #define VER1 Gamma (Level VER_GAMMA)
#endif

#ifdef VER_FINAL
  #define VER_COUNT (500+VER_FINAL)
  #if VER_FINAL==0
    #undef VER1
  #elif VER_FINAL==1
    #define VER1 1
  #elif VER_FINAL==2
    #define VER1 2
  #elif VER_FINAL==3
    #define VER1 3
  #elif VER_FINAL==4
    #define VER1 4
  #elif VER_FINAL==5
    #define VER1 5
  #elif VER_FINAL==6
    #define VER1 6
  #elif VER_FINAL==7
    #define VER1 7
  #elif VER_FINAL==8
    #define VER1 8
  #elif VER_FINAL==9
    #define VER1 9
  #elif VER_FINAL==10
    #define VER1 a
  #elif VER_FINAL==11
    #define VER1 b
  #elif VER_FINAL==12
    #define VER1 c
  #endif
#endif

#ifdef SUBVERSION
#if SUBVERSION < 10
  #define VER4 PPCAT(0, SUBVERSION)
#else
  #define VER4 SUBVERSION
#endif
#else
  #define VER4 0.0
#endif

#ifndef VER1
#if VERVARIANT > 0
  #define VER_LEVEL VERSION.VER4.VERVARIANT
#else
  #define VER_LEVEL VERSION.VER4
#endif
#else
  #define VERC1(a, b, c) a.b##c
  #define VERC2(a, b, c) VERC1(a, b, c)
  #define VER_LEVEL VERC2(VERSION, VER4, VER1)
#endif

#if !defined(VER_DMY) && VER_DAY < 10
  #define VER5 PPCAT(0, VER_DAY)
#else
  #define VER5 VER_DAY
#endif

// define month strings --------------------------------------------------

#if VER_MONTH==1
  #define VER2 Jan
#elif VER_MONTH==2
  #define VER2 Feb
#elif VER_MONTH==3
  #define VER2 Mar
#elif VER_MONTH==4
  #define VER2 Apr
#elif VER_MONTH==5
  #define VER2 May
#elif VER_MONTH==6
  #define VER2 Jun
#elif VER_MONTH==7
  #define VER2 Jul
#elif VER_MONTH==8
  #define VER2 Aug
#elif VER_MONTH==9
  #define VER2 Sep
#elif VER_MONTH==10
  #define VER2 Oct
#elif VER_MONTH==11
  #define VER2 Nov
#elif VER_MONTH==12
  #define VER2 Dec
#endif

#define VERC3(a, b, c) c-b-a
#define VERC4(a, b, c) VERC3(a, b, c)
#define VER_DATE VERC4(VER5, VER2, VER_YEAR)

#if PPCAT(1, VER_FIRSTYEAR)==PPCAT(1, VER_YEAR)
  #define VER_YEARRANGE VER_FIRSTYEAR
#else
  #define VER_YEARRANGE VER_FIRSTYEAR-VER_YEAR
#endif

#if VER_FIRSTYEAR > 100
#define VERC5(a) Copyright \251 a by
#define VERC6(a) VERC5(a)
#else
#define VERC5(a) Copyright \251 20##a by
#define VERC6(a) VERC5(a)
#endif

#define S_CRIGHT PPS(VERC6(VER_YEARRANGE))

#define S_VERSION PPS(Version VER_LEVEL of VER_DATE)

#endif	// _VERINFO_HRC