#if 0 DEF PLATFORM_UNIX = 0 DEF PLATFORM_WIN = 0 DEF X11 = 0 DEF M_32 = 0 #endif from libc.stdint cimport int8_t, int16_t, int32_t, int64_t, intptr_t from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t, uintptr_t cdef extern from *: ctypedef bint bool ctypedef struct va_list cdef extern from *: IF (PLATFORM_WIN or M_32): cdef enum: A, B, C, ctypedef uint32_t BarType; IF (PLATFORM_UNIX and X11): cdef enum: A, B, C, ctypedef uint32_t FooType; IF (PLATFORM_UNIX and X11): ctypedef struct FooHandle: FooType ty; int32_t x; float y; cdef enum: C1, C2, C3, C5, ctypedef uint8_t C_Tag; ctypedef struct C5_Body: C_Tag tag; int32_t int_; ctypedef union C: C_Tag tag; C5_Body c5; IF (PLATFORM_WIN or M_32): ctypedef struct BarHandle: BarType ty; int32_t x; float y; ctypedef struct ConditionalField: int32_t field; ctypedef struct Normal: int32_t x; float y; IF PLATFORM_WIN: extern int32_t global_array_with_different_sizes[2]; IF PLATFORM_UNIX: extern int32_t global_array_with_different_sizes[1]; IF (PLATFORM_UNIX and X11): void root(FooHandle a, C c); IF (PLATFORM_WIN or M_32): void root(BarHandle a, C c); void cond(ConditionalField a); IF PLATFORM_WIN: extern int32_t foo(); IF PLATFORM_WIN: extern void bar(Normal a);