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

/* Enable usage of thread local storage via _Thread_local */
#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 `posix_fadvise' function. */
#cmakedefine HAVE_POSIX_FADVISE

/* Define to 1 if you have the `posix_spawnp' function. */
#cmakedefine HAVE_POSIX_SPAWNP

/* 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. */
#cmakedefine01 HAVE_PTHREAD_MAIN_NP

/* Define to 1 if you have the <pthread_np.h> header file. */
#cmakedefine01 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 `_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
