blob: 4a003d1dc31cb1e4f17f8874385036c23eeac52c [file] [log] [blame]
--- embree-3.12.0/CMakeLists.txt.orig 2020-10-08 13:06:09.573257200 +0300
+++ embree-3.12.0/CMakeLists.txt 2020-10-08 13:07:16.344816300 +0300
@@ -198,10 +198,15 @@
MESSAGE("Intel Compiler detected")
INCLUDE (intel)
ELSE()
+ IF(MINGW)
+ MESSAGE("GCC detected")
+ INCLUDE (gnu)
+ ELSE()
- IF (EMBREE_ISA_AVX512KNL OR EMBREE_ISA_AVX512SKX)
- MESSAGE(FATAL_ERROR "Microsoft Visual C++ Compiler does not support AVX512. Please use Intel Compiler or Clang.")
- ENDIF()
- INCLUDE (msvc)
+ IF (EMBREE_ISA_AVX512KNL OR EMBREE_ISA_AVX512SKX)
+ MESSAGE(FATAL_ERROR "Microsoft Visual C++ Compiler does not support AVX512. Please use Intel Compiler or Clang.")
+ ENDIF()
+ INCLUDE (msvc)
+ ENDIF()
ENDIF()
ELSE (WIN32)
--- embree-3.12.0/common/math/math.h.orig 2020-10-08 13:23:56.732826200 +0300
+++ embree-3.12.0/common/math/math.h 2020-10-08 13:24:09.816659600 +0300
@@ -13,7 +13,7 @@
#include <immintrin.h>
#if defined(__WIN32__)
-#if (__MSV_VER <= 1700)
+#if defined(_MSC_VER) && (_MSC_VER <= 1700)
namespace std
{
__forceinline bool isinf ( const float x ) { return _finite(x) == 0; }
@@ -40,7 +40,7 @@
__forceinline int toInt (const float& a) { return int(a); }
__forceinline float toFloat(const int& a) { return float(a); }
-#if defined(__WIN32__)
+#if defined(_MSC_VER)
__forceinline bool finite ( const float x ) { return _finite(x) != 0; }
#endif
@@ -86,7 +86,7 @@
return _mm_cvtss_f32(c);
}
-#if defined(__WIN32__) && (__MSC_VER <= 1700)
+#if defined(_MSC_VER) && (_MSC_VER <= 1700)
__forceinline float nextafter(float x, float y) { if ((x<y) == (x>0)) return x*(1.1f+float(ulp)); else return x*(0.9f-float(ulp)); }
__forceinline double nextafter(double x, double y) { return _nextafter(x, y); }
__forceinline int roundf(float f) { return (int)(f + 0.5f); }
--- embree-3.12.0/common/sys/library.cpp.orig 2020-10-08 13:25:49.035618400 +0300
+++ embree-3.12.0/common/sys/library.cpp 2020-10-08 13:27:18.700305300 +0300
@@ -27,7 +27,7 @@
/* returns address of a symbol from the library */
void* getSymbol(lib_t lib, const std::string& sym) {
- return GetProcAddress(HMODULE(lib),sym.c_str());
+ return (void *)GetProcAddress(HMODULE(lib),sym.c_str());
}
/* closes the shared library */
--- embree-3.12.0/common/sys/intrinsics.h.orig 2020-10-08 13:46:29.816139700 +0300
+++ embree-3.12.0/common/sys/intrinsics.h 2020-10-08 13:47:04.718594900 +0300
@@ -30,7 +30,9 @@
#endif
#if defined(__WIN32__)
+# if !defined(NOMINMAX)
# define NOMINMAX
+# endif
# include <windows.h>
#endif
--- embree-3.12.0/include/embree3/rtcore_common.h.orig 2020-10-08 13:45:45.391426500 +0300
+++ embree-3.12.0/include/embree3/rtcore_common.h 2020-10-08 13:45:56.064816000 +0300
@@ -19,7 +19,7 @@
#endif
#endif
-#ifdef _WIN32
+#ifdef _MSC_VER
# define RTC_ALIGN(...) __declspec(align(__VA_ARGS__))
#else
# define RTC_ALIGN(...) __attribute__((aligned(__VA_ARGS__)))
--- embree-3.12.0/common/tasking/taskschedulertbb.h.orig 2020-10-08 13:54:46.957437800 +0300
+++ embree-3.12.0/common/tasking/taskschedulertbb.h 2020-10-08 13:55:28.620373200 +0300
@@ -12,7 +12,9 @@
#include "../sys/ref.h"
#if defined(__WIN32__)
+# if !defined(NOMINMAX)
# define NOMINMAX
+# endif
#endif
// We need to define these to avoid implicit linkage against
--- embree-3.12.0/common/sys/sysinfo.cpp.orig 2020-10-08 14:04:36.119217500 +0300
+++ embree-3.12.0/common/sys/sysinfo.cpp 2020-10-08 14:05:22.213153600 +0300
@@ -177,7 +177,7 @@
__noinline int64_t get_xcr0()
{
-#if defined (__WIN32__)
+#if defined (_MSC_VER)
int64_t xcr0 = 0; // int64_t is workaround for compiler bug under VS2013, Win32
xcr0 = _xgetbv(0);
return xcr0;
@@ -211,7 +211,7 @@
int cpuid_leaf_e1[4] = { 0,0,0,0 };
if (nIds >= 1) __cpuid (cpuid_leaf_1,0x00000001);
#if _WIN32
-#if _MSC_VER && (_MSC_FULL_VER < 160040219)
+#if defined(_MSC_VER) && (_MSC_FULL_VER < 160040219)
#else
if (nIds >= 7) __cpuidex(cpuid_leaf_7,0x00000007,0);
#endif
--- embree-3.12.0/tutorials/common/tutorial/CMakeLists.txt.orig 2020-10-08 15:10:28.601395100 +0300
+++ embree-3.12.0/tutorials/common/tutorial/CMakeLists.txt 2020-10-08 15:10:32.753196700 +0300
@@ -26,7 +26,7 @@
SET_PROPERTY(TARGET noise_ispc APPEND PROPERTY COMPILE_FLAGS " ${FLAGS_LOWEST}")
ENDIF()
-IF (WIN32 AND NOT EMBREE_EXTERNAL_GLFW)
+IF (MSVC AND NOT EMBREE_EXTERNAL_GLFW)
GET_FILENAME_COMPONENT(GLFW_DIR ${GLFW_LIBRARY} PATH)
ADD_CUSTOM_COMMAND(TARGET tutorial POST_BUILD
--- embree-3.12.0/common/cmake/gnu.cmake.orig 2020-10-08 20:26:40.332913400 +0300
+++ embree-3.12.0/common/cmake/gnu.cmake 2020-10-08 20:30:01.359024200 +0300
@@ -39,8 +39,9 @@
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden") # makes all inline symbols hidden by default
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing") # disables strict aliasing rules
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-tree-vectorize") # disable auto vectorizer
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORTIFY_SOURCE=2") # perform extra security checks for some standard library calls
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_USE_MATH_DEFINES")
IF (EMBREE_STACK_PROTECTOR)
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORTIFY_SOURCE=2") # perform extra security checks for some standard library calls
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector") # protects against return address overrides
ENDIF()
MACRO(DISABLE_STACK_PROTECTOR_FOR_FILE file)
@@ -69,10 +70,12 @@
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") # link against libc++ which supports C++11 features
ELSE(APPLE)
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined") # issues link error for undefined symbols in shared library
+ IF (NOT MINGW)
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z noexecstack") # we do not need an executable stack
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -z relro -z now") # re-arranges data sections to increase security
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z noexecstack") # we do not need an executable stack
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z relro -z now") # re-arranges data sections to increase security
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") # enables position independent execution for executable
+ ENDIF ()
ENDIF(APPLE)
--- embree-3.12.0/common/cmake/package.cmake.orig 2020-10-08 20:43:01.906336600 +0300
+++ embree-3.12.0/common/cmake/package.cmake 2020-10-08 20:45:40.283140100 +0300
@@ -24,7 +24,7 @@
# Install MSVC runtime
##############################################################
-IF (WIN32)
+IF (MSVC)
SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
INCLUDE(InstallRequiredSystemLibraries)
LIST(FILTER CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS INCLUDE REGEX ".*msvcp[0-9]+\.dll|.*vcruntime[0-9]+\.dll|.*vcruntime[0-9]+_[0-9]+\.dll")
@@ -36,7 +36,7 @@
##############################################################
INSTALL(DIRECTORY include/embree3 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT devel)
-IF (NOT WIN32)
+IF (NOT MSVC)
INSTALL(DIRECTORY man/man3 DESTINATION ${CMAKE_INSTALL_MANDIR} COMPONENT devel)
ENDIF()
@@ -106,7 +106,7 @@
ENDIF()
ENDIF()
-IF (WIN32 OR EMBREE_ZIP_MODE)
+IF (MSVC OR EMBREE_ZIP_MODE)
# for local "installs" and on Windows we want the cmake config files placed
# in the install root, such that users can point the CMake variable
# embree_DIR just to the install folder
@@ -116,7 +116,11 @@
ELSE()
SET(EMBREE_CMAKECONFIG_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/embree-${EMBREE_VERSION}")
SET(EMBREE_CMAKEEXPORT_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/embree-${EMBREE_VERSION}")
- FILE(RELATIVE_PATH EMBREE_RELATIV_ROOT_DIR "/${EMBREE_CMAKECONFIG_DIR}" "/")
+ IF (WIN32)
+ SET(EMBREE_RELATIV_ROOT_DIR "../../../")
+ ELSE()
+ FILE(RELATIVE_PATH EMBREE_RELATIV_ROOT_DIR "/${EMBREE_CMAKECONFIG_DIR}" "/")
+ ENDIF()
ENDIF()
CONFIGURE_FILE(common/cmake/embree-config.cmake embree-config-install.cmake @ONLY)
--- embree-3.12.0/common/math/constants.h.orig 2020-10-08 20:54:58.498103100 +0300
+++ embree-3.12.0/common/math/constants.h 2020-10-08 20:55:08.724746100 +0300
@@ -7,8 +7,7 @@
#include <limits>
-#define _USE_MATH_DEFINES
-#include <math.h> // using cmath causes issues under Windows
+#include <cmath> // using cmath causes issues under Windows
#include <cfloat>
#include <climits>