1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
#include "core.h"
extern "C" {
// NOTE: Keep in sync with CMakeLists definitions
#define LLVMLITE_PACKAGE_FORMAT_CONDA 1
#define LLVMLITE_PACKAGE_FORMAT_WHEEL 2
API_EXPORT(int)
LLVMPY_HasSVMLSupport(void) {
#ifdef HAVE_SVML
return 1;
#else
return 0;
#endif
}
API_EXPORT(int)
LLVMPY_IsDynamicLLVMLinkageBuild(void) {
#ifdef HAVE_LLVMLITE_SHARED
return 1;
#else
return 0;
#endif
}
API_EXPORT(const char *)
LLVMPY_PackageFormat(void) {
#ifndef LLVMLITE_PACKAGE_FORMAT
return "unspecified";
#elif LLVMLITE_PACKAGE_FORMAT == LLVMLITE_PACKAGE_FORMAT_WHEEL
return "wheel";
#elif LLVMLITE_PACKAGE_FORMAT == LLVMLITE_PACKAGE_FORMAT_CONDA
return "conda";
#else
#error "LLVMLITE_PACKAGE_FORMAT must be one of 'wheel' or 'conda'."
#endif
}
API_EXPORT(int)
LLVMPY_IsStaticLibstdcxxLinkageBuild(void) {
#ifdef LLVMLITE_CXX_STATIC_LINK
return 1;
#else
return 0;
#endif
}
// NOTE: Keep in sync with CMakeLists definitions
#define LLVMLITE_LLVM_ASSERTIONS_OFF 0
#define LLVMLITE_LLVM_ASSERTIONS_ON 1
#define LLVMLITE_LLVM_ASSERTIONS_UNKNOWN 2
API_EXPORT(const char *)
LLVMPY_LlvmAssertionsState(void) {
#ifndef LLVMLITE_LLVM_ASSERTIONS_STATE
return "unknown";
#elif LLVMLITE_LLVM_ASSERTIONS_STATE == LLVMLITE_LLVM_ASSERTIONS_OFF
return "off";
#elif LLVMLITE_LLVM_ASSERTIONS_STATE == LLVMLITE_LLVM_ASSERTIONS_ON
return "on";
#elif LLVMLITE_LLVM_ASSERTIONS_STATE == LLVMLITE_LLVM_ASSERTIONS_UNKNOWN
return "unknown";
#else
#error "LLVMLITE_LLVM_ASSERTIONS_STATE is set to an unexpected value"
#endif
}
} // end extern "C"
|