File Core.h¶
File List > Intern > rayx-core > src > Core.h
Go to the documentation of this file
#pragma once
#if defined(RAYX_PLATFORM_MSVC) // Microsoft
#ifdef RAYX_BUILD_DLL
#define RAYX_API __declspec(dllexport)
#else
#define RAYX_API __declspec(dllimport)
#endif
#elif defined(RAYX_PLATFORM_GCC) // GCC
#ifdef RAYX_BUILD_DLL
#define RAYX_API __attribute__((visibility("default")))
#else
#define RAYX_API
#endif
#elif defined(RAYX_PLATFORM_CLANG) // Clang
#ifdef RAYX_BUILD_DLL
#define RAYX_API __attribute__((visibility("default")))
#else
#define RAYX_API
#endif
#else // do nothing and hope for the best?
#ifdef RAYX_BUILD_DLL
#define RAYX_API
#else
#define RAYX_API
#endif
#endif
#ifdef RAYX_BUILD_DLL
#include <alpaka/core/Common.hpp>
#define RAYX_FN_ACC ALPAKA_FN_ACC
#else
#define RAYX_FN_ACC
#endif
#if defined(RAYX_BUILD_DLL) && defined(RAYX_CUDA_ENABLED)
#define RAYX_CONSTEXPR_ACC constexpr __device__
#else
#define RAYX_CONSTEXPR_ACC constexpr
#endif
// make string comparison available for msvc compiler
// not #if defined(_WIN32) || defined(_WIN64) because we have strncasecmp in mingw
#ifdef _MSC_VER
#define strncasecmp _strnicmp
#define strcasecmp _stricmp
#endif