OWLNext    7.0
Borland's Object Windows Library for the modern age
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
version.h
Go to the documentation of this file.
1//
2// OWLNext
3//
4/// \file version.h
5/// Library version and build information header (template).
6///
7/// If you see $WC tags in this file, then this is the template for automatic generation of the
8/// public header "owl/version.h", and the path of the file should be "source/owlcore/version.h".
9/// The fields will be substituted by real build data by SubWCRev, or similar tools, during the
10/// build process. If you don't see $WC tags, then this file is the final result, and the path of
11/// the file should be "include/owl/version.h".
12///
13/// NOTE! Do not edit this file if it is located at "include/owl". Edit the source file located
14/// at "source/owlcore" instead.
15//
16// Copyright (c) 1991, 1996 by Borland International, All Rights Reserved
17// Copyright (c) 1998-2000 by Yura Bidus
18// See OWLNext for license information (http://owlnext.sourceforge.net).
19
20#if !defined(OWL_VERSION_H)
21#define OWL_VERSION_H
22
23// Flags
24//
25#define OWL_PRERELEASE 0
26
27// OWL Version Number (Major, Minor, Release, Build)
28// All other version numbers and strings should be defined in terms of this.
29// NB! No leading zeroes in the numbers! (leading zero = octal)
30//
31#define OWL_VERSION(v) v(7,0,17,$WCREV$)
32
33// OWL File Version (major, minor, release, build)
34//
35#define OWL_FORMAT_VERSION_4WORD(major, minor, release, build) major, minor, release, build
36#define OWL_FILEVERSION OWL_VERSION(OWL_FORMAT_VERSION_4WORD)
37
38// OWL Product Version (major, minor, release, build)
39//
40#define OWL_PRODUCTVERSION OWL_FILEVERSION
41
42// OWL File Version String ("major.minor.release.build")
43//
44#define OWL_FORMAT_VERSION_STRING(major, minor, release, build) #major "." #minor "." #release "." #build
45#define OWL_FILEVERSION_STRING OWL_VERSION(OWL_FORMAT_VERSION_STRING)
46
47// OWL Product Version String ("major.minor" for stable release, "major.minor.release" for prerelease)
48//
49#define OWL_FORMAT_VERSION_MAJOR_MINOR_STRING(major, minor, release, build) #major "." #minor
50#define OWL_FORMAT_VERSION_MAJOR_MINOR_RELEASE_STRING(major, minor, release, build) #major "." #minor "." #release
51#if OWL_PRERELEASE
52# define OWL_PRODUCTVERSION_STRING OWL_VERSION(OWL_FORMAT_VERSION_MAJOR_MINOR_RELEASE_STRING)
53#else
54# define OWL_PRODUCTVERSION_STRING OWL_VERSION(OWL_FORMAT_VERSION_MAJOR_MINOR_STRING)
55#endif
56
57// 16, 32 and 64-bit internal version numbers
58// 16-bit: 0xMmNn, where M = Major / 10, m = Major % 10, N = Minor / 10, n = minor % 10
59// 32-bit: 0xMmNnBBBB, where M = Major / 10, m = Major % 10, N= Minor / 10, n = minor % 10, B = Build % 65536
60// 64-bit: 0xMMMMNNNNRRRRBBBB, where M = Major, N = Minor, R = Release, B = Build % 65536
61// E.g. 0x0620, 0x06200193 and 0x0006001400010193 (6.20.1.403)
62//
63#define OWL_FORMAT_VERSION_16BIT(major, minor, release, build) (((major / 10) << 12) | ((major % 10) << 8) | ((minor / 10) << 4) | (minor % 10))
64#define OWL_FORMAT_VERSION_32BIT(major, minor, release, build) (((OWL_FORMAT_VERSION_16BIT(major, minor, 0, 0)) << 16) | (build % 65536))
65#define OWL_FORMAT_VERSION_64BIT(major, minor, release, build) ((uint64(major) << 48) | (uint64(minor) << 32) | (release << 16) | (build % 65536))
66#define OWL_VERSION_16BIT OWL_VERSION(OWL_FORMAT_VERSION_16BIT)
67#define OWL_VERSION_32BIT OWL_VERSION(OWL_FORMAT_VERSION_32BIT)
68#define OWL_VERSION_64BIT OWL_VERSION(OWL_FORMAT_VERSION_64BIT)
69
70// Revision information
71//
72#define OWL_BUILD_REVISION $WCREV$
73#define OWL_BUILD_REVISION_DATE "$WCDATEUTC$"
74#define OWL_BUILD_MIXED $WCMIXED?1:0$ // If the build is based on mixed revisions of code then 1, else 0.
75#define OWL_BUILD_DIRTY $WCMODS?1:0$ // If the build was using modified source code then 1, else 0.
76
77// Version Info
78//
79#define OWL_PRODUCTNAME "OWLNext"
80#define OWL_LEGALCOPYRIGHT "See OWLNext license."
81#define OWL_COMPANYNAME "OWLNext Project Community"
82#define OWL_URL "http://sourceforge.net/projects/owlnext"
83
84// Backwards compatibility support
85//
86#if !defined(OWL_COMPATIBILITY) || OWL_COMPATIBILITY < 632
87# define _OWL_VERSION(v) OWL_VERSION(v)
88# define OWLVersion OWL_VERSION_16BIT
89# define OWLInternalVersion OWL_VERSION_32BIT
90# define OWLFileVersion OWL_FILEVERSION
91# define OWLProductVersion OWL_PRODUCTVERSION
92# define OWLFileVersionString OWL_FILEVERSION_STRING
93# define OWLProductVersionString OWL_PRODUCTVERSION_STRING
94#endif
95
96#endif // OWL_VERSION_H