417 lines
14 KiB
Diff
417 lines
14 KiB
Diff
--- blender-2.73/CMakeLists.txt.orig 2015-01-07 18:32:07.000000000 +0300
|
|
+++ blender-2.73/CMakeLists.txt 2015-01-10 20:57:50.362800000 +0300
|
|
@@ -251,6 +251,8 @@
|
|
if(UNIX AND NOT APPLE)
|
|
option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" ON)
|
|
option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON)
|
|
+elseif(MINGW)
|
|
+ option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" ON)
|
|
else()
|
|
# not an option for other OS's
|
|
set(WITH_SYSTEM_GLEW OFF)
|
|
@@ -781,7 +781,7 @@
|
|
|
|
endif()
|
|
|
|
-if(UNIX AND NOT APPLE)
|
|
+if((UNIX AND NOT APPLE) OR MINGW)
|
|
macro(find_package_wrapper)
|
|
if(WITH_STATIC_LIBS)
|
|
set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
|
@@ -799,15 +799,29 @@
|
|
find_package_wrapper(ZLIB REQUIRED)
|
|
find_package_wrapper(Freetype REQUIRED)
|
|
|
|
+ if(MINGW)
|
|
+ set(LIBDIR ${MINGW_LIBS})
|
|
+ endif()
|
|
+
|
|
if(WITH_PYTHON)
|
|
# No way to set py34. remove for now.
|
|
# find_package(PythonLibs)
|
|
+ if(MINGW)
|
|
+ # normally cached but not since we include them with blender
|
|
+ set(PYTHON_VERSION 3.4) # CACHE STRING)
|
|
+ set(PYTHON_INCLUDE_DIR "${LIBDIR}/include/python${PYTHON_VERSION}m") # CACHE PATH)
|
|
+ set(PYTHON_LIBRARY "${LIBDIR}/lib/libpython${PYTHON_VERSION}m.dll.a") # CACHE FILEPATH)
|
|
+ # uncached vars
|
|
+ set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
|
|
+ set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
|
|
+ else()
|
|
|
|
# Use our own instead, since wothout py is such a rare case,
|
|
# require this package
|
|
# XXX Linking errors with debian static python :/
|
|
# find_package_wrapper(PythonLibsUnix REQUIRED)
|
|
find_package(PythonLibsUnix REQUIRED)
|
|
+ endif()
|
|
endif()
|
|
|
|
if(WITH_IMAGE_OPENEXR)
|
|
@@ -896,7 +896,11 @@
|
|
endif()
|
|
|
|
if(WITH_CODEC_FFMPEG)
|
|
+ if(MINGW)
|
|
+ set(FFMPEG ${LIBDIR} CACHE PATH "FFMPEG Directory")
|
|
+ else()
|
|
set(FFMPEG /usr CACHE PATH "FFMPEG Directory")
|
|
+ endif()
|
|
set(FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries")
|
|
|
|
mark_as_advanced(FFMPEG)
|
|
@@ -928,6 +928,9 @@
|
|
if(OPENCOLLADA_FOUND)
|
|
find_package_wrapper(XML2)
|
|
find_package_wrapper(PCRE)
|
|
+ if(MINGW)
|
|
+ list(APPEND OPENCOLLADA_LIBRARIES ${XML2_LIBRARY})
|
|
+ endif()
|
|
else()
|
|
set(WITH_OPENCOLLADA OFF)
|
|
endif()
|
|
@@ -940,11 +940,15 @@
|
|
endif()
|
|
find_package_wrapper(OpenShadingLanguage)
|
|
if(OSL_FOUND)
|
|
+ if(MINGW)
|
|
+ list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
|
|
+ else()
|
|
if(${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6")
|
|
# Note: --whole-archive is needed to force loading of all symbols in liboslexec,
|
|
# otherwise LLVM is missing the osl_allocate_closure_component function
|
|
set(OSL_LIBRARIES ${OSL_OSLCOMP_LIBRARY} -Wl,--whole-archive ${OSL_OSLEXEC_LIBRARY} -Wl,--no-whole-archive ${OSL_OSLQUERY_LIBRARY})
|
|
endif()
|
|
+ endif()
|
|
else()
|
|
message(STATUS "OSL not found, disabling it from Cycles")
|
|
set(WITH_CYCLES_OSL OFF)
|
|
@@ -1121,8 +1121,13 @@
|
|
endif()
|
|
|
|
if(WITH_LLVM OR WITH_SDL_DYNLOAD)
|
|
+ if(MINGW)
|
|
+ # imagehelp is needed by LLVM 3.1 on MinGW, check lib\Support\Windows\Signals.inc
|
|
+ list(APPEND PLATFORM_LINKLIBS -limagehlp)
|
|
+ else()
|
|
# Fix for conflict with Mesa llvmpipe
|
|
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,--version-script=${CMAKE_SOURCE_DIR}/source/creator/blender.map")
|
|
+ endif()
|
|
endif()
|
|
|
|
if(WITH_CYCLES_OSL)
|
|
@@ -1130,6 +1130,50 @@
|
|
endif()
|
|
endif()
|
|
|
|
+ if(MINGW)
|
|
+ add_definitions(-DWIN32)
|
|
+ # keep GCC specific stuff here
|
|
+ include(CheckCSourceCompiles)
|
|
+ # Setup 64bit and 64bit windows systems
|
|
+ CHECK_C_SOURCE_COMPILES("
|
|
+ #ifdef __MINGW32__
|
|
+ #include <_mingw.h>
|
|
+ #endif
|
|
+ #ifndef __MINGW64_VERSION_MAJOR
|
|
+ #error
|
|
+ #endif
|
|
+ int main(void) { return 0; }
|
|
+ "
|
|
+ WITH_MINGW64)
|
|
+
|
|
+ if(WITH_MINGW64)
|
|
+ message(STATUS "Compiling MinGW-w64.")
|
|
+ else()
|
|
+ message(STATUS "Compiling with MinGW-w32.")
|
|
+ endif()
|
|
+ list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi -ldbghelp)
|
|
+
|
|
+ if(WITH_INPUT_IME)
|
|
+ list(APPEND PLATFORM_LINKLIBS imm32)
|
|
+ endif()
|
|
+
|
|
+ set(PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing")
|
|
+ if(WITH_MINGW64)
|
|
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
|
|
+ list(APPEND PLATFORM_LINKLIBS -lpthread)
|
|
+
|
|
+ add_definitions(-DFREE_WINDOWS64 -DMS_WIN64)
|
|
+ endif()
|
|
+ add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE)
|
|
+ add_definitions(-DFREE_WINDOWS)
|
|
+ set(PLATFORM_LINKFLAGS "-Xlinker --stack=2097152")
|
|
+
|
|
+ set(WINTAB_INC ${LIBDIR}/include)
|
|
+
|
|
+ if(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
|
|
+ add_definitions(-D__SSE__ -D__MMX__)
|
|
+ endif()
|
|
+ else()
|
|
# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
|
|
list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm)
|
|
|
|
@@ -1229,12 +1229,12 @@
|
|
set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
|
|
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel")
|
|
endif()
|
|
+ endif()
|
|
|
|
-elseif(WIN32)
|
|
+elseif(MSVC)
|
|
|
|
add_definitions(-DWIN32)
|
|
|
|
- if(MSVC)
|
|
|
|
# needed for some MSVC installations
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO")
|
|
@@ -1585,247 +1585,6 @@
|
|
# used in many places so include globally, like OpenGL
|
|
blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}")
|
|
|
|
- elseif(CMAKE_COMPILER_IS_GNUCC)
|
|
- # keep GCC specific stuff here
|
|
- include(CheckCSourceCompiles)
|
|
- # Setup 64bit and 64bit windows systems
|
|
- CHECK_C_SOURCE_COMPILES("
|
|
- #ifndef __MINGW64__
|
|
- #error
|
|
- #endif
|
|
- int main(void) { return 0; }
|
|
- "
|
|
- WITH_MINGW64)
|
|
-
|
|
- if(WITH_MINGW64)
|
|
- message(STATUS "Compiling for 64 bit with MinGW-w64.")
|
|
- execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
|
- if(GCC_VERSION VERSION_GREATER 4.9 OR GCC_VERSION VERSION_EQUAL 4.9)
|
|
- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw64_gcc49)
|
|
- else()
|
|
- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw64)
|
|
- endif()
|
|
- else()
|
|
- message(STATUS "Compiling for 32 bit with MinGW-w32.")
|
|
- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/mingw32)
|
|
-
|
|
- if(WITH_RAYOPTIMIZATION)
|
|
- message(WARNING "MinGW-w32 is known to be unstable with 'WITH_RAYOPTIMIZATION' option enabled.")
|
|
- endif()
|
|
- endif()
|
|
-
|
|
- list(APPEND PLATFORM_LINKLIBS -lshell32 -lshfolder -lgdi32 -lmsvcrt -lwinmm -lmingw32 -lm -lws2_32 -lz -lstdc++ -lole32 -luuid -lwsock32 -lpsapi -ldbghelp)
|
|
-
|
|
- if(WITH_INPUT_IME)
|
|
- list(APPEND PLATFORM_LINKLIBS -limm32)
|
|
- endif()
|
|
-
|
|
- set(PLATFORM_CFLAGS "-pipe -funsigned-char -fno-strict-aliasing")
|
|
-
|
|
- if(WITH_MINGW64)
|
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
|
|
- list(APPEND PLATFORM_LINKLIBS -lpthread)
|
|
-
|
|
- add_definitions(-DFREE_WINDOWS64 -DMS_WIN64)
|
|
- endif()
|
|
-
|
|
- add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE)
|
|
-
|
|
- add_definitions(-DFREE_WINDOWS)
|
|
-
|
|
- set(PNG "${LIBDIR}/png")
|
|
- set(PNG_INCLUDE_DIRS "${PNG}/include")
|
|
- set(PNG_LIBPATH ${PNG}/lib) # not cmake defined
|
|
-
|
|
- if(WITH_MINGW64)
|
|
- set(JPEG_LIBRARIES jpeg)
|
|
- else()
|
|
- set(JPEG_LIBRARIES libjpeg)
|
|
- endif()
|
|
- set(PNG_LIBRARIES png)
|
|
-
|
|
- set(ZLIB ${LIBDIR}/zlib)
|
|
- set(ZLIB_INCLUDE_DIRS ${ZLIB}/include)
|
|
- set(ZLIB_LIBPATH ${ZLIB}/lib)
|
|
- set(ZLIB_LIBRARIES z)
|
|
-
|
|
- set(JPEG "${LIBDIR}/jpeg")
|
|
- set(JPEG_INCLUDE_DIR "${JPEG}/include")
|
|
- set(JPEG_LIBPATH ${JPEG}/lib) # not cmake defined
|
|
-
|
|
- # comes with own pthread library
|
|
- if(NOT WITH_MINGW64)
|
|
- set(PTHREADS ${LIBDIR}/pthreads)
|
|
- #set(PTHREADS_INCLUDE_DIRS ${PTHREADS}/include)
|
|
- set(PTHREADS_LIBPATH ${PTHREADS}/lib)
|
|
- set(PTHREADS_LIBRARIES pthreadGC2)
|
|
- endif()
|
|
-
|
|
- set(FREETYPE ${LIBDIR}/freetype)
|
|
- set(FREETYPE_INCLUDE_DIRS ${FREETYPE}/include ${FREETYPE}/include/freetype2)
|
|
- set(FREETYPE_LIBPATH ${FREETYPE}/lib)
|
|
- set(FREETYPE_LIBRARY freetype)
|
|
-
|
|
- if(WITH_FFTW3)
|
|
- set(FFTW3 ${LIBDIR}/fftw3)
|
|
- set(FFTW3_LIBRARIES fftw3)
|
|
- set(FFTW3_INCLUDE_DIRS ${FFTW3}/include)
|
|
- set(FFTW3_LIBPATH ${FFTW3}/lib)
|
|
- endif()
|
|
-
|
|
- if(WITH_OPENCOLLADA)
|
|
- set(OPENCOLLADA ${LIBDIR}/opencollada)
|
|
- set(OPENCOLLADA_INCLUDE_DIRS
|
|
- ${OPENCOLLADA}/include/opencollada/COLLADAStreamWriter
|
|
- ${OPENCOLLADA}/include/opencollada/COLLADABaseUtils
|
|
- ${OPENCOLLADA}/include/opencollada/COLLADAFramework
|
|
- ${OPENCOLLADA}/include/opencollada/COLLADASaxFrameworkLoader
|
|
- ${OPENCOLLADA}/include/opencollada/GeneratedSaxParser
|
|
- )
|
|
- set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib/opencollada)
|
|
- set(OPENCOLLADA_LIBRARIES OpenCOLLADAStreamWriter OpenCOLLADASaxFrameworkLoader OpenCOLLADAFramework OpenCOLLADABaseUtils GeneratedSaxParser UTF MathMLSolver buffer ftoa xml)
|
|
- set(PCRE_LIBRARIES pcre)
|
|
- endif()
|
|
-
|
|
- if(WITH_CODEC_FFMPEG)
|
|
- set(FFMPEG ${LIBDIR}/ffmpeg)
|
|
- set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
|
|
- if(WITH_MINGW64)
|
|
- set(FFMPEG_LIBRARIES avcodec.dll avformat.dll avdevice.dll avutil.dll swscale.dll swresample.dll)
|
|
- else()
|
|
- set(FFMPEG_LIBRARIES avcodec-55 avformat-55 avdevice-55 avutil-52 swscale-2)
|
|
- endif()
|
|
- set(FFMPEG_LIBPATH ${FFMPEG}/lib)
|
|
- endif()
|
|
-
|
|
- if(WITH_IMAGE_OPENEXR)
|
|
- set(OPENEXR ${LIBDIR}/openexr)
|
|
- set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
|
|
- set(OPENEXR_INCLUDE_DIRS ${OPENEXR}/include/OpenEXR)
|
|
- set(OPENEXR_LIBRARIES Half IlmImf Imath IlmThread Iex)
|
|
- set(OPENEXR_LIBPATH ${OPENEXR}/lib)
|
|
- endif()
|
|
-
|
|
- if(WITH_IMAGE_TIFF)
|
|
- set(TIFF ${LIBDIR}/tiff)
|
|
- set(TIFF_LIBRARY tiff)
|
|
- set(TIFF_INCLUDE_DIR ${TIFF}/include)
|
|
- set(TIFF_LIBPATH ${TIFF}/lib)
|
|
- endif()
|
|
-
|
|
- if(WITH_JACK)
|
|
- set(JACK ${LIBDIR}/jack)
|
|
- set(JACK_INCLUDE_DIRS ${JACK}/include/jack ${JACK}/include)
|
|
- set(JACK_LIBRARIES jack)
|
|
- set(JACK_LIBPATH ${JACK}/lib)
|
|
-
|
|
- # TODO, gives linking errors, force off
|
|
- set(WITH_JACK OFF)
|
|
- endif()
|
|
-
|
|
- if(WITH_PYTHON)
|
|
- # normally cached but not since we include them with blender
|
|
- set(PYTHON_VERSION 3.4) # CACHE STRING)
|
|
- string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
|
|
- set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}") # CACHE PATH)
|
|
- set(PYTHON_LIBRARY "${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}mw.lib") # CACHE FILEPATH)
|
|
- unset(_PYTHON_VERSION_NO_DOTS)
|
|
-
|
|
- # uncached vars
|
|
- set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
|
|
- set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
|
|
- endif()
|
|
-
|
|
- if(WITH_BOOST)
|
|
- set(BOOST ${LIBDIR}/boost)
|
|
- set(BOOST_INCLUDE_DIR ${BOOST}/include)
|
|
- if(WITH_MINGW64)
|
|
- set(BOOST_POSTFIX "mgw47-mt-s-1_49")
|
|
- set(BOOST_DEBUG_POSTFIX "mgw47-mt-sd-1_49")
|
|
- else()
|
|
- set(BOOST_POSTFIX "mgw46-mt-s-1_49")
|
|
- set(BOOST_DEBUG_POSTFIX "mgw46-mt-sd-1_49")
|
|
- endif()
|
|
- set(BOOST_LIBRARIES
|
|
- optimized boost_date_time-${BOOST_POSTFIX} boost_filesystem-${BOOST_POSTFIX}
|
|
- boost_regex-${BOOST_POSTFIX}
|
|
- boost_system-${BOOST_POSTFIX} boost_thread-${BOOST_POSTFIX}
|
|
- debug boost_date_time-${BOOST_DEBUG_POSTFIX} boost_filesystem-${BOOST_DEBUG_POSTFIX}
|
|
- boost_regex-${BOOST_DEBUG_POSTFIX}
|
|
- boost_system-${BOOST_DEBUG_POSTFIX} boost_thread-${BOOST_DEBUG_POSTFIX})
|
|
- if(WITH_INTERNATIONAL)
|
|
- set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
|
|
- optimized boost_locale-${BOOST_POSTFIX}
|
|
- debug boost_locale-${BOOST_DEBUG_POSTFIX})
|
|
- endif()
|
|
- if(WITH_CYCLES_OSL)
|
|
- set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
|
|
- optimized boost_wave-${BOOST_POSTFIX}
|
|
- debug boost_wave-${BOOST_DEBUG_POSTFIX})
|
|
- endif()
|
|
- set(BOOST_LIBPATH ${BOOST}/lib)
|
|
- set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB -DBOOST_THREAD_USE_LIB ")
|
|
- endif()
|
|
-
|
|
- if(WITH_OPENIMAGEIO)
|
|
- set(OPENIMAGEIO ${LIBDIR}/openimageio)
|
|
- set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
|
|
- set(OPENIMAGEIO_LIBRARIES OpenImageIO)
|
|
- set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
|
|
- set(OPENIMAGEIO_DEFINITIONS "")
|
|
- set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe")
|
|
- endif()
|
|
-
|
|
- if(WITH_LLVM)
|
|
- set(LLVM_ROOT_DIR ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation")
|
|
- set(LLVM_LIBPATH ${LLVM_ROOT_DIR}/lib)
|
|
- # Explicitly set llvm lib order.
|
|
- #---- WARNING ON GCC ORDER OF LIBS IS IMPORTANT, DO NOT CHANGE! ---------
|
|
- set(LLVM_LIBRARY LLVMSelectionDAG LLVMCodeGen LLVMScalarOpts LLVMAnalysis LLVMArchive
|
|
- LLVMAsmParser LLVMAsmPrinter
|
|
- LLVMBitReader LLVMBitWriter
|
|
- LLVMDebugInfo LLVMExecutionEngine
|
|
- LLVMInstCombine LLVMInstrumentation
|
|
- LLVMInterpreter LLVMJIT
|
|
- LLVMLinker LLVMMC
|
|
- LLVMMCDisassembler LLVMMCJIT
|
|
- LLVMMCParser LLVMObject
|
|
- LLVMRuntimeDyld
|
|
- LLVMSupport
|
|
- LLVMTableGen LLVMTarget
|
|
- LLVMTransformUtils LLVMVectorize
|
|
- LLVMX86AsmParser LLVMX86AsmPrinter
|
|
- LLVMX86CodeGen LLVMX86Desc
|
|
- LLVMX86Disassembler LLVMX86Info
|
|
- LLVMX86Utils LLVMipa
|
|
- LLVMipo LLVMCore)
|
|
- # imagehelp is needed by LLVM 3.1 on MinGW, check lib\Support\Windows\Signals.inc
|
|
- list(APPEND PLATFORM_LINKLIBS -limagehlp)
|
|
- endif()
|
|
-
|
|
- if(WITH_OPENCOLORIO)
|
|
- set(OPENCOLORIO ${LIBDIR}/opencolorio)
|
|
- set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
|
|
- set(OPENCOLORIO_LIBRARIES OpenColorIO)
|
|
- set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib)
|
|
- set(OPENCOLORIO_DEFINITIONS)
|
|
- endif()
|
|
-
|
|
- if(WITH_SDL)
|
|
- set(SDL ${LIBDIR}/sdl)
|
|
- set(SDL_INCLUDE_DIR ${SDL}/include)
|
|
- set(SDL_LIBRARY SDL)
|
|
- set(SDL_LIBPATH ${SDL}/lib)
|
|
- endif()
|
|
-
|
|
- set(PLATFORM_LINKFLAGS "-Xlinker --stack=2097152")
|
|
-
|
|
- ## DISABLE - causes linking errors
|
|
- ## for re-distribution, so users dont need mingw installed
|
|
- # set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-libgcc -static-libstdc++")
|
|
-
|
|
- endif()
|
|
-
|
|
# Things common to both mingw and MSVC should go here
|
|
|
|
set(WINTAB_INC ${LIBDIR}/wintab/include)
|