diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2018-01-09 19:14:48 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2018-01-10 03:18:58 +0100 |
commit | 6388d767f4510a3771909a91ad72ad4963d029db (patch) | |
tree | 3cda0b925d1115873179d32be3a4ca72139cc54a /compat | |
parent | 7d101a1c2827b5e7a373fb0d0a68099fb692e55a (diff) |
cmake: cleanup, decruft, probably fix mingw
Diffstat (limited to 'compat')
-rw-r--r-- | compat/CMakeLists.txt | 2 | ||||
-rw-r--r-- | compat/nan.cpp | 18 |
2 files changed, 10 insertions, 10 deletions
diff --git a/compat/CMakeLists.txt b/compat/CMakeLists.txt index 7e5dd4cd..d55c38c6 100644 --- a/compat/CMakeLists.txt +++ b/compat/CMakeLists.txt @@ -5,7 +5,7 @@ if(NOT WIN32 AND NOT APPLE) endif() if(WIN32) - target_link_libraries(opentrack-compat winmm) + target_link_libraries(opentrack-compat winmm strmiids) endif() if(CMAKE_COMPILER_IS_GNUCXX) diff --git a/compat/nan.cpp b/compat/nan.cpp index 338fb789..037efbe1 100644 --- a/compat/nan.cpp +++ b/compat/nan.cpp @@ -1,14 +1,16 @@ #include "export.hpp" +#include "compat/macros.hpp" + #if defined(_MSC_VER) -# include <cmath> -# define my_isnan std::isnan -# define my_isinf std::isinf -OTR_COMPAT_EXPORT __declspec(noinline) bool nanp(double x) +# include <float.h> +# include <math.h> +# define my_isnan ::_isnan +# define my_isinf ::isinf #elif defined __MINGW32__ -int __cdecl my_isnan(double)__asm__("__isnan"); -int __cdecl my_fpclassify(double)__asm__("___fpclassify"); +static int __cdecl my_isnan(double)__asm__("__isnan"); +static int __cdecl my_fpclassify(double)__asm__("___fpclassify"); #define FP_NAN 0x0100 #define FP_NORMAL 0x0400 @@ -18,18 +20,16 @@ int __cdecl my_fpclassify(double)__asm__("___fpclassify"); #define my_isinf(x) (my_fpclassify(x) == FP_INFINITE) -OTR_COMPAT_EXPORT bool __attribute__ ((noinline)) nanp(double x) #elif defined __APPLE__ # include <math.h> # define my_isnan(x) isnan(x) # define my_isinf(x) isinf(x) -OTR_COMPAT_EXPORT bool __attribute__ ((noinline)) nanp(double x) #else int my_isnan(double)__asm__("isnan"); int my_isinf(double)__asm__("isinf"); -OTR_COMPAT_EXPORT bool __attribute__ ((noinline)) nanp(double x) #endif +OTR_COMPAT_EXPORT never_inline bool nanp(double x) { return my_isnan(x) || my_isinf(x); } |