From 5b6b04375270f3f3ba90780ecf692d56af157e49 Mon Sep 17 00:00:00 2001 From: peterbell10 Date: Sat, 21 Oct 2017 14:29:20 +0100 Subject: Fix tool builds on AppleClang --- Tools/GrownBiomeGenVisualiser/Globals.h | 66 +++++++++++++++------------------ Tools/MCADefrag/Globals.h | 66 +++++++++++++++------------------ Tools/NoiseSpeedTest/CMakeLists.txt | 1 + Tools/NoiseSpeedTest/Globals.h | 66 +++++++++++++++------------------ Tools/NoiseSpeedTest/SimplexNoise.h | 15 ++++---- 5 files changed, 99 insertions(+), 115 deletions(-) diff --git a/Tools/GrownBiomeGenVisualiser/Globals.h b/Tools/GrownBiomeGenVisualiser/Globals.h index 790111572..bc2b6834f 100644 --- a/Tools/GrownBiomeGenVisualiser/Globals.h +++ b/Tools/GrownBiomeGenVisualiser/Globals.h @@ -12,30 +12,30 @@ #if defined(_MSC_VER) // MSVC produces warning C4481 on the override keyword usage, so disable the warning altogether #pragma warning(disable:4481) - + // Disable some warnings that we don't care about: #pragma warning(disable:4100) #define OBSOLETE __declspec(deprecated) - + // No alignment needed in MSVC #define ALIGN_8 #define ALIGN_16 - + #define FORMATSTRING(formatIndex, va_argsIndex) // MSVC has its own custom version of zu format #define SIZE_T_FMT "%Iu" #define SIZE_T_FMT_PRECISION(x) "%" #x "Iu" #define SIZE_T_FMT_HEX "%Ix" - + #define NORETURN __declspec(noreturn) #elif defined(__GNUC__) // TODO: Can GCC explicitly mark classes as abstract (no instances can be created)? #define abstract - + // override is part of c++11 #if __cplusplus < 201103L #define override @@ -48,7 +48,7 @@ // Some portability macros :) #define stricmp strcasecmp - + #define FORMATSTRING(formatIndex, va_argsIndex) __attribute__((format (printf, formatIndex, va_argsIndex))) #if defined(_WIN32) @@ -69,18 +69,18 @@ #define SIZE_T_FMT_PRECISION(x) "%" #x "zu" #define SIZE_T_FMT_HEX "%zx" #endif - + #define NORETURN __attribute((__noreturn__)) #else #error "You are using an unsupported compiler, you might need to #define some stuff here for your compiler" - + /* // Copy and uncomment this into another #elif section based on your compiler identification - + // Explicitly mark classes as abstract (no instances can be created) #define abstract - + // Mark virtual methods as overriding (forcing them to have a virtual function of the same signature in the base class) #define override @@ -91,8 +91,8 @@ #define ALIGN_8 #define ALIGN_16 */ - - #define FORMATSTRING(formatIndex,va_argsIndex) __attribute__((format (printf, formatIndex, va_argsIndex))) + + #define FORMATSTRING(formatIndex, va_argsIndex) __attribute__((format (printf, formatIndex, va_argsIndex))) #endif @@ -133,16 +133,16 @@ typedef unsigned char Byte; #include #include #include - + // Windows SDK defines min and max macros, messing up with our std::min and std::max usage #undef min #undef max - + // Windows SDK defines GetFreeSpace as a constant, probably a Win16 API remnant #ifdef GetFreeSpace #undef GetFreeSpace #endif // GetFreeSpace - + #define SocketError WSAGetLastError() #else #include @@ -152,19 +152,16 @@ typedef unsigned char Byte; #include #include #include - #include #include - #include #include #include - #include #include #include #include - #include + #include #include - + typedef int SOCKET; enum { @@ -172,9 +169,6 @@ typedef unsigned char Byte; }; #define closesocket close #define SocketError errno -#if !defined(ANDROID_NDK) - #include -#endif #endif #if !defined(ANDROID_NDK) @@ -192,11 +186,11 @@ typedef unsigned char Byte; // CRT stuff: -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include @@ -227,17 +221,17 @@ typedef unsigned char Byte; // Common definitions: -/// Evaluates to the number of elements in an array (compile-time!) +/** Evaluates to the number of elements in an array (compile-time!) */ #define ARRAYCOUNT(X) (sizeof(X) / sizeof(*(X))) -/// Allows arithmetic expressions like "32 KiB" (but consider using parenthesis around it, "(32 KiB)" ) +/** Allows arithmetic expressions like "32 KiB" (but consider using parenthesis around it, "(32 KiB)") */ #define KiB * 1024 #define MiB * 1024 * 1024 -/// Faster than (int)floorf((float)x / (float)div) -#define FAST_FLOOR_DIV( x, div ) ( (x) < 0 ? (((int)x / div) - 1) : ((int)x / div) ) +/** Faster than (int)floorf((float)x / (float)div) */ +#define FAST_FLOOR_DIV(x, div) ((x) < 0 ? (((int)x / div) - 1) : ((int)x / div)) -// Own version of assert() that writes failed assertions to the log for review +/** Own version of assert() that writes failed assertions to the log for review */ #ifdef NDEBUG #define ASSERT(x) ((void)0) #else @@ -245,17 +239,17 @@ typedef unsigned char Byte; #endif // Pretty much the same as ASSERT() but stays in Release builds -#define VERIFY( x ) ( !!(x) || ( LOGERROR("Verification failed: %s, file %s, line %i", #x, __FILE__, __LINE__ ), exit(1), 0 ) ) +#define VERIFY(x) (!!(x) || (LOGERROR("Verification failed: %s, file %s, line %i", #x, __FILE__, __LINE__), exit(1), 0)) -/// A generic interface used mainly in ForEach() functions +/** A generic interface used mainly in ForEach() functions */ template class cItemCallback { public: - /// Called for each item in the internal list; return true to stop the loop, or false to continue enumerating + /** Called for each item in the internal list; return true to stop the loop, or false to continue enumerating */ virtual bool Item(Type * a_Type) = 0; virtual ~cItemCallback() {} } ; diff --git a/Tools/MCADefrag/Globals.h b/Tools/MCADefrag/Globals.h index 162d430bf..4fe9db648 100644 --- a/Tools/MCADefrag/Globals.h +++ b/Tools/MCADefrag/Globals.h @@ -12,30 +12,30 @@ #if defined(_MSC_VER) // MSVC produces warning C4481 on the override keyword usage, so disable the warning altogether #pragma warning(disable:4481) - + // Disable some warnings that we don't care about: #pragma warning(disable:4100) #define OBSOLETE __declspec(deprecated) - + // No alignment needed in MSVC #define ALIGN_8 #define ALIGN_16 - + #define FORMATSTRING(formatIndex, va_argsIndex) // MSVC has its own custom version of zu format #define SIZE_T_FMT "%Iu" #define SIZE_T_FMT_PRECISION(x) "%" #x "Iu" #define SIZE_T_FMT_HEX "%Ix" - + #define NORETURN __declspec(noreturn) #elif defined(__GNUC__) // TODO: Can GCC explicitly mark classes as abstract (no instances can be created)? #define abstract - + #define OBSOLETE __attribute__((deprecated)) #define ALIGN_8 __attribute__((aligned(8))) @@ -43,24 +43,24 @@ // Some portability macros :) #define stricmp strcasecmp - - #define FORMATSTRING(formatIndex,va_argsIndex) + + #define FORMATSTRING(formatIndex, va_argsIndex) #define SIZE_T_FMT "%zu" #define SIZE_T_FMT_PRECISION(x) "%" #x "zu" #define SIZE_T_FMT_HEX "%zx" - + #define NORETURN __attribute((__noreturn__)) #else #error "You are using an unsupported compiler, you might need to #define some stuff here for your compiler" - + /* // Copy and uncomment this into another #elif section based on your compiler identification - + // Explicitly mark classes as abstract (no instances can be created) #define abstract - + // Mark functions as obsolete, so that their usage results in a compile-time warning #define OBSOLETE @@ -68,8 +68,8 @@ #define ALIGN_8 #define ALIGN_16 */ - - #define FORMATSTRING(formatIndex,va_argsIndex) __attribute__((format (printf, formatIndex, va_argsIndex))) + + #define FORMATSTRING(formatIndex, va_argsIndex) __attribute__((format (printf, formatIndex, va_argsIndex))) #endif @@ -110,16 +110,16 @@ typedef unsigned char Byte; #include #include #include - + // Windows SDK defines min and max macros, messing up with our std::min and std::max usage #undef min #undef max - + // Windows SDK defines GetFreeSpace as a constant, probably a Win16 API remnant #ifdef GetFreeSpace #undef GetFreeSpace #endif // GetFreeSpace - + #define SocketError WSAGetLastError() #else #include @@ -129,19 +129,16 @@ typedef unsigned char Byte; #include #include #include - #include #include - #include #include #include - #include #include #include #include - #include + #include #include - + typedef int SOCKET; enum { @@ -149,9 +146,6 @@ typedef unsigned char Byte; }; #define closesocket close #define SocketError errno -#if !defined(ANDROID_NDK) - #include -#endif #endif #if !defined(ANDROID_NDK) @@ -169,11 +163,11 @@ typedef unsigned char Byte; // CRT stuff: -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include @@ -208,15 +202,15 @@ typedef unsigned char Byte; // Common definitions: -/// Evaluates to the number of elements in an array (compile-time!) +/** Evaluates to the number of elements in an array (compile-time!) */ #define ARRAYCOUNT(X) (sizeof(X) / sizeof(*(X))) -/// Allows arithmetic expressions like "32 KiB" (but consider using parenthesis around it, "(32 KiB)" ) +/** Allows arithmetic expressions like "32 KiB" (but consider using parenthesis around it, "(32 KiB)") */ #define KiB * 1024 #define MiB * 1024 * 1024 -/// Faster than (int)floorf((float)x / (float)div) -#define FAST_FLOOR_DIV( x, div ) ( (x) < 0 ? (((int)x / div) - 1) : ((int)x / div) ) +/** Faster than (int)floorf((float)x / (float)div) */ +#define FAST_FLOOR_DIV(x, div) ((x) < 0 ? (((int)x / div) - 1) : ((int)x / div)) // Own version of assert() that writes failed assertions to the log for review #ifdef NDEBUG @@ -226,17 +220,17 @@ typedef unsigned char Byte; #endif // Pretty much the same as ASSERT() but stays in Release builds -#define VERIFY( x ) ( !!(x) || ( LOGERROR("Verification failed: %s, file %s, line %i", #x, __FILE__, __LINE__ ), exit(1), 0 ) ) +#define VERIFY(x) (!!(x) || (LOGERROR("Verification failed: %s, file %s, line %i", #x, __FILE__, __LINE__), exit(1), 0)) -/// A generic interface used mainly in ForEach() functions +/** A generic interface used mainly in ForEach() functions */ template class cItemCallback { public: - /// Called for each item in the internal list; return true to stop the loop, or false to continue enumerating + /** Called for each item in the internal list; return true to stop the loop, or false to continue enumerating */ virtual bool Item(Type * a_Type) = 0; virtual ~cItemCallback() {} } ; diff --git a/Tools/NoiseSpeedTest/CMakeLists.txt b/Tools/NoiseSpeedTest/CMakeLists.txt index 09821bd47..1dca070da 100644 --- a/Tools/NoiseSpeedTest/CMakeLists.txt +++ b/Tools/NoiseSpeedTest/CMakeLists.txt @@ -48,6 +48,7 @@ set(SOURCES set(HEADERS NoiseSpeedTest.h Globals.h + SimplexNoise.h ) source_group("" FILES ${SOURCES} ${HEADERS}) diff --git a/Tools/NoiseSpeedTest/Globals.h b/Tools/NoiseSpeedTest/Globals.h index e62d2b432..f332942ae 100644 --- a/Tools/NoiseSpeedTest/Globals.h +++ b/Tools/NoiseSpeedTest/Globals.h @@ -12,30 +12,30 @@ #if defined(_MSC_VER) // MSVC produces warning C4481 on the override keyword usage, so disable the warning altogether #pragma warning(disable:4481) - + // Disable some warnings that we don't care about: #pragma warning(disable:4100) #define OBSOLETE __declspec(deprecated) - + // No alignment needed in MSVC #define ALIGN_8 #define ALIGN_16 - + #define FORMATSTRING(formatIndex, va_argsIndex) // MSVC has its own custom version of zu format #define SIZE_T_FMT "%Iu" #define SIZE_T_FMT_PRECISION(x) "%" #x "Iu" #define SIZE_T_FMT_HEX "%Ix" - + #define NORETURN __declspec(noreturn) #elif defined(__GNUC__) // TODO: Can GCC explicitly mark classes as abstract (no instances can be created)? #define abstract - + #define OBSOLETE __attribute__((deprecated)) #define ALIGN_8 __attribute__((aligned(8))) @@ -43,24 +43,24 @@ // Some portability macros :) #define stricmp strcasecmp - - #define FORMATSTRING(formatIndex,va_argsIndex) + + #define FORMATSTRING(formatIndex, va_argsIndex) #define SIZE_T_FMT "%zu" #define SIZE_T_FMT_PRECISION(x) "%" #x "zu" #define SIZE_T_FMT_HEX "%zx" - + #define NORETURN __attribute((__noreturn__)) #else #error "You are using an unsupported compiler, you might need to #define some stuff here for your compiler" - + /* // Copy and uncomment this into another #elif section based on your compiler identification - + // Explicitly mark classes as abstract (no instances can be created) #define abstract - + // Mark functions as obsolete, so that their usage results in a compile-time warning #define OBSOLETE @@ -68,8 +68,8 @@ #define ALIGN_8 #define ALIGN_16 */ - - #define FORMATSTRING(formatIndex,va_argsIndex) __attribute__((format (printf, formatIndex, va_argsIndex))) + + #define FORMATSTRING(formatIndex, va_argsIndex) __attribute__((format (printf, formatIndex, va_argsIndex))) #endif @@ -110,16 +110,16 @@ typedef unsigned char Byte; #include #include #include - + // Windows SDK defines min and max macros, messing up with our std::min and std::max usage #undef min #undef max - + // Windows SDK defines GetFreeSpace as a constant, probably a Win16 API remnant #ifdef GetFreeSpace #undef GetFreeSpace #endif // GetFreeSpace - + #define SocketError WSAGetLastError() #else #include @@ -129,19 +129,16 @@ typedef unsigned char Byte; #include #include #include - #include #include - #include #include #include - #include #include #include #include - #include + #include #include - + typedef int SOCKET; enum { @@ -149,9 +146,6 @@ typedef unsigned char Byte; }; #define closesocket close #define SocketError errno -#if !defined(ANDROID_NDK) - #include -#endif #endif #if !defined(ANDROID_NDK) @@ -169,11 +163,11 @@ typedef unsigned char Byte; // CRT stuff: -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include @@ -209,15 +203,15 @@ typedef unsigned char Byte; // Common definitions: -/// Evaluates to the number of elements in an array (compile-time!) +/** Evaluates to the number of elements in an array (compile-time!) */ #define ARRAYCOUNT(X) (sizeof(X) / sizeof(*(X))) -/// Allows arithmetic expressions like "32 KiB" (but consider using parenthesis around it, "(32 KiB)" ) +/** Allows arithmetic expressions like "32 KiB" (but consider using parenthesis around it, "(32 KiB)") */ #define KiB * 1024 #define MiB * 1024 * 1024 -/// Faster than (int)floorf((float)x / (float)div) -#define FAST_FLOOR_DIV( x, div ) ( (x) < 0 ? (((int)x / div) - 1) : ((int)x / div) ) +/** Faster than (int)floorf((float)x / (float)div) */ +#define FAST_FLOOR_DIV(x, div) ((x) < 0 ? (((int)x / div) - 1) : ((int)x / div)) // Own version of assert() that writes failed assertions to the log for review #ifdef NDEBUG @@ -227,17 +221,17 @@ typedef unsigned char Byte; #endif // Pretty much the same as ASSERT() but stays in Release builds -#define VERIFY( x ) ( !!(x) || ( LOGERROR("Verification failed: %s, file %s, line %i", #x, __FILE__, __LINE__ ), exit(1), 0 ) ) +#define VERIFY(x) (!!(x) || (LOGERROR("Verification failed: %s, file %s, line %i", #x, __FILE__, __LINE__), exit(1), 0)) -/// A generic interface used mainly in ForEach() functions +/** A generic interface used mainly in ForEach() functions */ template class cItemCallback { public: - /// Called for each item in the internal list; return true to stop the loop, or false to continue enumerating + /** Called for each item in the internal list; return true to stop the loop, or false to continue enumerating */ virtual bool Item(Type * a_Type) = 0; virtual ~cItemCallback() {} } ; diff --git a/Tools/NoiseSpeedTest/SimplexNoise.h b/Tools/NoiseSpeedTest/SimplexNoise.h index 33af8f007..6e74212ae 100644 --- a/Tools/NoiseSpeedTest/SimplexNoise.h +++ b/Tools/NoiseSpeedTest/SimplexNoise.h @@ -18,7 +18,7 @@ template class cSimplexNoise { public: - cSimplexNoise(int a_Seed) + cSimplexNoise(unsigned a_Seed) { // Based on the seed, initialize the permutation table, using a simple LCG and swapping @@ -29,7 +29,7 @@ public: } // Use swaps to randomize: - std::linear_congruential_engine lcg(a_Seed); + std::minstd_rand lcg(a_Seed); for (size_t i = 0; i < 2000; i++) { std::swap(m_Perm[lcg() % (ARRAYCOUNT(m_Perm) / 2)], m_Perm[lcg() % (ARRAYCOUNT(m_Perm) / 2)]); @@ -77,11 +77,12 @@ public: Datatype GetValueAt3D(const Datatype a_X, const Datatype a_Y, const Datatype a_Z) { // The gradients are the midpoints of the vertices of a cube. - static const Datatype grad3[12][3] = { + static const Datatype grad3[12][3] = + { {1, 1, 0}, {-1, 1, 0}, {1, -1, 0}, {-1, -1, 0}, {1, 0, 1}, {-1, 0, 1}, {1, 0, -1}, {-1, 0, -1}, {0, 1, 1}, { 0, -1, 1}, {0, 1, -1}, { 0, -1, -1} - }; + }; // Skew factors: static const Datatype F3 = static_cast(1.0 / 3.0); @@ -149,13 +150,13 @@ public: // A step of (1, 0, 0) in IJK means a step of (1 - c, -c, -c) in XYZ, // a step of (0, 1, 0) in IJK means a step of (-c, 1 - c, -c) in XYZ, and // a step of (0, 0, 1) in IJK means a step of (-c, -c, 1 - c) in XYZ, where c = G3 = 1 / 6. - Datatype x1 = x0 - i1 + G3; // Offsets for second corner in XYZ coords + Datatype x1 = x0 - i1 + G3; // Offsets for second corner in XYZ coords Datatype y1 = y0 - j1 + G3; Datatype z1 = z0 - k1 + G3; - Datatype x2 = x0 - i2 + static_cast(2) * G3; // Offsets for third corner in XYZ coords + Datatype x2 = x0 - i2 + static_cast(2) * G3; // Offsets for third corner in XYZ coords Datatype y2 = y0 - j2 + static_cast(2) * G3; Datatype z2 = z0 - k2 + static_cast(2) * G3; - Datatype x3 = x0 - static_cast(1) + static_cast(3) * G3; // Offsets for last corner in XYZ coords + Datatype x3 = x0 - static_cast(1) + static_cast(3) * G3; // Offsets for last corner in XYZ coords Datatype y3 = y0 - static_cast(1) + static_cast(3) * G3; Datatype z3 = z0 - static_cast(1) + static_cast(3) * G3; -- cgit v1.2.3