/* config.h.  Generated from config.h.cmake by cmake.  */

/* Build against libcurl. */
#cmakedefine ENABLE_LIBCURL 1

/* Use libjpeg instead of builtin jpeg decoder. */
#cmakedefine ENABLE_LIBJPEG 1

/* Use libopenjpeg instead of builtin jpeg2000 decoder. */
#cmakedefine ENABLE_LIBOPENJPEG 1

/* Build against libtiff. */
#cmakedefine ENABLE_LIBTIFF 1

/* Build against libpng. */
#cmakedefine ENABLE_LIBPNG 1

/* Do not hardcode the library location */
#cmakedefine ENABLE_RELOCATABLE 1

/* Build against zlib. */
#cmakedefine ENABLE_ZLIB 1

/* Use zlib instead of builtin zlib decoder to uncompress flate streams. */
#cmakedefine ENABLE_ZLIB_UNCOMPRESS 1

/* Build against libnss3 for digital signature validation */
#cmakedefine ENABLE_NSS3 1

/* Use cairo for rendering. */
#cmakedefine HAVE_CAIRO 1

/* Do we have any DCT decoder?. */
#cmakedefine HAVE_DCT_DECODER 1

/* Do we have any JPX decoder?. */
#cmakedefine HAVE_JPX_DECODER 1

/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
   */
#cmakedefine HAVE_DIRENT_H 1

/* Define to 1 if you have the <dlfcn.h> header file. */
#cmakedefine HAVE_DLFCN_H 1

/* Define to 1 if you have the <fcntl.h> header file. */
#cmakedefine HAVE_FCNTL_H 1

/* Define to 1 if you have the `fseek64' function. */
#cmakedefine HAVE_FSEEK64 1

/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
#cmakedefine HAVE_FSEEKO 1

/* Define to 1 if you have the `ftell64' function. */
#cmakedefine HAVE_FTELL64 1

/* Define to 1 if you have the `pread64' function. */
#cmakedefine HAVE_PREAD64 1

/* Define to 1 if you have the `lseek64' function. */
#cmakedefine HAVE_LSEEK64 1

/* Defines if gettimeofday is available on your system */
#cmakedefine HAVE_GETTIMEOFDAY 1

/* Defines if gmtime_r is available on your system */
#cmakedefine HAVE_GMTIME_R 1

/* Defines if timegm is available on your system */
#cmakedefine HAVE_TIMEGM 1

/* Define if you have the iconv() function and it works. */
#cmakedefine HAVE_ICONV 1

/* Define to 1 if you have the `z' library (-lz). */
#cmakedefine HAVE_LIBZ 1

/* Defines if localtime_r is available on your system */
#cmakedefine HAVE_LOCALTIME_R 1

/* Define to 1 if you have the `mkstemp' function. */
#cmakedefine HAVE_MKSTEMP 1

/* Define to 1 if you have the `strcpy_s' function. */
#cmakedefine HAVE_STRCPY_S 1

/* Define to 1 if you have the `strcat_s' function. */
#cmakedefine HAVE_STRCAT_S 1

/* Defines if strtok_r is available on your system */
#cmakedefine HAVE_STRTOK_R 1

/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
#cmakedefine HAVE_NDIR_H 1

/* Define to 1 if you have the `popen' function. */
#cmakedefine HAVE_POPEN 1

/* Use splash for rendering. */
#cmakedefine HAVE_SPLASH 1

/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
   */
#cmakedefine HAVE_SYS_DIR_H 1

/* Define to 1 if you have the <sys/mman.h> header file. */
#cmakedefine HAVE_SYS_MMAN_H 1

/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
   */
#cmakedefine HAVE_SYS_NDIR_H 1

/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine HAVE_SYS_STAT_H 1

/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H 1

/* Define to 1 if you have the <codecvt> header file. */
#cmakedefine HAVE_CODECVT

/* Define to 1 if you have a big endian machine */
#cmakedefine WORDS_BIGENDIAN 1

/* Define as const if the declaration of iconv() needs const. */
#define ICONV_CONST ${ICONV_CONST}

/* Generate OPI comments in PS output. */
#cmakedefine OPI_SUPPORT 1

/* Name of package */
#define PACKAGE "poppler"

/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=poppler"

/* Define to the full name of this package. */
#define PACKAGE_NAME "poppler"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "poppler ${POPPLER_VERSION}"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "poppler"

/* Define to the home page for this package. */
#define PACKAGE_URL ""

/* Define to the version of this package. */
#define PACKAGE_VERSION "${POPPLER_VERSION}"

/* Poppler data dir */
#define POPPLER_DATADIR "${POPPLER_DATADIR}"

/* Support for curl based doc builder is compiled in. */
#cmakedefine POPPLER_HAS_CURL_SUPPORT 1

/* Include support for CMYK rasterization */
#cmakedefine SPLASH_CMYK 1

/* Enable word list support. */
#cmakedefine TEXTOUT_WORD_LIST 1

/* Defines if use cms */
#cmakedefine USE_CMS 1

/* Use fixed point arithmetic in the Splash backend */
#cmakedefine USE_FIXEDPOINT 1

/* Use single precision arithmetic in the Splash backend */
#cmakedefine USE_FLOAT 1

/* Version number of package */
#define VERSION "${POPPLER_VERSION}"

/* Use fontconfig font configuration backend */
#cmakedefine WITH_FONTCONFIGURATION_FONTCONFIG 1

/* Use win32 font configuration backend */
#cmakedefine WITH_FONTCONFIGURATION_WIN32 1

/* OpenJPEG with the OPJ_DPARAMETERS_IGNORE_PCLR_CMAP_CDEF_FLAG flag */
#cmakedefine WITH_OPENJPEG_IGNORE_PCLR_CMAP_CDEF_FLAG 1

/* MS defined snprintf as deprecated but then added it in Visual Studio 2015. */
#if defined(_MSC_VER) && _MSC_VER < 1900
#define snprintf _snprintf
#endif

//------------------------------------------------------------------------
// popen
//------------------------------------------------------------------------
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define popen _popen
#define pclose _pclose
#endif

/* Number of bits in a file offset, on hosts where this is settable. */
#cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@

/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
/* TODO This is wrong, port if needed #undef _LARGEFILE_SOURCE */

/* Define for large files, on AIX-style hosts. */
/* TODO This is wrong, port if needed #undef _LARGE_FILES */
