apu_version.h revision 262253
1251876Speter/* Licensed to the Apache Software Foundation (ASF) under one or more 2251876Speter * contributor license agreements. See the NOTICE file distributed with 3251876Speter * this work for additional information regarding copyright ownership. 4251876Speter * The ASF licenses this file to You under the Apache License, Version 2.0 5251876Speter * (the "License"); you may not use this file except in compliance with 6251876Speter * the License. You may obtain a copy of the License at 7251876Speter * 8251876Speter * http://www.apache.org/licenses/LICENSE-2.0 9251876Speter * 10251876Speter * Unless required by applicable law or agreed to in writing, software 11251876Speter * distributed under the License is distributed on an "AS IS" BASIS, 12251876Speter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13251876Speter * See the License for the specific language governing permissions and 14251876Speter * limitations under the License. 15251876Speter */ 16251876Speter 17251876Speter#ifndef APU_VERSION_H 18251876Speter#define APU_VERSION_H 19251876Speter 20251876Speter/** 21251876Speter * @file apu_version.h 22251876Speter * @brief APR-util Versioning Interface 23251876Speter * 24251876Speter * APR-util's Version 25251876Speter * 26251876Speter * There are several different mechanisms for accessing the version. There 27251876Speter * is a string form, and a set of numbers; in addition, there are constants 28251876Speter * which can be compiled into your application, and you can query the library 29251876Speter * being used for its actual version. 30251876Speter * 31251876Speter * Note that it is possible for an application to detect that it has been 32251876Speter * compiled against a different version of APU by use of the compile-time 33251876Speter * constants and the use of the run-time query function. 34251876Speter * 35251876Speter * APU version numbering follows the guidelines specified in: 36251876Speter * 37251876Speter * http://apr.apache.org/versioning.html 38251876Speter */ 39251876Speter 40251876Speter 41262253Speter#define APU_COPYRIGHT "Copyright (c) 2013 The Apache Software " \ 42262253Speter "Foundation or its licensors, as applicable." 43262253Speter 44251876Speter/* The numeric compile-time version constants. These constants are the 45251876Speter * authoritative version numbers for APU. 46251876Speter */ 47251876Speter 48251876Speter/** major version 49251876Speter * Major API changes that could cause compatibility problems for older 50251876Speter * programs such as structure size changes. No binary compatibility is 51251876Speter * possible across a change in the major version. 52251876Speter */ 53251876Speter#define APU_MAJOR_VERSION 1 54251876Speter 55251876Speter/** minor version 56251876Speter * Minor API changes that do not cause binary compatibility problems. 57251876Speter * Reset to 0 when upgrading APU_MAJOR_VERSION 58251876Speter */ 59253734Speter#define APU_MINOR_VERSION 5 60251876Speter 61251876Speter/** patch level 62251876Speter * The Patch Level never includes API changes, simply bug fixes. 63251876Speter * Reset to 0 when upgrading APR_MINOR_VERSION 64251876Speter */ 65262253Speter#define APU_PATCH_VERSION 3 66251876Speter 67251876Speter/** 68251876Speter * The symbol APU_IS_DEV_VERSION is only defined for internal, 69251876Speter * "development" copies of APU. It is undefined for released versions 70251876Speter * of APU. 71251876Speter */ 72251876Speter/* #define APU_IS_DEV_VERSION */ 73251876Speter 74251876Speter 75251876Speter#if defined(APU_IS_DEV_VERSION) || defined(DOXYGEN) 76251876Speter/** Internal: string form of the "is dev" flag */ 77262253Speter#ifndef APU_IS_DEV_STRING 78251876Speter#define APU_IS_DEV_STRING "-dev" 79262253Speter#endif 80251876Speter#else 81251876Speter#define APU_IS_DEV_STRING "" 82251876Speter#endif 83251876Speter 84251876Speter 85251876Speter#ifndef APU_STRINGIFY 86251876Speter/** Properly quote a value as a string in the C preprocessor */ 87251876Speter#define APU_STRINGIFY(n) APU_STRINGIFY_HELPER(n) 88251876Speter/** Helper macro for APU_STRINGIFY */ 89251876Speter#define APU_STRINGIFY_HELPER(n) #n 90251876Speter#endif 91251876Speter 92251876Speter/** The formatted string of APU's version */ 93251876Speter#define APU_VERSION_STRING \ 94251876Speter APU_STRINGIFY(APU_MAJOR_VERSION) "." \ 95251876Speter APU_STRINGIFY(APU_MINOR_VERSION) "." \ 96251876Speter APU_STRINGIFY(APU_PATCH_VERSION) \ 97251876Speter APU_IS_DEV_STRING 98251876Speter 99251876Speter/** An alternative formatted string of APR's version */ 100251876Speter/* macro for Win32 .rc files using numeric csv representation */ 101251876Speter#define APU_VERSION_STRING_CSV APU_MAJOR_VERSION ##, \ 102251876Speter ##APU_MINOR_VERSION ##, \ 103251876Speter ##APU_PATCH_VERSION 104251876Speter 105251876Speter 106251876Speter#ifndef APU_VERSION_ONLY 107251876Speter 108251876Speter/* The C language API to access the version at run time, 109251876Speter * as opposed to compile time. APU_VERSION_ONLY may be defined 110251876Speter * externally when preprocessing apr_version.h to obtain strictly 111251876Speter * the C Preprocessor macro declarations. 112251876Speter */ 113251876Speter 114251876Speter#include "apr_version.h" 115251876Speter 116251876Speter#include "apu.h" 117251876Speter 118251876Speter#ifdef __cplusplus 119251876Speterextern "C" { 120251876Speter#endif 121251876Speter 122251876Speter/** 123251876Speter * Return APR-util's version information information in a numeric form. 124251876Speter * 125251876Speter * @param pvsn Pointer to a version structure for returning the version 126251876Speter * information. 127251876Speter */ 128251876SpeterAPU_DECLARE(void) apu_version(apr_version_t *pvsn); 129251876Speter 130251876Speter/** Return APU's version information as a string. */ 131251876SpeterAPU_DECLARE(const char *) apu_version_string(void); 132251876Speter 133251876Speter#ifdef __cplusplus 134251876Speter} 135251876Speter#endif 136251876Speter 137251876Speter#endif /* ndef APU_VERSION_ONLY */ 138251876Speter 139251876Speter#endif /* ndef APU_VERSION_H */ 140