VirtualBox

source: vbox/trunk/include/VBox/version.h@ 55773

Last change on this file since 55773 was 55773, checked in by vboxsync, 10 years ago

Use defines in the RC files and make those defines compatible with what we use in C/C++ code.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.5 KB
Line 
1/** @file
2 * VBox Version Management.
3 */
4
5/*
6 * Copyright (C) 2006-2011 Oracle Corporation
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * The contents of this file may alternatively be used under the terms
17 * of the Common Development and Distribution License Version 1.0
18 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19 * VirtualBox OSE distribution, in which case the provisions of the
20 * CDDL are applicable instead of those of the GPL.
21 *
22 * You may elect to license modified versions of this file under the
23 * terms and conditions of either the GPL or the CDDL or both.
24 */
25
26#ifndef ___VBox_version_h
27#define ___VBox_version_h
28
29#include <iprt/cdefs.h> /* For RT_XSTR. */
30
31/* Product info. */
32#include <product-generated.h>
33#include <version-generated.h>
34
35#ifndef RC_INVOKED
36
37/** Combined version number. */
38# define VBOX_VERSION (VBOX_VERSION_MAJOR << 16 | VBOX_VERSION_MINOR)
39/** Get minor version from combined version. */
40# define VBOX_GET_VERSION_MINOR(uVer) ((uVer) & 0xffff)
41/** Get major version from combined version. */
42# define VBOX_GET_VERSION_MAJOR(uVer) ((uVer) >> 16)
43
44/**
45 * Make a full version number.
46 *
47 * The returned number can be used in normal integer comparsions and will yield
48 * the expected results.
49 *
50 * @param uMajor The major version number.
51 * @param uMinor The minor version number.
52 * @param uBuild The build number.
53 * @returns Full version number.
54 */
55# define VBOX_FULL_VERSION_MAKE(uMajor, uMinor, uBuild) \
56 ( (uint32_t)((uMajor) & 0xff) << 24 \
57 | (uint32_t)((uMinor) & 0xff) << 16 \
58 | (uint32_t)((uBuild) & 0xffff) \
59 )
60
61/** Combined version number. */
62# define VBOX_FULL_VERSION \
63 VBOX_FULL_VERSION_MAKE(VBOX_VERSION_MAJOR, VBOX_VERSION_MINOR, VBOX_VERSION_BUILD)
64/** Get the major version number from a VBOX_FULL_VERSION style number. */
65# define VBOX_FULL_VERSION_GET_MAJOR(uFullVer) ( ((uFullVer) >> 24) & 0xffU )
66/** Get the minor version number from a VBOX_FULL_VERSION style number. */
67# define VBOX_FULL_VERSION_GET_MINOR(uFullVer) ( ((uFullVer) >> 16) & 0xffU )
68/** Get the build version number from a VBOX_FULL_VERSION style number. */
69# define VBOX_FULL_VERSION_GET_BUILD(uFullVer) ( ((uFullVer) ) & 0xffffU )
70
71/**
72 * Make a short version number for use in 16 bit version fields.
73 *
74 * The returned number can be used in normal integer comparsions and will yield
75 * the expected results.
76 *
77 * @param uMajor The major version number.
78 * @param uMinor The minor version number.
79 * @returns Short version number.
80 */
81# define VBOX_SHORT_VERSION_MAKE(uMajor, uMinor) \
82 ( (uint16_t)((uMajor) & 0xff) << 8 \
83 | (uint16_t)((uMinor) & 0xff) \
84 )
85
86/** Combined short version number. */
87# define VBOX_SHORT_VERSION \
88 VBOX_SHORT_VERSION_MAKE(VBOX_VERSION_MAJOR, VBOX_VERSION_MINOR)
89/** Get the major version number from a VBOX_SHORT_VERSION style number. */
90# define VBOX_SHORT_VERSION_GET_MAJOR(uShortVer) ( ((uShortVer) >> 8) & 0xffU )
91/** Get the minor version number from a VBOX_SHORT_VERSION style number. */
92# define VBOX_SHORT_VERSION_GET_MINOR(uShortVer) ( (uShortVer) & 0xffU )
93
94#endif /* !RC_INVOKED */
95
96/** @name Prefined strings for Windows resource files
97 * @{ */
98#define VBOX_RC_COMPANY_NAME VBOX_VENDOR
99#define VBOX_RC_LEGAL_COPYRIGHT "Copyright (C) 2009-" VBOX_C_YEAR " Oracle Corporation\0"
100#define VBOX_RC_PRODUCT_VERSION VBOX_VERSION_MAJOR , VBOX_VERSION_MINOR , VBOX_VERSION_BUILD , 0
101#define VBOX_RC_PRODUCT_VERSION_STR RT_XSTR(VBOX_VERSION_MAJOR) "." RT_XSTR(VBOX_VERSION_MINOR) "." RT_XSTR(VBOX_VERSION_BUILD) ".r" RT_XSTR(VBOX_SVN_REV) "\0"
102#define VBOX_RC_FILE_VERSION VBOX_VERSION_MAJOR , VBOX_VERSION_MINOR , VBOX_VERSION_BUILD , 0
103#define VBOX_RC_FILE_VERSION_STR RT_XSTR(VBOX_VERSION_MAJOR) "." RT_XSTR(VBOX_VERSION_MINOR) "." RT_XSTR(VBOX_VERSION_BUILD) "." RT_XSTR(VBOX_SVN_REV) "\0"
104#define VBOX_RC_PRODUCT_NAME_STR VBOX_PRODUCT_NAME "\0"
105#define VBOX_RC_PRODUCT_NAME_GA_STR VBOX_PRODUCT_NAME " Guest Additions\0"
106/** @} */
107
108#endif
109
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette