comparison nspr/pr/include/prvrsion.h @ 0:1e5118fa0cb1

This is NSS with a Cmake Buildsyste To compile a static NSS library for Windows we've used the Chromium-NSS fork and added a Cmake buildsystem to compile it statically for Windows. See README.chromium for chromium changes and README.trustbridge for our modifications.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 28 Jul 2014 10:47:06 +0200
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:1e5118fa0cb1
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6
7 /* author: jstewart */
8
9 #if defined(_PRVERSION_H)
10 #else
11 #define _PRVERSION_H
12
13 #include "prtypes.h"
14
15 PR_BEGIN_EXTERN_C
16
17 /* All components participating in the PR version protocol must expose
18 * a structure and a function. The structure is defined below and named
19 * according to the naming conventions outlined further below. The function
20 * is called libVersionPoint and returns a pointer to this structure.
21 */
22
23 /* on NT, always pack the structure the same. */
24 #ifdef _WIN32
25 #pragma pack(push, 8)
26 #endif
27
28 typedef struct {
29 /*
30 * The first field defines which version of this structure is in use.
31 * At this time, only version 2 is specified. If this value is not
32 * 2, you must read no further into the structure.
33 */
34 PRInt32 version;
35
36 /* for Version 2, this is the body format. */
37 PRInt64 buildTime; /* 64 bits - usecs since midnight, 1/1/1970 */
38 char * buildTimeString;/* a human readable version of the time */
39
40 PRUint8 vMajor; /* Major version of this component */
41 PRUint8 vMinor; /* Minor version of this component */
42 PRUint8 vPatch; /* Patch level of this component */
43
44 PRBool beta; /* true if this is a beta component */
45 PRBool debug; /* true if this is a debug component */
46 PRBool special; /* true if this component is a special build */
47
48 char * filename; /* The original filename */
49 char * description; /* description of this component */
50 char * security; /* level of security in this component */
51 char * copyright; /* The copyright for this file */
52 char * comment; /* free form field for misc usage */
53 char * specialString; /* the special variant for this build */
54 } PRVersionDescription;
55
56 /* on NT, restore the previous packing */
57 #ifdef _WIN32
58 #pragma pack(pop)
59 #endif
60
61 /*
62 * All components must define an entrypoint named libVersionPoint which
63 * is of type versionEntryPointType.
64 *
65 * For example, for a library named libfoo, we would have:
66 *
67 * PRVersionDescription prVersionDescription_libfoo =
68 * {
69 * ...
70 * };
71 *
72 * PR_IMPLEMENT(const PRVersionDescription*) libVersionPoint(void)
73 * {
74 * return &prVersionDescription_libfoo;
75 * }
76 */
77 typedef const PRVersionDescription *(*versionEntryPointType)(void);
78
79 /*
80 * Where you declare your libVersionPoint, do it like this:
81 * PR_IMPLEMENT(const PRVersionDescription *) libVersionPoint(void) {
82 * fill it in...
83 * }
84 */
85
86 /*
87 * NAMING CONVENTION FOR struct
88 *
89 * all components should also expose a static PRVersionDescription
90 * The name of the struct should be calculated as follows:
91 * Take the value of filename. (If filename is not specified, calculate
92 * a short, unique string.) Convert all non-alphanumeric characters
93 * to '_'. To this, prepend "PRVersionDescription_". Thus for libfoo.so,
94 * the symbol name is "PRVersionDescription_libfoo_so".
95 * so the file should have
96 * PRVersionDescription PRVersionDescription_libfoo_so { fill it in };
97 * on NT, this file should be declspec export.
98 */
99
100 PR_END_EXTERN_C
101
102 #endif /* defined(_PRVERSION_H) */
103
104 /* prvrsion.h */
105
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)