"Fossies" - the Fresh Open Source Software Archive

Member "apr-1.7.0/include/apr_version.h" (1 Apr 2019, 5411 Bytes) of package /linux/www/apr-1.7.0.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "apr_version.h" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 1.6.5_vs_1.7.0.

    1 /* Licensed to the Apache Software Foundation (ASF) under one or more
    2  * contributor license agreements.  See the NOTICE file distributed with
    3  * this work for additional information regarding copyright ownership.
    4  * The ASF licenses this file to You under the Apache License, Version 2.0
    5  * (the "License"); you may not use this file except in compliance with
    6  * the License.  You may obtain a copy of the License at
    7  *
    8  *     http://www.apache.org/licenses/LICENSE-2.0
    9  *
   10  * Unless required by applicable law or agreed to in writing, software
   11  * distributed under the License is distributed on an "AS IS" BASIS,
   12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   13  * See the License for the specific language governing permissions and
   14  * limitations under the License.
   15  */
   16 
   17 #ifndef APR_VERSION_H
   18 #define APR_VERSION_H
   19 
   20 /**
   21  * @file apr_version.h
   22  * @brief APR Versioning Interface
   23  * 
   24  * APR's Version
   25  *
   26  * There are several different mechanisms for accessing the version. There
   27  * is a string form, and a set of numbers; in addition, there are constants
   28  * which can be compiled into your application, and you can query the library
   29  * being used for its actual version.
   30  *
   31  * Note that it is possible for an application to detect that it has been
   32  * compiled against a different version of APR by use of the compile-time
   33  * constants and the use of the run-time query function.
   34  *
   35  * APR version numbering follows the guidelines specified in:
   36  *
   37  *     http://apr.apache.org/versioning.html
   38  */
   39 
   40 
   41 #define APR_COPYRIGHT "Copyright (c) 2000-2019 The Apache Software " \
   42                       "Foundation or its licensors, as applicable."
   43 
   44 /* The numeric compile-time version constants. These constants are the
   45  * authoritative version numbers for APR. 
   46  */
   47 
   48 /** major version 
   49  * Major API changes that could cause compatibility problems for older
   50  * programs such as structure size changes.  No binary compatibility is
   51  * possible across a change in the major version.
   52  */
   53 #define APR_MAJOR_VERSION       1
   54 
   55 /** minor version
   56  * Minor API changes that do not cause binary compatibility problems.
   57  * Reset to 0 when upgrading APR_MAJOR_VERSION
   58  */
   59 #define APR_MINOR_VERSION       7
   60 
   61 /** patch level 
   62  * The Patch Level never includes API changes, simply bug fixes.
   63  * Reset to 0 when upgrading APR_MINOR_VERSION
   64  */
   65 #define APR_PATCH_VERSION       0
   66 
   67 /** 
   68  * The symbol APR_IS_DEV_VERSION is only defined for internal,
   69  * "development" copies of APR.  It is undefined for released versions
   70  * of APR.
   71  */
   72 /* #undef APR_IS_DEV_VERSION */
   73 
   74 /**
   75  * Check at compile time if the APR version is at least a certain
   76  * level.
   77  * @param major The major version component of the version checked
   78  * for (e.g., the "1" of "1.3.0").
   79  * @param minor The minor version component of the version checked
   80  * for (e.g., the "3" of "1.3.0").
   81  * @param patch The patch level component of the version checked
   82  * for (e.g., the "0" of "1.3.0").
   83  * @remark This macro is available with APR versions starting with
   84  * 1.3.0.
   85  */
   86 #define APR_VERSION_AT_LEAST(major,minor,patch)                    \
   87 (((major) < APR_MAJOR_VERSION)                                     \
   88  || ((major) == APR_MAJOR_VERSION && (minor) < APR_MINOR_VERSION) \
   89  || ((major) == APR_MAJOR_VERSION && (minor) == APR_MINOR_VERSION && (patch) <= APR_PATCH_VERSION))
   90 
   91 #if defined(APR_IS_DEV_VERSION) || defined(DOXYGEN)
   92 /** Internal: string form of the "is dev" flag */
   93 #ifndef APR_IS_DEV_STRING
   94 #define APR_IS_DEV_STRING "-dev"
   95 #endif
   96 #else
   97 #define APR_IS_DEV_STRING ""
   98 #endif
   99 
  100 /* APR_STRINGIFY is defined here, and also in apr_general.h, so wrap it */
  101 #ifndef APR_STRINGIFY
  102 /** Properly quote a value as a string in the C preprocessor */
  103 #define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
  104 /** Helper macro for APR_STRINGIFY */
  105 #define APR_STRINGIFY_HELPER(n) #n
  106 #endif
  107 
  108 /** The formatted string of APR's version */
  109 #define APR_VERSION_STRING \
  110      APR_STRINGIFY(APR_MAJOR_VERSION) "." \
  111      APR_STRINGIFY(APR_MINOR_VERSION) "." \
  112      APR_STRINGIFY(APR_PATCH_VERSION) \
  113      APR_IS_DEV_STRING
  114 
  115 /** An alternative formatted string of APR's version */
  116 /* macro for Win32 .rc files using numeric csv representation */
  117 #define APR_VERSION_STRING_CSV APR_MAJOR_VERSION ##, \
  118                              ##APR_MINOR_VERSION ##, \
  119                              ##APR_PATCH_VERSION
  120 
  121 
  122 #ifndef APR_VERSION_ONLY
  123 
  124 /* The C language API to access the version at run time, 
  125  * as opposed to compile time.  APR_VERSION_ONLY may be defined 
  126  * externally when preprocessing apr_version.h to obtain strictly 
  127  * the C Preprocessor macro declarations.
  128  */
  129 
  130 #include "apr.h"
  131 
  132 #ifdef __cplusplus
  133 extern "C" {
  134 #endif
  135 
  136 /** 
  137  * The numeric version information is broken out into fields within this 
  138  * structure. 
  139  */
  140 typedef struct {
  141     int major;      /**< major number */
  142     int minor;      /**< minor number */
  143     int patch;      /**< patch number */
  144     int is_dev;     /**< is development (1 or 0) */
  145 } apr_version_t;
  146 
  147 /**
  148  * Return APR's version information information in a numeric form.
  149  *
  150  *  @param pvsn Pointer to a version structure for returning the version
  151  *              information.
  152  */
  153 APR_DECLARE(void) apr_version(apr_version_t *pvsn);
  154 
  155 /** Return APR's version information as a string. */
  156 APR_DECLARE(const char *) apr_version_string(void);
  157 
  158 #ifdef __cplusplus
  159 }
  160 #endif
  161 
  162 #endif /* ndef APR_VERSION_ONLY */
  163 
  164 #endif /* ndef APR_VERSION_H */