1  /* libxml2 - Library for parsing XML documents
       2   * Copyright (C) 2006-2019 Free Software Foundation, Inc.
       3   *
       4   * This file is not part of the GNU gettext program, but is used with
       5   * GNU gettext.
       6   *
       7   * The original copyright notice is as follows:
       8   */
       9  
      10  /*
      11   * Copyright (C) 1998-2012 Daniel Veillard.  All Rights Reserved.
      12   *
      13   * Permission is hereby granted, free of charge, to any person obtaining a copy
      14   * of this software and associated documentation files (the "Software"), to deal
      15   * in the Software without restriction, including without limitation the rights
      16   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      17   * copies of the Software, and to permit persons to whom the Software is fur-
      18   * nished to do so, subject to the following conditions:
      19   *
      20   * The above copyright notice and this permission notice shall be included in
      21   * all copies or substantial portions of the Software.
      22   *
      23   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      24   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
      25   * NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
      26   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      27   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
      28   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
      29   * THE SOFTWARE.
      30   *
      31   * Author: Daniel Veillard
      32   */
      33  
      34  /*
      35   * Summary: compile-time version informations
      36   * Description: compile-time version informations for the XML library
      37   */
      38  
      39  #ifndef __XML_VERSION_H__
      40  #define __XML_VERSION_H__
      41  
      42  #include <libxml/xmlexports.h>
      43  
      44  #ifdef __cplusplus
      45  extern "C" {
      46  #endif
      47  
      48  /*
      49   * use those to be sure nothing nasty will happen if
      50   * your library and includes mismatch
      51   */
      52  #ifndef LIBXML2_COMPILING_MSCCDEF
      53  XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
      54  #endif /* LIBXML2_COMPILING_MSCCDEF */
      55  
      56  /**
      57   * LIBXML_DOTTED_VERSION:
      58   *
      59   * the version string like "1.2.3"
      60   */
      61  #define LIBXML_DOTTED_VERSION "2.9.9"
      62  
      63  /**
      64   * LIBXML_VERSION:
      65   *
      66   * the version number: 1.2.3 value is 10203
      67   */
      68  #define LIBXML_VERSION 20909
      69  
      70  /**
      71   * LIBXML_VERSION_STRING:
      72   *
      73   * the version number string, 1.2.3 value is "10203"
      74   */
      75  #define LIBXML_VERSION_STRING "20909"
      76  
      77  /**
      78   * LIBXML_VERSION_EXTRA:
      79   *
      80   * extra version information, used to show a CVS compilation
      81   */
      82  #define LIBXML_VERSION_EXTRA "-GITv2.9.9-rc2-2-g7c4949afa"
      83  
      84  /**
      85   * LIBXML_TEST_VERSION:
      86   *
      87   * Macro to check that the libxml version in use is compatible with
      88   * the version the software has been compiled against
      89   */
      90  #define LIBXML_TEST_VERSION xmlCheckVersion(20909);
      91  
      92  #ifndef VMS
      93  #if 0
      94  /**
      95   * WITH_TRIO:
      96   *
      97   * defined if the trio support need to be configured in
      98   */
      99  #define WITH_TRIO
     100  #else
     101  /**
     102   * WITHOUT_TRIO:
     103   *
     104   * defined if the trio support should not be configured in
     105   */
     106  #define WITHOUT_TRIO
     107  #endif
     108  #else /* VMS */
     109  /**
     110   * WITH_TRIO:
     111   *
     112   * defined if the trio support need to be configured in
     113   */
     114  #define WITH_TRIO 1
     115  #endif /* VMS */
     116  
     117  /**
     118   * LIBXML_THREAD_ENABLED:
     119   *
     120   * Whether the thread support is configured in
     121   */
     122  #if 0
     123  #if defined(_REENTRANT) || defined(__MT__) || \
     124      (defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 >= 199506L))
     125  #define LIBXML_THREAD_ENABLED
     126  #endif
     127  #endif
     128  
     129  /**
     130   * LIBXML_THREAD_ALLOC_ENABLED:
     131   *
     132   * Whether the allocation hooks are per-thread
     133   */
     134  #if 0
     135  #define LIBXML_THREAD_ALLOC_ENABLED
     136  #endif
     137  
     138  /**
     139   * LIBXML_TREE_ENABLED:
     140   *
     141   * Whether the DOM like tree manipulation API support is configured in
     142   */
     143  #if 1
     144  #define LIBXML_TREE_ENABLED
     145  #endif
     146  
     147  /**
     148   * LIBXML_OUTPUT_ENABLED:
     149   *
     150   * Whether the serialization/saving support is configured in
     151   */
     152  #if 0
     153  #define LIBXML_OUTPUT_ENABLED
     154  #endif
     155  
     156  /**
     157   * LIBXML_PUSH_ENABLED:
     158   *
     159   * Whether the push parsing interfaces are configured in
     160   */
     161  #if 0
     162  #define LIBXML_PUSH_ENABLED
     163  #endif
     164  
     165  /**
     166   * LIBXML_READER_ENABLED:
     167   *
     168   * Whether the xmlReader parsing interface is configured in
     169   */
     170  #if 0
     171  #define LIBXML_READER_ENABLED
     172  #endif
     173  
     174  /**
     175   * LIBXML_PATTERN_ENABLED:
     176   *
     177   * Whether the xmlPattern node selection interface is configured in
     178   */
     179  #if 0
     180  #define LIBXML_PATTERN_ENABLED
     181  #endif
     182  
     183  /**
     184   * LIBXML_WRITER_ENABLED:
     185   *
     186   * Whether the xmlWriter saving interface is configured in
     187   */
     188  #if 0
     189  #define LIBXML_WRITER_ENABLED
     190  #endif
     191  
     192  /**
     193   * LIBXML_SAX1_ENABLED:
     194   *
     195   * Whether the older SAX1 interface is configured in
     196   */
     197  #if 0
     198  #define LIBXML_SAX1_ENABLED
     199  #endif
     200  
     201  /**
     202   * LIBXML_FTP_ENABLED:
     203   *
     204   * Whether the FTP support is configured in
     205   */
     206  #if 0
     207  #define LIBXML_FTP_ENABLED
     208  #endif
     209  
     210  /**
     211   * LIBXML_HTTP_ENABLED:
     212   *
     213   * Whether the HTTP support is configured in
     214   */
     215  #if 0
     216  #define LIBXML_HTTP_ENABLED
     217  #endif
     218  
     219  /**
     220   * LIBXML_VALID_ENABLED:
     221   *
     222   * Whether the DTD validation support is configured in
     223   */
     224  #if 0
     225  #define LIBXML_VALID_ENABLED
     226  #endif
     227  
     228  /**
     229   * LIBXML_HTML_ENABLED:
     230   *
     231   * Whether the HTML support is configured in
     232   */
     233  #if 0
     234  #define LIBXML_HTML_ENABLED
     235  #endif
     236  
     237  /**
     238   * LIBXML_LEGACY_ENABLED:
     239   *
     240   * Whether the deprecated APIs are compiled in for compatibility
     241   */
     242  #if 0
     243  #define LIBXML_LEGACY_ENABLED
     244  #endif
     245  
     246  /**
     247   * LIBXML_C14N_ENABLED:
     248   *
     249   * Whether the Canonicalization support is configured in
     250   */
     251  #if 0
     252  #define LIBXML_C14N_ENABLED
     253  #endif
     254  
     255  /**
     256   * LIBXML_CATALOG_ENABLED:
     257   *
     258   * Whether the Catalog support is configured in
     259   */
     260  #if 0
     261  #define LIBXML_CATALOG_ENABLED
     262  #endif
     263  
     264  /**
     265   * LIBXML_DOCB_ENABLED:
     266   *
     267   * Whether the SGML Docbook support is configured in
     268   */
     269  #if 0
     270  #define LIBXML_DOCB_ENABLED
     271  #endif
     272  
     273  /**
     274   * LIBXML_XPATH_ENABLED:
     275   *
     276   * Whether XPath is configured in
     277   */
     278  #if 0
     279  #define LIBXML_XPATH_ENABLED
     280  #endif
     281  
     282  /**
     283   * LIBXML_XPTR_ENABLED:
     284   *
     285   * Whether XPointer is configured in
     286   */
     287  #if 0
     288  #define LIBXML_XPTR_ENABLED
     289  #endif
     290  
     291  /**
     292   * LIBXML_XINCLUDE_ENABLED:
     293   *
     294   * Whether XInclude is configured in
     295   */
     296  #if 0
     297  #define LIBXML_XINCLUDE_ENABLED
     298  #endif
     299  
     300  /**
     301   * LIBXML_ICONV_ENABLED:
     302   *
     303   * Whether iconv support is available
     304   */
     305  #if 0
     306  #define LIBXML_ICONV_ENABLED
     307  #endif
     308  
     309  /**
     310   * LIBXML_ICU_ENABLED:
     311   *
     312   * Whether icu support is available
     313   */
     314  #if 0
     315  #define LIBXML_ICU_ENABLED
     316  #endif
     317  
     318  /**
     319   * LIBXML_ISO8859X_ENABLED:
     320   *
     321   * Whether ISO-8859-* support is made available in case iconv is not
     322   */
     323  #if 1
     324  #define LIBXML_ISO8859X_ENABLED
     325  #endif
     326  
     327  /**
     328   * LIBXML_DEBUG_ENABLED:
     329   *
     330   * Whether Debugging module is configured in
     331   */
     332  #if 0
     333  #define LIBXML_DEBUG_ENABLED
     334  #endif
     335  
     336  /**
     337   * DEBUG_MEMORY_LOCATION:
     338   *
     339   * Whether the memory debugging is configured in
     340   */
     341  #if 0
     342  #define DEBUG_MEMORY_LOCATION
     343  #endif
     344  
     345  /**
     346   * LIBXML_DEBUG_RUNTIME:
     347   *
     348   * Whether the runtime debugging is configured in
     349   */
     350  #if 0
     351  #define LIBXML_DEBUG_RUNTIME
     352  #endif
     353  
     354  /**
     355   * LIBXML_UNICODE_ENABLED:
     356   *
     357   * Whether the Unicode related interfaces are compiled in
     358   */
     359  #if 0
     360  #define LIBXML_UNICODE_ENABLED
     361  #endif
     362  
     363  /**
     364   * LIBXML_REGEXP_ENABLED:
     365   *
     366   * Whether the regular expressions interfaces are compiled in
     367   */
     368  #if 0
     369  #define LIBXML_REGEXP_ENABLED
     370  #endif
     371  
     372  /**
     373   * LIBXML_AUTOMATA_ENABLED:
     374   *
     375   * Whether the automata interfaces are compiled in
     376   */
     377  #if 0
     378  #define LIBXML_AUTOMATA_ENABLED
     379  #endif
     380  
     381  /**
     382   * LIBXML_EXPR_ENABLED:
     383   *
     384   * Whether the formal expressions interfaces are compiled in
     385   */
     386  #if 0
     387  #define LIBXML_EXPR_ENABLED
     388  #endif
     389  
     390  /**
     391   * LIBXML_SCHEMAS_ENABLED:
     392   *
     393   * Whether the Schemas validation interfaces are compiled in
     394   */
     395  #if 0
     396  #define LIBXML_SCHEMAS_ENABLED
     397  #endif
     398  
     399  /**
     400   * LIBXML_SCHEMATRON_ENABLED:
     401   *
     402   * Whether the Schematron validation interfaces are compiled in
     403   */
     404  #if 0
     405  #define LIBXML_SCHEMATRON_ENABLED
     406  #endif
     407  
     408  /**
     409   * LIBXML_MODULES_ENABLED:
     410   *
     411   * Whether the module interfaces are compiled in
     412   */
     413  #if 0
     414  #define LIBXML_MODULES_ENABLED
     415  /**
     416   * LIBXML_MODULE_EXTENSION:
     417   *
     418   * the string suffix used by dynamic modules (usually shared libraries)
     419   */
     420  #define LIBXML_MODULE_EXTENSION ".so" 
     421  #endif
     422  
     423  /**
     424   * LIBXML_ZLIB_ENABLED:
     425   *
     426   * Whether the Zlib support is compiled in
     427   */
     428  #if 0
     429  #define LIBXML_ZLIB_ENABLED
     430  #endif
     431  
     432  /**
     433   * LIBXML_LZMA_ENABLED:
     434   *
     435   * Whether the Lzma support is compiled in
     436   */
     437  #if 0
     438  #define LIBXML_LZMA_ENABLED
     439  #endif
     440  
     441  #ifdef __GNUC__
     442  
     443  /**
     444   * ATTRIBUTE_UNUSED:
     445   *
     446   * Macro used to signal to GCC unused function parameters
     447   */
     448  
     449  #ifndef ATTRIBUTE_UNUSED
     450  # if ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))
     451  #  define ATTRIBUTE_UNUSED __attribute__((unused))
     452  # else
     453  #  define ATTRIBUTE_UNUSED
     454  # endif
     455  #endif
     456  
     457  /**
     458   * LIBXML_ATTR_ALLOC_SIZE:
     459   *
     460   * Macro used to indicate to GCC this is an allocator function
     461   */
     462  
     463  #ifndef LIBXML_ATTR_ALLOC_SIZE
     464  # if (!defined(__clang__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))))
     465  #  define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
     466  # else
     467  #  define LIBXML_ATTR_ALLOC_SIZE(x)
     468  # endif
     469  #else
     470  # define LIBXML_ATTR_ALLOC_SIZE(x)
     471  #endif
     472  
     473  /**
     474   * LIBXML_ATTR_FORMAT:
     475   *
     476   * Macro used to indicate to GCC the parameter are printf like
     477   */
     478  
     479  #ifndef LIBXML_ATTR_FORMAT
     480  # if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)))
     481  #  define LIBXML_ATTR_FORMAT(fmt,args) __attribute__((__format__(__printf__,fmt,args)))
     482  # else
     483  #  define LIBXML_ATTR_FORMAT(fmt,args)
     484  # endif
     485  #else
     486  # define LIBXML_ATTR_FORMAT(fmt,args)
     487  #endif
     488  
     489  #else /* ! __GNUC__ */
     490  /**
     491   * ATTRIBUTE_UNUSED:
     492   *
     493   * Macro used to signal to GCC unused function parameters
     494   */
     495  #define ATTRIBUTE_UNUSED
     496  /**
     497   * LIBXML_ATTR_ALLOC_SIZE:
     498   *
     499   * Macro used to indicate to GCC this is an allocator function
     500   */
     501  #define LIBXML_ATTR_ALLOC_SIZE(x)
     502  /**
     503   * LIBXML_ATTR_FORMAT:
     504   *
     505   * Macro used to indicate to GCC the parameter are printf like
     506   */
     507  #define LIBXML_ATTR_FORMAT(fmt,args)
     508  #endif /* __GNUC__ */
     509  
     510  #ifdef __cplusplus
     511  }
     512  #endif /* __cplusplus */
     513  #endif
     514  
     515