diff options
author | Ray Molenkamp <github@lazydodo.com> | 2020-05-19 21:28:19 +0300 |
---|---|---|
committer | Ray Molenkamp <github@lazydodo.com> | 2020-05-19 21:28:19 +0300 |
commit | 08b4faef01da5207b1a864c90d1ca4353bd1e232 (patch) | |
tree | 60a78340419ebd3c07a8d3c932969dc8d34062b9 | |
parent | a6c08743554037fe235778fec3a5043e3b602c73 (diff) |
Properly fix: T71040 / T58983 Ocean Modifier crashes at high resolutions
For a more detailed description of the issue see the commit
message for rB497cd3d7dd6e497be484eb78a8ddb23f53b20343
This change moves fftw to a shared library and reverts the bandaid
we did for 2.83.
-rw-r--r-- | build_files/build_environment/cmake/fftw.cmake | 13 | ||||
-rw-r--r-- | build_files/cmake/platform/platform_win32.cmake | 2 | ||||
-rw-r--r-- | source/creator/CMakeLists.txt | 7 |
3 files changed, 17 insertions, 5 deletions
diff --git a/build_files/build_environment/cmake/fftw.cmake b/build_files/build_environment/cmake/fftw.cmake index 2d10cf6ad28..b359df2f47d 100644 --- a/build_files/build_environment/cmake/fftw.cmake +++ b/build_files/build_environment/cmake/fftw.cmake @@ -19,8 +19,12 @@ set(FFTW_EXTRA_ARGS) if(WIN32) - set(FFTW3_ENV set CFLAGS=-fno-stack-check -fno-stack-protector -mno-stack-arg-probe -fno-lto &&) set(FFTW3_PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/fftw3/src/external_fftw3 < ${PATCH_DIR}/fftw3.diff) + set(FFTW_EXTRA_ARGS --disable-static --enable-shared) + set(FFTW_INSTALL install-strip) +else() + set(FFTW_EXTRA_ARGS --enable-static) + set(FFTW_INSTALL install) endif() ExternalProject_Add(external_fftw3 @@ -28,10 +32,10 @@ ExternalProject_Add(external_fftw3 DOWNLOAD_DIR ${DOWNLOAD_DIR} URL_HASH MD5=${FFTW_HASH} PREFIX ${BUILD_DIR}/fftw3 - CONFIGURE_COMMAND ${CONFIGURE_ENV} && ${FFTW3_ENV} cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && ${CONFIGURE_COMMAND} --enable-static --prefix=${mingw_LIBDIR}/fftw3 + CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && ${CONFIGURE_COMMAND} ${FFTW_EXTRA_ARGS} --prefix=${mingw_LIBDIR}/fftw3 PATCH_COMMAND ${FFTW3_PATCH_COMMAND} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && make -j${MAKE_THREADS} - INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && make install + INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && make ${FFTW_INSTALL} INSTALL_DIR ${LIBDIR}/fftw3 ) @@ -39,7 +43,8 @@ if(MSVC) set_target_properties(external_fftw3 PROPERTIES FOLDER Mingw) if(BUILD_MODE STREQUAL Release) ExternalProject_Add_Step(external_fftw3 after_install - COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/lib/libfftw3.a ${HARVEST_TARGET}/fftw3/lib/libfftw.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/lib/libfftw3.dll.a ${HARVEST_TARGET}/fftw3/lib/libfftw.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/bin/libfftw3-3.dll ${HARVEST_TARGET}/fftw3/lib/libfftw3-3.dll COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/include/fftw3.h ${HARVEST_TARGET}/fftw3/include/fftw3.h DEPENDEES install ) diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index 088897f7b42..57bfe19a5bc 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -190,7 +190,7 @@ if(MSVC_VERSION GREATER 1914 AND NOT MSVC_CLANG) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /JMC") endif() -set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /SUBSYSTEM:CONSOLE /STACK:2097152,70656 ") +set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /SUBSYSTEM:CONSOLE /STACK:2097152") set(PLATFORM_LINKFLAGS_RELEASE "/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib") set(PLATFORM_LINKFLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG} /IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcmtd.lib") diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index b3e83b1412f..1a71022869a 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -687,6 +687,13 @@ elseif(WIN32) ) endif() + if(WITH_FFTW3) + install( + FILES ${LIBDIR}/fftw3/lib/libfftw3-3.dll + DESTINATION "." + ) + endif() + if(WITH_WINDOWS_PDB) if(WITH_WINDOWS_STRIPPED_PDB) # Icky hack for older cmake from https://stackoverflow.com/a/21198501 |