
/* Define if building pthread work queues from source */
#cmakedefine01 DISPATCH_USE_INTERNAL_WORKQUEUE

/* Enable usage of thread local storage via __thread */
#cmakedefine01 DISPATCH_USE_THREAD_LOCAL_STORAGE

/* Define to 1 if you have the declaration of `CLOCK_MONOTONIC', and to 0 if
   you don't. */
#cmakedefine01 HAVE_DECL_CLOCK_MONOTONIC

/* Define to 1 if you have the declaration of `CLOCK_REALTIME', and to 0 if
   you don't. */
#cmakedefine01 HAVE_DECL_CLOCK_REALTIME

/* Define to 1 if you have the declaration of `CLOCK_UPTIME', and to 0 if you
   don't. */
#cmakedefine01 HAVE_DECL_CLOCK_UPTIME

/* Define to 1 if you have the declaration of `CLOCK_UPTIME_FAST', and to 0 if
   you don't. */
#cmakedefine01 HAVE_DECL_CLOCK_UPTIME_FAST

/* Define to 1 if you have the declaration of `CLOCK_MONOTONIC_COARSE', and to
   0 if you don't. */
#cmakedefine01 HAVE_CLOCK_MONOTONIC_COARSE

/* Define to 1 if you have the declaration of `FD_COPY', and to 0 if you
   don't. */
#cmakedefine01 HAVE_DECL_FD_COPY

/* Define to 1 if you have the declaration of `NOTE_LOWAT', and to 0 if you
   don't. */
#cmakedefine01 HAVE_DECL_NOTE_LOWAT

/* Define to 1 if you have the declaration of `NOTE_NONE', and to 0 if you
   don't. */
#cmakedefine01 HAVE_DECL_NOTE_NONE

/* Define to 1 if you have the declaration of `NOTE_REAP', and to 0 if you
   don't. */
#cmakedefine01 HAVE_DECL_NOTE_REAP

/* Define to 1 if you have the declaration of `NOTE_REVOKE', and to 0 if you
   don't. */
#cmakedefine01 HAVE_DECL_NOTE_REVOKE

/* Define to 1 if you have the declaration of `NOTE_SIGNAL', and to 0 if you
   don't. */
#cmakedefine01 HAVE_DECL_NOTE_SIGNAL

/* Define to 1 if you have the declaration of `POSIX_SPAWN_START_SUSPENDED',
   and to 0 if you don't. */
#cmakedefine01 HAVE_DECL_POSIX_SPAWN_START_SUSPENDED

/* Define to 1 if you have the declaration of `program_invocation_short_name',
   and to 0 if you don't. */
#cmakedefine01 HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME

/* Define to 1 if you have the declaration of `SIGEMT', and to 0 if you don't.
   */
#cmakedefine01 HAVE_DECL_SIGEMT

/* Define to 1 if you have the declaration of `VQ_DESIRED_DISK', and to 0 if
   you don't. */
#cmakedefine01 HAVE_DECL_VQ_DESIRED_DISK

/* Define to 1 if you have the declaration of `VQ_NEARLOWDISK', and to 0 if
   you don't. */
#cmakedefine01 HAVE_DECL_VQ_NEARLOWDISK

/* Define to 1 if you have the declaration of `VQ_QUOTA', and to 0 if you
   don't. */
#cmakedefine01 HAVE_DECL_VQ_QUOTA

/* Define to 1 if you have the declaration of `VQ_UPDATE', and to 0 if you
   don't. */
#cmakedefine01 HAVE_DECL_VQ_UPDATE

/* Define to 1 if you have the declaration of `VQ_VERYLOWDISK', and to 0 if
   you don't. */
#cmakedefine01 HAVE_DECL_VQ_VERYLOWDISK

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

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

/* Define to 1 if you have the `getprogname' function. */
#cmakedefine01 HAVE_GETPROGNAME

/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine01 HAVE_INTTYPES_H

/* Define if Apple leaks program is present */
#cmakedefine HAVE_LEAKS

/* Define to 1 if you have the <libkern/OSAtomic.h> header file. */
#cmakedefine HAVE_LIBKERN_OSATOMIC_H

/* Define to 1 if you have the <libkern/OSCrossEndian.h> header file. */
#cmakedefine HAVE_LIBKERN_OSCROSSENDIAN_H

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

