common.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * Copyright 2017 Emmanuele Bassi
  3. *
  4. * Permission is hereby granted, free of charge, to any person obtaining a
  5. * copy of this software and associated documentation files (the "Software"),
  6. * to deal in the Software without restriction, including without limitation
  7. * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8. * and/or sell copies of the Software, and to permit persons to whom the
  9. * Software is furnished to do so, subject to the following conditions:
  10. *
  11. * The above copyright notice and this permission notice (including the next
  12. * paragraph) shall be included in all copies or substantial portions of the
  13. * Software.
  14. *
  15. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  18. * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  20. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  21. * IN THE SOFTWARE.
  22. */
  23. /** @file common.h
  24. *
  25. * A common header file, used to define macros and shared symbols.
  26. */
  27. #ifndef EPOXY_COMMON_H
  28. #define EPOXY_COMMON_H
  29. #ifdef __cplusplus
  30. # define EPOXY_BEGIN_DECLS extern "C" {
  31. # define EPOXY_END_DECLS }
  32. #else
  33. # define EPOXY_BEGIN_DECLS
  34. # define EPOXY_END_DECLS
  35. #endif
  36. #ifndef EPOXY_PUBLIC
  37. # if defined(_MSC_VER)
  38. # define EPOXY_PUBLIC __declspec(dllimport) extern
  39. # else
  40. # define EPOXY_PUBLIC extern
  41. # endif
  42. #endif
  43. #if defined(_MSC_VER) && !defined(__bool_true_false_are_defined) && (_MSC_VER < 1800)
  44. typedef unsigned char bool;
  45. # define false 0
  46. # define true 1
  47. #else
  48. # include <stdbool.h>
  49. #endif
  50. EPOXY_BEGIN_DECLS
  51. EPOXY_PUBLIC bool epoxy_extension_in_string(const char *extension_list,
  52. const char *ext);
  53. EPOXY_END_DECLS
  54. #endif /* EPOXY_COMMON_H */