/* Define if mach is present */
#cmakedefine HAVE_MACH

/* Define to 1 if you have the `mach_absolute_time' function. */
#cmakedefine HAVE_MACH_ABSOLUTE_TIME

/* Define to 1 if you have the `mach_approximate_time' function. */
#cmakedefine HAVE_MACH_APPROXIMATE_TIME

/* Define to 1 if you have the `mach_port_construct' function. */
#cmakedefine HAVE_MACH_PORT_CONSTRUCT

/* Define to 1 if you have the `malloc_create_zone' function. */
#cmakedefine HAVE_MALLOC_CREATE_ZONE

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

/* Define to 1 if you have the <memory.h> header file. */
#cmakedefine01 HAVE_MEMORY_H

/* Define if __builtin_trap marked noreturn */
#cmakedefine01 HAVE_NORETURN_BUILTIN_TRAP

/* Define if you have the Objective-C runtime */
#cmakedefine HAVE_OBJC

/* Define to 1 if you have the `pthread_key_init_np' function. */
#cmakedefine HAVE_PTHREAD_KEY_INIT_NP

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

/* Define to 1 if you have the `pthread_main_np' function. */
#cmakedefine HAVE_PTHREAD_MAIN_NP

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

/* Define to 1 if you have the <pthread/qos.h> header file. */
#cmakedefine HAVE_PTHREAD_QOS_H

/* Define if pthread work queues are present */
#cmakedefine01 HAVE_PTHREAD_WORKQUEUES

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

/* Define to 1 if you have the <pthread/workqueue_private.h> header file. */
#cmakedefine HAVE_PTHREAD_WORKQUEUE_PRIVATE_H

/* Define to 1 if you have the `pthread_workqueue_setdispatch_np' function. */
#cmakedefine HAVE_PTHREAD_WORKQUEUE_SETDISPATCH_NP

/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine01 HAVE_STDINT_H

/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine01 HAVE_STDLIB_H

/* Define to 1 if you have the <strings.h> header file. */
#cmakedefine01 HAVE_STRINGS_H

/* Define to 1 if you have the <string.h> header file. */
#cmakedefine01 HAVE_STRING_H

/* Define to 1 if you have the `strlcpy' function. */
#cmakedefine01 HAVE_STRLCPY

/* Define if building for Swift */
#undef HAVE_SWIFT

/* Define to 1 if you have the `sysconf' function. */
#cmakedefine01 HAVE_SYSCONF

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

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

/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine01 HAVE_SYS_TYPES_H

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

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

/* Define to 1 if you have the `_pthread_workqueue_init' function. */
#cmakedefine HAVE__PTHREAD_WORKQUEUE_INIT

/* Define to use non-portable pthread TSD optimizations for Mac OS X) */
#cmakedefine USE_APPLE_TSD_OPTIMIZATIONS

/* Define to tag libdispatch_init as a constructor */
#cmakedefine01 USE_LIBDISPATCH_INIT_CONSTRUCTOR

/* Define to use Mach semaphores */
#cmakedefine USE_MACH_SEM

/* Define to use POSIX semaphores */
#cmakedefine01 USE_POSIX_SEM

/* Enable extensions on AIX 3, Interix.  */
#ifndef _ALL_SOURCE
#cmakedefine01 _ALL_SOURCE
#endif
/* Enable GNU extensions on systems that have them.  */
#ifndef _GNU_SOURCE
#cmakedefine _GNU_SOURCE
#endif
/* Enable threading extensions on Solaris.  */
#ifndef _POSIX_PTHREAD_SEMANTICS
#cmakedefine01 _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions on HP NonStop.  */
#ifndef _TANDEM_SOURCE
#cmakedefine01 _TANDEM_SOURCE
#endif
/* Enable general extensions on Solaris.  */
#ifndef __EXTENSIONS__
#cmakedefine01 __EXTENSIONS__
#endif


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

/* Define to 1 if on MINIX. */
#cmakedefine _MINIX

/* Define to 2 if the system does not provide POSIX.1 features except with
   this defined. */
#cmakedefine _POSIX_1_SOURCE

/* Define to 1 if you need to in order for `stat' and other things to work. */
#cmakedefine _POSIX_SOURCE

/* Define if using Darwin $NOCANCEL */
#cmakedefine __DARWIN_NON_CANCELABLE
