Cleanup: use 2 space indentation for CMake

This commit is contained in:
Campbell Barton
2019-04-17 06:35:54 +02:00
parent 91a9cd0a94
commit 3076d95ba4
121 changed files with 8430 additions and 8430 deletions

View File

@@ -24,20 +24,20 @@
# build the libs and objects in it. # build the libs and objects in it.
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
if(NOT DEFINED WITH_IN_SOURCE_BUILD) if(NOT DEFINED WITH_IN_SOURCE_BUILD)
message(FATAL_ERROR message(FATAL_ERROR
"CMake generation for blender is not allowed within the source directory!" "CMake generation for blender is not allowed within the source directory!"
"\n Remove \"${CMAKE_SOURCE_DIR}/CMakeCache.txt\" and try again from another folder, e.g.:" "\n Remove \"${CMAKE_SOURCE_DIR}/CMakeCache.txt\" and try again from another folder, e.g.:"
"\n " "\n "
"\n rm CMakeCache.txt" "\n rm CMakeCache.txt"
"\n cd .." "\n cd .."
"\n mkdir cmake-make" "\n mkdir cmake-make"
"\n cd cmake-make" "\n cd cmake-make"
"\n cmake ../blender" "\n cmake ../blender"
"\n " "\n "
"\n Alternately define WITH_IN_SOURCE_BUILD to force this option (not recommended!)" "\n Alternately define WITH_IN_SOURCE_BUILD to force this option (not recommended!)"
) )
endif() endif()
endif() endif()
cmake_minimum_required(VERSION 3.5) cmake_minimum_required(VERSION 3.5)
@@ -46,13 +46,13 @@ cmake_minimum_required(VERSION 3.5)
# platforms which don't hare GLVND yet. Only do it if preference was not set # platforms which don't hare GLVND yet. Only do it if preference was not set
# externally. # externally.
if(NOT DEFINED OpenGL_GL_PREFERENCE) if(NOT DEFINED OpenGL_GL_PREFERENCE)
set(OpenGL_GL_PREFERENCE "LEGACY") set(OpenGL_GL_PREFERENCE "LEGACY")
endif() endif()
if(NOT EXECUTABLE_OUTPUT_PATH) if(NOT EXECUTABLE_OUTPUT_PATH)
set(FIRST_RUN TRUE) set(FIRST_RUN TRUE)
else() else()
set(FIRST_RUN FALSE) set(FIRST_RUN FALSE)
endif() endif()
# this starts out unset # this starts out unset
@@ -61,12 +61,12 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/build_files/cmake/platform")
# avoid having empty buildtype # avoid having empty buildtype
if(NOT DEFINED CMAKE_BUILD_TYPE_INIT) if(NOT DEFINED CMAKE_BUILD_TYPE_INIT)
set(CMAKE_BUILD_TYPE_INIT "Release") set(CMAKE_BUILD_TYPE_INIT "Release")
endif() endif()
# Omit superfluous "Up-to-date" messages. # Omit superfluous "Up-to-date" messages.
if(NOT DEFINED CMAKE_INSTALL_MESSAGE) if(NOT DEFINED CMAKE_INSTALL_MESSAGE)
set(CMAKE_INSTALL_MESSAGE "LAZY") set(CMAKE_INSTALL_MESSAGE "LAZY")
endif() endif()
# quiet output for Makefiles, 'make -s' helps too # quiet output for Makefiles, 'make -s' helps too
@@ -74,10 +74,10 @@ endif()
# global compile definitions since add_definitions() adds for all. # global compile definitions since add_definitions() adds for all.
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS
$<$<CONFIG:Debug>:DEBUG;_DEBUG> $<$<CONFIG:Debug>:DEBUG;_DEBUG>
$<$<CONFIG:Release>:NDEBUG> $<$<CONFIG:Release>:NDEBUG>
$<$<CONFIG:MinSizeRel>:NDEBUG> $<$<CONFIG:MinSizeRel>:NDEBUG>
$<$<CONFIG:RelWithDebInfo>:NDEBUG> $<$<CONFIG:RelWithDebInfo>:NDEBUG>
) )
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
@@ -118,9 +118,9 @@ enable_testing()
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE) set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE)
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE) set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE)
if(MSVC) if(MSVC)
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/$<CONFIG>/ CACHE INTERNAL "" FORCE) set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/$<CONFIG>/ CACHE INTERNAL "" FORCE)
else() else()
set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/ CACHE INTERNAL "" FORCE) set(TESTS_OUTPUT_DIR ${EXECUTABLE_OUTPUT_PATH}/tests/ CACHE INTERNAL "" FORCE)
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
@@ -137,55 +137,55 @@ set(_init_vars)
# initialize to ON # initialize to ON
macro(option_defaults_init) macro(option_defaults_init)
foreach(_var ${ARGV}) foreach(_var ${ARGV})
set(${_var} ON) set(${_var} ON)
list(APPEND _init_vars "${_var}") list(APPEND _init_vars "${_var}")
endforeach() endforeach()
unset(_var) unset(_var)
endmacro() endmacro()
# remove from namespace # remove from namespace
macro(option_defaults_clear) macro(option_defaults_clear)
foreach(_var ${_init_vars}) foreach(_var ${_init_vars})
unset(${_var}) unset(${_var})
endforeach() endforeach()
unset(_var) unset(_var)
unset(_init_vars) unset(_init_vars)
endmacro() endmacro()
# values to initialize WITH_**** # values to initialize WITH_****
option_defaults_init( option_defaults_init(
_init_BUILDINFO _init_BUILDINFO
_init_CODEC_FFMPEG _init_CODEC_FFMPEG
_init_CYCLES_OSL _init_CYCLES_OSL
_init_IMAGE_OPENEXR _init_IMAGE_OPENEXR
_init_INPUT_NDOF _init_INPUT_NDOF
_init_JACK _init_JACK
_init_OPENCOLLADA _init_OPENCOLLADA
_init_OPENCOLORIO _init_OPENCOLORIO
_init_SDL _init_SDL
_init_FFTW3 _init_FFTW3
_init_OPENSUBDIV _init_OPENSUBDIV
) )
# customize... # customize...
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
# some of these libraries are problematic on Linux # some of these libraries are problematic on Linux
# disable less important dependencies by default # disable less important dependencies by default
set(_init_CODEC_FFMPEG OFF) set(_init_CODEC_FFMPEG OFF)
set(_init_CYCLES_OSL OFF) set(_init_CYCLES_OSL OFF)
set(_init_IMAGE_OPENEXR OFF) set(_init_IMAGE_OPENEXR OFF)
set(_init_JACK OFF) set(_init_JACK OFF)
set(_init_OPENCOLLADA OFF) set(_init_OPENCOLLADA OFF)
set(_init_OPENCOLORIO OFF) set(_init_OPENCOLORIO OFF)
set(_init_SDL OFF) set(_init_SDL OFF)
set(_init_FFTW3 OFF) set(_init_FFTW3 OFF)
set(_init_OPENSUBDIV OFF) set(_init_OPENSUBDIV OFF)
elseif(WIN32) elseif(WIN32)
set(_init_JACK OFF) set(_init_JACK OFF)
elseif(APPLE) elseif(APPLE)
set(_init_JACK OFF) set(_init_JACK OFF)
endif() endif()
@@ -194,7 +194,7 @@ endif()
# First platform specific non-cached vars # First platform specific non-cached vars
if(UNIX AND NOT (APPLE OR HAIKU)) if(UNIX AND NOT (APPLE OR HAIKU))
set(WITH_X11 ON) set(WITH_X11 ON)
endif() endif()
# Blender internal features # Blender internal features
@@ -212,13 +212,13 @@ option(WITH_PYTHON_SAFETY "Enable internal API error checking to track invalid d
mark_as_advanced(WITH_PYTHON_SAFETY) mark_as_advanced(WITH_PYTHON_SAFETY)
option(WITH_PYTHON_MODULE "Enable building as a python module which runs without a user interface, like running regular blender in background mode (experimental, only enable for development), installs to PYTHON_SITE_PACKAGES (or CMAKE_INSTALL_PREFIX if WITH_INSTALL_PORTABLE is enabled)." OFF) option(WITH_PYTHON_MODULE "Enable building as a python module which runs without a user interface, like running regular blender in background mode (experimental, only enable for development), installs to PYTHON_SITE_PACKAGES (or CMAKE_INSTALL_PREFIX if WITH_INSTALL_PORTABLE is enabled)." OFF)
if(APPLE) if(APPLE)
option(WITH_PYTHON_FRAMEWORK "Enable building using the Python available in the framework (OSX only)" OFF) option(WITH_PYTHON_FRAMEWORK "Enable building using the Python available in the framework (OSX only)" OFF)
endif() endif()
option(WITH_BUILDINFO "Include extra build details (only disable for development & faster builds)" ${_init_BUILDINFO}) option(WITH_BUILDINFO "Include extra build details (only disable for development & faster builds)" ${_init_BUILDINFO})
if(${CMAKE_VERSION} VERSION_LESS 2.8.8) if(${CMAKE_VERSION} VERSION_LESS 2.8.8)
# add_library OBJECT arg unsupported # add_library OBJECT arg unsupported
set(WITH_BUILDINFO OFF) set(WITH_BUILDINFO OFF)
endif() endif()
set(BUILDINFO_OVERRIDE_DATE "" CACHE STRING "Use instead of the current date for reproducible builds (empty string disables this option)") set(BUILDINFO_OVERRIDE_DATE "" CACHE STRING "Use instead of the current date for reproducible builds (empty string disables this option)")
set(BUILDINFO_OVERRIDE_TIME "" CACHE STRING "Use instead of the current time for reproducible builds (empty string disables this option)") set(BUILDINFO_OVERRIDE_TIME "" CACHE STRING "Use instead of the current time for reproducible builds (empty string disables this option)")
@@ -253,7 +253,7 @@ option(WITH_GHOST_SDL "Enable building Blender against SDL for windowing rath
mark_as_advanced(WITH_GHOST_SDL) mark_as_advanced(WITH_GHOST_SDL)
if(WITH_X11) if(WITH_X11)
option(WITH_GHOST_XDND "Enable drag'n'drop support on X11 using XDND protocol" ON) option(WITH_GHOST_XDND "Enable drag'n'drop support on X11 using XDND protocol" ON)
endif() endif()
# Misc... # Misc...
@@ -266,34 +266,34 @@ mark_as_advanced(WITH_AUDASPACE)
mark_as_advanced(WITH_SYSTEM_AUDASPACE) mark_as_advanced(WITH_SYSTEM_AUDASPACE)
if(NOT WITH_AUDASPACE) if(NOT WITH_AUDASPACE)
set(WITH_SYSTEM_AUDASPACE OFF) set(WITH_SYSTEM_AUDASPACE OFF)
endif() endif()
option(WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" ON) option(WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" ON)
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
option(WITH_OPENMP_STATIC "Link OpenMP statically (only used by the release environment)" OFF) option(WITH_OPENMP_STATIC "Link OpenMP statically (only used by the release environment)" OFF)
mark_as_advanced(WITH_OPENMP_STATIC) mark_as_advanced(WITH_OPENMP_STATIC)
endif() endif()
if(WITH_X11) if(WITH_X11)
option(WITH_X11_XINPUT "Enable X11 Xinput (tablet support and unicode input)" ON) option(WITH_X11_XINPUT "Enable X11 Xinput (tablet support and unicode input)" ON)
option(WITH_X11_XF86VMODE "Enable X11 video mode switching" ON) option(WITH_X11_XF86VMODE "Enable X11 video mode switching" ON)
option(WITH_X11_XFIXES "Enable X11 XWayland cursor warping workaround" ON) option(WITH_X11_XFIXES "Enable X11 XWayland cursor warping workaround" ON)
option(WITH_X11_ALPHA "Enable X11 transparent background" ON) option(WITH_X11_ALPHA "Enable X11 transparent background" ON)
endif() endif()
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF) option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF)
option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON) option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON)
else() else()
# not an option for other OS's # not an option for other OS's
set(WITH_SYSTEM_GLEW OFF) set(WITH_SYSTEM_GLEW OFF)
set(WITH_SYSTEM_GLES OFF) set(WITH_SYSTEM_GLES OFF)
endif() endif()
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
option(WITH_SYSTEM_EIGEN3 "Use the systems Eigen3 library" OFF) option(WITH_SYSTEM_EIGEN3 "Use the systems Eigen3 library" OFF)
endif() endif()
@@ -332,17 +332,17 @@ option(WITH_SDL "Enable SDL for sound and joystick support" ${_init_SD
option(WITH_OPENAL "Enable OpenAL Support (http://www.openal.org)" ON) option(WITH_OPENAL "Enable OpenAL Support (http://www.openal.org)" ON)
option(WITH_JACK "Enable JACK Support (http://www.jackaudio.org)" ${_init_JACK}) option(WITH_JACK "Enable JACK Support (http://www.jackaudio.org)" ${_init_JACK})
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
option(WITH_JACK_DYNLOAD "Enable runtime dynamic JACK libraries loading" OFF) option(WITH_JACK_DYNLOAD "Enable runtime dynamic JACK libraries loading" OFF)
endif() endif()
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
option(WITH_SDL_DYNLOAD "Enable runtime dynamic SDL libraries loading" OFF) option(WITH_SDL_DYNLOAD "Enable runtime dynamic SDL libraries loading" OFF)
endif() endif()
# Compression # Compression
option(WITH_LZO "Enable fast LZO compression (used for pointcache)" ON) option(WITH_LZO "Enable fast LZO compression (used for pointcache)" ON)
option(WITH_LZMA "Enable best LZMA compression, (used for pointcache)" ON) option(WITH_LZMA "Enable best LZMA compression, (used for pointcache)" ON)
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
option(WITH_SYSTEM_LZO "Use the system LZO library" OFF) option(WITH_SYSTEM_LZO "Use the system LZO library" OFF)
endif() endif()
option(WITH_DRACO "Enable Draco mesh compression Python module (used for glTF)" ON) option(WITH_DRACO "Enable Draco mesh compression Python module (used for glTF)" ON)
@@ -362,65 +362,65 @@ option(WITH_FREESTYLE "Enable Freestyle (advanced edges rendering)" ON)
# Misc # Misc
if(WIN32) if(WIN32)
option(WITH_INPUT_IME "Enable Input Method Editor (IME) for complex Asian character input" ON) option(WITH_INPUT_IME "Enable Input Method Editor (IME) for complex Asian character input" ON)
endif() endif()
option(WITH_INPUT_NDOF "Enable NDOF input devices (SpaceNavigator and friends)" ${_init_INPUT_NDOF}) option(WITH_INPUT_NDOF "Enable NDOF input devices (SpaceNavigator and friends)" ${_init_INPUT_NDOF})
option(WITH_RAYOPTIMIZATION "Enable use of SIMD (SSE) optimizations for the raytracer" ON) option(WITH_RAYOPTIMIZATION "Enable use of SIMD (SSE) optimizations for the raytracer" ON)
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
option(WITH_INSTALL_PORTABLE "Install redistributeable runtime, otherwise install into CMAKE_INSTALL_PREFIX" ON) option(WITH_INSTALL_PORTABLE "Install redistributeable runtime, otherwise install into CMAKE_INSTALL_PREFIX" ON)
option(WITH_STATIC_LIBS "Try to link with static libraries, as much as possible, to make blender more portable across distributions" OFF) option(WITH_STATIC_LIBS "Try to link with static libraries, as much as possible, to make blender more portable across distributions" OFF)
if(WITH_STATIC_LIBS) if(WITH_STATIC_LIBS)
option(WITH_BOOST_ICU "Boost uses ICU library (required for linking with static Boost built with libicu)." OFF) option(WITH_BOOST_ICU "Boost uses ICU library (required for linking with static Boost built with libicu)." OFF)
mark_as_advanced(WITH_BOOST_ICU) mark_as_advanced(WITH_BOOST_ICU)
endif() endif()
endif() endif()
option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON) option(WITH_PYTHON_INSTALL "Copy system python into the blender install folder" ON)
if(WIN32 OR APPLE) if(WIN32 OR APPLE)
# Windows and macOS have this bundled with Python libraries. # Windows and macOS have this bundled with Python libraries.
elseif(WITH_PYTHON_INSTALL OR (WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE)) elseif(WITH_PYTHON_INSTALL OR (WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE))
set(PYTHON_NUMPY_PATH "" CACHE PATH "Path to python site-packages or dist-packages containing 'numpy' module") set(PYTHON_NUMPY_PATH "" CACHE PATH "Path to python site-packages or dist-packages containing 'numpy' module")
mark_as_advanced(PYTHON_NUMPY_PATH) mark_as_advanced(PYTHON_NUMPY_PATH)
set(PYTHON_NUMPY_INCLUDE_DIRS ${PYTHON_NUMPY_PATH}/numpy/core/include CACHE PATH "Path to the include directory of the numpy module") set(PYTHON_NUMPY_INCLUDE_DIRS ${PYTHON_NUMPY_PATH}/numpy/core/include CACHE PATH "Path to the include directory of the numpy module")
mark_as_advanced(PYTHON_NUMPY_INCLUDE_DIRS) mark_as_advanced(PYTHON_NUMPY_INCLUDE_DIRS)
endif() endif()
if(WITH_PYTHON_INSTALL) if(WITH_PYTHON_INSTALL)
option(WITH_PYTHON_INSTALL_NUMPY "Copy system numpy into the blender install folder" ON) option(WITH_PYTHON_INSTALL_NUMPY "Copy system numpy into the blender install folder" ON)
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
option(WITH_PYTHON_INSTALL_REQUESTS "Copy system requests into the blender install folder" ON) option(WITH_PYTHON_INSTALL_REQUESTS "Copy system requests into the blender install folder" ON)
set(PYTHON_REQUESTS_PATH "" CACHE PATH "Path to python site-packages or dist-packages containing 'requests' module") set(PYTHON_REQUESTS_PATH "" CACHE PATH "Path to python site-packages or dist-packages containing 'requests' module")
mark_as_advanced(PYTHON_REQUESTS_PATH) mark_as_advanced(PYTHON_REQUESTS_PATH)
endif() endif()
endif() endif()
option(WITH_CPU_SSE "Enable SIMD instruction if they're detected on the host machine" ON) option(WITH_CPU_SSE "Enable SIMD instruction if they're detected on the host machine" ON)
mark_as_advanced(WITH_CPU_SSE) mark_as_advanced(WITH_CPU_SSE)
# Cycles # Cycles
option(WITH_CYCLES "Enable Cycles Render Engine" ON) option(WITH_CYCLES "Enable Cycles Render Engine" ON)
option(WITH_CYCLES_STANDALONE "Build Cycles standalone application" OFF) option(WITH_CYCLES_STANDALONE "Build Cycles standalone application" OFF)
option(WITH_CYCLES_STANDALONE_GUI "Build Cycles standalone with GUI" OFF) option(WITH_CYCLES_STANDALONE_GUI "Build Cycles standalone with GUI" OFF)
option(WITH_CYCLES_OSL "Build Cycles with OSL support" ${_init_CYCLES_OSL}) option(WITH_CYCLES_OSL "Build Cycles with OSL support" ${_init_CYCLES_OSL})
option(WITH_CYCLES_EMBREE "Build Cycles with Embree support" OFF) option(WITH_CYCLES_EMBREE "Build Cycles with Embree support" OFF)
option(WITH_CYCLES_CUDA_BINARIES "Build Cycles CUDA binaries" OFF) option(WITH_CYCLES_CUDA_BINARIES "Build Cycles CUDA binaries" OFF)
option(WITH_CYCLES_CUBIN_COMPILER "Build cubins with nvrtc based compiler instead of nvcc" OFF) option(WITH_CYCLES_CUBIN_COMPILER "Build cubins with nvrtc based compiler instead of nvcc" OFF)
option(WITH_CYCLES_CUDA_BUILD_SERIAL "Build cubins one after another (useful on machines with limited RAM)" OFF) option(WITH_CYCLES_CUDA_BUILD_SERIAL "Build cubins one after another (useful on machines with limited RAM)" OFF)
mark_as_advanced(WITH_CYCLES_CUDA_BUILD_SERIAL) mark_as_advanced(WITH_CYCLES_CUDA_BUILD_SERIAL)
set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 CACHE STRING "CUDA architectures to build binaries for") set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 CACHE STRING "CUDA architectures to build binaries for")
mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH) mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)
unset(PLATFORM_DEFAULT) unset(PLATFORM_DEFAULT)
option(WITH_CYCLES_LOGGING "Build Cycles with logging support" ON) option(WITH_CYCLES_LOGGING "Build Cycles with logging support" ON)
option(WITH_CYCLES_DEBUG "Build Cycles with extra debug capabilities" OFF) option(WITH_CYCLES_DEBUG "Build Cycles with extra debug capabilities" OFF)
option(WITH_CYCLES_NATIVE_ONLY "Build Cycles with native kernel only (which fits current CPU, use for development only)" OFF) option(WITH_CYCLES_NATIVE_ONLY "Build Cycles with native kernel only (which fits current CPU, use for development only)" OFF)
mark_as_advanced(WITH_CYCLES_CUBIN_COMPILER) mark_as_advanced(WITH_CYCLES_CUBIN_COMPILER)
mark_as_advanced(WITH_CYCLES_LOGGING) mark_as_advanced(WITH_CYCLES_LOGGING)
mark_as_advanced(WITH_CYCLES_DEBUG) mark_as_advanced(WITH_CYCLES_DEBUG)
mark_as_advanced(WITH_CYCLES_NATIVE_ONLY) mark_as_advanced(WITH_CYCLES_NATIVE_ONLY)
option(WITH_CYCLES_DEVICE_CUDA "Enable Cycles CUDA compute support" ON) option(WITH_CYCLES_DEVICE_CUDA "Enable Cycles CUDA compute support" ON)
option(WITH_CYCLES_DEVICE_OPENCL "Enable Cycles OpenCL compute support" ON) option(WITH_CYCLES_DEVICE_OPENCL "Enable Cycles OpenCL compute support" ON)
option(WITH_CYCLES_NETWORK "Enable Cycles compute over network support (EXPERIMENTAL and unfinished)" OFF) option(WITH_CYCLES_NETWORK "Enable Cycles compute over network support (EXPERIMENTAL and unfinished)" OFF)
mark_as_advanced(WITH_CYCLES_DEVICE_CUDA) mark_as_advanced(WITH_CYCLES_DEVICE_CUDA)
mark_as_advanced(WITH_CYCLES_DEVICE_OPENCL) mark_as_advanced(WITH_CYCLES_DEVICE_OPENCL)
mark_as_advanced(WITH_CYCLES_NETWORK) mark_as_advanced(WITH_CYCLES_NETWORK)
@@ -429,11 +429,11 @@ option(WITH_CUDA_DYNLOAD "Dynamically load CUDA libraries at runtime" ON)
mark_as_advanced(WITH_CUDA_DYNLOAD) mark_as_advanced(WITH_CUDA_DYNLOAD)
# LLVM # LLVM
option(WITH_LLVM "Use LLVM" OFF) option(WITH_LLVM "Use LLVM" OFF)
if(APPLE) if(APPLE)
option(LLVM_STATIC "Link with LLVM static libraries" ON) # we prefer static llvm build on Apple, dyn build possible though option(LLVM_STATIC "Link with LLVM static libraries" ON) # we prefer static llvm build on Apple, dyn build possible though
else() else()
option(LLVM_STATIC "Link with LLVM static libraries" OFF) option(LLVM_STATIC "Link with LLVM static libraries" OFF)
endif() endif()
mark_as_advanced(LLVM_STATIC) mark_as_advanced(LLVM_STATIC)
@@ -452,7 +452,7 @@ mark_as_advanced(WITH_CXX_GUARDEDALLOC)
option(WITH_ASSERT_ABORT "Call abort() when raising an assertion through BLI_assert()" ON) option(WITH_ASSERT_ABORT "Call abort() when raising an assertion through BLI_assert()" ON)
mark_as_advanced(WITH_ASSERT_ABORT) mark_as_advanced(WITH_ASSERT_ABORT)
option(WITH_BOOST "Enable features depending on boost" ON) option(WITH_BOOST "Enable features depending on boost" ON)
# Unit testsing # Unit testsing
option(WITH_GTESTS "Enable GTest unit testing" OFF) option(WITH_GTESTS "Enable GTest unit testing" OFF)
@@ -462,7 +462,7 @@ option(WITH_OPENGL_DRAW_TESTS "Enable OpenGL UI drawing related unit testing (Ex
# Documentation # Documentation
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
option(WITH_DOC_MANPAGE "Create a manual page (Unix manpage)" OFF) option(WITH_DOC_MANPAGE "Create a manual page (Unix manpage)" OFF)
endif() endif()
@@ -474,39 +474,39 @@ option(WITH_GL_EGL "Use the EGL OpenGL system library instead of th
option(WITH_GL_PROFILE_ES20 "Support using OpenGL ES 2.0. (thru either EGL or the AGL/WGL/XGL 'es20' profile)" OFF) option(WITH_GL_PROFILE_ES20 "Support using OpenGL ES 2.0. (thru either EGL or the AGL/WGL/XGL 'es20' profile)" OFF)
mark_as_advanced( mark_as_advanced(
WITH_OPENGL WITH_OPENGL
WITH_GLEW_ES WITH_GLEW_ES
WITH_GL_EGL WITH_GL_EGL
WITH_GL_PROFILE_ES20 WITH_GL_PROFILE_ES20
) )
if(WIN32) if(WIN32)
option(WITH_GL_ANGLE "Link with the ANGLE library, an OpenGL ES 2.0 implementation based on Direct3D, instead of the system OpenGL library." OFF) option(WITH_GL_ANGLE "Link with the ANGLE library, an OpenGL ES 2.0 implementation based on Direct3D, instead of the system OpenGL library." OFF)
mark_as_advanced(WITH_GL_ANGLE) mark_as_advanced(WITH_GL_ANGLE)
endif() endif()
if(WITH_GLEW_ES AND WITH_SYSTEM_GLEW) if(WITH_GLEW_ES AND WITH_SYSTEM_GLEW)
message(WARNING Ignoring WITH_SYSTEM_GLEW and using WITH_GLEW_ES) message(WARNING Ignoring WITH_SYSTEM_GLEW and using WITH_GLEW_ES)
set(WITH_SYSTEM_GLEW OFF) set(WITH_SYSTEM_GLEW OFF)
endif() endif()
if(WIN32) if(WIN32)
getDefaultWindowsPrefixBase(CMAKE_GENERIC_PROGRAM_FILES) getDefaultWindowsPrefixBase(CMAKE_GENERIC_PROGRAM_FILES)
set(CPACK_INSTALL_PREFIX ${CMAKE_GENERIC_PROGRAM_FILES}/${}) set(CPACK_INSTALL_PREFIX ${CMAKE_GENERIC_PROGRAM_FILES}/${})
endif() endif()
# Compiler toolchain # Compiler toolchain
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
option(WITH_LINKER_GOLD "Use ld.gold linker which is usually faster than ld.bfd" ON) option(WITH_LINKER_GOLD "Use ld.gold linker which is usually faster than ld.bfd" ON)
mark_as_advanced(WITH_LINKER_GOLD) mark_as_advanced(WITH_LINKER_GOLD)
endif() endif()
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang") if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
option(WITH_COMPILER_ASAN "Build and link against address sanitizer (only for Debug & RelWithDebInfo targets)." OFF) option(WITH_COMPILER_ASAN "Build and link against address sanitizer (only for Debug & RelWithDebInfo targets)." OFF)
mark_as_advanced(WITH_COMPILER_ASAN) mark_as_advanced(WITH_COMPILER_ASAN)
if(WITH_COMPILER_ASAN) if(WITH_COMPILER_ASAN)
set(_asan_defaults "\ set(_asan_defaults "\
-fsanitize=address \ -fsanitize=address \
-fsanitize=bool \ -fsanitize=bool \
-fsanitize=bounds \ -fsanitize=bounds \
@@ -521,27 +521,27 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
-fno-sanitize=alignment \ -fno-sanitize=alignment \
") ")
if(NOT MSVC) # not all sanitizers are supported with clang-cl, these two however are very vocal about it if(NOT MSVC) # not all sanitizers are supported with clang-cl, these two however are very vocal about it
set(_asan_defaults "${_asan_defaults} -fsanitize=leak -fsanitize=object-size" ) set(_asan_defaults "${_asan_defaults} -fsanitize=leak -fsanitize=object-size" )
endif() endif()
set(COMPILER_ASAN_CFLAGS "${_asan_defaults}" CACHE STRING "C flags for address sanitizer") set(COMPILER_ASAN_CFLAGS "${_asan_defaults}" CACHE STRING "C flags for address sanitizer")
mark_as_advanced(COMPILER_ASAN_CFLAGS) mark_as_advanced(COMPILER_ASAN_CFLAGS)
set(COMPILER_ASAN_CXXFLAGS "${_asan_defaults}" CACHE STRING "C++ flags for address sanitizer") set(COMPILER_ASAN_CXXFLAGS "${_asan_defaults}" CACHE STRING "C++ flags for address sanitizer")
mark_as_advanced(COMPILER_ASAN_CXXFLAGS) mark_as_advanced(COMPILER_ASAN_CXXFLAGS)
unset(_asan_defaults) unset(_asan_defaults)
if(NOT MSVC) if(NOT MSVC)
find_library(COMPILER_ASAN_LIBRARY asan ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}) find_library(COMPILER_ASAN_LIBRARY asan ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES})
else() else()
find_library( COMPILER_ASAN_LIBRARY NAMES clang_rt.asan-x86_64 find_library( COMPILER_ASAN_LIBRARY NAMES clang_rt.asan-x86_64
PATHS PATHS
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/7.0.0/lib/windows [HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/7.0.0/lib/windows
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/6.0.0/lib/windows [HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/6.0.0/lib/windows
) )
endif() endif()
mark_as_advanced(COMPILER_ASAN_LIBRARY) mark_as_advanced(COMPILER_ASAN_LIBRARY)
endif() endif()
endif() endif()
# Dependency graph # Dependency graph
@@ -549,24 +549,24 @@ option(WITH_LEGACY_DEPSGRAPH "Build Blender with legacy dependency graph" ON)
mark_as_advanced(WITH_LEGACY_DEPSGRAPH) mark_as_advanced(WITH_LEGACY_DEPSGRAPH)
if(WIN32) if(WIN32)
# Use hardcoded paths or find_package to find externals # Use hardcoded paths or find_package to find externals
option(WITH_WINDOWS_FIND_MODULES "Use find_package to locate libraries" OFF) option(WITH_WINDOWS_FIND_MODULES "Use find_package to locate libraries" OFF)
mark_as_advanced(WITH_WINDOWS_FIND_MODULES) mark_as_advanced(WITH_WINDOWS_FIND_MODULES)
option(WITH_WINDOWS_CODESIGN "Use signtool to sign the final binary." OFF) option(WITH_WINDOWS_CODESIGN "Use signtool to sign the final binary." OFF)
mark_as_advanced(WITH_WINDOWS_CODESIGN) mark_as_advanced(WITH_WINDOWS_CODESIGN)
set(WINDOWS_CODESIGN_PFX CACHE FILEPATH "Path to pfx file to use for codesigning.") set(WINDOWS_CODESIGN_PFX CACHE FILEPATH "Path to pfx file to use for codesigning.")
mark_as_advanced(WINDOWS_CODESIGN_PFX) mark_as_advanced(WINDOWS_CODESIGN_PFX)
set(WINDOWS_CODESIGN_PFX_PASSWORD CACHE STRING "password for pfx file used for codesigning.") set(WINDOWS_CODESIGN_PFX_PASSWORD CACHE STRING "password for pfx file used for codesigning.")
mark_as_advanced(WINDOWS_CODESIGN_PFX_PASSWORD) mark_as_advanced(WINDOWS_CODESIGN_PFX_PASSWORD)
option(WINDOWS_USE_VISUAL_STUDIO_FOLDERS "Organize the visual studio project according to source folders." ON) option(WINDOWS_USE_VISUAL_STUDIO_FOLDERS "Organize the visual studio project according to source folders." ON)
mark_as_advanced(WINDOWS_USE_VISUAL_STUDIO_FOLDERS) mark_as_advanced(WINDOWS_USE_VISUAL_STUDIO_FOLDERS)
option(WINDOWS_PYTHON_DEBUG "Include the files needed for debugging python scripts with visual studio 2017+." OFF) option(WINDOWS_PYTHON_DEBUG "Include the files needed for debugging python scripts with visual studio 2017+." OFF)
mark_as_advanced(WINDOWS_PYTHON_DEBUG) mark_as_advanced(WINDOWS_PYTHON_DEBUG)
endif() endif()
# avoid using again # avoid using again
@@ -579,15 +579,15 @@ option_defaults_clear()
# By default we want to install to the directory we are compiling our executables # By default we want to install to the directory we are compiling our executables
# unless specified otherwise, which we currently do not allow # unless specified otherwise, which we currently do not allow
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
if(WIN32) if(WIN32)
set(CMAKE_INSTALL_PREFIX ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE} CACHE PATH "default install path" FORCE) set(CMAKE_INSTALL_PREFIX ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE} CACHE PATH "default install path" FORCE)
elseif(APPLE) elseif(APPLE)
set(CMAKE_INSTALL_PREFIX ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE} CACHE PATH "default install path" FORCE) set(CMAKE_INSTALL_PREFIX ${EXECUTABLE_OUTPUT_PATH}/\${BUILD_TYPE} CACHE PATH "default install path" FORCE)
else() else()
if(WITH_INSTALL_PORTABLE) if(WITH_INSTALL_PORTABLE)
set(CMAKE_INSTALL_PREFIX ${EXECUTABLE_OUTPUT_PATH} CACHE PATH "default install path" FORCE) set(CMAKE_INSTALL_PREFIX ${EXECUTABLE_OUTPUT_PATH} CACHE PATH "default install path" FORCE)
endif() endif()
endif() endif()
endif() endif()
@@ -595,7 +595,7 @@ endif()
# Apple # Apple
if(APPLE) if(APPLE)
include(platform_apple_xcode) include(platform_apple_xcode)
endif() endif()
@@ -603,140 +603,140 @@ endif()
# Check for conflicting/unsupported configurations # Check for conflicting/unsupported configurations
if(NOT WITH_BLENDER AND NOT WITH_CYCLES_STANDALONE) if(NOT WITH_BLENDER AND NOT WITH_CYCLES_STANDALONE)
message(FATAL_ERROR message(FATAL_ERROR
"At least one of WITH_BLENDER or WITH_CYCLES_STANDALONE " "At least one of WITH_BLENDER or WITH_CYCLES_STANDALONE "
"must be enabled, nothing to do!" "must be enabled, nothing to do!"
) )
endif() endif()
if(NOT WITH_AUDASPACE) if(NOT WITH_AUDASPACE)
if(WITH_OPENAL) if(WITH_OPENAL)
message(WARNING "WITH_OPENAL requires WITH_AUDASPACE which is disabled") message(WARNING "WITH_OPENAL requires WITH_AUDASPACE which is disabled")
set(WITH_OPENAL OFF) set(WITH_OPENAL OFF)
endif() endif()
if(WITH_JACK) if(WITH_JACK)
message(WARNING "WITH_JACK requires WITH_AUDASPACE which is disabled") message(WARNING "WITH_JACK requires WITH_AUDASPACE which is disabled")
set(WITH_JACK OFF) set(WITH_JACK OFF)
endif() endif()
endif() endif()
if(NOT WITH_SDL AND WITH_GHOST_SDL) if(NOT WITH_SDL AND WITH_GHOST_SDL)
message(FATAL_ERROR "WITH_GHOST_SDL requires WITH_SDL") message(FATAL_ERROR "WITH_GHOST_SDL requires WITH_SDL")
endif() endif()
# python module, needs some different options # python module, needs some different options
if(WITH_PYTHON_MODULE AND WITH_PYTHON_INSTALL) if(WITH_PYTHON_MODULE AND WITH_PYTHON_INSTALL)
message(FATAL_ERROR "WITH_PYTHON_MODULE requires WITH_PYTHON_INSTALL to be OFF") message(FATAL_ERROR "WITH_PYTHON_MODULE requires WITH_PYTHON_INSTALL to be OFF")
endif() endif()
# may as well build python module without a UI # may as well build python module without a UI
if(WITH_PYTHON_MODULE) if(WITH_PYTHON_MODULE)
set(WITH_HEADLESS ON) set(WITH_HEADLESS ON)
endif() endif()
if(NOT WITH_PYTHON) if(NOT WITH_PYTHON)
set(WITH_CYCLES OFF) set(WITH_CYCLES OFF)
set(WITH_DRACO OFF) set(WITH_DRACO OFF)
endif() endif()
if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL) if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL)
message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling WITH_DRACO for now") message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling WITH_DRACO for now")
set(WITH_DRACO OFF) set(WITH_DRACO OFF)
endif() endif()
# enable boost for cycles, audaspace or i18n # enable boost for cycles, audaspace or i18n
# otherwise if the user disabled # otherwise if the user disabled
if(NOT WITH_BOOST) if(NOT WITH_BOOST)
# Explicitly disabled. so disable all deps. # Explicitly disabled. so disable all deps.
macro(set_and_warn macro(set_and_warn
_setting _val) _setting _val)
if(${${_setting}}) if(${${_setting}})
message(STATUS "'WITH_BOOST' is disabled: forcing 'set(${_setting} ${_val})'") message(STATUS "'WITH_BOOST' is disabled: forcing 'set(${_setting} ${_val})'")
endif() endif()
set(${_setting} ${_val}) set(${_setting} ${_val})
endmacro() endmacro()
set_and_warn(WITH_CYCLES OFF) set_and_warn(WITH_CYCLES OFF)
set_and_warn(WITH_INTERNATIONAL OFF) set_and_warn(WITH_INTERNATIONAL OFF)
set_and_warn(WITH_OPENVDB OFF) set_and_warn(WITH_OPENVDB OFF)
set_and_warn(WITH_OPENCOLORIO OFF) set_and_warn(WITH_OPENCOLORIO OFF)
elseif(WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR elseif(WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
WITH_OPENVDB OR WITH_OPENCOLORIO) WITH_OPENVDB OR WITH_OPENCOLORIO)
# Keep enabled # Keep enabled
else() else()
# Disable boost if not needed. # Disable boost if not needed.
set(WITH_BOOST OFF) set(WITH_BOOST OFF)
endif() endif()
# auto enable openimageio for cycles # auto enable openimageio for cycles
if(WITH_CYCLES) if(WITH_CYCLES)
set(WITH_OPENIMAGEIO ON) set(WITH_OPENIMAGEIO ON)
# auto enable llvm for cycles_osl # auto enable llvm for cycles_osl
if(WITH_CYCLES_OSL) if(WITH_CYCLES_OSL)
set(WITH_LLVM ON CACHE BOOL "" FORCE) set(WITH_LLVM ON CACHE BOOL "" FORCE)
endif() endif()
else() else()
set(WITH_CYCLES_OSL OFF) set(WITH_CYCLES_OSL OFF)
endif() endif()
# auto enable openimageio linking dependencies # auto enable openimageio linking dependencies
if(WITH_OPENIMAGEIO) if(WITH_OPENIMAGEIO)
set(WITH_IMAGE_OPENEXR ON) set(WITH_IMAGE_OPENEXR ON)
set(WITH_IMAGE_TIFF ON) set(WITH_IMAGE_TIFF ON)
endif() endif()
# auto enable alembic linking dependencies # auto enable alembic linking dependencies
if(WITH_ALEMBIC) if(WITH_ALEMBIC)
set(WITH_IMAGE_OPENEXR ON) set(WITH_IMAGE_OPENEXR ON)
endif() endif()
# don't store paths to libs for portable distribution # don't store paths to libs for portable distribution
if(WITH_INSTALL_PORTABLE) if(WITH_INSTALL_PORTABLE)
set(CMAKE_SKIP_BUILD_RPATH TRUE) set(CMAKE_SKIP_BUILD_RPATH TRUE)
endif() endif()
if(WITH_GHOST_SDL OR WITH_HEADLESS) if(WITH_GHOST_SDL OR WITH_HEADLESS)
set(WITH_X11 OFF) set(WITH_X11 OFF)
set(WITH_X11_XINPUT OFF) set(WITH_X11_XINPUT OFF)
set(WITH_X11_XF86VMODE OFF) set(WITH_X11_XF86VMODE OFF)
set(WITH_X11_XFIXES OFF) set(WITH_X11_XFIXES OFF)
set(WITH_X11_ALPHA OFF) set(WITH_X11_ALPHA OFF)
set(WITH_GHOST_XDND OFF) set(WITH_GHOST_XDND OFF)
set(WITH_INPUT_IME OFF) set(WITH_INPUT_IME OFF)
endif() endif()
if(WITH_CPU_SSE) if(WITH_CPU_SSE)
TEST_SSE_SUPPORT(COMPILER_SSE_FLAG COMPILER_SSE2_FLAG) TEST_SSE_SUPPORT(COMPILER_SSE_FLAG COMPILER_SSE2_FLAG)
else() else()
message(STATUS "SSE and SSE2 optimizations are DISABLED!") message(STATUS "SSE and SSE2 optimizations are DISABLED!")
set(COMPILER_SSE_FLAG) set(COMPILER_SSE_FLAG)
set(COMPILER_SSE2_FLAG) set(COMPILER_SSE2_FLAG)
endif() endif()
if(WITH_BUILDINFO) if(WITH_BUILDINFO)
find_package(Git) find_package(Git)
if(NOT GIT_FOUND) if(NOT GIT_FOUND)
message(WARNING "Git was not found, disabling WITH_BUILDINFO") message(WARNING "Git was not found, disabling WITH_BUILDINFO")
set(WITH_BUILDINFO OFF) set(WITH_BUILDINFO OFF)
endif() endif()
endif() endif()
if(WITH_AUDASPACE) if(WITH_AUDASPACE)
if(NOT WITH_SYSTEM_AUDASPACE) if(NOT WITH_SYSTEM_AUDASPACE)
set(AUDASPACE_C_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/extern/audaspace/bindings/C" "${CMAKE_BINARY_DIR}/extern/audaspace") set(AUDASPACE_C_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/extern/audaspace/bindings/C" "${CMAKE_BINARY_DIR}/extern/audaspace")
set(AUDASPACE_PY_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/extern/audaspace/bindings") set(AUDASPACE_PY_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/extern/audaspace/bindings")
endif() endif()
endif() endif()
# Auto-enable CUDA dynload if toolkit is not found. # Auto-enable CUDA dynload if toolkit is not found.
if(NOT WITH_CUDA_DYNLOAD) if(NOT WITH_CUDA_DYNLOAD)
find_package(CUDA) find_package(CUDA)
if (NOT CUDA_FOUND) if (NOT CUDA_FOUND)
message("CUDA toolkit not found, using dynamic runtime loading of libraries instead") message("CUDA toolkit not found, using dynamic runtime loading of libraries instead")
set(WITH_CUDA_DYNLOAD ON) set(WITH_CUDA_DYNLOAD ON)
endif() endif()
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
@@ -747,35 +747,35 @@ endif()
# since uninitialized git submodules will give blank dirs # since uninitialized git submodules will give blank dirs
if(WITH_INTERNATIONAL) if(WITH_INTERNATIONAL)
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/release/datafiles/locale/languages") if(NOT EXISTS "${CMAKE_SOURCE_DIR}/release/datafiles/locale/languages")
message(WARNING message(WARNING
"Translation path '${CMAKE_SOURCE_DIR}/release/datafiles/locale' is missing, " "Translation path '${CMAKE_SOURCE_DIR}/release/datafiles/locale' is missing, "
"This is a 'git submodule', which are known not to work with bridges to other version " "This is a 'git submodule', which are known not to work with bridges to other version "
"control systems, disabling 'WITH_INTERNATIONAL'." "control systems, disabling 'WITH_INTERNATIONAL'."
) )
set(WITH_INTERNATIONAL OFF) set(WITH_INTERNATIONAL OFF)
endif() endif()
endif() endif()
if(WITH_PYTHON) if(WITH_PYTHON)
# While we have this as an '#error' in 'bpy_capi_utils.h', # While we have this as an '#error' in 'bpy_capi_utils.h',
# upgrading Python tends to cause confusion for users who build. # upgrading Python tends to cause confusion for users who build.
# Give the error message early to make this more obvious. # Give the error message early to make this more obvious.
# #
# Do this before main 'platform_*' checks, # Do this before main 'platform_*' checks,
# because UNIX will search for the old Python paths which may not exist. # because UNIX will search for the old Python paths which may not exist.
# giving errors about missing paths before this case is met. # giving errors about missing paths before this case is met.
if(DEFINED PYTHON_VERSION AND "${PYTHON_VERSION}" VERSION_LESS "3.7") if(DEFINED PYTHON_VERSION AND "${PYTHON_VERSION}" VERSION_LESS "3.7")
message(FATAL_ERROR "At least Python 3.7 is required to build") message(FATAL_ERROR "At least Python 3.7 is required to build")
endif() endif()
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/release/scripts/addons/modules") if(NOT EXISTS "${CMAKE_SOURCE_DIR}/release/scripts/addons/modules")
message(WARNING message(WARNING
"Addons path '${CMAKE_SOURCE_DIR}/release/scripts/addons' is missing, " "Addons path '${CMAKE_SOURCE_DIR}/release/scripts/addons' is missing, "
"This is a 'git submodule', which are known not to work with bridges to other version " "This is a 'git submodule', which are known not to work with bridges to other version "
"control systems: * CONTINUING WITHOUT ADDONS *" "control systems: * CONTINUING WITHOUT ADDONS *"
) )
endif() endif()
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
@@ -809,68 +809,68 @@ set(PLATFORM_LINKFLAGS "")
set(PLATFORM_LINKFLAGS_DEBUG "") set(PLATFORM_LINKFLAGS_DEBUG "")
if (NOT CMAKE_BUILD_TYPE MATCHES "Release") if (NOT CMAKE_BUILD_TYPE MATCHES "Release")
if(WITH_COMPILER_ASAN) if(WITH_COMPILER_ASAN)
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMPILER_ASAN_CFLAGS}") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COMPILER_ASAN_CFLAGS}")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CFLAGS}") set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CFLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMPILER_ASAN_CXXFLAGS}") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMPILER_ASAN_CXXFLAGS}")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CXXFLAGS}") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CXXFLAGS}")
if(MSVC) if(MSVC)
set(COMPILER_ASAN_LINKER_FLAGS "/FUNCTIONPADMIN:6") set(COMPILER_ASAN_LINKER_FLAGS "/FUNCTIONPADMIN:6")
endif() endif()
set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS};${COMPILER_ASAN_LIBRARY}") set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS};${COMPILER_ASAN_LIBRARY}")
set(PLATFORM_LINKFLAGS "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}") set(PLATFORM_LINKFLAGS "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
set(PLATFORM_LINKFLAGS_DEBUG "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}") set(PLATFORM_LINKFLAGS_DEBUG "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
endif() endif()
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
#Platform specifics #Platform specifics
if(WITH_X11) if(WITH_X11)
find_package(X11 REQUIRED) find_package(X11 REQUIRED)
find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${X11_INC_SEARCH_PATH}) find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${X11_INC_SEARCH_PATH})
mark_as_advanced(X11_XF86keysym_INCLUDE_PATH) mark_as_advanced(X11_XF86keysym_INCLUDE_PATH)
list(APPEND PLATFORM_LINKLIBS ${X11_X11_LIB}) list(APPEND PLATFORM_LINKLIBS ${X11_X11_LIB})
if(WITH_X11_XINPUT) if(WITH_X11_XINPUT)
if(X11_Xinput_LIB) if(X11_Xinput_LIB)
list(APPEND PLATFORM_LINKLIBS ${X11_Xinput_LIB}) list(APPEND PLATFORM_LINKLIBS ${X11_Xinput_LIB})
else() else()
set(WITH_X11_XINPUT OFF) set(WITH_X11_XINPUT OFF)
endif() endif()
endif() endif()
if(WITH_X11_XF86VMODE) if(WITH_X11_XF86VMODE)
# XXX, why doesn't cmake make this available? # XXX, why doesn't cmake make this available?
find_library(X11_Xxf86vmode_LIB Xxf86vm ${X11_LIB_SEARCH_PATH}) find_library(X11_Xxf86vmode_LIB Xxf86vm ${X11_LIB_SEARCH_PATH})
mark_as_advanced(X11_Xxf86vmode_LIB) mark_as_advanced(X11_Xxf86vmode_LIB)
if(X11_Xxf86vmode_LIB) if(X11_Xxf86vmode_LIB)
list(APPEND PLATFORM_LINKLIBS ${X11_Xxf86vmode_LIB}) list(APPEND PLATFORM_LINKLIBS ${X11_Xxf86vmode_LIB})
else() else()
set(WITH_X11_XF86VMODE OFF) set(WITH_X11_XF86VMODE OFF)
endif() endif()
endif() endif()
if(WITH_X11_XFIXES) if(WITH_X11_XFIXES)
if(X11_Xfixes_LIB) if(X11_Xfixes_LIB)
list(APPEND PLATFORM_LINKLIBS ${X11_Xfixes_LIB}) list(APPEND PLATFORM_LINKLIBS ${X11_Xfixes_LIB})
else() else()
set(WITH_X11_XFIXES OFF) set(WITH_X11_XFIXES OFF)
endif() endif()
endif() endif()
if(WITH_X11_ALPHA) if(WITH_X11_ALPHA)
find_library(X11_Xrender_LIB Xrender ${X11_LIB_SEARCH_PATH}) find_library(X11_Xrender_LIB Xrender ${X11_LIB_SEARCH_PATH})
mark_as_advanced(X11_Xrender_LIB) mark_as_advanced(X11_Xrender_LIB)
if(X11_Xrender_LIB) if(X11_Xrender_LIB)
list(APPEND PLATFORM_LINKLIBS ${X11_Xrender_LIB}) list(APPEND PLATFORM_LINKLIBS ${X11_Xrender_LIB})
else() else()
set(WITH_X11_ALPHA OFF) set(WITH_X11_ALPHA OFF)
endif() endif()
endif() endif()
endif() endif()
@@ -883,51 +883,51 @@ endif()
# - APPLE # - APPLE
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
include(platform_unix) include(platform_unix)
elseif(WIN32) elseif(WIN32)
include(platform_win32) include(platform_win32)
elseif(APPLE) elseif(APPLE)
include(platform_apple) include(platform_apple)
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Common. # Common.
if(NOT WITH_FFTW3 AND WITH_MOD_OCEANSIM) if(NOT WITH_FFTW3 AND WITH_MOD_OCEANSIM)
message(FATAL_ERROR "WITH_MOD_OCEANSIM requires WITH_FFTW3 to be ON") message(FATAL_ERROR "WITH_MOD_OCEANSIM requires WITH_FFTW3 to be ON")
endif() endif()
if(WITH_CYCLES) if(WITH_CYCLES)
if(NOT WITH_OPENIMAGEIO) if(NOT WITH_OPENIMAGEIO)
message(FATAL_ERROR message(FATAL_ERROR
"Cycles requires WITH_OPENIMAGEIO, the library may not have been found. " "Cycles requires WITH_OPENIMAGEIO, the library may not have been found. "
"Configure OIIO or disable WITH_CYCLES" "Configure OIIO or disable WITH_CYCLES"
) )
endif() endif()
if(NOT WITH_BOOST) if(NOT WITH_BOOST)
message(FATAL_ERROR message(FATAL_ERROR
"Cycles requires WITH_BOOST, the library may not have been found. " "Cycles requires WITH_BOOST, the library may not have been found. "
"Configure BOOST or disable WITH_CYCLES" "Configure BOOST or disable WITH_CYCLES"
) )
endif() endif()
if(WITH_CYCLES_OSL) if(WITH_CYCLES_OSL)
if(NOT WITH_LLVM) if(NOT WITH_LLVM)
message(FATAL_ERROR message(FATAL_ERROR
"Cycles OSL requires WITH_LLVM, the library may not have been found. " "Cycles OSL requires WITH_LLVM, the library may not have been found. "
"Configure LLVM or disable WITH_CYCLES_OSL" "Configure LLVM or disable WITH_CYCLES_OSL"
) )
endif() endif()
endif() endif()
endif() endif()
if(WITH_INTERNATIONAL) if(WITH_INTERNATIONAL)
if(NOT WITH_BOOST) if(NOT WITH_BOOST)
message(FATAL_ERROR message(FATAL_ERROR
"Internationalization requires WITH_BOOST, the library may not have been found. " "Internationalization requires WITH_BOOST, the library may not have been found. "
"Configure BOOST or disable WITH_INTERNATIONAL" "Configure BOOST or disable WITH_INTERNATIONAL"
) )
endif() endif()
endif() endif()
# See TEST_SSE_SUPPORT() for how this is defined. # See TEST_SSE_SUPPORT() for how this is defined.
@@ -935,53 +935,53 @@ endif()
# Do it globally, SSE2 is required for quite some time now. # Do it globally, SSE2 is required for quite some time now.
# Doing it now allows to use SSE/SSE2 in inline headers. # Doing it now allows to use SSE/SSE2 in inline headers.
if(SUPPORT_SSE_BUILD) if(SUPPORT_SSE_BUILD)
set(PLATFORM_CFLAGS " ${COMPILER_SSE_FLAG} ${PLATFORM_CFLAGS}") set(PLATFORM_CFLAGS " ${COMPILER_SSE_FLAG} ${PLATFORM_CFLAGS}")
add_definitions(-D__SSE__ -D__MMX__) add_definitions(-D__SSE__ -D__MMX__)
endif() endif()
if(SUPPORT_SSE2_BUILD) if(SUPPORT_SSE2_BUILD)
set(PLATFORM_CFLAGS " ${PLATFORM_CFLAGS} ${COMPILER_SSE2_FLAG}") set(PLATFORM_CFLAGS " ${PLATFORM_CFLAGS} ${COMPILER_SSE2_FLAG}")
add_definitions(-D__SSE2__) add_definitions(-D__SSE2__)
if(NOT SUPPORT_SSE_BUILD) # don't double up if(NOT SUPPORT_SSE_BUILD) # don't double up
add_definitions(-D__MMX__) add_definitions(-D__MMX__)
endif() endif()
endif() endif()
# set the endian define # set the endian define
if(MSVC) if(MSVC)
# for some reason this fails on msvc # for some reason this fails on msvc
add_definitions(-D__LITTLE_ENDIAN__) add_definitions(-D__LITTLE_ENDIAN__)
# OSX-Note: as we do cross-compiling with specific set architecture, # OSX-Note: as we do cross-compiling with specific set architecture,
# endianess-detection and auto-setting is counterproductive # endianess-detection and auto-setting is counterproductive
# so we just set endianness according CMAKE_OSX_ARCHITECTURES # so we just set endianness according CMAKE_OSX_ARCHITECTURES
elseif(CMAKE_OSX_ARCHITECTURES MATCHES i386 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64) elseif(CMAKE_OSX_ARCHITECTURES MATCHES i386 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
add_definitions(-D__LITTLE_ENDIAN__) add_definitions(-D__LITTLE_ENDIAN__)
elseif(CMAKE_OSX_ARCHITECTURES MATCHES ppc OR CMAKE_OSX_ARCHITECTURES MATCHES ppc64) elseif(CMAKE_OSX_ARCHITECTURES MATCHES ppc OR CMAKE_OSX_ARCHITECTURES MATCHES ppc64)
add_definitions(-D__BIG_ENDIAN__) add_definitions(-D__BIG_ENDIAN__)
else() else()
include(TestBigEndian) include(TestBigEndian)
test_big_endian(_SYSTEM_BIG_ENDIAN) test_big_endian(_SYSTEM_BIG_ENDIAN)
if(_SYSTEM_BIG_ENDIAN) if(_SYSTEM_BIG_ENDIAN)
add_definitions(-D__BIG_ENDIAN__) add_definitions(-D__BIG_ENDIAN__)
else() else()
add_definitions(-D__LITTLE_ENDIAN__) add_definitions(-D__LITTLE_ENDIAN__)
endif() endif()
unset(_SYSTEM_BIG_ENDIAN) unset(_SYSTEM_BIG_ENDIAN)
endif() endif()
if(WITH_IMAGE_OPENJPEG) if(WITH_IMAGE_OPENJPEG)
# Special handling of Windows platform where openjpeg is always static. # Special handling of Windows platform where openjpeg is always static.
if(WIN32) if(WIN32)
set(OPENJPEG_DEFINES "-DOPJ_STATIC") set(OPENJPEG_DEFINES "-DOPJ_STATIC")
else() else()
set(OPENJPEG_DEFINES "") set(OPENJPEG_DEFINES "")
endif() endif()
endif() endif()
if(NOT WITH_SYSTEM_EIGEN3) if(NOT WITH_SYSTEM_EIGEN3)
set(EIGEN3_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/Eigen3) set(EIGEN3_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/Eigen3)
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
@@ -991,224 +991,224 @@ find_package(OpenGL)
blender_include_dirs_sys("${OPENGL_INCLUDE_DIR}") blender_include_dirs_sys("${OPENGL_INCLUDE_DIR}")
if(WITH_OPENGL) if(WITH_OPENGL)
add_definitions(-DWITH_OPENGL) add_definitions(-DWITH_OPENGL)
endif() endif()
if(WITH_SYSTEM_GLES) if(WITH_SYSTEM_GLES)
find_package_wrapper(OpenGLES) find_package_wrapper(OpenGLES)
endif() endif()
if(WITH_GL_PROFILE_ES20) if(WITH_GL_PROFILE_ES20)
if(WITH_SYSTEM_GLES) if(WITH_SYSTEM_GLES)
if(NOT OPENGLES_LIBRARY) if(NOT OPENGLES_LIBRARY)
message(FATAL_ERROR message(FATAL_ERROR
"Unable to find OpenGL ES libraries. " "Unable to find OpenGL ES libraries. "
"Install them or disable WITH_SYSTEM_GLES." "Install them or disable WITH_SYSTEM_GLES."
) )
endif() endif()
list(APPEND BLENDER_GL_LIBRARIES OPENGLES_LIBRARY) list(APPEND BLENDER_GL_LIBRARIES OPENGLES_LIBRARY)
else() else()
set(OPENGLES_LIBRARY "" CACHE FILEPATH "OpenGL ES 2.0 library file") set(OPENGLES_LIBRARY "" CACHE FILEPATH "OpenGL ES 2.0 library file")
mark_as_advanced(OPENGLES_LIBRARY) mark_as_advanced(OPENGLES_LIBRARY)
list(APPEND BLENDER_GL_LIBRARIES "${OPENGLES_LIBRARY}") list(APPEND BLENDER_GL_LIBRARIES "${OPENGLES_LIBRARY}")
if(NOT OPENGLES_LIBRARY) if(NOT OPENGLES_LIBRARY)
message(FATAL_ERROR message(FATAL_ERROR
"To compile WITH_GL_EGL you need to set OPENGLES_LIBRARY " "To compile WITH_GL_EGL you need to set OPENGLES_LIBRARY "
"to the file path of an OpenGL ES 2.0 library." "to the file path of an OpenGL ES 2.0 library."
) )
endif() endif()
endif() endif()
if(WIN32) if(WIN32)
# Setup paths to files needed to install and redistribute Windows Blender with OpenGL ES # Setup paths to files needed to install and redistribute Windows Blender with OpenGL ES
set(OPENGLES_DLL "" CACHE FILEPATH "OpenGL ES 2.0 redistributable DLL file") set(OPENGLES_DLL "" CACHE FILEPATH "OpenGL ES 2.0 redistributable DLL file")
mark_as_advanced(OPENGLES_DLL) mark_as_advanced(OPENGLES_DLL)
if(NOT OPENGLES_DLL) if(NOT OPENGLES_DLL)
message(FATAL_ERROR message(FATAL_ERROR
"To compile WITH_GL_PROFILE_ES20 you need to set OPENGLES_DLL to the file " "To compile WITH_GL_PROFILE_ES20 you need to set OPENGLES_DLL to the file "
"path of an OpenGL ES 2.0 runtime dynamic link library (DLL)." "path of an OpenGL ES 2.0 runtime dynamic link library (DLL)."
) )
endif() endif()
if(WITH_GL_ANGLE) if(WITH_GL_ANGLE)
list(APPEND GL_DEFINITIONS -DWITH_ANGLE) list(APPEND GL_DEFINITIONS -DWITH_ANGLE)
set(D3DCOMPILER_DLL "" CACHE FILEPATH "Direct3D Compiler redistributable DLL file (needed by ANGLE)") set(D3DCOMPILER_DLL "" CACHE FILEPATH "Direct3D Compiler redistributable DLL file (needed by ANGLE)")
get_filename_component(D3DCOMPILER_FILENAME "${D3DCOMPILER_DLL}" NAME) get_filename_component(D3DCOMPILER_FILENAME "${D3DCOMPILER_DLL}" NAME)
list(APPEND GL_DEFINITIONS "-DD3DCOMPILER=\"\\\"${D3DCOMPILER_FILENAME}\\\"\"") list(APPEND GL_DEFINITIONS "-DD3DCOMPILER=\"\\\"${D3DCOMPILER_FILENAME}\\\"\"")
mark_as_advanced(D3DCOMPILER_DLL) mark_as_advanced(D3DCOMPILER_DLL)
if(D3DCOMPILER_DLL STREQUAL "") if(D3DCOMPILER_DLL STREQUAL "")
message(FATAL_ERROR message(FATAL_ERROR
"To compile WITH_GL_ANGLE you need to set D3DCOMPILER_DLL to the file " "To compile WITH_GL_ANGLE you need to set D3DCOMPILER_DLL to the file "
"path of a copy of the DirectX redistributable DLL file: D3DCompiler_46.dll" "path of a copy of the DirectX redistributable DLL file: D3DCompiler_46.dll"
) )
endif() endif()
endif() endif()
endif() endif()
else() else()
if(OpenGL_GL_PREFERENCE STREQUAL "LEGACY" AND OPENGL_gl_LIBRARY) if(OpenGL_GL_PREFERENCE STREQUAL "LEGACY" AND OPENGL_gl_LIBRARY)
list(APPEND BLENDER_GL_LIBRARIES ${OPENGL_gl_LIBRARY}) list(APPEND BLENDER_GL_LIBRARIES ${OPENGL_gl_LIBRARY})
else() else()
list(APPEND BLENDER_GL_LIBRARIES ${OPENGL_opengl_LIBRARY} ${OPENGL_glx_LIBRARY}) list(APPEND BLENDER_GL_LIBRARIES ${OPENGL_opengl_LIBRARY} ${OPENGL_glx_LIBRARY})
endif() endif()
endif() endif()
if(WITH_GL_EGL) if(WITH_GL_EGL)
list(APPEND GL_DEFINITIONS -DWITH_GL_EGL) list(APPEND GL_DEFINITIONS -DWITH_GL_EGL)
if(WITH_SYSTEM_GLES) if(WITH_SYSTEM_GLES)
if(NOT OPENGLES_EGL_LIBRARY) if(NOT OPENGLES_EGL_LIBRARY)
message(FATAL_ERROR message(FATAL_ERROR
"Unable to find OpenGL ES libraries. " "Unable to find OpenGL ES libraries. "
"Install them or disable WITH_SYSTEM_GLES." "Install them or disable WITH_SYSTEM_GLES."
) )
endif() endif()
list(APPEND BLENDER_GL_LIBRARIES OPENGLES_EGL_LIBRARY) list(APPEND BLENDER_GL_LIBRARIES OPENGLES_EGL_LIBRARY)
else() else()
set(OPENGLES_EGL_LIBRARY "" CACHE FILEPATH "EGL library file") set(OPENGLES_EGL_LIBRARY "" CACHE FILEPATH "EGL library file")
mark_as_advanced(OPENGLES_EGL_LIBRARY) mark_as_advanced(OPENGLES_EGL_LIBRARY)
list(APPEND BLENDER_GL_LIBRARIES "${OPENGLES_LIBRARY}" "${OPENGLES_EGL_LIBRARY}") list(APPEND BLENDER_GL_LIBRARIES "${OPENGLES_LIBRARY}" "${OPENGLES_EGL_LIBRARY}")
if(NOT OPENGLES_EGL_LIBRARY) if(NOT OPENGLES_EGL_LIBRARY)
message(FATAL_ERROR message(FATAL_ERROR
"To compile WITH_GL_EGL you need to set OPENGLES_EGL_LIBRARY " "To compile WITH_GL_EGL you need to set OPENGLES_EGL_LIBRARY "
"to the file path of an EGL library." "to the file path of an EGL library."
) )
endif() endif()
endif() endif()
if(WIN32) if(WIN32)
# Setup paths to files needed to install and redistribute Windows Blender with OpenGL ES # Setup paths to files needed to install and redistribute Windows Blender with OpenGL ES
set(OPENGLES_EGL_DLL "" CACHE FILEPATH "EGL redistributable DLL file") set(OPENGLES_EGL_DLL "" CACHE FILEPATH "EGL redistributable DLL file")
mark_as_advanced(OPENGLES_EGL_DLL) mark_as_advanced(OPENGLES_EGL_DLL)
if(NOT OPENGLES_EGL_DLL) if(NOT OPENGLES_EGL_DLL)
message(FATAL_ERROR message(FATAL_ERROR
"To compile WITH_GL_EGL you need to set OPENGLES_EGL_DLL " "To compile WITH_GL_EGL you need to set OPENGLES_EGL_DLL "
"to the file path of an EGL runtime dynamic link library (DLL)." "to the file path of an EGL runtime dynamic link library (DLL)."
) )
endif() endif()
endif() endif()
endif() endif()
if(WITH_GL_PROFILE_ES20) if(WITH_GL_PROFILE_ES20)
list(APPEND GL_DEFINITIONS -DWITH_GL_PROFILE_ES20) list(APPEND GL_DEFINITIONS -DWITH_GL_PROFILE_ES20)
else() else()
list(APPEND GL_DEFINITIONS -DWITH_GL_PROFILE_CORE) list(APPEND GL_DEFINITIONS -DWITH_GL_PROFILE_CORE)
endif() endif()
if(WITH_GL_EGL) if(WITH_GL_EGL)
list(APPEND GL_DEFINITIONS -DWITH_EGL) list(APPEND GL_DEFINITIONS -DWITH_EGL)
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Configure OpenMP. # Configure OpenMP.
if(WITH_OPENMP) if(WITH_OPENMP)
if(NOT OPENMP_CUSTOM) if(NOT OPENMP_CUSTOM)
find_package(OpenMP) find_package(OpenMP)
endif() endif()
if(OPENMP_FOUND) if(OPENMP_FOUND)
if(NOT WITH_OPENMP_STATIC) if(NOT WITH_OPENMP_STATIC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
else() else()
# Typically avoid adding flags as defines but we can't # Typically avoid adding flags as defines but we can't
# pass OpenMP flags to the linker for static builds, meaning # pass OpenMP flags to the linker for static builds, meaning
# we can't add any OpenMP related flags to CFLAGS variables # we can't add any OpenMP related flags to CFLAGS variables
# since they're passed to the linker as well. # since they're passed to the linker as well.
add_definitions("${OpenMP_C_FLAGS}") add_definitions("${OpenMP_C_FLAGS}")
find_library_static(OpenMP_LIBRARIES gomp ${CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES}) find_library_static(OpenMP_LIBRARIES gomp ${CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES})
endif() endif()
else() else()
set(WITH_OPENMP OFF) set(WITH_OPENMP OFF)
endif() endif()
mark_as_advanced( mark_as_advanced(
OpenMP_C_FLAGS OpenMP_C_FLAGS
OpenMP_CXX_FLAGS OpenMP_CXX_FLAGS
) )
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Configure GLEW # Configure GLEW
if(WITH_SYSTEM_GLEW) if(WITH_SYSTEM_GLEW)
find_package(GLEW) find_package(GLEW)
# Note: There is an assumption here that the system GLEW is not a static library. # Note: There is an assumption here that the system GLEW is not a static library.
if(NOT GLEW_FOUND) if(NOT GLEW_FOUND)
message(FATAL_ERROR "GLEW is required to build Blender. Install it or disable WITH_SYSTEM_GLEW.") message(FATAL_ERROR "GLEW is required to build Blender. Install it or disable WITH_SYSTEM_GLEW.")
endif() endif()
set(BLENDER_GLEW_LIBRARIES ${GLEW_LIBRARY}) set(BLENDER_GLEW_LIBRARIES ${GLEW_LIBRARY})
else() else()
if(WITH_GLEW_ES) if(WITH_GLEW_ES)
set(GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew-es/include") set(GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew-es/include")
list(APPEND GL_DEFINITIONS -DGLEW_STATIC -DWITH_GLEW_ES) list(APPEND GL_DEFINITIONS -DGLEW_STATIC -DWITH_GLEW_ES)
# These definitions remove APIs from glew.h, making GLEW smaller, and catching unguarded API usage # These definitions remove APIs from glew.h, making GLEW smaller, and catching unguarded API usage
if(WITH_GL_PROFILE_ES20) if(WITH_GL_PROFILE_ES20)
list(APPEND GL_DEFINITIONS -DGLEW_ES_ONLY) list(APPEND GL_DEFINITIONS -DGLEW_ES_ONLY)
else() else()
# No ES functions are needed # No ES functions are needed
list(APPEND GL_DEFINITIONS -DGLEW_NO_ES) list(APPEND GL_DEFINITIONS -DGLEW_NO_ES)
endif() endif()
if(WITH_GL_PROFILE_ES20) if(WITH_GL_PROFILE_ES20)
if(WITH_GL_EGL) if(WITH_GL_EGL)
list(APPEND GL_DEFINITIONS -DGLEW_USE_LIB_ES20) list(APPEND GL_DEFINITIONS -DGLEW_USE_LIB_ES20)
endif() endif()
# ToDo: This is an experiment to eliminate ES 1 symbols, # ToDo: This is an experiment to eliminate ES 1 symbols,
# GLEW doesn't really properly provide this level of control # GLEW doesn't really properly provide this level of control
# (for example, without modification it eliminates too many symbols) # (for example, without modification it eliminates too many symbols)
# so there are lots of modifications to GLEW to make this work, # so there are lots of modifications to GLEW to make this work,
# and no attempt to make it work beyond Blender at this point. # and no attempt to make it work beyond Blender at this point.
list(APPEND GL_DEFINITIONS -DGL_ES_VERSION_1_0=0 -DGL_ES_VERSION_CL_1_1=0 -DGL_ES_VERSION_CM_1_1=0) list(APPEND GL_DEFINITIONS -DGL_ES_VERSION_1_0=0 -DGL_ES_VERSION_CL_1_1=0 -DGL_ES_VERSION_CM_1_1=0)
endif() endif()
if(WITH_GL_EGL) if(WITH_GL_EGL)
list(APPEND GL_DEFINITIONS -DGLEW_INC_EGL) list(APPEND GL_DEFINITIONS -DGLEW_INC_EGL)
endif() endif()
set(BLENDER_GLEW_LIBRARIES extern_glew_es bf_intern_glew_mx) set(BLENDER_GLEW_LIBRARIES extern_glew_es bf_intern_glew_mx)
else() else()
set(GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew/include") set(GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew/include")
list(APPEND GL_DEFINITIONS -DGLEW_STATIC) list(APPEND GL_DEFINITIONS -DGLEW_STATIC)
# This won't affect the non-experimental glew library, # This won't affect the non-experimental glew library,
# but is used for conditional compilation elsewhere. # but is used for conditional compilation elsewhere.
list(APPEND GL_DEFINITIONS -DGLEW_NO_ES) list(APPEND GL_DEFINITIONS -DGLEW_NO_ES)
set(BLENDER_GLEW_LIBRARIES extern_glew) set(BLENDER_GLEW_LIBRARIES extern_glew)
endif() endif()
endif() endif()
@@ -1218,70 +1218,70 @@ list(APPEND GL_DEFINITIONS -DGLEW_NO_GLU)
# Configure Bullet # Configure Bullet
if(WITH_BULLET AND WITH_SYSTEM_BULLET) if(WITH_BULLET AND WITH_SYSTEM_BULLET)
find_package(Bullet) find_package(Bullet)
if(NOT BULLET_FOUND) if(NOT BULLET_FOUND)
set(WITH_BULLET OFF) set(WITH_BULLET OFF)
endif() endif()
else() else()
set(BULLET_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/extern/bullet2/src") set(BULLET_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/extern/bullet2/src")
# set(BULLET_LIBRARIES "") # set(BULLET_LIBRARIES "")
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Configure Python. # Configure Python.
if(WITH_PYTHON_MODULE) if(WITH_PYTHON_MODULE)
add_definitions(-DPy_ENABLE_SHARED) add_definitions(-DPy_ENABLE_SHARED)
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Configure GLog/GFlags # Configure GLog/GFlags
if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING)) if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING))
if(WITH_SYSTEM_GFLAGS) if(WITH_SYSTEM_GFLAGS)
find_package(Gflags) find_package(Gflags)
if(NOT GFLAGS_FOUND) if(NOT GFLAGS_FOUND)
message(FATAL_ERROR "System wide Gflags is requested but was not found") message(FATAL_ERROR "System wide Gflags is requested but was not found")
endif() endif()
# FindGflags does not define this, and we are not even sure what to use here. # FindGflags does not define this, and we are not even sure what to use here.
set(GFLAGS_DEFINES) set(GFLAGS_DEFINES)
else() else()
set(GFLAGS_DEFINES set(GFLAGS_DEFINES
-DGFLAGS_DLL_DEFINE_FLAG= -DGFLAGS_DLL_DEFINE_FLAG=
-DGFLAGS_DLL_DECLARE_FLAG= -DGFLAGS_DLL_DECLARE_FLAG=
-DGFLAGS_DLL_DECL= -DGFLAGS_DLL_DECL=
) )
set(GFLAGS_NAMESPACE "gflags") set(GFLAGS_NAMESPACE "gflags")
set(GFLAGS_LIBRARIES extern_gflags) set(GFLAGS_LIBRARIES extern_gflags)
set(GFLAGS_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/extern/gflags/src") set(GFLAGS_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/extern/gflags/src")
endif() endif()
if(WITH_SYSTEM_GLOG) if(WITH_SYSTEM_GLOG)
find_package(Glog) find_package(Glog)
if(NOT GLOG_FOUND) if(NOT GLOG_FOUND)
message(FATAL_ERROR "System wide Glog is requested but was not found") message(FATAL_ERROR "System wide Glog is requested but was not found")
endif() endif()
# FindGlog does not define this, and we are not even sure what to use here. # FindGlog does not define this, and we are not even sure what to use here.
set(GLOG_DEFINES) set(GLOG_DEFINES)
else() else()
set(GLOG_DEFINES set(GLOG_DEFINES
-DGOOGLE_GLOG_DLL_DECL= -DGOOGLE_GLOG_DLL_DECL=
) )
set(GLOG_LIBRARIES extern_glog) set(GLOG_LIBRARIES extern_glog)
if(WIN32) if(WIN32)
set(GLOG_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/glog/src/windows) set(GLOG_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/glog/src/windows)
else() else()
set(GLOG_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/glog/include) set(GLOG_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/glog/include)
endif() endif()
endif() endif()
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Configure Ceres # Configure Ceres
if(WITH_LIBMV) if(WITH_LIBMV)
# We always have C++11 which includes unordered_map. # We always have C++11 which includes unordered_map.
set(CERES_DEFINES -DCERES_STD_UNORDERED_MAP) set(CERES_DEFINES -DCERES_STD_UNORDERED_MAP)
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
@@ -1289,259 +1289,259 @@ endif()
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_CAST_ALIGN -Wcast-align) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_CAST_ALIGN -Wcast-align)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_VLA -Werror=vla) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_VLA -Werror=vla)
# system headers sometimes do this, disable for now, was: -Werror=strict-prototypes # system headers sometimes do this, disable for now, was: -Werror=strict-prototypes
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_STRICT_PROTOTYPES -Wstrict-prototypes) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_STRICT_PROTOTYPES -Wstrict-prototypes)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_MISSING_PROTOTYPES -Wmissing-prototypes) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_MISSING_PROTOTYPES -Wmissing-prototypes)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_POINTER_ARITH -Wpointer-arith) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_POINTER_ARITH -Wpointer-arith)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_PARAMETER -Wunused-parameter) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_PARAMETER -Wunused-parameter)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_WRITE_STRINGS -Wwrite-strings) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_WRITE_STRINGS -Wwrite-strings)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_LOGICAL_OP -Wlogical-op) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_LOGICAL_OP -Wlogical-op)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNDEF -Wundef) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNDEF -Wundef)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_INIT_SELF -Winit-self) # needs -Wuninitialized ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_INIT_SELF -Winit-self) # needs -Wuninitialized
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_NULL -Wnonnull) # C only ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_NULL -Wnonnull) # C only
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_MISSING_INCLUDE_DIRS -Wmissing-include-dirs) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_MISSING_INCLUDE_DIRS -Wmissing-include-dirs)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_DIV_BY_ZERO -Wno-div-by-zero) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_DIV_BY_ZERO -Wno-div-by-zero)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_TYPE_LIMITS -Wtype-limits) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_TYPE_LIMITS -Wtype-limits)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_FORMAT_SIGN -Wformat-signedness) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_FORMAT_SIGN -Wformat-signedness)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_RESTRICT -Wrestrict) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_RESTRICT -Wrestrict)
# gcc 4.2 gives annoying warnings on every file with this # gcc 4.2 gives annoying warnings on every file with this
if(NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.3") if(NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.3")
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNINITIALIZED -Wuninitialized) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNINITIALIZED -Wuninitialized)
endif() endif()
# versions before gcc4.6 give many BLI_math warnings # versions before gcc4.6 give many BLI_math warnings
if(NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.6") if(NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.6")
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_REDUNDANT_DECLS -Wredundant-decls) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_REDUNDANT_DECLS -Wredundant-decls)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_REDUNDANT_DECLS -Wredundant-decls) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_REDUNDANT_DECLS -Wredundant-decls)
endif() endif()
# versions before gcc4.8 include global name-space. # versions before gcc4.8 include global name-space.
if(NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.8") if(NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.8")
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_SHADOW -Wshadow) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_SHADOW -Wshadow)
endif() endif()
# disable because it gives warnings for printf() & friends. # disable because it gives warnings for printf() & friends.
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_DOUBLE_PROMOTION -Wdouble-promotion -Wno-error=double-promotion) # ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_DOUBLE_PROMOTION -Wdouble-promotion -Wno-error=double-promotion)
if(NOT APPLE) if(NOT APPLE)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_ERROR_UNUSED_BUT_SET_VARIABLE -Wno-error=unused-but-set-variable) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_ERROR_UNUSED_BUT_SET_VARIABLE -Wno-error=unused-but-set-variable)
endif() endif()
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ALL -Wall) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ALL -Wall)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_LOGICAL_OP -Wlogical-op) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_LOGICAL_OP -Wlogical-op)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_INIT_SELF -Winit-self) # needs -Wuninitialized ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_INIT_SELF -Winit-self) # needs -Wuninitialized
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_MISSING_INCLUDE_DIRS -Wmissing-include-dirs) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_MISSING_INCLUDE_DIRS -Wmissing-include-dirs)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_DIV_BY_ZERO -Wno-div-by-zero) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_DIV_BY_ZERO -Wno-div-by-zero)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_TYPE_LIMITS -Wtype-limits) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_TYPE_LIMITS -Wtype-limits)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ERROR_RETURN_TYPE -Werror=return-type) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ERROR_RETURN_TYPE -Werror=return-type)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_POINTER_ARITH -Wpointer-arith) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_POINTER_ARITH -Wpointer-arith)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_PARAMETER -Wunused-parameter) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_PARAMETER -Wunused-parameter)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_WRITE_STRINGS -Wwrite-strings) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_WRITE_STRINGS -Wwrite-strings)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNDEF -Wundef) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNDEF -Wundef)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_FORMAT_SIGN -Wformat-signedness) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_FORMAT_SIGN -Wformat-signedness)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_RESTRICT -Wrestrict) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_RESTRICT -Wrestrict)
# gcc 4.2 gives annoying warnings on every file with this # gcc 4.2 gives annoying warnings on every file with this
if(NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.3") if(NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "4.3")
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNINITIALIZED -Wuninitialized) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNINITIALIZED -Wuninitialized)
endif() endif()
# causes too many warnings # causes too many warnings
if(NOT APPLE) if(NOT APPLE)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNDEF -Wundef) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNDEF -Wundef)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_MISSING_DECLARATIONS -Wmissing-declarations) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_MISSING_DECLARATIONS -Wmissing-declarations)
endif() endif()
# Use 'ATTR_FALLTHROUGH' macro to suppress. # Use 'ATTR_FALLTHROUGH' macro to suppress.
if(CMAKE_COMPILER_IS_GNUCC AND (NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "7.0")) if(CMAKE_COMPILER_IS_GNUCC AND (NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "7.0"))
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_IMPLICIT_FALLTHROUGH -Wimplicit-fallthrough=5) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_IMPLICIT_FALLTHROUGH -Wimplicit-fallthrough=5)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_IMPLICIT_FALLTHROUGH -Wimplicit-fallthrough=5) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_IMPLICIT_FALLTHROUGH -Wimplicit-fallthrough=5)
endif() endif()
# flags to undo strict flags # flags to undo strict flags
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_FUNCTION -Wno-unused-function) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_FUNCTION -Wno-unused-function)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_TYPE_LIMITS -Wno-type-limits) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_TYPE_LIMITS -Wno-type-limits)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INT_IN_BOOL_CONTEXT -Wno-int-in-bool-context) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INT_IN_BOOL_CONTEXT -Wno-int-in-bool-context)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_FORMAT -Wno-format) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_FORMAT -Wno-format)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_SWITCH -Wno-switch) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_SWITCH -Wno-switch)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_CLASS_MEMACCESS -Wno-class-memaccess) ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_CLASS_MEMACCESS -Wno-class-memaccess)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_COMMENT -Wno-comment) ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_COMMENT -Wno-comment)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_TYPEDEFS -Wno-unused-local-typedefs) ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_TYPEDEFS -Wno-unused-local-typedefs)
if(CMAKE_COMPILER_IS_GNUCC AND (NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "7.0")) if(CMAKE_COMPILER_IS_GNUCC AND (NOT "${CMAKE_C_COMPILER_VERSION}" VERSION_LESS "7.0"))
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_IMPLICIT_FALLTHROUGH -Wno-implicit-fallthrough) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_IMPLICIT_FALLTHROUGH -Wno-implicit-fallthrough)
endif() endif()
if(NOT APPLE) if(NOT APPLE)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_ERROR_UNUSED_BUT_SET_VARIABLE -Wno-error=unused-but-set-variable) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_ERROR_UNUSED_BUT_SET_VARIABLE -Wno-error=unused-but-set-variable)
endif() endif()
elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
# strange, clang complains these are not supported, but then uses them. # strange, clang complains these are not supported, but then uses them.
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_STRICT_PROTOTYPES -Wstrict-prototypes) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_STRICT_PROTOTYPES -Wstrict-prototypes)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_MISSING_PROTOTYPES -Wmissing-prototypes) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_MISSING_PROTOTYPES -Wmissing-prototypes)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_PARAMETER -Wunused-parameter) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_PARAMETER -Wunused-parameter)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ALL -Wall) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ALL -Wall)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_OVERLOADED_VIRTUAL -Wno-overloaded-virtual) # we get a lot of these, if its a problem a dev needs to look into it. ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_OVERLOADED_VIRTUAL -Wno-overloaded-virtual) # we get a lot of these, if its a problem a dev needs to look into it.
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof)
# gives too many unfixable warnings # gives too many unfixable warnings
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS -Wunused-macros) # ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS -Wunused-macros)
# ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros) # ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros)
# flags to undo strict flags # flags to undo strict flags
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_MACROS -Wno-unused-macros) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_VARIABLE_DECLARATIONS -Wno-missing-variable-declarations) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_VARIABLE_DECLARATIONS -Wno-missing-variable-declarations)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INCOMPAT_PTR_DISCARD_QUAL -Wno-incompatible-pointer-types-discards-qualifiers) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INCOMPAT_PTR_DISCARD_QUAL -Wno-incompatible-pointer-types-discards-qualifiers)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_FUNCTION -Wno-unused-function) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_FUNCTION -Wno-unused-function)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INT_TO_VOID_POINTER_CAST -Wno-int-to-void-pointer-cast) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_INT_TO_VOID_POINTER_CAST -Wno-int-to-void-pointer-cast)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_PROTOTYPES -Wno-missing-prototypes) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_PROTOTYPES -Wno-missing-prototypes)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DUPLICATE_ENUM -Wno-duplicate-enum) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DUPLICATE_ENUM -Wno-duplicate-enum)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNDEF -Wno-undef) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNDEF -Wno-undef)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_NORETURN -Wno-missing-noreturn) ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_NORETURN -Wno-missing-noreturn)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_PRIVATE_FIELD -Wno-unused-private-field) ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_PRIVATE_FIELD -Wno-unused-private-field)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_CXX11_NARROWING -Wno-c++11-narrowing) ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_CXX11_NARROWING -Wno-c++11-narrowing)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_NON_VIRTUAL_DTOR -Wno-non-virtual-dtor) ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_NON_VIRTUAL_DTOR -Wno-non-virtual-dtor)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_MACROS -Wno-unused-macros) ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_REORDER -Wno-reorder) ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_REORDER -Wno-reorder)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_COMMENT -Wno-comment) ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_COMMENT -Wno-comment)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_TYPEDEFS -Wno-unused-local-typedefs) ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_TYPEDEFS -Wno-unused-local-typedefs)
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel") elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_POINTER_ARITH -Wpointer-arith) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_POINTER_ARITH -Wpointer-arith)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas) ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ALL -Wall) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ALL -Wall)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare) ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare)
# disable numbered, false positives # disable numbered, false positives
set(C_WARNINGS "${C_WARNINGS} -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199") set(C_WARNINGS "${C_WARNINGS} -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199")
set(CXX_WARNINGS "${CXX_WARNINGS} -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199") set(CXX_WARNINGS "${CXX_WARNINGS} -wd188,186,144,913,556,858,597,177,1292,167,279,592,94,2722,3199")
elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC") elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
# most msvc warnings are C & C++ # most msvc warnings are C & C++
set(_WARNINGS set(_WARNINGS
# warning level: # warning level:
"/W3" "/W3"
"/w34062" # switch statement contains 'default' but no 'case' labels "/w34062" # switch statement contains 'default' but no 'case' labels
"/w34115" # 'type' : named type definition in parentheses "/w34115" # 'type' : named type definition in parentheses
"/w34189" # local variable is initialized but not referenced "/w34189" # local variable is initialized but not referenced
# disable: # disable:
"/wd4018" # signed/unsigned mismatch "/wd4018" # signed/unsigned mismatch
"/wd4146" # unary minus operator applied to unsigned type, result still unsigned "/wd4146" # unary minus operator applied to unsigned type, result still unsigned
"/wd4065" # switch statement contains 'default' but no 'case' labels "/wd4065" # switch statement contains 'default' but no 'case' labels
"/wd4127" # conditional expression is constant "/wd4127" # conditional expression is constant
"/wd4181" # qualifier applied to reference type; ignored "/wd4181" # qualifier applied to reference type; ignored
"/wd4200" # zero-sized array in struct/union "/wd4200" # zero-sized array in struct/union
"/wd4244" # conversion from 'type1' to 'type2', possible loss of data "/wd4244" # conversion from 'type1' to 'type2', possible loss of data
"/wd4267" # conversion from 'size_t' to 'type', possible loss of data "/wd4267" # conversion from 'size_t' to 'type', possible loss of data
"/wd4305" # truncation from 'type1' to 'type2' "/wd4305" # truncation from 'type1' to 'type2'
"/wd4800" # forcing value to bool 'true' or 'false' "/wd4800" # forcing value to bool 'true' or 'false'
"/wd4828" # The file contains a character that is illegal "/wd4828" # The file contains a character that is illegal
"/wd4996" # identifier was declared deprecated "/wd4996" # identifier was declared deprecated
# errors: # errors:
"/we4013" # 'function' undefined; assuming extern returning int "/we4013" # 'function' undefined; assuming extern returning int
"/we4133" # incompatible pointer types "/we4133" # incompatible pointer types
"/we4431" # missing type specifier - int assumed "/we4431" # missing type specifier - int assumed
) )
if(MSVC_VERSION GREATER_EQUAL 1911) if(MSVC_VERSION GREATER_EQUAL 1911)
# see https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/c5038?view=vs-2017 # see https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/c5038?view=vs-2017
set(_WARNINGS "${_WARNINGS} /w35038") #order of initialisation in c++ constructors set(_WARNINGS "${_WARNINGS} /w35038") #order of initialisation in c++ constructors
endif() endif()
string(REPLACE ";" " " _WARNINGS "${_WARNINGS}") string(REPLACE ";" " " _WARNINGS "${_WARNINGS}")
set(C_WARNINGS "${_WARNINGS}") set(C_WARNINGS "${_WARNINGS}")
set(CXX_WARNINGS "${_WARNINGS}") set(CXX_WARNINGS "${_WARNINGS}")
unset(_WARNINGS) unset(_WARNINGS)
endif() endif()
# ensure python header is found since detection can fail, this could happen # ensure python header is found since detection can fail, this could happen
# with _any_ library but since we used a fixed python version this tends to # with _any_ library but since we used a fixed python version this tends to
# be most problematic. # be most problematic.
if(WITH_PYTHON) if(WITH_PYTHON)
if(NOT EXISTS "${PYTHON_INCLUDE_DIR}/Python.h") if(NOT EXISTS "${PYTHON_INCLUDE_DIR}/Python.h")
message(FATAL_ERROR message(FATAL_ERROR
"Missing: \"${PYTHON_INCLUDE_DIR}/Python.h\",\n" "Missing: \"${PYTHON_INCLUDE_DIR}/Python.h\",\n"
"Set the cache entry 'PYTHON_INCLUDE_DIR' to point " "Set the cache entry 'PYTHON_INCLUDE_DIR' to point "
"to a valid python include path. Containing " "to a valid python include path. Containing "
"Python.h for python version \"${PYTHON_VERSION}\"" "Python.h for python version \"${PYTHON_VERSION}\""
) )
endif() endif()
if(WIN32 OR APPLE) if(WIN32 OR APPLE)
# Windows and macOS have this bundled with Python libraries. # Windows and macOS have this bundled with Python libraries.
elseif((WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY) OR (WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE)) elseif((WITH_PYTHON_INSTALL AND WITH_PYTHON_INSTALL_NUMPY) OR (WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE))
if(("${PYTHON_NUMPY_PATH}" STREQUAL "") OR (${PYTHON_NUMPY_PATH} MATCHES NOTFOUND)) if(("${PYTHON_NUMPY_PATH}" STREQUAL "") OR (${PYTHON_NUMPY_PATH} MATCHES NOTFOUND))
find_python_package(numpy) find_python_package(numpy)
unset(PYTHON_NUMPY_INCLUDE_DIRS CACHE) unset(PYTHON_NUMPY_INCLUDE_DIRS CACHE)
set(PYTHON_NUMPY_INCLUDE_DIRS ${PYTHON_NUMPY_PATH}/numpy/core/include CACHE PATH "Path to the include directory of the numpy module") set(PYTHON_NUMPY_INCLUDE_DIRS ${PYTHON_NUMPY_PATH}/numpy/core/include CACHE PATH "Path to the include directory of the numpy module")
mark_as_advanced(PYTHON_NUMPY_INCLUDE_DIRS) mark_as_advanced(PYTHON_NUMPY_INCLUDE_DIRS)
endif() endif()
endif() endif()
if(WIN32 OR APPLE) if(WIN32 OR APPLE)
# pass, we have this in lib/python/site-packages # pass, we have this in lib/python/site-packages
elseif(WITH_PYTHON_INSTALL_REQUESTS) elseif(WITH_PYTHON_INSTALL_REQUESTS)
find_python_package(requests) find_python_package(requests)
endif() endif()
endif() endif()
if( if(
CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCC OR
CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID MATCHES "Clang" OR
CMAKE_C_COMPILER_ID MATCHES "Intel" CMAKE_C_COMPILER_ID MATCHES "Intel"
) )
# TODO(sergey): Do we want c++11 or gnu-c++11 here? # TODO(sergey): Do we want c++11 or gnu-c++11 here?
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(MSVC) elseif(MSVC)
# Nothing special is needed, C++11 features are available by default. # Nothing special is needed, C++11 features are available by default.
else() else()
message(FATAL_ERROR "Unknown compiler ${CMAKE_C_COMPILER_ID}, can't enable C++11 build") message(FATAL_ERROR "Unknown compiler ${CMAKE_C_COMPILER_ID}, can't enable C++11 build")
endif() endif()
# Visual Studio has all standards it supports available by default # Visual Studio has all standards it supports available by default
# Clang on windows copies this behavior and does not support these switches # Clang on windows copies this behavior and does not support these switches
if( if(
CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCC OR
(CMAKE_C_COMPILER_ID MATCHES "Clang" AND (NOT MSVC)) OR (CMAKE_C_COMPILER_ID MATCHES "Clang" AND (NOT MSVC)) OR
(CMAKE_C_COMPILER_ID MATCHES "Intel") (CMAKE_C_COMPILER_ID MATCHES "Intel")
) )
# Use C11 + GNU extensions, works with GCC, Clang, ICC # Use C11 + GNU extensions, works with GCC, Clang, ICC
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
endif() endif()
# Include warnings first, so its possible to disable them with user defined flags # Include warnings first, so its possible to disable them with user defined flags
@@ -1551,19 +1551,19 @@ set(CMAKE_CXX_FLAGS "${CXX_WARNINGS} ${CMAKE_CXX_FLAGS} ${PLATFORM_CFLAGS}")
# defined above, platform specific but shared names # defined above, platform specific but shared names
mark_as_advanced( mark_as_advanced(
CYCLES_OSL CYCLES_OSL
OSL_LIB_EXEC OSL_LIB_EXEC
OSL_COMPILER OSL_COMPILER
OSL_LIB_COMP OSL_LIB_COMP
OSL_LIB_QUERY OSL_LIB_QUERY
OSL_INCLUDE_DIR OSL_INCLUDE_DIR
) )
mark_as_advanced( mark_as_advanced(
LLVM_CONFIG LLVM_CONFIG
LLVM_ROOT_DIR LLVM_ROOT_DIR
LLVM_LIBRARY LLVM_LIBRARY
LLVM_VERSION LLVM_VERSION
) )
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
@@ -1571,12 +1571,12 @@ mark_as_advanced(
# better not set includes here but this debugging option is off by default. # better not set includes here but this debugging option is off by default.
if(WITH_CXX_GUARDEDALLOC) if(WITH_CXX_GUARDEDALLOC)
include_directories(${CMAKE_SOURCE_DIR}/intern/guardedalloc) include_directories(${CMAKE_SOURCE_DIR}/intern/guardedalloc)
add_definitions(-DWITH_CXX_GUARDEDALLOC) add_definitions(-DWITH_CXX_GUARDEDALLOC)
endif() endif()
if(WITH_ASSERT_ABORT) if(WITH_ASSERT_ABORT)
add_definitions(-DWITH_ASSERT_ABORT) add_definitions(-DWITH_ASSERT_ABORT)
endif() endif()
# message(STATUS "Using CFLAGS: ${CMAKE_C_FLAGS}") # message(STATUS "Using CFLAGS: ${CMAKE_C_FLAGS}")
@@ -1586,31 +1586,31 @@ endif()
# Libraries # Libraries
if(WITH_GTESTS) if(WITH_GTESTS)
include(GTestTesting) include(GTestTesting)
endif() endif()
if(WITH_BLENDER) if(WITH_BLENDER)
add_subdirectory(intern) add_subdirectory(intern)
add_subdirectory(extern) add_subdirectory(extern)
# source after intern and extern to gather all # source after intern and extern to gather all
# internal and external library information first, for test linking # internal and external library information first, for test linking
add_subdirectory(source) add_subdirectory(source)
elseif(WITH_CYCLES_STANDALONE) elseif(WITH_CYCLES_STANDALONE)
add_subdirectory(intern/cycles) add_subdirectory(intern/cycles)
add_subdirectory(extern/clew) add_subdirectory(extern/clew)
if(WITH_CUDA_DYNLOAD) if(WITH_CUDA_DYNLOAD)
add_subdirectory(extern/cuew) add_subdirectory(extern/cuew)
endif() endif()
if(NOT WITH_SYSTEM_GLEW) if(NOT WITH_SYSTEM_GLEW)
add_subdirectory(extern/glew) add_subdirectory(extern/glew)
endif() endif()
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Blender Application # Blender Application
if(WITH_BLENDER) if(WITH_BLENDER)
add_subdirectory(source/creator) add_subdirectory(source/creator)
endif() endif()
@@ -1626,7 +1626,7 @@ include(build_files/cmake/packaging.cmake)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Use dynamic loading for OpenMP # Use dynamic loading for OpenMP
if(WITH_BLENDER) if(WITH_BLENDER)
openmp_delayload(blender) openmp_delayload(blender)
endif() endif()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
@@ -1634,111 +1634,111 @@ endif()
if(FIRST_RUN) if(FIRST_RUN)
set(_config_msg "\nBlender Configuration\n=====================") set(_config_msg "\nBlender Configuration\n=====================")
function(info_cfg_option function(info_cfg_option
_setting _setting
) )
set(_msg " - ${_setting}") set(_msg " - ${_setting}")
string(LENGTH "${_msg}" _len) string(LENGTH "${_msg}" _len)
while("32" GREATER "${_len}") while("32" GREATER "${_len}")
set(_msg "${_msg} ") set(_msg "${_msg} ")
math(EXPR _len "${_len} + 1") math(EXPR _len "${_len} + 1")
endwhile() endwhile()
set(_config_msg "${_config_msg}\n${_msg}${${_setting}}" PARENT_SCOPE) set(_config_msg "${_config_msg}\n${_msg}${${_setting}}" PARENT_SCOPE)
endfunction() endfunction()
function(info_cfg_text function(info_cfg_text
_text _text
) )
set(_config_msg "${_config_msg}\n\n ${_text}" PARENT_SCOPE) set(_config_msg "${_config_msg}\n\n ${_text}" PARENT_SCOPE)
endfunction() endfunction()
message(STATUS "C Compiler: \"${CMAKE_C_COMPILER_ID}\"") message(STATUS "C Compiler: \"${CMAKE_C_COMPILER_ID}\"")
message(STATUS "C++ Compiler: \"${CMAKE_CXX_COMPILER_ID}\"") message(STATUS "C++ Compiler: \"${CMAKE_CXX_COMPILER_ID}\"")
info_cfg_text("Build Options:") info_cfg_text("Build Options:")
info_cfg_option(WITH_BULLET) info_cfg_option(WITH_BULLET)
info_cfg_option(WITH_IK_SOLVER) info_cfg_option(WITH_IK_SOLVER)
info_cfg_option(WITH_IK_ITASC) info_cfg_option(WITH_IK_ITASC)
info_cfg_option(WITH_OPENCOLLADA) info_cfg_option(WITH_OPENCOLLADA)
info_cfg_option(WITH_FFTW3) info_cfg_option(WITH_FFTW3)
info_cfg_option(WITH_INTERNATIONAL) info_cfg_option(WITH_INTERNATIONAL)
info_cfg_option(WITH_INPUT_NDOF) info_cfg_option(WITH_INPUT_NDOF)
info_cfg_option(WITH_CYCLES) info_cfg_option(WITH_CYCLES)
info_cfg_option(WITH_FREESTYLE) info_cfg_option(WITH_FREESTYLE)
info_cfg_option(WITH_OPENCOLORIO) info_cfg_option(WITH_OPENCOLORIO)
info_cfg_option(WITH_OPENVDB) info_cfg_option(WITH_OPENVDB)
info_cfg_option(WITH_ALEMBIC) info_cfg_option(WITH_ALEMBIC)
info_cfg_text("Compiler Options:") info_cfg_text("Compiler Options:")
info_cfg_option(WITH_BUILDINFO) info_cfg_option(WITH_BUILDINFO)
info_cfg_option(WITH_OPENMP) info_cfg_option(WITH_OPENMP)
info_cfg_option(WITH_RAYOPTIMIZATION) info_cfg_option(WITH_RAYOPTIMIZATION)
info_cfg_text("System Options:") info_cfg_text("System Options:")
info_cfg_option(WITH_INSTALL_PORTABLE) info_cfg_option(WITH_INSTALL_PORTABLE)
info_cfg_option(WITH_X11_ALPHA) info_cfg_option(WITH_X11_ALPHA)
info_cfg_option(WITH_X11_XF86VMODE) info_cfg_option(WITH_X11_XF86VMODE)
info_cfg_option(WITH_X11_XFIXES) info_cfg_option(WITH_X11_XFIXES)
info_cfg_option(WITH_X11_XINPUT) info_cfg_option(WITH_X11_XINPUT)
info_cfg_option(WITH_MEM_JEMALLOC) info_cfg_option(WITH_MEM_JEMALLOC)
info_cfg_option(WITH_MEM_VALGRIND) info_cfg_option(WITH_MEM_VALGRIND)
info_cfg_option(WITH_SYSTEM_GLEW) info_cfg_option(WITH_SYSTEM_GLEW)
info_cfg_text("Image Formats:") info_cfg_text("Image Formats:")
info_cfg_option(WITH_OPENIMAGEIO) info_cfg_option(WITH_OPENIMAGEIO)
info_cfg_option(WITH_IMAGE_CINEON) info_cfg_option(WITH_IMAGE_CINEON)
info_cfg_option(WITH_IMAGE_DDS) info_cfg_option(WITH_IMAGE_DDS)
info_cfg_option(WITH_IMAGE_HDR) info_cfg_option(WITH_IMAGE_HDR)
info_cfg_option(WITH_IMAGE_OPENEXR) info_cfg_option(WITH_IMAGE_OPENEXR)
info_cfg_option(WITH_IMAGE_OPENJPEG) info_cfg_option(WITH_IMAGE_OPENJPEG)
info_cfg_option(WITH_IMAGE_TIFF) info_cfg_option(WITH_IMAGE_TIFF)
info_cfg_text("Audio:") info_cfg_text("Audio:")
info_cfg_option(WITH_OPENAL) info_cfg_option(WITH_OPENAL)
info_cfg_option(WITH_SDL) info_cfg_option(WITH_SDL)
info_cfg_option(WITH_SDL_DYNLOAD) info_cfg_option(WITH_SDL_DYNLOAD)
info_cfg_option(WITH_JACK) info_cfg_option(WITH_JACK)
info_cfg_option(WITH_JACK_DYNLOAD) info_cfg_option(WITH_JACK_DYNLOAD)
info_cfg_option(WITH_CODEC_AVI) info_cfg_option(WITH_CODEC_AVI)
info_cfg_option(WITH_CODEC_FFMPEG) info_cfg_option(WITH_CODEC_FFMPEG)
info_cfg_option(WITH_CODEC_SNDFILE) info_cfg_option(WITH_CODEC_SNDFILE)
info_cfg_text("Compression:") info_cfg_text("Compression:")
info_cfg_option(WITH_LZMA) info_cfg_option(WITH_LZMA)
info_cfg_option(WITH_LZO) info_cfg_option(WITH_LZO)
info_cfg_text("Python:") info_cfg_text("Python:")
info_cfg_option(WITH_PYTHON_INSTALL) info_cfg_option(WITH_PYTHON_INSTALL)
info_cfg_option(WITH_PYTHON_INSTALL_NUMPY) info_cfg_option(WITH_PYTHON_INSTALL_NUMPY)
info_cfg_option(WITH_PYTHON_MODULE) info_cfg_option(WITH_PYTHON_MODULE)
info_cfg_option(WITH_PYTHON_SAFETY) info_cfg_option(WITH_PYTHON_SAFETY)
if(APPLE) if(APPLE)
info_cfg_option(WITH_PYTHON_FRAMEWORK) info_cfg_option(WITH_PYTHON_FRAMEWORK)
endif() endif()
info_cfg_text("Modifiers:") info_cfg_text("Modifiers:")
info_cfg_option(WITH_MOD_REMESH) info_cfg_option(WITH_MOD_REMESH)
info_cfg_option(WITH_MOD_FLUID) info_cfg_option(WITH_MOD_FLUID)
info_cfg_option(WITH_MOD_OCEANSIM) info_cfg_option(WITH_MOD_OCEANSIM)
info_cfg_text("OpenGL:") info_cfg_text("OpenGL:")
info_cfg_option(WITH_GLEW_ES) info_cfg_option(WITH_GLEW_ES)
info_cfg_option(WITH_GL_EGL) info_cfg_option(WITH_GL_EGL)
info_cfg_option(WITH_GL_PROFILE_ES20) info_cfg_option(WITH_GL_PROFILE_ES20)
if(WIN32) if(WIN32)
info_cfg_option(WITH_GL_ANGLE) info_cfg_option(WITH_GL_ANGLE)
endif() endif()
info_cfg_text("") info_cfg_text("")
message("${_config_msg}") message("${_config_msg}")
endif() endif()
if(0) if(0)
print_all_vars() print_all_vars()
endif() endif()

View File

@@ -47,13 +47,13 @@ include(cmake/options.cmake)
include(cmake/versions.cmake) include(cmake/versions.cmake)
if(ENABLE_MINGW64) if(ENABLE_MINGW64)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
include(cmake/setup_mingw64.cmake) include(cmake/setup_mingw64.cmake)
else() else()
include(cmake/setup_mingw32.cmake) include(cmake/setup_mingw32.cmake)
endif() endif()
else() else()
set(mingw_LIBDIR ${LIBDIR}) set(mingw_LIBDIR ${LIBDIR})
endif() endif()
include(cmake/zlib.cmake) include(cmake/zlib.cmake)
@@ -94,61 +94,61 @@ include(cmake/numpy.cmake)
include(cmake/pugixml.cmake) include(cmake/pugixml.cmake)
if(WITH_WEBP) if(WITH_WEBP)
include(cmake/webp.cmake) include(cmake/webp.cmake)
endif() endif()
if(WITH_EMBREE) if(WITH_EMBREE)
include(cmake/embree.cmake) include(cmake/embree.cmake)
endif() endif()
if(WIN32) if(WIN32)
# HMD branch deps # HMD branch deps
include(cmake/hidapi.cmake) include(cmake/hidapi.cmake)
# OCIO deps # OCIO deps
include(cmake/tinyxml.cmake) include(cmake/tinyxml.cmake)
include(cmake/yamlcpp.cmake) include(cmake/yamlcpp.cmake)
# LCMS is an OCIO dep, but only if you build the apps, leaving it here for convenience # LCMS is an OCIO dep, but only if you build the apps, leaving it here for convenience
#include(cmake/lcms.cmake) #include(cmake/lcms.cmake)
endif() endif()
if(NOT WIN32 OR ENABLE_MINGW64) if(NOT WIN32 OR ENABLE_MINGW64)
include(cmake/openjpeg.cmake) include(cmake/openjpeg.cmake)
if(NOT WIN32 OR BUILD_MODE STREQUAL Release) if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
if(WIN32) if(WIN32)
include(cmake/zlib_mingw.cmake) include(cmake/zlib_mingw.cmake)
endif() endif()
include(cmake/lame.cmake) include(cmake/lame.cmake)
include(cmake/ogg.cmake) include(cmake/ogg.cmake)
include(cmake/vorbis.cmake) include(cmake/vorbis.cmake)
include(cmake/theora.cmake) include(cmake/theora.cmake)
include(cmake/vpx.cmake) include(cmake/vpx.cmake)
include(cmake/x264.cmake) include(cmake/x264.cmake)
include(cmake/xvidcore.cmake) include(cmake/xvidcore.cmake)
include(cmake/faad.cmake) include(cmake/faad.cmake)
include(cmake/ffmpeg.cmake) include(cmake/ffmpeg.cmake)
include(cmake/fftw.cmake) include(cmake/fftw.cmake)
include(cmake/sndfile.cmake) include(cmake/sndfile.cmake)
if(WIN32) if(WIN32)
include(cmake/iconv.cmake) include(cmake/iconv.cmake)
endif() endif()
if(UNIX) if(UNIX)
include(cmake/flac.cmake) include(cmake/flac.cmake)
include(cmake/xml2.cmake) include(cmake/xml2.cmake)
if(NOT APPLE) if(NOT APPLE)
include(cmake/spnav.cmake) include(cmake/spnav.cmake)
include(cmake/jemalloc.cmake) include(cmake/jemalloc.cmake)
endif() endif()
endif() endif()
endif() endif()
endif() endif()
if(UNIX) if(UNIX)
include(cmake/bzip2.cmake) include(cmake/bzip2.cmake)
include(cmake/ffi.cmake) include(cmake/ffi.cmake)
include(cmake/lzma.cmake) include(cmake/lzma.cmake)
include(cmake/ssl.cmake) include(cmake/ssl.cmake)
include(cmake/sqlite.cmake) include(cmake/sqlite.cmake)
endif() endif()
include(cmake/harvest.cmake) include(cmake/harvest.cmake)

View File

@@ -17,89 +17,89 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(ALEMBIC_HDF5) if(ALEMBIC_HDF5)
set(ALEMBIC_HDF5_HL) set(ALEMBIC_HDF5_HL)
# in debug mode we do not build HDF5_hdf5_hl_LIBRARY which makes cmake really # in debug mode we do not build HDF5_hdf5_hl_LIBRARY which makes cmake really
# unhappy, stub it with the debug mode lib. it's not linking it in at this # unhappy, stub it with the debug mode lib. it's not linking it in at this
# point in time anyhow # point in time anyhow
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
set(ALEMBIC_HDF5_HL -DHDF5_hdf5_hl_LIBRARY=${LIBDIR}/hdf5/lib/libhdf5_hl_D.${LIBEXT}) set(ALEMBIC_HDF5_HL -DHDF5_hdf5_hl_LIBRARY=${LIBDIR}/hdf5/lib/libhdf5_hl_D.${LIBEXT})
endif() endif()
endif() endif()
if(WIN32) if(WIN32)
set(ALEMBIC_ILMBASE ${LIBDIR}/openexr) set(ALEMBIC_ILMBASE ${LIBDIR}/openexr)
else() else()
set(ALEMBIC_ILMBASE ${LIBDIR}/ilmbase) set(ALEMBIC_ILMBASE ${LIBDIR}/ilmbase)
endif() endif()
set(ALEMBIC_EXTRA_ARGS set(ALEMBIC_EXTRA_ARGS
-DBUILDSTATIC=ON -DBUILDSTATIC=ON
-DLINKSTATIC=ON -DLINKSTATIC=ON
-DALEMBIC_LIB_USES_BOOST=ON -DALEMBIC_LIB_USES_BOOST=ON
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING} -DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
-DBoost_USE_MULTITHREADED=ON -DBoost_USE_MULTITHREADED=ON
-DUSE_STATIC_BOOST=On -DUSE_STATIC_BOOST=On
-DBoost_USE_STATIC_LIBS=ON -DBoost_USE_STATIC_LIBS=ON
-DBoost_USE_STATIC_RUNTIME=ON -DBoost_USE_STATIC_RUNTIME=ON
-DBoost_DEBUG=ON -DBoost_DEBUG=ON
-DBOOST_ROOT=${LIBDIR}/boost -DBOOST_ROOT=${LIBDIR}/boost
-DBoost_NO_SYSTEM_PATHS=ON -DBoost_NO_SYSTEM_PATHS=ON
-DILMBASE_ROOT=${ALEMBIC_ILMBASE} -DILMBASE_ROOT=${ALEMBIC_ILMBASE}
-DALEMBIC_ILMBASE_INCLUDE_DIRECTORY=${ALEMBIC_ILMBASE}/include/OpenEXR -DALEMBIC_ILMBASE_INCLUDE_DIRECTORY=${ALEMBIC_ILMBASE}/include/OpenEXR
-DALEMBIC_ILMBASE_HALF_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DALEMBIC_ILMBASE_HALF_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IMATH_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DALEMBIC_ILMBASE_IMATH_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_ILMTHREAD_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DALEMBIC_ILMBASE_ILMTHREAD_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IEX_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DALEMBIC_ILMBASE_IEX_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IEXMATH_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}IexMath${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DALEMBIC_ILMBASE_IEXMATH_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}IexMath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DUSE_PYILMBASE=0 -DUSE_PYILMBASE=0
-DUSE_PYALEMBIC=0 -DUSE_PYALEMBIC=0
-DUSE_ARNOLD=0 -DUSE_ARNOLD=0
-DUSE_MAYA=0 -DUSE_MAYA=0
-DUSE_PRMAN=0 -DUSE_PRMAN=0
-DUSE_HDF5=Off -DUSE_HDF5=Off
-DUSE_STATIC_HDF5=Off -DUSE_STATIC_HDF5=Off
-DHDF5_ROOT=${LIBDIR}/hdf5 -DHDF5_ROOT=${LIBDIR}/hdf5
-DUSE_TESTS=Off -DUSE_TESTS=Off
-DALEMBIC_NO_OPENGL=1 -DALEMBIC_NO_OPENGL=1
-DUSE_BINARIES=ON -DUSE_BINARIES=ON
-DALEMBIC_ILMBASE_LINK_STATIC=On -DALEMBIC_ILMBASE_LINK_STATIC=On
-DALEMBIC_SHARED_LIBS=OFF -DALEMBIC_SHARED_LIBS=OFF
-DGLUT_INCLUDE_DIR="" -DGLUT_INCLUDE_DIR=""
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY} -DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/ -DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
${ALEMBIC_HDF5_HL} ${ALEMBIC_HDF5_HL}
) )
ExternalProject_Add(external_alembic ExternalProject_Add(external_alembic
URL ${ALEMBIC_URI} URL ${ALEMBIC_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${ALEMBIC_MD5} URL_HASH MD5=${ALEMBIC_MD5}
PREFIX ${BUILD_DIR}/alembic PREFIX ${BUILD_DIR}/alembic
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/alembic -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${ALEMBIC_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/alembic -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${ALEMBIC_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/alembic INSTALL_DIR ${LIBDIR}/alembic
) )
if(WIN32) if(WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_alembic after_install ExternalProject_Add_Step(external_alembic after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/alembic ${HARVEST_TARGET}/alembic COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/alembic ${HARVEST_TARGET}/alembic
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_alembic after_install ExternalProject_Add_Step(external_alembic after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/alembic/lib/alembic.lib ${HARVEST_TARGET}/alembic/lib/alembic_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/alembic/lib/alembic.lib ${HARVEST_TARGET}/alembic/lib/alembic_d.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()
add_dependencies( add_dependencies(
external_alembic external_alembic
external_boost external_boost
external_zlib external_zlib
external_ilmbase external_ilmbase
external_openexr external_openexr
) )

View File

@@ -17,51 +17,51 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
if(WIN32) if(WIN32)
set(THUMB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../release/windows/blendthumb) set(THUMB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../release/windows/blendthumb)
ExternalProject_Add(external_zlib_32 ExternalProject_Add(external_zlib_32
URL ${ZLIB_URI} URL ${ZLIB_URI}
CMAKE_GENERATOR ${GENERATOR_32} CMAKE_GENERATOR ${GENERATOR_32}
URL_HASH MD5=${ZLIB_HASH} URL_HASH MD5=${ZLIB_HASH}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
PREFIX ${BUILD_DIR}/zlib32 PREFIX ${BUILD_DIR}/zlib32
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/zlib32 ${DEFAULT_CMAKE_FLAGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/zlib32 ${DEFAULT_CMAKE_FLAGS}
INSTALL_DIR ${LIBDIR}/zlib32 INSTALL_DIR ${LIBDIR}/zlib32
) )
ExternalProject_Add(external_zlib_64 ExternalProject_Add(external_zlib_64
URL ${ZLIB_URI} URL ${ZLIB_URI}
CMAKE_GENERATOR ${GENERATOR_64} CMAKE_GENERATOR ${GENERATOR_64}
URL_HASH MD5=${ZLIB_HASH} URL_HASH MD5=${ZLIB_HASH}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
PREFIX ${BUILD_DIR}/zlib64 PREFIX ${BUILD_DIR}/zlib64
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/zlib64 ${DEFAULT_CMAKE_FLAGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/zlib64 ${DEFAULT_CMAKE_FLAGS}
INSTALL_DIR ${LIBDIR}/zlib64 INSTALL_DIR ${LIBDIR}/zlib64
) )
ExternalProject_Add(external_blendthumb_32 ExternalProject_Add(external_blendthumb_32
CMAKE_GENERATOR ${GENERATOR_32} CMAKE_GENERATOR ${GENERATOR_32}
SOURCE_DIR ${THUMB_DIR} SOURCE_DIR ${THUMB_DIR}
PREFIX ${BUILD_DIR}/blendthumb32 PREFIX ${BUILD_DIR}/blendthumb32
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blendThumb32 ${DEFAULT_CMAKE_FLAGS} -DZLIB_INCLUDE=${LIBDIR}/zlib32/include -DZLIB_LIBS=${LIBDIR}/zlib32/lib/zlibstatic.lib CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blendThumb32 ${DEFAULT_CMAKE_FLAGS} -DZLIB_INCLUDE=${LIBDIR}/zlib32/include -DZLIB_LIBS=${LIBDIR}/zlib32/lib/zlibstatic.lib
INSTALL_DIR ${LIBDIR}/blendthumb32 INSTALL_DIR ${LIBDIR}/blendthumb32
) )
add_dependencies( add_dependencies(
external_blendthumb_32 external_blendthumb_32
external_zlib_32 external_zlib_32
) )
ExternalProject_Add(external_blendthumb_64 ExternalProject_Add(external_blendthumb_64
CMAKE_GENERATOR ${GENERATOR_64} CMAKE_GENERATOR ${GENERATOR_64}
SOURCE_DIR ${THUMB_DIR} SOURCE_DIR ${THUMB_DIR}
PREFIX ${BUILD_DIR}/blendthumb64 PREFIX ${BUILD_DIR}/blendthumb64
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blendThumb64 ${DEFAULT_CMAKE_FLAGS} -DZLIB_INCLUDE=${LIBDIR}/zlib64/include -DZLIB_LIBS=${LIBDIR}/zlib64/lib/zlibstatic.lib CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blendThumb64 ${DEFAULT_CMAKE_FLAGS} -DZLIB_INCLUDE=${LIBDIR}/zlib64/include -DZLIB_LIBS=${LIBDIR}/zlib64/lib/zlibstatic.lib
INSTALL_DIR ${LIBDIR}/blendthumb64 INSTALL_DIR ${LIBDIR}/blendthumb64
) )
add_dependencies( add_dependencies(
external_blendthumb_64 external_blendthumb_64
external_zlib_64 external_zlib_64
) )
endif() endif()
endif() endif()

View File

@@ -17,59 +17,59 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(BLOSC_EXTRA_ARGS set(BLOSC_EXTRA_ARGS
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/ -DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY} -DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DBUILD_TESTS=OFF -DBUILD_TESTS=OFF
-DBUILD_BENCHMARKS=OFF -DBUILD_BENCHMARKS=OFF
-DCMAKE_DEBUG_POSTFIX=_d -DCMAKE_DEBUG_POSTFIX=_d
-DThreads_FOUND=1 -DThreads_FOUND=1
-DPTHREAD_LIBS=${LIBDIR}/pthreads/lib/pthreadVC3.lib -DPTHREAD_LIBS=${LIBDIR}/pthreads/lib/pthreadVC3.lib
-DPTHREAD_INCLUDE_DIR=${LIBDIR}/pthreads/inc -DPTHREAD_INCLUDE_DIR=${LIBDIR}/pthreads/inc
-DDEACTIVATE_SNAPPY=ON -DDEACTIVATE_SNAPPY=ON
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON
) )
if(WIN32) if(WIN32)
#prevent blosc from including it's own local copy of zlib in the object file #prevent blosc from including it's own local copy of zlib in the object file
#and cause linker errors with everybody else #and cause linker errors with everybody else
set(BLOSC_EXTRA_ARGS ${BLOSC_EXTRA_ARGS} set(BLOSC_EXTRA_ARGS ${BLOSC_EXTRA_ARGS}
-DPREFER_EXTERNAL_ZLIB=ON -DPREFER_EXTERNAL_ZLIB=ON
) )
endif() endif()
ExternalProject_Add(external_blosc ExternalProject_Add(external_blosc
URL ${BLOSC_URI} URL ${BLOSC_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${BLOSC_HASH} URL_HASH MD5=${BLOSC_HASH}
PREFIX ${BUILD_DIR}/blosc PREFIX ${BUILD_DIR}/blosc
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/blosc/src/external_blosc < ${PATCH_DIR}/blosc.diff PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/blosc/src/external_blosc < ${PATCH_DIR}/blosc.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blosc ${DEFAULT_CMAKE_FLAGS} ${BLOSC_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blosc ${DEFAULT_CMAKE_FLAGS} ${BLOSC_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/blosc INSTALL_DIR ${LIBDIR}/blosc
) )
add_dependencies( add_dependencies(
external_blosc external_blosc
external_zlib external_zlib
) )
if(WIN32) if(WIN32)
add_dependencies( add_dependencies(
external_blosc external_blosc
external_pthreads external_pthreads
) )
endif() endif()
if (WIN32) if (WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_blosc after_install ExternalProject_Add_Step(external_blosc after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc.lib ${HARVEST_TARGET}/blosc/lib/libblosc.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc.lib ${HARVEST_TARGET}/blosc/lib/libblosc.lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/blosc/include/ ${HARVEST_TARGET}/blosc/include/ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/blosc/include/ ${HARVEST_TARGET}/blosc/include/
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_blosc after_install ExternalProject_Add_Step(external_blosc after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc_d.lib ${HARVEST_TARGET}/blosc/lib/libblosc_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc_d.lib ${HARVEST_TARGET}/blosc/lib/libblosc_d.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -19,91 +19,91 @@
set(BOOST_ADDRESS_MODEL 64) set(BOOST_ADDRESS_MODEL 64)
if(WIN32) if(WIN32)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(PYTHON_ARCH x64) set(PYTHON_ARCH x64)
set(PYTHON_ARCH2 win-AMD64) set(PYTHON_ARCH2 win-AMD64)
set(PYTHON_OUTPUTDIR ${BUILD_DIR}/python/src/external_python/pcbuild/amd64/) set(PYTHON_OUTPUTDIR ${BUILD_DIR}/python/src/external_python/pcbuild/amd64/)
else() else()
set(PYTHON_ARCH x86) set(PYTHON_ARCH x86)
set(PYTHON_ARCH2 win32) set(PYTHON_ARCH2 win32)
set(PYTHON_OUTPUTDIR ${BUILD_DIR}/python/src/external_python/pcbuild/win32/) set(PYTHON_OUTPUTDIR ${BUILD_DIR}/python/src/external_python/pcbuild/win32/)
set(BOOST_ADDRESS_MODEL 32) set(BOOST_ADDRESS_MODEL 32)
endif() endif()
if(MSVC14) if(MSVC14)
set(BOOST_TOOLSET toolset=msvc-14.0) set(BOOST_TOOLSET toolset=msvc-14.0)
set(BOOST_COMPILER_STRING -vc140) set(BOOST_COMPILER_STRING -vc140)
endif() endif()
set(JAM_FILE ${BUILD_DIR}/boost/src/external_boost/user-config.jam) set(JAM_FILE ${BUILD_DIR}/boost/src/external_boost/user-config.jam)
set(semi_path "${PATCH_DIR}/semi.txt") set(semi_path "${PATCH_DIR}/semi.txt")
FILE(TO_NATIVE_PATH ${semi_path} semi_path) FILE(TO_NATIVE_PATH ${semi_path} semi_path)
set(BOOST_CONFIGURE_COMMAND bootstrap.bat && set(BOOST_CONFIGURE_COMMAND bootstrap.bat &&
echo using python : ${PYTHON_OUTPUTDIR}\\python.exe > "${JAM_FILE}" && echo using python : ${PYTHON_OUTPUTDIR}\\python.exe > "${JAM_FILE}" &&
echo. : ${BUILD_DIR}/python/src/external_python/include ${BUILD_DIR}/python/src/external_python/pc >> "${JAM_FILE}" && echo. : ${BUILD_DIR}/python/src/external_python/include ${BUILD_DIR}/python/src/external_python/pc >> "${JAM_FILE}" &&
echo. : ${BUILD_DIR}/python/src/external_python/pcbuild >> "${JAM_FILE}" && echo. : ${BUILD_DIR}/python/src/external_python/pcbuild >> "${JAM_FILE}" &&
type ${semi_path} >> "${JAM_FILE}" type ${semi_path} >> "${JAM_FILE}"
) )
set(BOOST_BUILD_COMMAND bjam) set(BOOST_BUILD_COMMAND bjam)
#--user-config=user-config.jam #--user-config=user-config.jam
set(BOOST_BUILD_OPTIONS runtime-link=static ) set(BOOST_BUILD_OPTIONS runtime-link=static )
#set(BOOST_WITH_PYTHON --with-python) #set(BOOST_WITH_PYTHON --with-python)
set(BOOST_HARVEST_CMD ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/lib/ ${HARVEST_TARGET}/boost/lib/ ) set(BOOST_HARVEST_CMD ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/lib/ ${HARVEST_TARGET}/boost/lib/ )
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
set(BOOST_HARVEST_CMD ${BOOST_HARVEST_CMD} && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/include/boost-1_68/ ${HARVEST_TARGET}/boost/include/) set(BOOST_HARVEST_CMD ${BOOST_HARVEST_CMD} && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/include/boost-1_68/ ${HARVEST_TARGET}/boost/include/)
endif() endif()
elseif(APPLE) elseif(APPLE)
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh) set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
set(BOOST_BUILD_COMMAND ./b2) set(BOOST_BUILD_COMMAND ./b2)
set(BOOST_BUILD_OPTIONS toolset=darwin cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} --disable-icu boost.locale.icu=off) set(BOOST_BUILD_OPTIONS toolset=darwin cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} --disable-icu boost.locale.icu=off)
set(BOOST_HARVEST_CMD echo .) set(BOOST_HARVEST_CMD echo .)
set(BOOST_PATCH_COMMAND echo .) set(BOOST_PATCH_COMMAND echo .)
else() else()
set(BOOST_HARVEST_CMD echo .) set(BOOST_HARVEST_CMD echo .)
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh) set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
set(BOOST_BUILD_COMMAND ./b2) set(BOOST_BUILD_COMMAND ./b2)
set(BOOST_BUILD_OPTIONS cxxflags=${PLATFORM_CXXFLAGS} --disable-icu boost.locale.icu=off) set(BOOST_BUILD_OPTIONS cxxflags=${PLATFORM_CXXFLAGS} --disable-icu boost.locale.icu=off)
set(BOOST_PATCH_COMMAND echo .) set(BOOST_PATCH_COMMAND echo .)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(BOOST_ADDRESS_MODEL 64) set(BOOST_ADDRESS_MODEL 64)
else() else()
set(BOOST_ADDRESS_MODEL 32) set(BOOST_ADDRESS_MODEL 32)
endif() endif()
endif() endif()
set(BOOST_OPTIONS set(BOOST_OPTIONS
--with-filesystem --with-filesystem
--with-locale --with-locale
--with-thread --with-thread
--with-regex --with-regex
--with-system --with-system
--with-date_time --with-date_time
--with-wave --with-wave
--with-atomic --with-atomic
--with-serialization --with-serialization
--with-program_options --with-program_options
--with-iostreams --with-iostreams
${BOOST_WITH_PYTHON} ${BOOST_WITH_PYTHON}
${BOOST_TOOLSET} ${BOOST_TOOLSET}
) )
string(TOLOWER ${BUILD_MODE} BOOST_BUILD_TYPE) string(TOLOWER ${BUILD_MODE} BOOST_BUILD_TYPE)
ExternalProject_Add(external_boost ExternalProject_Add(external_boost
URL ${BOOST_URI} URL ${BOOST_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${BOOST_HASH} URL_HASH MD5=${BOOST_HASH}
PREFIX ${BUILD_DIR}/boost PREFIX ${BUILD_DIR}/boost
UPDATE_COMMAND "" UPDATE_COMMAND ""
PATCH_COMMAND ${BOOST_PATCH_COMMAND} PATCH_COMMAND ${BOOST_PATCH_COMMAND}
CONFIGURE_COMMAND ${BOOST_CONFIGURE_COMMAND} CONFIGURE_COMMAND ${BOOST_CONFIGURE_COMMAND}
BUILD_COMMAND ${BOOST_BUILD_COMMAND} ${BOOST_BUILD_OPTIONS} -j${MAKE_THREADS} architecture=x86 address-model=${BOOST_ADDRESS_MODEL} link=static threading=multi ${BOOST_OPTIONS} --prefix=${LIBDIR}/boost install BUILD_COMMAND ${BOOST_BUILD_COMMAND} ${BOOST_BUILD_OPTIONS} -j${MAKE_THREADS} architecture=x86 address-model=${BOOST_ADDRESS_MODEL} link=static threading=multi ${BOOST_OPTIONS} --prefix=${LIBDIR}/boost install
BUILD_IN_SOURCE 1 BUILD_IN_SOURCE 1
INSTALL_COMMAND "${BOOST_HARVEST_CMD}" INSTALL_COMMAND "${BOOST_HARVEST_CMD}"
) )
if(WIN32) if(WIN32)
add_dependencies( add_dependencies(
external_boost external_boost
Make_Python_Environment Make_Python_Environment
) )
endif() endif()

View File

@@ -21,19 +21,19 @@ set(BZIP2_CONFIGURE_ENV echo .)
set(BZIP2_CONFIGURATION_ARGS) set(BZIP2_CONFIGURATION_ARGS)
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
set(BZIP2_LDFLAGS "-Wl,--as-needed") set(BZIP2_LDFLAGS "-Wl,--as-needed")
set(BZIP2_CFLAGS "-fPIC -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64") set(BZIP2_CFLAGS "-fPIC -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64")
set(BZIP2_CONFIGURE_ENV ${BZIP2_CONFIGURE_ENV} && export LDFLAGS=${BZIP2_LDFLAGS} && export CFLAGS=${BZIP2_CFLAGS} set(BZIP2_CONFIGURE_ENV ${BZIP2_CONFIGURE_ENV} && export LDFLAGS=${BZIP2_LDFLAGS} && export CFLAGS=${BZIP2_CFLAGS}
&& export PREFIX=${BZIP2_PREFIX}) && export PREFIX=${BZIP2_PREFIX})
endif() endif()
ExternalProject_Add(external_bzip2 ExternalProject_Add(external_bzip2
URL ${BZIP2_URI} URL ${BZIP2_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${BZIP2_HASH} URL_HASH SHA256=${BZIP2_HASH}
PREFIX ${BUILD_DIR}/bzip2 PREFIX ${BUILD_DIR}/bzip2
CONFIGURE_COMMAND echo . CONFIGURE_COMMAND echo .
BUILD_COMMAND ${BZIP2_CONFIGURE_ENV} && cd ${BUILD_DIR}/bzip2/src/external_bzip2/ && make CFLAGS=${BZIP2_CFLAGS} LDFLAGS=${BZIP2_LDFLAGS} -j${MAKE_THREADS} BUILD_COMMAND ${BZIP2_CONFIGURE_ENV} && cd ${BUILD_DIR}/bzip2/src/external_bzip2/ && make CFLAGS=${BZIP2_CFLAGS} LDFLAGS=${BZIP2_LDFLAGS} -j${MAKE_THREADS}
INSTALL_COMMAND ${BZIP2_CONFIGURE_ENV} && cd ${BUILD_DIR}/bzip2/src/external_bzip2/ && make CFLAGS=${BZIP2_CFLAGS} LDFLAGS=${BZIP2_LDFLAGS} PREFIX=${BZIP2_PREFIX} install INSTALL_COMMAND ${BZIP2_CONFIGURE_ENV} && cd ${BUILD_DIR}/bzip2/src/external_bzip2/ && make CFLAGS=${BZIP2_CFLAGS} LDFLAGS=${BZIP2_LDFLAGS} PREFIX=${BZIP2_PREFIX} install
INSTALL_DIR ${LIBDIR}/bzip2 INSTALL_DIR ${LIBDIR}/bzip2
) )

View File

@@ -17,47 +17,47 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(CLANG_EXTRA_ARGS set(CLANG_EXTRA_ARGS
-DCLANG_PATH_TO_LLVM_SOURCE=${BUILD_DIR}/ll/src/ll -DCLANG_PATH_TO_LLVM_SOURCE=${BUILD_DIR}/ll/src/ll
-DCLANG_PATH_TO_LLVM_BUILD=${LIBDIR}/llvm -DCLANG_PATH_TO_LLVM_BUILD=${LIBDIR}/llvm
-DLLVM_USE_CRT_RELEASE=MT -DLLVM_USE_CRT_RELEASE=MT
-DLLVM_USE_CRT_DEBUG=MTd -DLLVM_USE_CRT_DEBUG=MTd
-DLLVM_CONFIG=${LIBDIR}/llvm/bin/llvm-config -DLLVM_CONFIG=${LIBDIR}/llvm/bin/llvm-config
) )
if(WIN32) if(WIN32)
set(CLANG_GENERATOR "Ninja") set(CLANG_GENERATOR "Ninja")
else() else()
set(CLANG_GENERATOR "Unix Makefiles") set(CLANG_GENERATOR "Unix Makefiles")
endif() endif()
ExternalProject_Add(external_clang ExternalProject_Add(external_clang
URL ${CLANG_URI} URL ${CLANG_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${CLANG_HASH} URL_HASH MD5=${CLANG_HASH}
PREFIX ${BUILD_DIR}/clang PREFIX ${BUILD_DIR}/clang
CMAKE_GENERATOR ${CLANG_GENERATOR} CMAKE_GENERATOR ${CLANG_GENERATOR}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/clang ${DEFAULT_CMAKE_FLAGS} ${CLANG_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/clang ${DEFAULT_CMAKE_FLAGS} ${CLANG_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/clang INSTALL_DIR ${LIBDIR}/clang
) )
if(MSVC) if(MSVC)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
set(CLANG_HARVEST_COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/ ${HARVEST_TARGET}/llvm/) set(CLANG_HARVEST_COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/ ${HARVEST_TARGET}/llvm/)
else() else()
set(CLANG_HARVEST_COMMAND set(CLANG_HARVEST_COMMAND
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/lib/ ${HARVEST_TARGET}/llvm/debug/lib/ && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/lib/ ${HARVEST_TARGET}/llvm/debug/lib/ &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/bin/ ${HARVEST_TARGET}/llvm/debug/bin/ && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/bin/ ${HARVEST_TARGET}/llvm/debug/bin/ &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/include/ ${HARVEST_TARGET}/llvm/debug/include/ ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/include/ ${HARVEST_TARGET}/llvm/debug/include/
) )
endif() endif()
ExternalProject_Add_Step(external_clang after_install ExternalProject_Add_Step(external_clang after_install
COMMAND ${CLANG_HARVEST_COMMAND} COMMAND ${CLANG_HARVEST_COMMAND}
DEPENDEES mkdir update patch download configure build install DEPENDEES mkdir update patch download configure build install
) )
endif() endif()
add_dependencies( add_dependencies(
external_clang external_clang
ll ll
) )

View File

@@ -19,10 +19,10 @@
set(CLEW_EXTRA_ARGS) set(CLEW_EXTRA_ARGS)
ExternalProject_Add(external_clew ExternalProject_Add(external_clew
URL ${CLEW_URI} URL ${CLEW_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${CLEW_HASH} URL_HASH MD5=${CLEW_HASH}
PREFIX ${BUILD_DIR}/clew PREFIX ${BUILD_DIR}/clew
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/clew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CLEW_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/clew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CLEW_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/clew INSTALL_DIR ${LIBDIR}/clew
) )

View File

@@ -19,11 +19,11 @@
set(CUEW_EXTRA_ARGS) set(CUEW_EXTRA_ARGS)
ExternalProject_Add(external_cuew ExternalProject_Add(external_cuew
URL ${CUEW_URI} URL ${CUEW_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${CUEW_HASH} URL_HASH MD5=${CUEW_HASH}
PREFIX ${BUILD_DIR}/cuew PREFIX ${BUILD_DIR}/cuew
PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/cuew/src/external_cuew < ${PATCH_DIR}/cuew.diff PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/cuew/src/external_cuew < ${PATCH_DIR}/cuew.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/cuew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CUEW_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/cuew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CUEW_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/cuew INSTALL_DIR ${LIBDIR}/cuew
) )

View File

@@ -20,50 +20,50 @@
# library itself does not depend on them, so should give no problems. # library itself does not depend on them, so should give no problems.
set(EMBREE_EXTRA_ARGS set(EMBREE_EXTRA_ARGS
-DEMBREE_ISPC_SUPPORT=OFF -DEMBREE_ISPC_SUPPORT=OFF
-DEMBREE_TUTORIALS=OFF -DEMBREE_TUTORIALS=OFF
-DEMBREE_STATIC_LIB=ON -DEMBREE_STATIC_LIB=ON
-DEMBREE_RAY_MASK=ON -DEMBREE_RAY_MASK=ON
-DEMBREE_FILTER_FUNCTION=ON -DEMBREE_FILTER_FUNCTION=ON
-DEMBREE_BACKFACE_CULLING=OFF -DEMBREE_BACKFACE_CULLING=OFF
-DEMBREE_TASKING_SYSTEM=INTERNAL -DEMBREE_TASKING_SYSTEM=INTERNAL
-DEMBREE_MAX_ISA=AVX2 -DEMBREE_MAX_ISA=AVX2
) )
if(WIN32) if(WIN32)
set(EMBREE_BUILD_DIR ${BUILD_MODE}/) set(EMBREE_BUILD_DIR ${BUILD_MODE}/)
else() else()
set(EMBREE_BUILD_DIR) set(EMBREE_BUILD_DIR)
endif() endif()
ExternalProject_Add(external_embree ExternalProject_Add(external_embree
URL ${EMBREE_URI} URL ${EMBREE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${EMBREE_HASH} URL_HASH MD5=${EMBREE_HASH}
PREFIX ${BUILD_DIR}/embree PREFIX ${BUILD_DIR}/embree
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/embree INSTALL_DIR ${LIBDIR}/embree
) )
if(WIN32) if(WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_embree after_install ExternalProject_Add_Step(external_embree after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/embree ${HARVEST_TARGET}/embree COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/embree ${HARVEST_TARGET}/embree
DEPENDEES install DEPENDEES install
) )
else() else()
ExternalProject_Add_Step(external_embree after_install ExternalProject_Add_Step(external_embree after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree3.lib ${HARVEST_TARGET}/embree/lib/embree3_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree3.lib ${HARVEST_TARGET}/embree/lib/embree3_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx.lib ${HARVEST_TARGET}/embree/lib/embree_avx_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx.lib ${HARVEST_TARGET}/embree/lib/embree_avx_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx2.lib ${HARVEST_TARGET}/embree/lib/embree_avx2_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx2.lib ${HARVEST_TARGET}/embree/lib/embree_avx2_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_sse42.lib ${HARVEST_TARGET}/embree/lib/embree_sse42_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_sse42.lib ${HARVEST_TARGET}/embree/lib/embree_sse42_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/lexers.lib ${HARVEST_TARGET}/embree/lib/lexers_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/lexers.lib ${HARVEST_TARGET}/embree/lib/lexers_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/math.lib ${HARVEST_TARGET}/embree/lib/math_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/math.lib ${HARVEST_TARGET}/embree/lib/math_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/simd.lib ${HARVEST_TARGET}/embree/lib/simd_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/simd.lib ${HARVEST_TARGET}/embree/lib/simd_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/sys.lib ${HARVEST_TARGET}/embree/lib/sys_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/sys.lib ${HARVEST_TARGET}/embree/lib/sys_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/tasking.lib ${HARVEST_TARGET}/embree/lib/tasking_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/tasking.lib ${HARVEST_TARGET}/embree/lib/tasking_d.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -19,22 +19,22 @@
set(FAAD_EXTRA_ARGS) set(FAAD_EXTRA_ARGS)
if (WIN32) if (WIN32)
set(FAAD_EXTRA_CONFIGURE "utils\\win32\\ac2ver.exe" "faad2" "configure.ac" > libfaad\\win32_ver.h) set(FAAD_EXTRA_CONFIGURE "utils\\win32\\ac2ver.exe" "faad2" "configure.ac" > libfaad\\win32_ver.h)
else() else()
set(FAAD_EXTRA_CONFIGURE echo .) set(FAAD_EXTRA_CONFIGURE echo .)
endif() endif()
ExternalProject_Add(external_faad ExternalProject_Add(external_faad
URL ${FAAD_URI} URL ${FAAD_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${FAAD_HASH} URL_HASH MD5=${FAAD_HASH}
PREFIX ${BUILD_DIR}/faad PREFIX ${BUILD_DIR}/faad
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && ${FAAD_EXTRA_CONFIGURE} && ${CONFIGURE_COMMAND} --disable-shared --enable-static --prefix=${LIBDIR}/faad CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && ${FAAD_EXTRA_CONFIGURE} && ${CONFIGURE_COMMAND} --disable-shared --enable-static --prefix=${LIBDIR}/faad
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/faad/src/external_faad/ && make install
INSTALL_DIR ${LIBDIR}/faad INSTALL_DIR ${LIBDIR}/faad
) )
if(MSVC) if(MSVC)
set_target_properties(external_faad PROPERTIES FOLDER Mingw) set_target_properties(external_faad PROPERTIES FOLDER Mingw)
endif() endif()

View File

@@ -17,24 +17,24 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_ffi ExternalProject_Add(external_ffi
URL ${FFI_URI} URL ${FFI_URI}
URL_HASH SHA256=${FFI_HASH} URL_HASH SHA256=${FFI_HASH}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
PREFIX ${BUILD_DIR}/ffi PREFIX ${BUILD_DIR}/ffi
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ffi/src/external_ffi/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ffi CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ffi/src/external_ffi/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ffi
--enable-shared=no --enable-shared=no
--enable-static=yes --enable-static=yes
--with-pic --with-pic
--libdir=${LIBDIR}/ffi/lib/ --libdir=${LIBDIR}/ffi/lib/
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ffi/src/external_ffi/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ffi/src/external_ffi/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ffi/src/external_ffi/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ffi/src/external_ffi/ && make install
PATCH_COMMAND ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/ffi/src/external_ffi < ${PATCH_DIR}/ffi.diff PATCH_COMMAND ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/ffi/src/external_ffi < ${PATCH_DIR}/ffi.diff
INSTALL_DIR ${LIBDIR}/ffi INSTALL_DIR ${LIBDIR}/ffi
) )
if (UNIX AND NOT APPLE) if (UNIX AND NOT APPLE)
ExternalProject_Add_Step(external_ffi after_install ExternalProject_Add_Step(external_ffi after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/ffi/lib/libffi.a ${LIBDIR}/ffi/lib/libffi_pic.a COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/ffi/lib/libffi.a ${LIBDIR}/ffi/lib/libffi_pic.a
DEPENDEES install DEPENDEES install
) )
endif() endif()

View File

@@ -22,131 +22,131 @@ set(FFMPEG_EXTRA_FLAGS --pkg-config-flags=--static --extra-cflags=${FFMPEG_CFLAG
set(FFMPEG_ENV PKG_CONFIG_PATH=${mingw_LIBDIR}/openjpeg/lib/pkgconfig:${mingw_LIBDIR}/x264/lib/pkgconfig:${mingw_LIBDIR}/vorbis/lib/pkgconfig:${mingw_LIBDIR}/ogg/lib/pkgconfig:${mingw_LIBDIR}) set(FFMPEG_ENV PKG_CONFIG_PATH=${mingw_LIBDIR}/openjpeg/lib/pkgconfig:${mingw_LIBDIR}/x264/lib/pkgconfig:${mingw_LIBDIR}/vorbis/lib/pkgconfig:${mingw_LIBDIR}/ogg/lib/pkgconfig:${mingw_LIBDIR})
if(WIN32) if(WIN32)
set(FFMPEG_ENV set ${FFMPEG_ENV} &&) set(FFMPEG_ENV set ${FFMPEG_ENV} &&)
set(FFMPEG_EXTRA_FLAGS set(FFMPEG_EXTRA_FLAGS
${FFMPEG_EXTRA_FLAGS} ${FFMPEG_EXTRA_FLAGS}
--disable-static --disable-static
--enable-shared --enable-shared
--enable-w32threads --enable-w32threads
--disable-pthreads --disable-pthreads
--enable-libopenjpeg --enable-libopenjpeg
) )
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
set(FFMPEG_EXTRA_FLAGS set(FFMPEG_EXTRA_FLAGS
${FFMPEG_EXTRA_FLAGS} ${FFMPEG_EXTRA_FLAGS}
--x86asmexe=yasm --x86asmexe=yasm
) )
endif() endif()
else() else()
set(FFMPEG_EXTRA_FLAGS set(FFMPEG_EXTRA_FLAGS
${FFMPEG_EXTRA_FLAGS} ${FFMPEG_EXTRA_FLAGS}
--enable-static --enable-static
--disable-shared --disable-shared
--enable-libopenjpeg --enable-libopenjpeg
) )
endif() endif()
if(APPLE) if(APPLE)
set(FFMPEG_EXTRA_FLAGS set(FFMPEG_EXTRA_FLAGS
${FFMPEG_EXTRA_FLAGS} ${FFMPEG_EXTRA_FLAGS}
--target-os=darwin --target-os=darwin
) )
endif() endif()
ExternalProject_Add(external_ffmpeg ExternalProject_Add(external_ffmpeg
URL ${FFMPEG_URI} URL ${FFMPEG_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${FFMPEG_HASH} URL_HASH MD5=${FFMPEG_HASH}
# OpenJpeg is compiled with pthread support on Linux, which is all fine and is what we # OpenJpeg is compiled with pthread support on Linux, which is all fine and is what we
# want for maximum runtime performance, but due to static nature of that library we # want for maximum runtime performance, but due to static nature of that library we
# need to force ffmpeg to link against pthread, otherwise test program used by autoconf # need to force ffmpeg to link against pthread, otherwise test program used by autoconf
# will fail. This patch does that in a way that is compatible with multiple distributions. # will fail. This patch does that in a way that is compatible with multiple distributions.
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/ffmpeg/src/external_ffmpeg < ${PATCH_DIR}/ffmpeg.diff PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/ffmpeg/src/external_ffmpeg < ${PATCH_DIR}/ffmpeg.diff
PREFIX ${BUILD_DIR}/ffmpeg PREFIX ${BUILD_DIR}/ffmpeg
CONFIGURE_COMMAND ${CONFIGURE_ENV_NO_PERL} && CONFIGURE_COMMAND ${CONFIGURE_ENV_NO_PERL} &&
cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ &&
${FFMPEG_ENV} ${CONFIGURE_COMMAND_NO_TARGET} ${FFMPEG_EXTRA_FLAGS} ${FFMPEG_ENV} ${CONFIGURE_COMMAND_NO_TARGET} ${FFMPEG_EXTRA_FLAGS}
--disable-lzma --disable-lzma
--disable-avfilter --disable-avfilter
--disable-vdpau --disable-vdpau
--disable-bzlib --disable-bzlib
--disable-libgsm --disable-libgsm
--disable-libspeex --disable-libspeex
--enable-libvpx --enable-libvpx
--prefix=${LIBDIR}/ffmpeg --prefix=${LIBDIR}/ffmpeg
--enable-libtheora --enable-libtheora
--enable-libvorbis --enable-libvorbis
--enable-zlib --enable-zlib
--enable-stripping --enable-stripping
--enable-runtime-cpudetect --enable-runtime-cpudetect
--disable-vaapi --disable-vaapi
--disable-nonfree --disable-nonfree
--enable-gpl --enable-gpl
--disable-postproc --disable-postproc
--enable-libmp3lame --enable-libmp3lame
--disable-librtmp --disable-librtmp
--enable-libx264 --enable-libx264
--enable-libxvid --enable-libxvid
--disable-libopencore-amrnb --disable-libopencore-amrnb
--disable-libopencore-amrwb --disable-libopencore-amrwb
--disable-libdc1394 --disable-libdc1394
--disable-version3 --disable-version3
--disable-debug --disable-debug
--enable-optimizations --enable-optimizations
--disable-sse --disable-sse
--disable-ssse3 --disable-ssse3
--enable-ffplay --enable-ffplay
--disable-openssl --disable-openssl
--disable-securetransport --disable-securetransport
--disable-indev=avfoundation --disable-indev=avfoundation
--disable-indev=qtkit --disable-indev=qtkit
--disable-sdl2 --disable-sdl2
--disable-gnutls --disable-gnutls
--disable-videotoolbox --disable-videotoolbox
--disable-libxcb --disable-libxcb
--disable-xlib --disable-xlib
--disable-audiotoolbox --disable-audiotoolbox
--disable-cuvid --disable-cuvid
--disable-nvenc --disable-nvenc
--disable-indev=jack --disable-indev=jack
--disable-indev=alsa --disable-indev=alsa
--disable-outdev=alsa --disable-outdev=alsa
--disable-crystalhd --disable-crystalhd
--disable-sndio --disable-sndio
BUILD_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && make install INSTALL_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && make install
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ffmpeg ${DEFAULT_CMAKE_FLAGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ffmpeg ${DEFAULT_CMAKE_FLAGS}
INSTALL_DIR ${LIBDIR}/ffmpeg INSTALL_DIR ${LIBDIR}/ffmpeg
) )
if(MSVC) if(MSVC)
set_target_properties(external_ffmpeg PROPERTIES FOLDER Mingw) set_target_properties(external_ffmpeg PROPERTIES FOLDER Mingw)
endif() endif()
add_dependencies( add_dependencies(
external_ffmpeg external_ffmpeg
external_zlib external_zlib
external_faad external_faad
external_openjpeg external_openjpeg
external_xvidcore external_xvidcore
external_x264 external_x264
external_vpx external_vpx
external_theora external_theora
external_vorbis external_vorbis
external_ogg external_ogg
external_lame external_lame
) )
if(WIN32) if(WIN32)
add_dependencies( add_dependencies(
external_ffmpeg external_ffmpeg
external_zlib_mingw external_zlib_mingw
) )
endif() endif()
if(BUILD_MODE STREQUAL Release AND WIN32) if(BUILD_MODE STREQUAL Release AND WIN32)
ExternalProject_Add_Step(external_ffmpeg after_install ExternalProject_Add_Step(external_ffmpeg after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ffmpeg/include ${HARVEST_TARGET}/ffmpeg/include COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ffmpeg/include ${HARVEST_TARGET}/ffmpeg/include
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ffmpeg/bin ${HARVEST_TARGET}/ffmpeg/lib COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ffmpeg/bin ${HARVEST_TARGET}/ffmpeg/lib
DEPENDEES install DEPENDEES install
) )
endif() endif()

View File

@@ -19,29 +19,29 @@
set(FFTW_EXTRA_ARGS) set(FFTW_EXTRA_ARGS)
if(WIN32) if(WIN32)
set(FFTW3_ENV set CFLAGS=-fno-stack-check -fno-stack-protector -mno-stack-arg-probe -fno-lto &&) 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(FFTW3_PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/fftw3/src/external_fftw3 < ${PATCH_DIR}/fftw3.diff)
endif() endif()
ExternalProject_Add(external_fftw3 ExternalProject_Add(external_fftw3
URL ${FFTW_URI} URL ${FFTW_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${FFTW_HASH} URL_HASH MD5=${FFTW_HASH}
PREFIX ${BUILD_DIR}/fftw3 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} && ${FFTW3_ENV} cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && ${CONFIGURE_COMMAND} --enable-static --prefix=${mingw_LIBDIR}/fftw3
PATCH_COMMAND ${FFTW3_PATCH_COMMAND} PATCH_COMMAND ${FFTW3_PATCH_COMMAND}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/fftw3/src/external_fftw3/ && make -j${MAKE_THREADS} 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 install
INSTALL_DIR ${LIBDIR}/fftw3 INSTALL_DIR ${LIBDIR}/fftw3
) )
if(MSVC) if(MSVC)
set_target_properties(external_fftw3 PROPERTIES FOLDER Mingw) set_target_properties(external_fftw3 PROPERTIES FOLDER Mingw)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_fftw3 after_install 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.a ${HARVEST_TARGET}/fftw3/lib/libfftw.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/include/fftw3.h ${HARVEST_TARGET}/fftw3/include/fftw3.h COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fftw3/include/fftw3.h ${HARVEST_TARGET}/fftw3/include/fftw3.h
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -17,16 +17,16 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_flac ExternalProject_Add(external_flac
URL ${FLAC_URI} URL ${FLAC_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${FLAC_HASH} URL_HASH SHA256=${FLAC_HASH}
PREFIX ${BUILD_DIR}/flac PREFIX ${BUILD_DIR}/flac
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/flac/src/external_flac/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/flac --disable-shared --enable-static CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/flac/src/external_flac/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/flac --disable-shared --enable-static
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/flac/src/external_flac/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/flac/src/external_flac/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/flac/src/external_flac/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/flac/src/external_flac/ && make install
INSTALL_DIR ${LIBDIR}/flac INSTALL_DIR ${LIBDIR}/flac
) )
if(MSVC) if(MSVC)
set_target_properties(external_flac PROPERTIES FOLDER Mingw) set_target_properties(external_flac PROPERTIES FOLDER Mingw)
endif() endif()

View File

@@ -19,13 +19,13 @@
set(FLEXBISON_EXTRA_ARGS) set(FLEXBISON_EXTRA_ARGS)
ExternalProject_Add(external_flexbison ExternalProject_Add(external_flexbison
URL ${FLEXBISON_URI} URL ${FLEXBISON_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${FLEXBISON_HASH} URL_HASH MD5=${FLEXBISON_HASH}
PREFIX ${BUILD_DIR}/flexbison PREFIX ${BUILD_DIR}/flexbison
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/flexbison ${DEFAULT_CMAKE_FLAGS} ${FLEXBISON_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/flexbison ${DEFAULT_CMAKE_FLAGS} ${FLEXBISON_EXTRA_ARGS}
CONFIGURE_COMMAND echo . CONFIGURE_COMMAND echo .
BUILD_COMMAND echo . BUILD_COMMAND echo .
INSTALL_COMMAND COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/flexbison/src/external_flexbison/ ${LIBDIR}/flexbison/ INSTALL_COMMAND COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/flexbison/src/external_flexbison/ ${LIBDIR}/flexbison/
INSTALL_DIR ${LIBDIR}/flexbison INSTALL_DIR ${LIBDIR}/flexbison
) )

View File

@@ -17,19 +17,19 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(WIN32) if(WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
set(FREEGLUT_EXTRA_ARGS set(FREEGLUT_EXTRA_ARGS
-DFREEGLUT_BUILD_SHARED_LIBS=Off -DFREEGLUT_BUILD_SHARED_LIBS=Off
-DFREEGLUT_BUILD_STATIC_LIBS=On -DFREEGLUT_BUILD_STATIC_LIBS=On
) )
ExternalProject_Add(external_freeglut ExternalProject_Add(external_freeglut
URL ${FREEGLUT_URI} URL ${FREEGLUT_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${FREEGLUT_HASH} URL_HASH MD5=${FREEGLUT_HASH}
PREFIX ${BUILD_DIR}/freeglut PREFIX ${BUILD_DIR}/freeglut
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/freeglut ${DEFAULT_C_FLAGS} ${DEFAULT_CXX_FLAGS} ${FREEGLUT_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/freeglut ${DEFAULT_C_FLAGS} ${DEFAULT_CXX_FLAGS} ${FREEGLUT_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/freeglut INSTALL_DIR ${LIBDIR}/freeglut
) )
endif() endif()
endif() endif()

View File

@@ -17,28 +17,28 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(FREETYPE_EXTRA_ARGS set(FREETYPE_EXTRA_ARGS
-DCMAKE_RELEASE_POSTFIX:STRING=2ST -DCMAKE_RELEASE_POSTFIX:STRING=2ST
-DCMAKE_DEBUG_POSTFIX:STRING=2ST_d -DCMAKE_DEBUG_POSTFIX:STRING=2ST_d
-DWITH_BZip2=OFF -DWITH_BZip2=OFF
-DWITH_HarfBuzz=OFF -DWITH_HarfBuzz=OFF
-DFT_WITH_HARFBUZZ=OFF -DFT_WITH_HARFBUZZ=OFF
-DFT_WITH_BZIP2=OFF -DFT_WITH_BZIP2=OFF
-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE) -DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE)
ExternalProject_Add(external_freetype ExternalProject_Add(external_freetype
URL ${FREETYPE_URI} URL ${FREETYPE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${FREETYPE_HASH} URL_HASH MD5=${FREETYPE_HASH}
PREFIX ${BUILD_DIR}/freetype PREFIX ${BUILD_DIR}/freetype
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/freetype ${DEFAULT_CMAKE_FLAGS} ${FREETYPE_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/freetype ${DEFAULT_CMAKE_FLAGS} ${FREETYPE_EXTRA_ARGS}
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/freetype/src/external_freetype < ${PATCH_DIR}/freetype.diff PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/freetype/src/external_freetype < ${PATCH_DIR}/freetype.diff
INSTALL_DIR ${LIBDIR}/freetype INSTALL_DIR ${LIBDIR}/freetype
) )
if(BUILD_MODE STREQUAL Release AND WIN32) if(BUILD_MODE STREQUAL Release AND WIN32)
ExternalProject_Add_Step(external_freetype after_install ExternalProject_Add_Step(external_freetype after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freetype ${HARVEST_TARGET}/freetype COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freetype ${HARVEST_TARGET}/freetype
DEPENDEES install DEPENDEES install
) )
endif() endif()

View File

@@ -17,16 +17,16 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(GLEW_EXTRA_ARGS set(GLEW_EXTRA_ARGS
-DBUILD_UTILS=Off -DBUILD_UTILS=Off
-DBUILD_SHARED_LIBS=Off -DBUILD_SHARED_LIBS=Off
) )
ExternalProject_Add(external_glew ExternalProject_Add(external_glew
URL ${GLEW_URI} URL ${GLEW_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${GLEW_HASH} URL_HASH MD5=${GLEW_HASH}
PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_glew.txt ${BUILD_DIR}/glew/src/external_glew/CMakeLists.txt PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_glew.txt ${BUILD_DIR}/glew/src/external_glew/CMakeLists.txt
PREFIX ${BUILD_DIR}/glew PREFIX ${BUILD_DIR}/glew
CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${LIBDIR}/glew ${DEFAULT_CMAKE_FLAGS} ${GLEW_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${LIBDIR}/glew ${DEFAULT_CMAKE_FLAGS} ${GLEW_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/glew INSTALL_DIR ${LIBDIR}/glew
) )

View File

@@ -19,10 +19,10 @@
set(GLFW_EXTRA_ARGS) set(GLFW_EXTRA_ARGS)
ExternalProject_Add(external_glfw ExternalProject_Add(external_glfw
URL ${GLFW_URI} URL ${GLFW_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${GLFW_HASH} URL_HASH MD5=${GLFW_HASH}
PREFIX ${BUILD_DIR}/glfw PREFIX ${BUILD_DIR}/glfw
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/glfw -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${GLFW_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/glfw -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${GLFW_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/glfw INSTALL_DIR ${LIBDIR}/glfw
) )

View File

@@ -21,90 +21,90 @@
######################################################################## ########################################################################
if(NOT DEFINED HARVEST_TARGET) if(NOT DEFINED HARVEST_TARGET)
set(HARVEST_TARGET ${CMAKE_CURRENT_SOURCE_DIR}/Harvest) set(HARVEST_TARGET ${CMAKE_CURRENT_SOURCE_DIR}/Harvest)
endif() endif()
message("HARVEST_TARGET = ${HARVEST_TARGET}") message("HARVEST_TARGET = ${HARVEST_TARGET}")
if(WIN32) if(WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
add_custom_target(Harvest_Release_Results add_custom_target(Harvest_Release_Results
COMMAND # jpeg rename libfile + copy include COMMAND # jpeg rename libfile + copy include
${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib && ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpg/include/ ${HARVEST_TARGET}/jpeg/include/ && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpg/include/ ${HARVEST_TARGET}/jpeg/include/ &&
# OpenImageIO # OpenImageIO
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/include ${HARVEST_TARGET}/OpenImageIO/include && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/include ${HARVEST_TARGET}/OpenImageIO/include &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/lib ${HARVEST_TARGET}/OpenImageIO/lib && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/lib ${HARVEST_TARGET}/OpenImageIO/lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/idiff.exe ${HARVEST_TARGET}/OpenImageIO/bin/idiff.exe && ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/idiff.exe ${HARVEST_TARGET}/OpenImageIO/bin/idiff.exe &&
# png # png
${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static.lib ${HARVEST_TARGET}/png/lib/libpng.lib && ${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static.lib ${HARVEST_TARGET}/png/lib/libpng.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/ && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/ &&
# freeglut-> opengl # freeglut-> opengl
${CMAKE_COMMAND} -E copy ${LIBDIR}/freeglut/lib/freeglut_static.lib ${HARVEST_TARGET}/opengl/lib/freeglut_static.lib && ${CMAKE_COMMAND} -E copy ${LIBDIR}/freeglut/lib/freeglut_static.lib ${HARVEST_TARGET}/opengl/lib/freeglut_static.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freeglut/include/ ${HARVEST_TARGET}/opengl/include/ && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freeglut/include/ ${HARVEST_TARGET}/opengl/include/ &&
# glew-> opengl # glew-> opengl
${CMAKE_COMMAND} -E copy ${LIBDIR}/glew/lib/libglew32.lib ${HARVEST_TARGET}/opengl/lib/glew.lib && ${CMAKE_COMMAND} -E copy ${LIBDIR}/glew/lib/libglew32.lib ${HARVEST_TARGET}/opengl/lib/glew.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/glew/include/ ${HARVEST_TARGET}/opengl/include/ && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/glew/include/ ${HARVEST_TARGET}/opengl/include/ &&
# sndfile # sndfile
${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/lib/libsndfile.dll.a ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.lib && ${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/lib/libsndfile.dll.a ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/bin/libsndfile-1.dll ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.dll && ${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/bin/libsndfile-1.dll ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.dll &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/include/sndfile.h ${HARVEST_TARGET}/sndfile/include/sndfile.h && ${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/include/sndfile.h ${HARVEST_TARGET}/sndfile/include/sndfile.h &&
# tiff # tiff
${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiff.lib ${HARVEST_TARGET}/tiff/lib/libtiff.lib && ${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiff.lib ${HARVEST_TARGET}/tiff/lib/libtiff.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/ && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/ &&
# BlendThumb # BlendThumb
${CMAKE_COMMAND} -E copy ${LIBDIR}/BlendThumb64/bin/blendthumb.dll ${HARVEST_TARGET}/ThumbHandler/lib/BlendThumb64.dll && ${CMAKE_COMMAND} -E copy ${LIBDIR}/BlendThumb64/bin/blendthumb.dll ${HARVEST_TARGET}/ThumbHandler/lib/BlendThumb64.dll &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/BlendThumb32/bin/blendthumb.dll ${HARVEST_TARGET}/ThumbHandler/lib/BlendThumb.dll && ${CMAKE_COMMAND} -E copy ${LIBDIR}/BlendThumb32/bin/blendthumb.dll ${HARVEST_TARGET}/ThumbHandler/lib/BlendThumb.dll &&
# hidapi # hidapi
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hidapi/ ${HARVEST_TARGET}/hidapi/ && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hidapi/ ${HARVEST_TARGET}/hidapi/ &&
# webp, straight up copy # webp, straight up copy
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/webp ${HARVEST_TARGET}/webp && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/webp ${HARVEST_TARGET}/webp &&
DEPENDS DEPENDS
) )
endif() endif()
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
add_custom_target(Harvest_Debug_Results add_custom_target(Harvest_Debug_Results
# OpenImageIO # OpenImageIO
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib && COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib && ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib &&
# python # python
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/python/ ${HARVEST_TARGET}/python/ && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/python/ ${HARVEST_TARGET}/python/ &&
# hdf5 # hdf5
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hdf5/lib ${HARVEST_TARGET}/hdf5/lib && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hdf5/lib ${HARVEST_TARGET}/hdf5/lib &&
# numpy # numpy
${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}d.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}d.tar.gz && ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}d.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}d.tar.gz &&
# python # python
${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_d.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_d.tar.gz ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_d.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_d.tar.gz
DEPENDS Package_Python DEPENDS Package_Python
) )
endif() endif()
else(WIN32) else(WIN32)
function(harvest from to) function(harvest from to)
set(pattern "") set(pattern "")
foreach(f ${ARGN}) foreach(f ${ARGN})
set(pattern ${f}) set(pattern ${f})
endforeach() endforeach()
if(pattern STREQUAL "") if(pattern STREQUAL "")
get_filename_component(dirpath ${to} DIRECTORY) get_filename_component(dirpath ${to} DIRECTORY)
get_filename_component(filename ${to} NAME) get_filename_component(filename ${to} NAME)
install( install(
FILES ${LIBDIR}/${from} FILES ${LIBDIR}/${from}
DESTINATION ${HARVEST_TARGET}/${dirpath} DESTINATION ${HARVEST_TARGET}/${dirpath}
RENAME ${filename}) RENAME ${filename})
else() else()
install( install(
DIRECTORY ${LIBDIR}/${from}/ DIRECTORY ${LIBDIR}/${from}/
DESTINATION ${HARVEST_TARGET}/${to} DESTINATION ${HARVEST_TARGET}/${to}
USE_SOURCE_PERMISSIONS USE_SOURCE_PERMISSIONS
FILES_MATCHING PATTERN ${pattern} FILES_MATCHING PATTERN ${pattern}
PATTERN "pkgconfig" EXCLUDE PATTERN "pkgconfig" EXCLUDE
PATTERN "cmake" EXCLUDE PATTERN "cmake" EXCLUDE
PATTERN "__pycache__" EXCLUDE PATTERN "__pycache__" EXCLUDE
PATTERN "tests" EXCLUDE) PATTERN "tests" EXCLUDE)
endif() endif()
endfunction() endfunction()
harvest(alembic/include alembic/include "*.h") harvest(alembic/include alembic/include "*.h")
@@ -134,25 +134,25 @@ harvest(llvm/include llvm/include "*")
harvest(llvm/bin llvm/bin "llvm-config") harvest(llvm/bin llvm/bin "llvm-config")
harvest(llvm/lib llvm/lib "libLLVM*.a") harvest(llvm/lib llvm/lib "libLLVM*.a")
if(APPLE) if(APPLE)
harvest(openmp/lib openmp/lib "*") harvest(openmp/lib openmp/lib "*")
harvest(openmp/include openmp/include "*.h") harvest(openmp/include openmp/include "*.h")
endif() endif()
harvest(ogg/lib ffmpeg/lib "*.a") harvest(ogg/lib ffmpeg/lib "*.a")
harvest(openal/include openal/include "*.h") harvest(openal/include openal/include "*.h")
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
harvest(openal/lib openal/lib "*.a") harvest(openal/lib openal/lib "*.a")
harvest(blosc/include blosc/include "*.h") harvest(blosc/include blosc/include "*.h")
harvest(blosc/lib blosc/lib "*.a") harvest(blosc/lib blosc/lib "*.a")
harvest(zlib/include zlib/include "*.h") harvest(zlib/include zlib/include "*.h")
harvest(zlib/lib zlib/lib "*.a") harvest(zlib/lib zlib/lib "*.a")
harvest(xml2/include xml2/include "*.h") harvest(xml2/include xml2/include "*.h")
harvest(xml2/lib xml2/lib "*.a") harvest(xml2/lib xml2/lib "*.a")
else() else()
harvest(blosc/lib openvdb/lib "*.a") harvest(blosc/lib openvdb/lib "*.a")
harvest(xml2/lib opencollada/lib "*.a") harvest(xml2/lib opencollada/lib "*.a")
endif() endif()
harvest(opencollada/include/opencollada opencollada/include "*.h") harvest(opencollada/include/opencollada opencollada/include "*.h")
harvest(opencollada/lib/opencollada opencollada/lib "*.a") harvest(opencollada/lib/opencollada opencollada/lib "*.a")

View File

@@ -17,26 +17,26 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(HDF5_EXTRA_ARGS set(HDF5_EXTRA_ARGS
-DHDF5_ENABLE_THREADSAFE=Off -DHDF5_ENABLE_THREADSAFE=Off
-DHDF5_BUILD_CPP_LIB=Off -DHDF5_BUILD_CPP_LIB=Off
-DBUILD_TESTING=Off -DBUILD_TESTING=Off
-DHDF5_BUILD_TOOLS=Off -DHDF5_BUILD_TOOLS=Off
-DHDF5_BUILD_EXAMPLES=Off -DHDF5_BUILD_EXAMPLES=Off
-DHDF5_BUILD_HL_LIB=On -DHDF5_BUILD_HL_LIB=On
-DBUILD_STATIC_CRT_LIBS=On -DBUILD_STATIC_CRT_LIBS=On
-DBUILD_SHARED_LIBS=On -DBUILD_SHARED_LIBS=On
) )
if(WIN32) if(WIN32)
set(HDF5_PATCH ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/hdf5/src/external_hdf5 < ${PATCH_DIR}/hdf5.diff) set(HDF5_PATCH ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/hdf5/src/external_hdf5 < ${PATCH_DIR}/hdf5.diff)
endif() endif()
ExternalProject_Add(external_hdf5 ExternalProject_Add(external_hdf5
URL ${HDF5_URI} URL ${HDF5_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${HDF5_HASH} URL_HASH MD5=${HDF5_HASH}
PREFIX ${BUILD_DIR}/hdf5 PREFIX ${BUILD_DIR}/hdf5
PATCH_COMMAND ${HDF5_PATCH} PATCH_COMMAND ${HDF5_PATCH}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/hdf5 ${HDF5_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/hdf5 ${HDF5_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/hdf5 INSTALL_DIR ${LIBDIR}/hdf5
) )

View File

@@ -19,11 +19,11 @@
set(HIDAPI_EXTRA_ARGS) set(HIDAPI_EXTRA_ARGS)
ExternalProject_Add(external_hidapi ExternalProject_Add(external_hidapi
URL ${HIDAPI_URI} URL ${HIDAPI_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${HIDAPI_HASH} URL_HASH MD5=${HIDAPI_HASH}
PREFIX ${BUILD_DIR}/hidapi PREFIX ${BUILD_DIR}/hidapi
PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_hidapi.txt ${BUILD_DIR}/hidapi/src/external_hidapi/cmakelists.txt && ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/hidapi/src/external_hidapi < ${PATCH_DIR}/hidapi.diff PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_hidapi.txt ${BUILD_DIR}/hidapi/src/external_hidapi/cmakelists.txt && ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/hidapi/src/external_hidapi < ${PATCH_DIR}/hidapi.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/hidapi -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${HIDAPI_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/hidapi -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${HIDAPI_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/hidapi INSTALL_DIR ${LIBDIR}/hidapi
) )

View File

@@ -19,23 +19,23 @@
set(ICONV_EXTRA_ARGS) set(ICONV_EXTRA_ARGS)
ExternalProject_Add(external_iconv ExternalProject_Add(external_iconv
URL ${ICONV_URI} URL ${ICONV_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${ICONV_HASH} URL_HASH MD5=${ICONV_HASH}
PREFIX ${BUILD_DIR}/iconv PREFIX ${BUILD_DIR}/iconv
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/iconv/src/external_iconv/ && ${CONFIGURE_COMMAND} --enable-static --prefix=${mingw_LIBDIR}/iconv CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/iconv/src/external_iconv/ && ${CONFIGURE_COMMAND} --enable-static --prefix=${mingw_LIBDIR}/iconv
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/iconv/src/external_iconv/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/iconv/src/external_iconv/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/iconv/src/external_iconv/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/iconv/src/external_iconv/ && make install
INSTALL_DIR ${LIBDIR}/iconv INSTALL_DIR ${LIBDIR}/iconv
) )
if(MSVC) if(MSVC)
set_target_properties(external_iconv PROPERTIES FOLDER Mingw) set_target_properties(external_iconv PROPERTIES FOLDER Mingw)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_iconv after_install ExternalProject_Add_Step(external_iconv after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/iconv/lib/libiconv.a ${HARVEST_TARGET}/iconv/lib/iconv.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/iconv/lib/libiconv.a ${HARVEST_TARGET}/iconv/lib/iconv.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/iconv/include/iconv.h ${HARVEST_TARGET}/iconv/include/iconv.h COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/iconv/include/iconv.h ${HARVEST_TARGET}/iconv/include/iconv.h
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -17,42 +17,42 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(WIN32) if(WIN32)
set(ILMBASE_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}") set(ILMBASE_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
set(ILMBASE_EXTRA_ARGS set(ILMBASE_EXTRA_ARGS
-DBUILD_SHARED_LIBS=OFF -DBUILD_SHARED_LIBS=OFF
-DCMAKE_CXX_STANDARD_LIBRARIES=${ILMBASE_CMAKE_CXX_STANDARD_LIBRARIES} -DCMAKE_CXX_STANDARD_LIBRARIES=${ILMBASE_CMAKE_CXX_STANDARD_LIBRARIES}
) )
ExternalProject_Add(external_ilmbase ExternalProject_Add(external_ilmbase
URL ${ILMBASE_URI} URL ${ILMBASE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${ILMBASE_HASH} URL_HASH MD5=${ILMBASE_HASH}
PREFIX ${BUILD_DIR}/ilmbase PREFIX ${BUILD_DIR}/ilmbase
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ilmbase ${DEFAULT_CMAKE_FLAGS} ${ILMBASE_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ilmbase ${DEFAULT_CMAKE_FLAGS} ${ILMBASE_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openexr INSTALL_DIR ${LIBDIR}/openexr
) )
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_ilmbase after_install ExternalProject_Add_Step(external_ilmbase after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ilmbase ${HARVEST_TARGET}/openexr COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ilmbase ${HARVEST_TARGET}/openexr
DEPENDEES install DEPENDEES install
) )
endif() endif()
else() else()
set(ILMBASE_EXTRA_ARGS set(ILMBASE_EXTRA_ARGS
--enable-static --enable-static
--disable-shared --disable-shared
--enable-cxxstd=11 --enable-cxxstd=11
) )
ExternalProject_Add(external_ilmbase ExternalProject_Add(external_ilmbase
URL ${ILMBASE_URI} URL ${ILMBASE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${ILMBASE_HASH} URL_HASH MD5=${ILMBASE_HASH}
PREFIX ${BUILD_DIR}/ilmbase PREFIX ${BUILD_DIR}/ilmbase
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ilmbase ${ILMBASE_EXTRA_ARGS} CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ilmbase ${ILMBASE_EXTRA_ARGS}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && make install
INSTALL_DIR ${LIBDIR}/openexr INSTALL_DIR ${LIBDIR}/openexr
) )
endif() endif()

View File

@@ -17,12 +17,12 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_jemalloc ExternalProject_Add(external_jemalloc
URL ${JEMALLOC_URI} URL ${JEMALLOC_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${JEMALLOC_HASH} URL_HASH MD5=${JEMALLOC_HASH}
PREFIX ${BUILD_DIR}/jemalloc PREFIX ${BUILD_DIR}/jemalloc
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/jemalloc/src/external_jemalloc/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/jemalloc --disable-shared --enable-static --with-pic CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/jemalloc/src/external_jemalloc/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/jemalloc --disable-shared --enable-static --with-pic
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/jemalloc/src/external_jemalloc/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/jemalloc/src/external_jemalloc/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/jemalloc/src/external_jemalloc/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/jemalloc/src/external_jemalloc/ && make install
INSTALL_DIR ${LIBDIR}/jemalloc INSTALL_DIR ${LIBDIR}/jemalloc
) )

View File

@@ -17,49 +17,49 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(WIN32) if(WIN32)
# cmake for windows # cmake for windows
set(JPEG_EXTRA_ARGS -DNASM=${NASM_PATH} -DWITH_JPEG8=ON -DCMAKE_DEBUG_POSTFIX=d) set(JPEG_EXTRA_ARGS -DNASM=${NASM_PATH} -DWITH_JPEG8=ON -DCMAKE_DEBUG_POSTFIX=d)
ExternalProject_Add(external_jpeg ExternalProject_Add(external_jpeg
URL ${JPEG_URI} URL ${JPEG_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${JPEG_HASH} URL_HASH MD5=${JPEG_HASH}
PREFIX ${BUILD_DIR}/jpg PREFIX ${BUILD_DIR}/jpg
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/jpg INSTALL_DIR ${LIBDIR}/jpg
) )
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_jpeg after_install ExternalProject_Add_Step(external_jpeg after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpegd${LIBEXT} ${LIBDIR}/jpg/lib/jpeg${LIBEXT} COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpegd${LIBEXT} ${LIBDIR}/jpg/lib/jpeg${LIBEXT}
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
set(JPEG_LIBRARY jpeg-static${LIBEXT}) set(JPEG_LIBRARY jpeg-static${LIBEXT})
else() else()
set(JPEG_LIBRARY jpeg-staticd${LIBEXT}) set(JPEG_LIBRARY jpeg-staticd${LIBEXT})
endif() endif()
else(WIN32) else(WIN32)
# autoconf for unix # autoconf for unix
if(APPLE) if(APPLE)
set(JPEG_EXTRA_ARGS --host x86_64-apple-darwin --with-jpeg8) set(JPEG_EXTRA_ARGS --host x86_64-apple-darwin --with-jpeg8)
else() else()
set(JPEG_EXTRA_ARGS --with-jpeg8) set(JPEG_EXTRA_ARGS --with-jpeg8)
endif() endif()
ExternalProject_Add(external_jpeg ExternalProject_Add(external_jpeg
URL ${JPEG_URI} URL ${JPEG_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${JPEG_HASH} URL_HASH MD5=${JPEG_HASH}
CONFIGURE_COMMAND ${CONFIGURE_ENV} && autoreconf -fiv && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/jpg NASM=yasm ${JPEG_EXTRA_ARGS} CONFIGURE_COMMAND ${CONFIGURE_ENV} && autoreconf -fiv && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/jpg NASM=yasm ${JPEG_EXTRA_ARGS}
BUILD_IN_SOURCE 1 BUILD_IN_SOURCE 1
BUILD_COMMAND ${CONFIGURE_ENV} && make install BUILD_COMMAND ${CONFIGURE_ENV} && make install
PREFIX ${BUILD_DIR}/jpg PREFIX ${BUILD_DIR}/jpg
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/jpg INSTALL_DIR ${LIBDIR}/jpg
) )
set(JPEG_LIBRARY libjpeg${LIBEXT}) set(JPEG_LIBRARY libjpeg${LIBEXT})
endif(WIN32) endif(WIN32)

View File

@@ -18,30 +18,30 @@
set(LAME_EXTRA_ARGS) set(LAME_EXTRA_ARGS)
if(MSVC) if(MSVC)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
set(LAME_EXTRA_ARGS CFLAGS=-msse) set(LAME_EXTRA_ARGS CFLAGS=-msse)
endif() endif()
endif() endif()
ExternalProject_Add(external_lame ExternalProject_Add(external_lame
URL ${LAME_URI} URL ${LAME_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${LAME_HASH} URL_HASH MD5=${LAME_HASH}
PREFIX ${BUILD_DIR}/lame PREFIX ${BUILD_DIR}/lame
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lame/src/external_lame/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/lame --disable-shared --enable-static ${LAME_EXTRA_ARGS} CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lame/src/external_lame/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/lame --disable-shared --enable-static ${LAME_EXTRA_ARGS}
--enable-export=full --enable-export=full
--with-fileio=sndfile --with-fileio=sndfile
--without-vorbis --without-vorbis
--with-pic --with-pic
--disable-mp3x --disable-mp3x
--disable-mp3rtp --disable-mp3rtp
--disable-gtktest --disable-gtktest
--disable-frontend --disable-frontend
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lame/src/external_lame/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lame/src/external_lame/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lame/src/external_lame/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lame/src/external_lame/ && make install
INSTALL_DIR ${LIBDIR}/lame INSTALL_DIR ${LIBDIR}/lame
) )
if(MSVC) if(MSVC)
set_target_properties(external_lame PROPERTIES FOLDER Mingw) set_target_properties(external_lame PROPERTIES FOLDER Mingw)
endif() endif()

View File

@@ -20,12 +20,12 @@ set(LCMS_EXTRA_ARGS
) )
ExternalProject_Add(external_lcms ExternalProject_Add(external_lcms
URL ${LCMS_URI} URL ${LCMS_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${LCMS_HASH} URL_HASH MD5=${LCMS_HASH}
PREFIX ${BUILD_DIR}/lcms PREFIX ${BUILD_DIR}/lcms
#patch taken from ocio #patch taken from ocio
PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_lcms.txt ${BUILD_DIR}/lcms/src/external_lcms/CMakeLists.txt PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_lcms.txt ${BUILD_DIR}/lcms/src/external_lcms/CMakeLists.txt
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/lcms ${DEFAULT_CMAKE_FLAGS} ${LCMS_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/lcms ${DEFAULT_CMAKE_FLAGS} ${LCMS_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/lcms INSTALL_DIR ${LIBDIR}/lcms
) )

View File

@@ -17,42 +17,42 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(LLVM_EXTRA_ARGS set(LLVM_EXTRA_ARGS
-DLLVM_USE_CRT_RELEASE=MT -DLLVM_USE_CRT_RELEASE=MT
-DLLVM_USE_CRT_DEBUG=MTd -DLLVM_USE_CRT_DEBUG=MTd
-DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_TESTS=OFF
-DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_TARGETS_TO_BUILD=X86
-DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_EXAMPLES=OFF
-DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_TERMINFO=OFF
) )
if(WIN32) if(WIN32)
set(LLVM_GENERATOR "Ninja") set(LLVM_GENERATOR "Ninja")
else() else()
set(LLVM_GENERATOR "Unix Makefiles") set(LLVM_GENERATOR "Unix Makefiles")
endif() endif()
# short project name due to long filename issues on windows # short project name due to long filename issues on windows
ExternalProject_Add(ll ExternalProject_Add(ll
URL ${LLVM_URI} URL ${LLVM_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${LLVM_HASH} URL_HASH MD5=${LLVM_HASH}
CMAKE_GENERATOR ${LLVM_GENERATOR} CMAKE_GENERATOR ${LLVM_GENERATOR}
PREFIX ${BUILD_DIR}/ll PREFIX ${BUILD_DIR}/ll
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/llvm ${DEFAULT_CMAKE_FLAGS} ${LLVM_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/llvm ${DEFAULT_CMAKE_FLAGS} ${LLVM_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/llvm INSTALL_DIR ${LIBDIR}/llvm
) )
if(MSVC) if(MSVC)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
set(LLVM_HARVEST_COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/llvm/ ${HARVEST_TARGET}/llvm/ ) set(LLVM_HARVEST_COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/llvm/ ${HARVEST_TARGET}/llvm/ )
else() else()
set(LLVM_HARVEST_COMMAND set(LLVM_HARVEST_COMMAND
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/llvm/lib/ ${HARVEST_TARGET}/llvm/debug/lib/ && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/llvm/lib/ ${HARVEST_TARGET}/llvm/debug/lib/ &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/llvm/include/ ${HARVEST_TARGET}/llvm/debug/include/ ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/llvm/include/ ${HARVEST_TARGET}/llvm/debug/include/
) )
endif() endif()
ExternalProject_Add_Step(ll after_install ExternalProject_Add_Step(ll after_install
COMMAND ${LLVM_HARVEST_COMMAND} COMMAND ${LLVM_HARVEST_COMMAND}
DEPENDEES mkdir update patch download configure build install DEPENDEES mkdir update patch download configure build install
) )
endif() endif()

View File

@@ -19,14 +19,14 @@
set(LZMA_PATCH_CMD echo .) set(LZMA_PATCH_CMD echo .)
ExternalProject_Add(external_lzma ExternalProject_Add(external_lzma
URL ${LZMA_URI} URL ${LZMA_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${LZMA_HASH} URL_HASH SHA256=${LZMA_HASH}
PREFIX ${BUILD_DIR}/lzma PREFIX ${BUILD_DIR}/lzma
PATCH_COMMAND ${LZMA_PATCH_CMD} PATCH_COMMAND ${LZMA_PATCH_CMD}
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lzma/src/external_lzma/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/lzma CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lzma/src/external_lzma/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/lzma
--disable-shared --disable-shared
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lzma/src/external_lzma/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lzma/src/external_lzma/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lzma/src/external_lzma/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/lzma/src/external_lzma/ && make install
INSTALL_DIR ${LIBDIR}/lzma INSTALL_DIR ${LIBDIR}/lzma
) )

View File

@@ -17,50 +17,50 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(MSVC) if(MSVC)
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
set(NUMPY_DIR_POSTFIX -pydebug) set(NUMPY_DIR_POSTFIX -pydebug)
set(NUMPY_ARCHIVE_POSTFIX d) set(NUMPY_ARCHIVE_POSTFIX d)
set(NUMPY_BUILD_OPTION --debug) set(NUMPY_BUILD_OPTION --debug)
else() else()
set(NUMPY_DIR_POSTFIX) set(NUMPY_DIR_POSTFIX)
set(NUMPY_ARCHIVE_POSTFIX) set(NUMPY_ARCHIVE_POSTFIX)
set(NUMPY_BUILD_OPTION) set(NUMPY_BUILD_OPTION)
endif() endif()
endif() endif()
set(NUMPY_POSTFIX) set(NUMPY_POSTFIX)
if(WIN32) if(WIN32)
set(NUMPY_INSTALL set(NUMPY_INSTALL
${CMAKE_COMMAND} -E copy_directory "${BUILD_DIR}/python/src/external_python/run/lib/site-packages/numpy/core/include/numpy" "${LIBDIR}/python/include/python${PYTHON_SHORT_VERSION}/numpy" && ${CMAKE_COMMAND} -E copy_directory "${BUILD_DIR}/python/src/external_python/run/lib/site-packages/numpy/core/include/numpy" "${LIBDIR}/python/include/python${PYTHON_SHORT_VERSION}/numpy" &&
${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/numpy/src/external_numpy/build/lib.${PYTHON_ARCH2}-${PYTHON_SHORT_VERSION}${NUMPY_DIR_POSTFIX}" ${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/numpy/src/external_numpy/build/lib.${PYTHON_ARCH2}-${PYTHON_SHORT_VERSION}${NUMPY_DIR_POSTFIX}"
${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz" "." ${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz" "."
) )
else() else()
set(NUMPY_INSTALL echo .) set(NUMPY_INSTALL echo .)
set(NUMPY_PATCH echo .) set(NUMPY_PATCH echo .)
endif() endif()
ExternalProject_Add(external_numpy ExternalProject_Add(external_numpy
URL ${NUMPY_URI} URL ${NUMPY_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${NUMPY_HASH} URL_HASH MD5=${NUMPY_HASH}
PREFIX ${BUILD_DIR}/numpy PREFIX ${BUILD_DIR}/numpy
PATCH_COMMAND ${NUMPY_PATCH} PATCH_COMMAND ${NUMPY_PATCH}
CONFIGURE_COMMAND "" CONFIGURE_COMMAND ""
LOG_BUILD 1 LOG_BUILD 1
BUILD_COMMAND ${PYTHON_BINARY} ${BUILD_DIR}/numpy/src/external_numpy/setup.py build ${NUMPY_BUILD_OPTION} install --old-and-unmanageable BUILD_COMMAND ${PYTHON_BINARY} ${BUILD_DIR}/numpy/src/external_numpy/setup.py build ${NUMPY_BUILD_OPTION} install --old-and-unmanageable
INSTALL_COMMAND ${NUMPY_INSTALL} INSTALL_COMMAND ${NUMPY_INSTALL}
) )
if(WIN32) if(WIN32)
ExternalProject_Add_Step(external_numpy after_install ExternalProject_Add_Step(external_numpy after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz
DEPENDEES install DEPENDEES install
) )
endif() endif()
add_dependencies( add_dependencies(
external_numpy external_numpy
Make_Python_Environment Make_Python_Environment
) )

View File

@@ -17,16 +17,16 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_ogg ExternalProject_Add(external_ogg
URL ${OGG_URI} URL ${OGG_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${OGG_HASH} URL_HASH SHA256=${OGG_HASH}
PREFIX ${BUILD_DIR}/ogg PREFIX ${BUILD_DIR}/ogg
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ogg --disable-shared --enable-static CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ogg --disable-shared --enable-static
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ogg/src/external_ogg/ && make install
INSTALL_DIR ${LIBDIR}/ogg INSTALL_DIR ${LIBDIR}/ogg
) )
if(MSVC) if(MSVC)
set_target_properties(external_ogg PROPERTIES FOLDER Mingw) set_target_properties(external_ogg PROPERTIES FOLDER Mingw)
endif() endif()

View File

@@ -17,51 +17,51 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
set(OPENAL_EXTRA_ARGS set(OPENAL_EXTRA_ARGS
-DALSOFT_UTILS=OFF -DALSOFT_UTILS=OFF
-DALSOFT_NO_CONFIG_UTIL=ON -DALSOFT_NO_CONFIG_UTIL=ON
-DALSOFT_EXAMPLES=OFF -DALSOFT_EXAMPLES=OFF
-DALSOFT_TESTS=OFF -DALSOFT_TESTS=OFF
-DALSOFT_CONFIG=OFF -DALSOFT_CONFIG=OFF
-DALSOFT_HRTF_DEFS=OFF -DALSOFT_HRTF_DEFS=OFF
-DALSOFT_INSTALL=ON -DALSOFT_INSTALL=ON
-DALSOFT_BACKEND_SNDIO=OFF -DALSOFT_BACKEND_SNDIO=OFF
) )
if(UNIX) if(UNIX)
set(OPENAL_EXTRA_ARGS set(OPENAL_EXTRA_ARGS
${OPENAL_EXTRA_ARGS} ${OPENAL_EXTRA_ARGS}
-DLIBTYPE=STATIC -DLIBTYPE=STATIC
) )
endif() endif()
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
# Ensure we have backends for playback. # Ensure we have backends for playback.
set(OPENAL_EXTRA_ARGS set(OPENAL_EXTRA_ARGS
${OPENAL_EXTRA_ARGS} ${OPENAL_EXTRA_ARGS}
-DALSOFT_REQUIRE_ALSA=ON -DALSOFT_REQUIRE_ALSA=ON
-DALSOFT_REQUIRE_OSS=ON -DALSOFT_REQUIRE_OSS=ON
-DALSOFT_REQUIRE_PULSEAUDIO=ON -DALSOFT_REQUIRE_PULSEAUDIO=ON
) )
endif() endif()
ExternalProject_Add(external_openal ExternalProject_Add(external_openal
URL ${OPENAL_URI} URL ${OPENAL_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENAL_HASH} URL_HASH MD5=${OPENAL_HASH}
PREFIX ${BUILD_DIR}/openal PREFIX ${BUILD_DIR}/openal
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openal ${DEFAULT_CMAKE_FLAGS} ${OPENAL_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openal ${DEFAULT_CMAKE_FLAGS} ${OPENAL_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openal INSTALL_DIR ${LIBDIR}/openal
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openal/src/external_openal < ${PATCH_DIR}/openal.diff PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openal/src/external_openal < ${PATCH_DIR}/openal.diff
) )
if(WIN32) if(WIN32)
ExternalProject_Add_Step(external_openal after_install ExternalProject_Add_Step(external_openal after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openal/lib/openal32.lib ${HARVEST_TARGET}/openal/lib/openal32.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openal/lib/openal32.lib ${HARVEST_TARGET}/openal/lib/openal32.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openal/bin/openal32.dll ${HARVEST_TARGET}/openal/lib/openal32.dll COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openal/bin/openal32.dll ${HARVEST_TARGET}/openal/lib/openal32.dll
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openal/include/ ${HARVEST_TARGET}/openal/include/ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openal/include/ ${HARVEST_TARGET}/openal/include/
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -17,49 +17,49 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(UNIX) if(UNIX)
set(OPENCOLLADA_EXTRA_ARGS set(OPENCOLLADA_EXTRA_ARGS
-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2 -DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
-DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2.a) -DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2.a)
endif() endif()
ExternalProject_Add(external_opencollada ExternalProject_Add(external_opencollada
URL ${OPENCOLLADA_URI} URL ${OPENCOLLADA_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENCOLLADA_HASH} URL_HASH MD5=${OPENCOLLADA_HASH}
PREFIX ${BUILD_DIR}/opencollada PREFIX ${BUILD_DIR}/opencollada
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencollada/src/external_opencollada < ${PATCH_DIR}/opencollada.diff PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencollada/src/external_opencollada < ${PATCH_DIR}/opencollada.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencollada ${DEFAULT_CMAKE_FLAGS} ${OPENCOLLADA_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencollada ${DEFAULT_CMAKE_FLAGS} ${OPENCOLLADA_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/opencollada INSTALL_DIR ${LIBDIR}/opencollada
) )
if(UNIX) if(UNIX)
add_dependencies( add_dependencies(
external_opencollada external_opencollada
external_xml2 external_xml2
) )
endif() endif()
if(WIN32) if(WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_opencollada after_install ExternalProject_Add_Step(external_opencollada after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencollada/ ${HARVEST_TARGET}/opencollada/ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencollada/ ${HARVEST_TARGET}/opencollada/
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_opencollada after_install ExternalProject_Add_Step(external_opencollada after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/buffer.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/buffer_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/buffer.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/buffer_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/ftoa.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/ftoa_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/ftoa.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/ftoa_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/GeneratedSaxParser.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/GeneratedSaxParser_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/GeneratedSaxParser.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/GeneratedSaxParser_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/MathMLSolver.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/MathMLSolver_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/MathMLSolver.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/MathMLSolver_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADABaseUtils.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADABaseUtils_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADABaseUtils.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADABaseUtils_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAFramework.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAFramework_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAFramework.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAFramework_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/pcre.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/pcre_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/pcre.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/pcre_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/UTF.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/UTF_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/UTF.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/UTF_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/xml.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/xml_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/xml.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/xml_d.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -17,96 +17,96 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(OPENCOLORIO_EXTRA_ARGS set(OPENCOLORIO_EXTRA_ARGS
-DOCIO_BUILD_APPS=OFF -DOCIO_BUILD_APPS=OFF
-DOCIO_BUILD_PYGLUE=OFF -DOCIO_BUILD_PYGLUE=OFF
-DOCIO_BUILD_NUKE=OFF -DOCIO_BUILD_NUKE=OFF
-DOCIO_USE_BOOST_PTR=OFF -DOCIO_USE_BOOST_PTR=OFF
-DOCIO_BUILD_STATIC=ON -DOCIO_BUILD_STATIC=ON
-DOCIO_BUILD_SHARED=OFF -DOCIO_BUILD_SHARED=OFF
-DOCIO_BUILD_TRUELIGHT=OFF -DOCIO_BUILD_TRUELIGHT=OFF
-DOCIO_BUILD_DOCS=OFF -DOCIO_BUILD_DOCS=OFF
-DOCIO_BUILD_PYGLUE=OFF -DOCIO_BUILD_PYGLUE=OFF
-DOCIO_BUILD_JNIGLUE=OFF -DOCIO_BUILD_JNIGLUE=OFF
-DOCIO_STATIC_JNIGLUE=OFF -DOCIO_STATIC_JNIGLUE=OFF
) )
if(WIN32) if(WIN32)
set(OCIO_PATCH opencolorio_win.diff) set(OCIO_PATCH opencolorio_win.diff)
set(OPENCOLORIO_EXTRA_ARGS set(OPENCOLORIO_EXTRA_ARGS
${OPENCOLORIO_EXTRA_ARGS} ${OPENCOLORIO_EXTRA_ARGS}
-DOCIO_BUILD_TESTS=OFF -DOCIO_BUILD_TESTS=OFF
-DOCIO_USE_SSE=ON -DOCIO_USE_SSE=ON
-DOCIO_INLINES_HIDDEN=OFF -DOCIO_INLINES_HIDDEN=OFF
-DOCIO_PYGLUE_LINK=OFF -DOCIO_PYGLUE_LINK=OFF
-DOCIO_PYGLUE_RESPECT_ABI=OFF -DOCIO_PYGLUE_RESPECT_ABI=OFF
-DOCIO_PYGLUE_SONAME=OFF -DOCIO_PYGLUE_SONAME=OFF
-DOCIO_PYGLUE_LIB_PREFIX=OFF -DOCIO_PYGLUE_LIB_PREFIX=OFF
-DUSE_EXTERNAL_TINYXML=ON -DUSE_EXTERNAL_TINYXML=ON
-DTINYXML_INCLUDE_DIR=${LIBDIR}/tinyxml/include -DTINYXML_INCLUDE_DIR=${LIBDIR}/tinyxml/include
-DTINYXML_LIBRARY=${LIBDIR}/tinyxml/lib/tinyxml${libext} -DTINYXML_LIBRARY=${LIBDIR}/tinyxml/lib/tinyxml${libext}
-DUSE_EXTERNAL_YAML=ON -DUSE_EXTERNAL_YAML=ON
-DYAML_CPP_FOUND=ON -DYAML_CPP_FOUND=ON
-DYAML_CPP_VERSION=${YAMLCPP_VERSION} -DYAML_CPP_VERSION=${YAMLCPP_VERSION}
-DUSE_EXTERNAL_LCMS=ON -DUSE_EXTERNAL_LCMS=ON
-DINC_1=${LIBDIR}/tinyxml/include -DINC_1=${LIBDIR}/tinyxml/include
-DINC_2=${LIBDIR}/yamlcpp/include -DINC_2=${LIBDIR}/yamlcpp/include
#lie because ocio cmake is demanding boost even though it is not needed #lie because ocio cmake is demanding boost even though it is not needed
-DYAML_CPP_VERSION=0.5.0 -DYAML_CPP_VERSION=0.5.0
) )
else() else()
set(OCIO_PATCH opencolorio.diff) set(OCIO_PATCH opencolorio.diff)
set(OPENCOLORIO_EXTRA_ARGS set(OPENCOLORIO_EXTRA_ARGS
${OPENCOLORIO_EXTRA_ARGS} ${OPENCOLORIO_EXTRA_ARGS}
) )
endif() endif()
ExternalProject_Add(external_opencolorio ExternalProject_Add(external_opencolorio
URL ${OPENCOLORIO_URI} URL ${OPENCOLORIO_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENCOLORIO_HASH} URL_HASH MD5=${OPENCOLORIO_HASH}
PREFIX ${BUILD_DIR}/opencolorio PREFIX ${BUILD_DIR}/opencolorio
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencolorio/src/external_opencolorio < ${PATCH_DIR}/${OCIO_PATCH} PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencolorio/src/external_opencolorio < ${PATCH_DIR}/${OCIO_PATCH}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencolorio ${DEFAULT_CMAKE_FLAGS} ${OPENCOLORIO_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencolorio ${DEFAULT_CMAKE_FLAGS} ${OPENCOLORIO_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/opencolorio INSTALL_DIR ${LIBDIR}/opencolorio
) )
if(NOT WIN32) if(NOT WIN32)
add_custom_command( add_custom_command(
OUTPUT ${LIBDIR}/opencolorio/lib/libtinyxml.a OUTPUT ${LIBDIR}/opencolorio/lib/libtinyxml.a
COMMAND cp ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/libtinyxml.a ${LIBDIR}/opencolorio/lib/libtinyxml.a COMMAND cp ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/libtinyxml.a ${LIBDIR}/opencolorio/lib/libtinyxml.a
COMMAND cp ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/libyaml-cpp.a ${LIBDIR}/opencolorio/lib/libyaml-cpp.a COMMAND cp ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/libyaml-cpp.a ${LIBDIR}/opencolorio/lib/libyaml-cpp.a
) )
add_custom_target(external_opencolorio_extra ALL DEPENDS external_opencolorio ${LIBDIR}/opencolorio/lib/libtinyxml.a) add_custom_target(external_opencolorio_extra ALL DEPENDS external_opencolorio ${LIBDIR}/opencolorio/lib/libtinyxml.a)
endif() endif()
add_dependencies( add_dependencies(
external_opencolorio external_opencolorio
external_boost external_boost
) )
if(WIN32) if(WIN32)
add_dependencies( add_dependencies(
external_opencolorio external_opencolorio
external_tinyxml external_tinyxml
external_yamlcpp external_yamlcpp
) )
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_opencolorio after_install ExternalProject_Add_Step(external_opencolorio after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/include ${HARVEST_TARGET}/opencolorio/include COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/include ${HARVEST_TARGET}/opencolorio/include
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib/static ${HARVEST_TARGET}/opencolorio/lib COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib/static ${HARVEST_TARGET}/opencolorio/lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmt.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmt.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tinyxml/lib/tinyxml.lib ${HARVEST_TARGET}/opencolorio/lib/tinyxml.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tinyxml/lib/tinyxml.lib ${HARVEST_TARGET}/opencolorio/lib/tinyxml.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_opencolorio after_install ExternalProject_Add_Step(external_opencolorio after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/lib/static/Opencolorio.lib ${HARVEST_TARGET}/opencolorio/lib/OpencolorIO_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/lib/static/Opencolorio.lib ${HARVEST_TARGET}/opencolorio/lib/OpencolorIO_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmtd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmtd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tinyxml/lib/tinyxml.lib ${HARVEST_TARGET}/opencolorio/lib/tinyxml_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tinyxml/lib/tinyxml.lib ${HARVEST_TARGET}/opencolorio/lib/tinyxml_d.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -17,62 +17,62 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(WIN32) if(WIN32)
set(OPENEXR_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}") set(OPENEXR_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
set(OPENEXR_EXTRA_ARGS set(OPENEXR_EXTRA_ARGS
-DCMAKE_CXX_STANDARD_LIBRARIES=${OPENEXR_CMAKE_CXX_STANDARD_LIBRARIES} -DCMAKE_CXX_STANDARD_LIBRARIES=${OPENEXR_CMAKE_CXX_STANDARD_LIBRARIES}
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY} -DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/ -DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DILMBASE_PACKAGE_PREFIX=${LIBDIR}/ilmbase -DILMBASE_PACKAGE_PREFIX=${LIBDIR}/ilmbase
-DOPENEXR_BUILD_ILMBASE=On -DOPENEXR_BUILD_ILMBASE=On
-DOPENEXR_BUILD_OPENEXR=On -DOPENEXR_BUILD_OPENEXR=On
-DOPENEXR_BUILD_PYTHON_LIBS=Off -DOPENEXR_BUILD_PYTHON_LIBS=Off
-DOPENEXR_BUILD_STATIC=On -DOPENEXR_BUILD_STATIC=On
-DOPENEXR_BUILD_SHARED=Off -DOPENEXR_BUILD_SHARED=Off
-DOPENEXR_BUILD_TESTS=Off -DOPENEXR_BUILD_TESTS=Off
-DOPENEXR_BUILD_VIEWERS=Off -DOPENEXR_BUILD_VIEWERS=Off
-DOPENEXR_BUILD_UTILS=Off -DOPENEXR_BUILD_UTILS=Off
-DOPENEXR_NAMESPACE_VERSIONING=Off -DOPENEXR_NAMESPACE_VERSIONING=Off
) )
ExternalProject_Add(external_openexr ExternalProject_Add(external_openexr
URL ${OPENEXR_URI} URL ${OPENEXR_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENEXR_HASH} URL_HASH MD5=${OPENEXR_HASH}
PREFIX ${BUILD_DIR}/openexr PREFIX ${BUILD_DIR}/openexr
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openexr ${DEFAULT_CMAKE_FLAGS} ${OPENEXR_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openexr ${DEFAULT_CMAKE_FLAGS} ${OPENEXR_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openexr INSTALL_DIR ${LIBDIR}/openexr
) )
ExternalProject_Add_Step(external_openexr after_install ExternalProject_Add_Step(external_openexr after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${HARVEST_TARGET}/openexr/lib COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${HARVEST_TARGET}/openexr/lib
#libs have moved between versions, just duplicate it for now. #libs have moved between versions, just duplicate it for now.
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${LIBDIR}/ilmbase/lib COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${LIBDIR}/ilmbase/lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/include ${HARVEST_TARGET}/openexr/include COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/include ${HARVEST_TARGET}/openexr/include
DEPENDEES install DEPENDEES install
) )
else() else()
set(OPENEXR_PKG_CONFIG_PATH ${LIBDIR}/zlib/share/pkgconfig) set(OPENEXR_PKG_CONFIG_PATH ${LIBDIR}/zlib/share/pkgconfig)
set(OPENEXR_EXTRA_ARGS set(OPENEXR_EXTRA_ARGS
--enable-static --enable-static
--disable-shared --disable-shared
--enable-cxxstd=11 --enable-cxxstd=11
--with-ilmbase-prefix=${LIBDIR}/ilmbase --with-ilmbase-prefix=${LIBDIR}/ilmbase
) )
ExternalProject_Add(external_openexr ExternalProject_Add(external_openexr
URL ${OPENEXR_URI} URL ${OPENEXR_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENEXR_HASH} URL_HASH MD5=${OPENEXR_HASH}
PREFIX ${BUILD_DIR}/openexr PREFIX ${BUILD_DIR}/openexr
CONFIGURE_COMMAND ${CONFIGURE_ENV} && export PKG_CONFIG_PATH=${OPENEXR_PKG_CONFIG_PATH} && cd ${BUILD_DIR}/openexr/src/external_openexr/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/openexr ${OPENEXR_EXTRA_ARGS} CONFIGURE_COMMAND ${CONFIGURE_ENV} && export PKG_CONFIG_PATH=${OPENEXR_PKG_CONFIG_PATH} && cd ${BUILD_DIR}/openexr/src/external_openexr/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/openexr ${OPENEXR_EXTRA_ARGS}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openexr/src/external_openexr/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openexr/src/external_openexr/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openexr/src/external_openexr/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openexr/src/external_openexr/ && make install
INSTALL_DIR ${LIBDIR}/openexr INSTALL_DIR ${LIBDIR}/openexr
) )
endif() endif()
add_dependencies( add_dependencies(
external_openexr external_openexr
external_zlib external_zlib
external_ilmbase external_ilmbase
) )

View File

@@ -17,136 +17,136 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
set(OIIO_TOOLS ON) set(OIIO_TOOLS ON)
else() else()
set(OIIO_TOOLS OFF) set(OIIO_TOOLS OFF)
endif() endif()
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
# This causes linking to static pthread libraries which gives link errors. # This causes linking to static pthread libraries which gives link errors.
# Since we manually specify library paths it should static link other libs. # Since we manually specify library paths it should static link other libs.
set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=OFF) set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=OFF)
else() else()
set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=ON) set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=ON)
endif() endif()
if(WIN32) if(WIN32)
set(PNG_LIBNAME libpng16_static${LIBEXT}) set(PNG_LIBNAME libpng16_static${LIBEXT})
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse2 -DOPJ_STATIC=1) set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse2 -DOPJ_STATIC=1)
set(OPENJPEG_POSTFIX _msvc) set(OPENJPEG_POSTFIX _msvc)
else() else()
set(PNG_LIBNAME libpng${LIBEXT}) set(PNG_LIBNAME libpng${LIBEXT})
set(OIIO_SIMD_FLAGS) set(OIIO_SIMD_FLAGS)
endif() endif()
if(WITH_WEBP) if(WITH_WEBP)
set(WEBP_ARGS set(WEBP_ARGS
-DWEBP_INCLUDE_DIR=${LIBDIR}/webp/include -DWEBP_INCLUDE_DIR=${LIBDIR}/webp/include
-DWEBP_LIBRARY=${LIBDIR}/webp/lib/${LIBPREFIX}webp${LIBEXT} -DWEBP_LIBRARY=${LIBDIR}/webp/lib/${LIBPREFIX}webp${LIBEXT}
) )
set(WEBP_DEP external_webp) set(WEBP_DEP external_webp)
endif() endif()
if(MSVC) if(MSVC)
set(OPENJPEG_FLAGS set(OPENJPEG_FLAGS
-DOPENJPEG_HOME=${LIBDIR}/openjpeg_msvc -DOPENJPEG_HOME=${LIBDIR}/openjpeg_msvc
-DOPENJPEG_INCLUDE_DIR=${LIBDIR}/openjpeg_msvc/include/openjpeg-${OPENJPEG_SHORT_VERSION} -DOPENJPEG_INCLUDE_DIR=${LIBDIR}/openjpeg_msvc/include/openjpeg-${OPENJPEG_SHORT_VERSION}
-DOPENJPEG_LIBRARY=${LIBDIR}/openjpeg_msvc/lib/openjp2${LIBEXT} -DOPENJPEG_LIBRARY=${LIBDIR}/openjpeg_msvc/lib/openjp2${LIBEXT}
-DOPENJPEG_LIBRARY_DEBUG=${LIBDIR}/openjpeg_msvc/lib/openjp2${LIBEXT} -DOPENJPEG_LIBRARY_DEBUG=${LIBDIR}/openjpeg_msvc/lib/openjp2${LIBEXT}
) )
else() else()
set(OPENJPEG_FLAGS set(OPENJPEG_FLAGS
-DOPENJPEG_INCLUDE_DIR=${LIBDIR}/openjpeg/include/openjpeg-${OPENJPEG_SHORT_VERSION} -DOPENJPEG_INCLUDE_DIR=${LIBDIR}/openjpeg/include/openjpeg-${OPENJPEG_SHORT_VERSION}
-DOPENJPEG_LIBRARY=${LIBDIR}/openjpeg/lib/${OPENJPEG_LIBRARY} -DOPENJPEG_LIBRARY=${LIBDIR}/openjpeg/lib/${OPENJPEG_LIBRARY}
) )
endif() endif()
set(OPENIMAGEIO_EXTRA_ARGS set(OPENIMAGEIO_EXTRA_ARGS
-DBUILDSTATIC=ON -DBUILDSTATIC=ON
${OPENIMAGEIO_LINKSTATIC} ${OPENIMAGEIO_LINKSTATIC}
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/openexr/ -DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/openexr/
-DOPENEXR_ILMIMF_LIBRARIES=${LIBDIR}/openexr/lib/IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT} -DOPENEXR_ILMIMF_LIBRARIES=${LIBDIR}/openexr/lib/IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING} -DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
-DBoost_USE_MULTITHREADED=ON -DBoost_USE_MULTITHREADED=ON
-DBoost_USE_STATIC_LIBS=ON -DBoost_USE_STATIC_LIBS=ON
-DBoost_USE_STATIC_RUNTIME=ON -DBoost_USE_STATIC_RUNTIME=ON
-DBOOST_ROOT=${LIBDIR}/boost -DBOOST_ROOT=${LIBDIR}/boost
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/ -DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
-DBoost_NO_SYSTEM_PATHS=ON -DBoost_NO_SYSTEM_PATHS=ON
-OIIO_BUILD_CPP11=ON -OIIO_BUILD_CPP11=ON
-DUSE_OPENGL=OFF -DUSE_OPENGL=OFF
-DUSE_TBB=OFF -DUSE_TBB=OFF
-DUSE_FIELD3D=OFF -DUSE_FIELD3D=OFF
-DUSE_QT=OFF -DUSE_QT=OFF
-DUSE_PYTHON=OFF -DUSE_PYTHON=OFF
-DUSE_GIF=OFF -DUSE_GIF=OFF
-DUSE_OPENCV=OFF -DUSE_OPENCV=OFF
-DUSE_OPENSSL=OFF -DUSE_OPENSSL=OFF
-DUSE_OPENJPEG=ON -DUSE_OPENJPEG=ON
-DUSE_FFMPEG=OFF -DUSE_FFMPEG=OFF
-DUSE_PTEX=OFF -DUSE_PTEX=OFF
-DUSE_FREETYPE=OFF -DUSE_FREETYPE=OFF
-DUSE_LIBRAW=OFF -DUSE_LIBRAW=OFF
-DUSE_PYTHON=OFF -DUSE_PYTHON=OFF
-DUSE_PYTHON3=OFF -DUSE_PYTHON3=OFF
-DUSE_OCIO=OFF -DUSE_OCIO=OFF
-DUSE_WEBP=${WITH_WEBP} -DUSE_WEBP=${WITH_WEBP}
-DOIIO_BUILD_TOOLS=${OIIO_TOOLS} -DOIIO_BUILD_TOOLS=${OIIO_TOOLS}
-DOIIO_BUILD_TESTS=OFF -DOIIO_BUILD_TESTS=OFF
-DBUILD_TESTING=OFF -DBUILD_TESTING=OFF
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY} -DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include -DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
-DPNG_LIBRARY=${LIBDIR}/png/lib/${PNG_LIBNAME} -DPNG_LIBRARY=${LIBDIR}/png/lib/${PNG_LIBNAME}
-DPNG_PNG_INCLUDE_DIR=${LIBDIR}/png/include -DPNG_PNG_INCLUDE_DIR=${LIBDIR}/png/include
-DTIFF_LIBRARY=${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT} -DTIFF_LIBRARY=${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT}
-DTIFF_INCLUDE_DIR=${LIBDIR}/tiff/include -DTIFF_INCLUDE_DIR=${LIBDIR}/tiff/include
-DJPEG_LIBRARY=${LIBDIR}/jpg/lib/${JPEG_LIBRARY} -DJPEG_LIBRARY=${LIBDIR}/jpg/lib/${JPEG_LIBRARY}
-DJPEG_INCLUDE_DIR=${LIBDIR}/jpg/include -DJPEG_INCLUDE_DIR=${LIBDIR}/jpg/include
${OPENJPEG_FLAGS} ${OPENJPEG_FLAGS}
-DOCIO_PATH=${LIBDIR}/opencolorio/ -DOCIO_PATH=${LIBDIR}/opencolorio/
-DOpenEXR_USE_STATIC_LIBS=On -DOpenEXR_USE_STATIC_LIBS=On
-DOPENEXR_HOME=${LIBDIR}/openexr/ -DOPENEXR_HOME=${LIBDIR}/openexr/
-DILMBASE_INCLUDE_PATH=${LIBDIR}/ilmbase/ -DILMBASE_INCLUDE_PATH=${LIBDIR}/ilmbase/
-DILMBASE_PACKAGE_PREFIX=${LIBDIR}/ilmbase/ -DILMBASE_PACKAGE_PREFIX=${LIBDIR}/ilmbase/
-DILMBASE_INCLUDE_DIR=${LIBDIR}/ilmbase/include/ -DILMBASE_INCLUDE_DIR=${LIBDIR}/ilmbase/include/
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DOPENEXR_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DOPENEXR_IMATH_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DOPENEXR_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/ -DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT} -DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DSTOP_ON_WARNING=OFF -DSTOP_ON_WARNING=OFF
${WEBP_FLAGS} ${WEBP_FLAGS}
${OIIO_SIMD_FLAGS} ${OIIO_SIMD_FLAGS}
) )
ExternalProject_Add(external_openimageio ExternalProject_Add(external_openimageio
URL ${OPENIMAGEIO_URI} URL ${OPENIMAGEIO_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENIMAGEIO_HASH} URL_HASH MD5=${OPENIMAGEIO_HASH}
PREFIX ${BUILD_DIR}/openimageio PREFIX ${BUILD_DIR}/openimageio
PATCH_COMMAND PATCH_COMMAND
${PATCH_CMD} -p 0 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/src/include < ${PATCH_DIR}/openimageio_gdi.diff && ${PATCH_CMD} -p 0 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/src/include < ${PATCH_DIR}/openimageio_gdi.diff &&
${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/openimageio_static_libs.diff ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/openimageio_static_libs.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimageio ${DEFAULT_CMAKE_FLAGS} ${OPENIMAGEIO_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimageio ${DEFAULT_CMAKE_FLAGS} ${OPENIMAGEIO_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openimageio INSTALL_DIR ${LIBDIR}/openimageio
) )
add_dependencies( add_dependencies(
external_openimageio external_openimageio
external_png external_zlib external_png external_zlib
external_ilmbase external_ilmbase
external_openexr external_openexr
external_jpeg external_jpeg
external_boost external_boost
external_tiff external_tiff
external_opencolorio external_opencolorio
external_openjpeg${OPENJPEG_POSTFIX} external_openjpeg${OPENJPEG_POSTFIX}
${WEBP_DEP} ${WEBP_DEP}
) )
if(NOT WIN32) if(NOT WIN32)
add_dependencies( add_dependencies(
external_openimageio external_openimageio
external_opencolorio_extra external_opencolorio_extra
) )
endif() endif()

View File

@@ -22,43 +22,43 @@
set(OPENJPEG_EXTRA_ARGS -DBUILD_SHARED_LIBS=OFF) set(OPENJPEG_EXTRA_ARGS -DBUILD_SHARED_LIBS=OFF)
if(WIN32) if(WIN32)
set(OPENJPEG_EXTRA_ARGS -G "MSYS Makefiles" -DBUILD_PKGCONFIG_FILES=On) set(OPENJPEG_EXTRA_ARGS -G "MSYS Makefiles" -DBUILD_PKGCONFIG_FILES=On)
else() else()
set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS}) set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS})
endif() endif()
ExternalProject_Add(external_openjpeg ExternalProject_Add(external_openjpeg
URL ${OPENJPEG_URI} URL ${OPENJPEG_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${OPENJPEG_HASH} URL_HASH SHA256=${OPENJPEG_HASH}
PREFIX ${BUILD_DIR}/openjpeg PREFIX ${BUILD_DIR}/openjpeg
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build && ${CMAKE_COMMAND} ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg -DBUILD_SHARED_LIBS=Off -DBUILD_THIRDPARTY=OFF ${BUILD_DIR}/openjpeg/src/external_openjpeg CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build && ${CMAKE_COMMAND} ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg -DBUILD_SHARED_LIBS=Off -DBUILD_THIRDPARTY=OFF ${BUILD_DIR}/openjpeg/src/external_openjpeg
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make install
INSTALL_DIR ${LIBDIR}/openjpeg INSTALL_DIR ${LIBDIR}/openjpeg
) )
#on windows ffmpeg wants a mingw build, while oiio needs a msvc build #on windows ffmpeg wants a mingw build, while oiio needs a msvc build
if(MSVC) if(MSVC)
set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS}) set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS})
ExternalProject_Add(external_openjpeg_msvc ExternalProject_Add(external_openjpeg_msvc
URL ${OPENJPEG_URI} URL ${OPENJPEG_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${OPENJPEG_HASH} URL_HASH SHA256=${OPENJPEG_HASH}
PREFIX ${BUILD_DIR}/openjpeg_msvc PREFIX ${BUILD_DIR}/openjpeg_msvc
CMAKE_ARGS ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg_msvc -DBUILD_SHARED_LIBS=Off -DBUILD_THIRDPARTY=OFF CMAKE_ARGS ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg_msvc -DBUILD_SHARED_LIBS=Off -DBUILD_THIRDPARTY=OFF
INSTALL_DIR ${LIBDIR}/openjpeg_msvc INSTALL_DIR ${LIBDIR}/openjpeg_msvc
) )
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_openjpeg_msvc after_install ExternalProject_Add_Step(external_openjpeg_msvc after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openjpeg_msvc/lib ${HARVEST_TARGET}/openjpeg/lib && COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openjpeg_msvc/lib ${HARVEST_TARGET}/openjpeg/lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openjpeg_msvc/include ${HARVEST_TARGET}/openjpeg/include ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openjpeg_msvc/include ${HARVEST_TARGET}/openjpeg/include
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()
set(OPENJPEG_LIBRARY libopenjp2${LIBEXT}) set(OPENJPEG_LIBRARY libopenjp2${LIBEXT})
if(MSVC) if(MSVC)
set_target_properties(external_openjpeg PROPERTIES FOLDER Mingw) set_target_properties(external_openjpeg PROPERTIES FOLDER Mingw)
endif() endif()

View File

@@ -18,16 +18,16 @@
ExternalProject_Add(external_openmp ExternalProject_Add(external_openmp
URL ${OPENMP_URI} URL ${OPENMP_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENMP_HASH} URL_HASH MD5=${OPENMP_HASH}
PREFIX ${BUILD_DIR}/openmp PREFIX ${BUILD_DIR}/openmp
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openmp ${DEFAULT_CMAKE_FLAGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openmp ${DEFAULT_CMAKE_FLAGS}
INSTALL_COMMAND cd ${BUILD_DIR}/openmp/src/external_openmp-build && install_name_tool -id @executable_path/../Resources/lib/libomp.dylib runtime/src/libomp.dylib && make install INSTALL_COMMAND cd ${BUILD_DIR}/openmp/src/external_openmp-build && install_name_tool -id @executable_path/../Resources/lib/libomp.dylib runtime/src/libomp.dylib && make install
INSTALL_DIR ${LIBDIR}/openmp INSTALL_DIR ${LIBDIR}/openmp
) )
add_dependencies( add_dependencies(
external_openmp external_openmp
external_clang external_clang
) )

View File

@@ -17,86 +17,86 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(OPENSUBDIV_EXTRA_ARGS set(OPENSUBDIV_EXTRA_ARGS
-DNO_EXAMPLES=ON -DNO_EXAMPLES=ON
-DNO_REGRESSION=ON -DNO_REGRESSION=ON
-DNO_PYTHON=ON -DNO_PYTHON=ON
-DNO_MAYA=ON -DNO_MAYA=ON
-DNO_PTEX=ON -DNO_PTEX=ON
-DNO_DOC=ON -DNO_DOC=ON
-DNO_CLEW=OFF -DNO_CLEW=OFF
-DNO_OPENCL=OFF -DNO_OPENCL=OFF
-DNO_TUTORIALS=ON -DNO_TUTORIALS=ON
-DGLEW_INCLUDE_DIR=${LIBDIR}/glew/include -DGLEW_INCLUDE_DIR=${LIBDIR}/glew/include
-DGLEW_LIBRARY=${LIBDIR}/glew/lib/libGLEW${LIBEXT} -DGLEW_LIBRARY=${LIBDIR}/glew/lib/libGLEW${LIBEXT}
-DGLFW_INCLUDE_DIR=${LIBDIR}/glfw/include -DGLFW_INCLUDE_DIR=${LIBDIR}/glfw/include
-DGLFW_LIBRARIES=${LIBDIR}/glfw/lib/glfw3${LIBEXT} -DGLFW_LIBRARIES=${LIBDIR}/glfw/lib/glfw3${LIBEXT}
) )
if(WIN32) if(WIN32)
set(OPENSUBDIV_EXTRA_ARGS set(OPENSUBDIV_EXTRA_ARGS
${OPENSUBDIV_EXTRA_ARGS} ${OPENSUBDIV_EXTRA_ARGS}
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include -DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb_static.lib -DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb_static.lib
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL -DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/clew${LIBEXT} -DCLEW_LIBRARY=${LIBDIR}/clew/lib/clew${LIBEXT}
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include -DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
-DCUEW_LIBRARY=${LIBDIR}/cuew/lib/cuew${LIBEXT} -DCUEW_LIBRARY=${LIBDIR}/cuew/lib/cuew${LIBEXT}
-DCMAKE_EXE_LINKER_FLAGS_RELEASE=libcmt.lib -DCMAKE_EXE_LINKER_FLAGS_RELEASE=libcmt.lib
) )
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(OPENSUBDIV_EXTRA_ARGS set(OPENSUBDIV_EXTRA_ARGS
${OPENSUBDIV_EXTRA_ARGS} ${OPENSUBDIV_EXTRA_ARGS}
-DNO_CUDA=OFF -DNO_CUDA=OFF
) )
else() else()
set(OPENSUBDIV_EXTRA_ARGS set(OPENSUBDIV_EXTRA_ARGS
${OPENSUBDIV_EXTRA_ARGS} ${OPENSUBDIV_EXTRA_ARGS}
-DNO_CUDA=ON -DNO_CUDA=ON
) )
endif() endif()
else() else()
set(OPENSUBDIV_EXTRA_ARGS set(OPENSUBDIV_EXTRA_ARGS
${OPENSUBDIV_EXTRA_ARGS} ${OPENSUBDIV_EXTRA_ARGS}
-DNO_CUDA=ON -DNO_CUDA=ON
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include -DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL -DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/static/${LIBPREFIX}clew${LIBEXT} -DCLEW_LIBRARY=${LIBDIR}/clew/lib/static/${LIBPREFIX}clew${LIBEXT}
) )
endif() endif()
ExternalProject_Add(external_opensubdiv ExternalProject_Add(external_opensubdiv
URL ${OPENSUBDIV_URI} URL ${OPENSUBDIV_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENSUBDIV_Hash} URL_HASH MD5=${OPENSUBDIV_Hash}
PREFIX ${BUILD_DIR}/opensubdiv PREFIX ${BUILD_DIR}/opensubdiv
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/opensubdiv/src/external_opensubdiv < ${PATCH_DIR}/opensubdiv.diff PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/opensubdiv/src/external_opensubdiv < ${PATCH_DIR}/opensubdiv.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opensubdiv -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${OPENSUBDIV_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opensubdiv -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${OPENSUBDIV_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/opensubdiv INSTALL_DIR ${LIBDIR}/opensubdiv
) )
if(WIN32) if(WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_opensubdiv after_install ExternalProject_Add_Step(external_opensubdiv after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opensubdiv/lib ${HARVEST_TARGET}/opensubdiv/lib COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opensubdiv/lib ${HARVEST_TARGET}/opensubdiv/lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opensubdiv/include ${HARVEST_TARGET}/opensubdiv/include COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opensubdiv/include ${HARVEST_TARGET}/opensubdiv/include
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_opensubdiv after_install ExternalProject_Add_Step(external_opensubdiv after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opensubdiv/lib/osdCPU.lib ${HARVEST_TARGET}/opensubdiv/lib/osdCPU_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opensubdiv/lib/osdCPU.lib ${HARVEST_TARGET}/opensubdiv/lib/osdCPU_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opensubdiv/lib/osdGPU.lib ${HARVEST_TARGET}/opensubdiv/lib/osdGPU_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opensubdiv/lib/osdGPU.lib ${HARVEST_TARGET}/opensubdiv/lib/osdGPU_d.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()
add_dependencies( add_dependencies(
external_opensubdiv external_opensubdiv
external_glew external_glew
external_glfw external_glfw
external_clew external_clew
external_cuew external_cuew
external_tbb external_tbb
) )

View File

@@ -17,86 +17,86 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
set(BLOSC_POST _d) set(BLOSC_POST _d)
endif() endif()
set(OPENVDB_EXTRA_ARGS set(OPENVDB_EXTRA_ARGS
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING} -DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
-DBoost_USE_MULTITHREADED=ON -DBoost_USE_MULTITHREADED=ON
-DBoost_USE_STATIC_LIBS=ON -DBoost_USE_STATIC_LIBS=ON
-DBoost_USE_STATIC_RUNTIME=ON -DBoost_USE_STATIC_RUNTIME=ON
-DBOOST_ROOT=${LIBDIR}/boost -DBOOST_ROOT=${LIBDIR}/boost
-DBoost_NO_SYSTEM_PATHS=ON -DBoost_NO_SYSTEM_PATHS=ON
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY} -DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/ -DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DBLOSC_INCLUDE_DIR=${LIBDIR}/blosc/include/ -DBLOSC_INCLUDE_DIR=${LIBDIR}/blosc/include/
-DBLOSC_blosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT} -DBLOSC_blosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
-DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF -DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
-DOPENVDB_BUILD_UNITTESTS=Off -DOPENVDB_BUILD_UNITTESTS=Off
-DOPENVDB_BUILD_PYTHON_MODULE=Off -DOPENVDB_BUILD_PYTHON_MODULE=Off
-DGLEW_LOCATION=${LIBDIR}/glew/ -DGLEW_LOCATION=${LIBDIR}/glew/
-DBLOSC_LOCATION=${LIBDIR}/blosc/ -DBLOSC_LOCATION=${LIBDIR}/blosc/
-DTBB_LOCATION=${LIBDIR}/tbb/ -DTBB_LOCATION=${LIBDIR}/tbb/
-DTBB_ROOT=${LIBDIR}/tbb/ -DTBB_ROOT=${LIBDIR}/tbb/
-DOPENEXR_LOCATION=${LIBDIR}/openexr -DOPENEXR_LOCATION=${LIBDIR}/openexr
-DILMBASE_LOCATION=${LIBDIR}/ilmbase -DILMBASE_LOCATION=${LIBDIR}/ilmbase
-DIlmbase_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DIlmbase_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DIlmbase_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DIlmbase_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DIlmbase_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DIlmbase_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOpenexr_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT} -DOpenexr_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DTBB_LIBRARYDIR=${LIBDIR}/tbb/lib -DTBB_LIBRARYDIR=${LIBDIR}/tbb/lib
-DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT} -DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
-DTBB_LIBRARY_PATH=${LIBDIR}/tbb/lib -DTBB_LIBRARY_PATH=${LIBDIR}/tbb/lib
) )
if(WIN32) if(WIN32)
# Namespaces seem to be buggy and cause linker errors due to things not # Namespaces seem to be buggy and cause linker errors due to things not
# being in the correct namespace # being in the correct namespace
# needs to link pthreads due to it being a blosc dependency # needs to link pthreads due to it being a blosc dependency
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS} set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
-DOPENEXR_NAMESPACE_VERSIONING=OFF -DOPENEXR_NAMESPACE_VERSIONING=OFF
-DEXTRA_LIBS:FILEPATH=${LIBDIR}/pthreads/lib/pthreadVC3.lib -DEXTRA_LIBS:FILEPATH=${LIBDIR}/pthreads/lib/pthreadVC3.lib
) )
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS} set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
-DCMAKE_SHARED_LINKER_FLAGS="/safeseh:no" -DCMAKE_SHARED_LINKER_FLAGS="/safeseh:no"
-DCMAKE_EXE_LINKER_FLAGS="/safeseh:no" -DCMAKE_EXE_LINKER_FLAGS="/safeseh:no"
) )
endif() endif()
endif() endif()
ExternalProject_Add(openvdb ExternalProject_Add(openvdb
URL ${OPENVDB_URI} URL ${OPENVDB_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${OPENVDB_HASH} URL_HASH MD5=${OPENVDB_HASH}
PREFIX ${BUILD_DIR}/openvdb PREFIX ${BUILD_DIR}/openvdb
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb.diff PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openvdb ${DEFAULT_CMAKE_FLAGS} ${OPENVDB_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openvdb ${DEFAULT_CMAKE_FLAGS} ${OPENVDB_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openvdb INSTALL_DIR ${LIBDIR}/openvdb
) )
add_dependencies( add_dependencies(
openvdb openvdb
external_tbb external_tbb
external_boost external_boost
external_ilmbase external_ilmbase
external_openexr external_openexr
external_zlib external_zlib
external_blosc external_blosc
) )
if(WIN32) if(WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(openvdb after_install ExternalProject_Add_Step(openvdb after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include ${HARVEST_TARGET}/openvdb/include COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include ${HARVEST_TARGET}/openvdb/include
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(openvdb after_install ExternalProject_Add_Step(openvdb after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -17,22 +17,22 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(WIN32) if(WIN32)
option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/lapack/fftw3 by installing mingw64" ON) option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/lapack/fftw3 by installing mingw64" ON)
endif() endif()
option(WITH_WEBP "Enable building of oiio with webp support" OFF) option(WITH_WEBP "Enable building of oiio with webp support" OFF)
option(WITH_EMBREE "Enable building of Embree" OFF) option(WITH_EMBREE "Enable building of Embree" OFF)
set(MAKE_THREADS 1 CACHE STRING "Number of threads to run make with") set(MAKE_THREADS 1 CACHE STRING "Number of threads to run make with")
if(NOT BUILD_MODE) if(NOT BUILD_MODE)
set(BUILD_MODE "Release") set(BUILD_MODE "Release")
message(STATUS "Build type not specified: defaulting to a release build.") message(STATUS "Build type not specified: defaulting to a release build.")
endif() endif()
message("BuildMode = ${BUILD_MODE}") message("BuildMode = ${BUILD_MODE}")
if(BUILD_MODE STREQUAL "Debug") if(BUILD_MODE STREQUAL "Debug")
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Debug) set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Debug)
else(BUILD_MODE STREQUAL "Debug") else(BUILD_MODE STREQUAL "Debug")
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Release) set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Release)
endif() endif()
option(DOWNLOAD_DIR "Path for downloaded files" ${CMAKE_CURRENT_SOURCE_DIR}/downloads) option(DOWNLOAD_DIR "Path for downloaded files" ${CMAKE_CURRENT_SOURCE_DIR}/downloads)
@@ -46,173 +46,173 @@ message("PATCH_DIR = ${PATCH_DIR}")
message("BUILD_DIR = ${BUILD_DIR}") message("BUILD_DIR = ${BUILD_DIR}")
if(WIN32) if(WIN32)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(PATCH_CMD ${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/patch.exe) set(PATCH_CMD ${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/patch.exe)
else() else()
set(PATCH_CMD ${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/patch.exe) set(PATCH_CMD ${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/patch.exe)
endif() endif()
set(LIBEXT ".lib") set(LIBEXT ".lib")
set(LIBPREFIX "") set(LIBPREFIX "")
# For OIIO and OSL # For OIIO and OSL
set(COMMON_DEFINES /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS) set(COMMON_DEFINES /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS)
if(MSVC_VERSION GREATER 1909) if(MSVC_VERSION GREATER 1909)
set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings. set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings.
endif() endif()
set(COMMON_MSVC_FLAGS "${COMMON_MSVC_FLAGS} /bigobj") set(COMMON_MSVC_FLAGS "${COMMON_MSVC_FLAGS} /bigobj")
if(WITH_OPTIMIZED_DEBUG) if(WITH_OPTIMIZED_DEBUG)
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
else() else()
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
endif() endif()
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MT ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MT ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MT ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MT ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MT ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MT ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
if(WITH_OPTIMIZED_DEBUG) if(WITH_OPTIMIZED_DEBUG)
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MTd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
else() else()
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
endif() endif()
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MT /${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MT /${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MT ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MT ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MT ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS") set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MT ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(PLATFORM_FLAGS) set(PLATFORM_FLAGS)
set(PLATFORM_CXX_FLAGS) set(PLATFORM_CXX_FLAGS)
set(PLATFORM_CMAKE_FLAGS) set(PLATFORM_CMAKE_FLAGS)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(MINGW_PATH ${DOWNLOAD_DIR}/mingw/mingw64) set(MINGW_PATH ${DOWNLOAD_DIR}/mingw/mingw64)
set(MINGW_SHELL ming64sh.cmd) set(MINGW_SHELL ming64sh.cmd)
set(PERL_SHELL ${DOWNLOAD_DIR}/perl/portableshell.bat) set(PERL_SHELL ${DOWNLOAD_DIR}/perl/portableshell.bat)
set(MINGW_HOST x86_64-w64-mingw32) set(MINGW_HOST x86_64-w64-mingw32)
else() else()
set(MINGW_PATH ${DOWNLOAD_DIR}/mingw/mingw32) set(MINGW_PATH ${DOWNLOAD_DIR}/mingw/mingw32)
set(MINGW_SHELL ming32sh.cmd) set(MINGW_SHELL ming32sh.cmd)
set(PERL_SHELL ${DOWNLOAD_DIR}/perl32/portableshell.bat) set(PERL_SHELL ${DOWNLOAD_DIR}/perl32/portableshell.bat)
set(MINGW_HOST i686-w64-mingw32) set(MINGW_HOST i686-w64-mingw32)
endif() endif()
set(CONFIGURE_ENV set(CONFIGURE_ENV
cd ${MINGW_PATH} && cd ${MINGW_PATH} &&
call ${MINGW_SHELL} && call ${MINGW_SHELL} &&
call ${PERL_SHELL} && call ${PERL_SHELL} &&
set path && set path &&
set CFLAGS=-g && set CFLAGS=-g &&
set LDFLAGS=-Wl,--as-needed -static-libgcc set LDFLAGS=-Wl,--as-needed -static-libgcc
) )
set(CONFIGURE_ENV_NO_PERL set(CONFIGURE_ENV_NO_PERL
cd ${MINGW_PATH} && cd ${MINGW_PATH} &&
call ${MINGW_SHELL} && call ${MINGW_SHELL} &&
set path && set path &&
set CFLAGS=-g && set CFLAGS=-g &&
set LDFLAGS=-Wl,--as-needed -static-libgcc set LDFLAGS=-Wl,--as-needed -static-libgcc
) )
set(CONFIGURE_COMMAND sh ./configure) set(CONFIGURE_COMMAND sh ./configure)
set(CONFIGURE_COMMAND_NO_TARGET ${CONFIGURE_COMMAND}) set(CONFIGURE_COMMAND_NO_TARGET ${CONFIGURE_COMMAND})
else() else()
set(PATCH_CMD patch) set(PATCH_CMD patch)
set(LIBEXT ".a") set(LIBEXT ".a")
set(LIBPREFIX "lib") set(LIBPREFIX "lib")
if(APPLE) if(APPLE)
# Let's get the current Xcode dir, to support xcode-select # Let's get the current Xcode dir, to support xcode-select
execute_process( execute_process(
COMMAND xcode-select --print-path COMMAND xcode-select --print-path
OUTPUT_VARIABLE XCODE_DEV_PATH OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE XCODE_DEV_PATH OUTPUT_STRIP_TRAILING_WHITESPACE
) )
set(OSX_ARCHITECTURES x86_64) set(OSX_ARCHITECTURES x86_64)
set(OSX_DEPLOYMENT_TARGET 10.9) set(OSX_DEPLOYMENT_TARGET 10.9)
set(OSX_SYSROOT ${XCODE_DEV_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk) set(OSX_SYSROOT ${XCODE_DEV_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk)
set(PLATFORM_CFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET}") set(PLATFORM_CFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET}")
set(PLATFORM_CXXFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -std=c++11 -stdlib=libc++") set(PLATFORM_CXXFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -std=c++11 -stdlib=libc++")
set(PLATFORM_LDFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET}") set(PLATFORM_LDFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET}")
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin13.0.0) # OS X 10.9 set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin13.0.0) # OS X 10.9
set(PLATFORM_CMAKE_FLAGS set(PLATFORM_CMAKE_FLAGS
-DCMAKE_OSX_ARCHITECTURES:STRING=${OSX_ARCHITECTURES} -DCMAKE_OSX_ARCHITECTURES:STRING=${OSX_ARCHITECTURES}
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${OSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${OSX_DEPLOYMENT_TARGET}
-DCMAKE_OSX_SYSROOT:PATH=${OSX_SYSROOT} -DCMAKE_OSX_SYSROOT:PATH=${OSX_SYSROOT}
) )
else() else()
set(PLATFORM_CFLAGS "-fPIC") set(PLATFORM_CFLAGS "-fPIC")
set(PLATFORM_CXXFLAGS "-std=c++11 -fPIC") set(PLATFORM_CXXFLAGS "-std=c++11 -fPIC")
set(PLATFORM_LDFLAGS) set(PLATFORM_LDFLAGS)
set(PLATFORM_BUILD_TARGET) set(PLATFORM_BUILD_TARGET)
set(PLATFORM_CMAKE_FLAGS -DCMAKE_INSTALL_LIBDIR=lib) set(PLATFORM_CMAKE_FLAGS -DCMAKE_INSTALL_LIBDIR=lib)
endif() endif()
if(WITH_OPTIMIZED_DEBUG) if(WITH_OPTIMIZED_DEBUG)
set(BLENDER_CMAKE_C_FLAGS_DEBUG "-O2 -DNDEBUG ${PLATFORM_CFLAGS}") set(BLENDER_CMAKE_C_FLAGS_DEBUG "-O2 -DNDEBUG ${PLATFORM_CFLAGS}")
else() else()
set(BLENDER_CMAKE_C_FLAGS_DEBUG "-g ${PLATFORM_CFLAGS}") set(BLENDER_CMAKE_C_FLAGS_DEBUG "-g ${PLATFORM_CFLAGS}")
endif() endif()
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG ${PLATFORM_CFLAGS}") set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG ${PLATFORM_CFLAGS}")
set(BLENDER_CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${PLATFORM_CFLAGS}") set(BLENDER_CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${PLATFORM_CFLAGS}")
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${PLATFORM_CFLAGS}") set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${PLATFORM_CFLAGS}")
if(WITH_OPTIMIZED_DEBUG) if(WITH_OPTIMIZED_DEBUG)
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "-O2 -DNDEBUG ${PLATFORM_CXXFLAGS}") set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "-O2 -DNDEBUG ${PLATFORM_CXXFLAGS}")
else() else()
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "-g ${PLATFORM_CXXFLAGS}") set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "-g ${PLATFORM_CXXFLAGS}")
endif() endif()
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG ${PLATFORM_CXXFLAGS}") set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG ${PLATFORM_CXXFLAGS}")
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG ${PLATFORM_CXXFLAGS}") set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG ${PLATFORM_CXXFLAGS}")
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${PLATFORM_CXXFLAGS}") set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${PLATFORM_CXXFLAGS}")
set(CONFIGURE_ENV set(CONFIGURE_ENV
export MACOSX_DEPLOYMENT_TARGET=${OSX_DEPLOYMENT_TARGET} && export MACOSX_DEPLOYMENT_TARGET=${OSX_DEPLOYMENT_TARGET} &&
export CFLAGS=${PLATFORM_CFLAGS} && export CFLAGS=${PLATFORM_CFLAGS} &&
export CXXFLAGS=${PLATFORM_CXXFLAGS} && export CXXFLAGS=${PLATFORM_CXXFLAGS} &&
export LDFLAGS=${PLATFORM_LDFLAGS} export LDFLAGS=${PLATFORM_LDFLAGS}
) )
set(CONFIGURE_ENV_NO_PERL ${CONFIGURE_ENV}) set(CONFIGURE_ENV_NO_PERL ${CONFIGURE_ENV})
set(CONFIGURE_COMMAND ./configure ${PLATFORM_BUILD_TARGET}) set(CONFIGURE_COMMAND ./configure ${PLATFORM_BUILD_TARGET})
set(CONFIGURE_COMMAND_NO_TARGET ./configure) set(CONFIGURE_COMMAND_NO_TARGET ./configure)
endif() endif()
set(DEFAULT_CMAKE_FLAGS set(DEFAULT_CMAKE_FLAGS
-DCMAKE_BUILD_TYPE=${BUILD_MODE} -DCMAKE_BUILD_TYPE=${BUILD_MODE}
-DCMAKE_C_FLAGS_DEBUG=${BLENDER_CMAKE_C_FLAGS_DEBUG} -DCMAKE_C_FLAGS_DEBUG=${BLENDER_CMAKE_C_FLAGS_DEBUG}
-DCMAKE_C_FLAGS_MINSIZEREL=${BLENDER_CMAKE_C_FLAGS_MINSIZEREL} -DCMAKE_C_FLAGS_MINSIZEREL=${BLENDER_CMAKE_C_FLAGS_MINSIZEREL}
-DCMAKE_C_FLAGS_RELEASE=${BLENDER_CMAKE_C_FLAGS_RELEASE} -DCMAKE_C_FLAGS_RELEASE=${BLENDER_CMAKE_C_FLAGS_RELEASE}
-DCMAKE_C_FLAGS_RELWITHDEBINFO=${BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO} -DCMAKE_C_FLAGS_RELWITHDEBINFO=${BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO}
-DCMAKE_CXX_FLAGS_DEBUG=${BLENDER_CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_DEBUG=${BLENDER_CMAKE_CXX_FLAGS_DEBUG}
-DCMAKE_CXX_FLAGS_MINSIZEREL=${BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL} -DCMAKE_CXX_FLAGS_MINSIZEREL=${BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL}
-DCMAKE_CXX_FLAGS_RELEASE=${BLENDER_CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS_RELEASE=${BLENDER_CMAKE_CXX_FLAGS_RELEASE}
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
${PLATFORM_CMAKE_FLAGS} ${PLATFORM_CMAKE_FLAGS}
) )
if(WIN32) if(WIN32)
#we need both flavors to build the thumbnail dlls #we need both flavors to build the thumbnail dlls
if(MSVC12) if(MSVC12)
set(GENERATOR_32 "Visual Studio 12 2013") set(GENERATOR_32 "Visual Studio 12 2013")
set(GENERATOR_64 "Visual Studio 12 2013 Win64") set(GENERATOR_64 "Visual Studio 12 2013 Win64")
elseif(MSVC14) elseif(MSVC14)
set(GENERATOR_32 "Visual Studio 14 2015") set(GENERATOR_32 "Visual Studio 14 2015")
set(GENERATOR_64 "Visual Studio 14 2015 Win64") set(GENERATOR_64 "Visual Studio 14 2015 Win64")
endif() endif()
endif() endif()
if(WIN32) if(WIN32)
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
set(ZLIB_LIBRARY zlibstaticd${LIBEXT}) set(ZLIB_LIBRARY zlibstaticd${LIBEXT})
else() else()
set(ZLIB_LIBRARY zlibstatic${LIBEXT}) set(ZLIB_LIBRARY zlibstatic${LIBEXT})
endif() endif()
else() else()
set(ZLIB_LIBRARY libz${LIBEXT}) set(ZLIB_LIBRARY libz${LIBEXT})
endif() endif()
if(MSVC) if(MSVC)
set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY USE_FOLDERS ON)
endif() endif()
set(CMAKE_INSTALL_MESSAGE LAZY) set(CMAKE_INSTALL_MESSAGE LAZY)

View File

@@ -17,116 +17,116 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(WIN32) if(WIN32)
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}") set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DFLEX_EXTRA_OPTIONS="--wincompat" -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe) set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DFLEX_EXTRA_OPTIONS="--wincompat" -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe)
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/libpng16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}") set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/libpng16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=0) set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=0)
else() else()
set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=sse2) set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=sse2)
endif() endif()
SET(OSL_PLATFORM_FLAGS -DLINKSTATIC=ON) SET(OSL_PLATFORM_FLAGS -DLINKSTATIC=ON)
else() else()
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES) set(OSL_CMAKE_CXX_STANDARD_LIBRARIES)
set(OSL_FLEX_BISON) set(OSL_FLEX_BISON)
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}") set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
SET(OSL_PLATFORM_FLAGS) SET(OSL_PLATFORM_FLAGS)
endif() endif()
set(OSL_ILMBASE_CUSTOM_LIBRARIES "${LIBDIR}/ilmbase/lib/Imath${ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/Half{ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/IlmThread${ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/Iex${ILMBASE_VERSION_POSTFIX}.lib") set(OSL_ILMBASE_CUSTOM_LIBRARIES "${LIBDIR}/ilmbase/lib/Imath${ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/Half{ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/IlmThread${ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/Iex${ILMBASE_VERSION_POSTFIX}.lib")
set(OSL_LLVM_LIBRARY "${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAnalysis${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAsmParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAsmPrinter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMBitReader${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMBitWriter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMCodeGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMCore${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMDebugInfo${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMExecutionEngine${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInstCombine${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInstrumentation${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInterpreter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMJIT${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMLinker${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMC${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCDisassembler${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCJIT${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMObject${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMRuntimeDyld${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMScalarOpts${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMSelectionDAG${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMSupport${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTableGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTarget${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTransformUtils${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMVectorize${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86AsmParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86AsmPrinter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86CodeGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Desc${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Disassembler${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Info${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Utils${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMipa${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMipo${LIBEXT}") set(OSL_LLVM_LIBRARY "${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAnalysis${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAsmParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAsmPrinter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMBitReader${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMBitWriter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMCodeGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMCore${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMDebugInfo${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMExecutionEngine${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInstCombine${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInstrumentation${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInterpreter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMJIT${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMLinker${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMC${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCDisassembler${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCJIT${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMObject${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMRuntimeDyld${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMScalarOpts${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMSelectionDAG${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMSupport${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTableGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTarget${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTransformUtils${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMVectorize${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86AsmParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86AsmPrinter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86CodeGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Desc${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Disassembler${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Info${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Utils${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMipa${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMipo${LIBEXT}")
set(OSL_EXTRA_ARGS set(OSL_EXTRA_ARGS
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING} -DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
-DBoost_USE_MULTITHREADED=ON -DBoost_USE_MULTITHREADED=ON
-DBoost_USE_STATIC_LIBS=ON -DBoost_USE_STATIC_LIBS=ON
-DBoost_USE_STATIC_RUNTIME=ON -DBoost_USE_STATIC_RUNTIME=ON
-DBOOST_ROOT=${LIBDIR}/boost -DBOOST_ROOT=${LIBDIR}/boost
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/ -DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
-DBoost_NO_SYSTEM_PATHS=ON -DBoost_NO_SYSTEM_PATHS=ON
-DLLVM_DIRECTORY=${LIBDIR}/llvm -DLLVM_DIRECTORY=${LIBDIR}/llvm
-DLLVM_INCLUDES=${LIBDIR}/llvm/include -DLLVM_INCLUDES=${LIBDIR}/llvm/include
-DLLVM_LIB_DIR=${LIBDIR}/llvm/lib -DLLVM_LIB_DIR=${LIBDIR}/llvm/lib
-DLLVM_VERSION=3.4 -DLLVM_VERSION=3.4
-DLLVM_LIBRARY=${OSL_LLVM_LIBRARY} -DLLVM_LIBRARY=${OSL_LLVM_LIBRARY}
-DOPENEXR_HOME=${LIBDIR}/openexr/ -DOPENEXR_HOME=${LIBDIR}/openexr/
-DILMBASE_HOME=${LIBDIR}/ilmbase/ -DILMBASE_HOME=${LIBDIR}/ilmbase/
-DILMBASE_INCLUDE_DIR=${LIBDIR}/ilmbase/include/ -DILMBASE_INCLUDE_DIR=${LIBDIR}/ilmbase/include/
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DOPENEXR_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DOPENEXR_IMATH_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT} -DOPENEXR_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/ -DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT} -DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOSL_BUILD_TESTS=OFF -DOSL_BUILD_TESTS=OFF
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY} -DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/ -DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DOPENIMAGEIOHOME=${LIBDIR}/openimageio/ -DOPENIMAGEIOHOME=${LIBDIR}/openimageio/
-DOPENIMAGEIO_LIBRARY=${OSL_OPENIMAGEIO_LIBRARY} -DOPENIMAGEIO_LIBRARY=${OSL_OPENIMAGEIO_LIBRARY}
-DOPENIMAGEIO_INCLUDES=${LIBDIR}/openimageio/include -DOPENIMAGEIO_INCLUDES=${LIBDIR}/openimageio/include
${OSL_FLEX_BISON} ${OSL_FLEX_BISON}
-DCMAKE_CXX_STANDARD_LIBRARIES=${OSL_CMAKE_CXX_STANDARD_LIBRARIES} -DCMAKE_CXX_STANDARD_LIBRARIES=${OSL_CMAKE_CXX_STANDARD_LIBRARIES}
-DBUILDSTATIC=ON -DBUILDSTATIC=ON
${OSL_PLATFORM_FLAGS} ${OSL_PLATFORM_FLAGS}
-DOSL_BUILD_PLUGINS=Off -DOSL_BUILD_PLUGINS=Off
-DSTOP_ON_WARNING=OFF -DSTOP_ON_WARNING=OFF
-DUSE_LLVM_BITCODE=OFF -DUSE_LLVM_BITCODE=OFF
-DUSE_PARTIO=OFF -DUSE_PARTIO=OFF
${OSL_SIMD_FLAGS} ${OSL_SIMD_FLAGS}
-DPARTIO_LIBRARIES= -DPARTIO_LIBRARIES=
) )
if(WIN32) if(WIN32)
set(OSL_EXTRA_ARGS set(OSL_EXTRA_ARGS
${OSL_EXTRA_ARGS} ${OSL_EXTRA_ARGS}
-DPUGIXML_HOME=${LIBDIR}/pugixml -DPUGIXML_HOME=${LIBDIR}/pugixml
) )
elseif(APPLE) elseif(APPLE)
# Make symbol hiding consistent with OIIO which defaults to OFF, # Make symbol hiding consistent with OIIO which defaults to OFF,
# avoids linker warnings on macOS # avoids linker warnings on macOS
set(OSL_EXTRA_ARGS set(OSL_EXTRA_ARGS
${OSL_EXTRA_ARGS} ${OSL_EXTRA_ARGS}
-DHIDE_SYMBOLS=OFF -DHIDE_SYMBOLS=OFF
) )
endif() endif()
ExternalProject_Add(external_osl ExternalProject_Add(external_osl
URL ${OSL_URI} URL ${OSL_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
LIST_SEPARATOR ^^ LIST_SEPARATOR ^^
URL_HASH MD5=${OSL_HASH} URL_HASH MD5=${OSL_HASH}
PREFIX ${BUILD_DIR}/osl PREFIX ${BUILD_DIR}/osl
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl.diff PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/osl -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ${DEFAULT_CMAKE_FLAGS} ${OSL_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/osl -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ${DEFAULT_CMAKE_FLAGS} ${OSL_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/osl INSTALL_DIR ${LIBDIR}/osl
) )
add_dependencies( add_dependencies(
external_osl external_osl
external_boost external_boost
ll ll
external_clang external_clang
external_ilmbase external_ilmbase
external_openexr external_openexr
external_zlib external_zlib
external_flexbison external_flexbison
external_openimageio external_openimageio
external_pugixml external_pugixml
) )
if(WIN32) if(WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_osl after_install ExternalProject_Add_Step(external_osl after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/osl/ ${HARVEST_TARGET}/osl COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/osl/ ${HARVEST_TARGET}/osl
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_osl after_install ExternalProject_Add_Step(external_osl after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslcomp.lib ${HARVEST_TARGET}/osl/lib/oslcomp_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslcomp.lib ${HARVEST_TARGET}/osl/lib/oslcomp_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslexec.lib ${HARVEST_TARGET}/osl/lib/oslexec_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslexec.lib ${HARVEST_TARGET}/osl/lib/oslexec_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslquery.lib ${HARVEST_TARGET}/osl/lib/oslquery_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslquery.lib ${HARVEST_TARGET}/osl/lib/oslquery_d.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -17,28 +17,28 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(PNG_EXTRA_ARGS set(PNG_EXTRA_ARGS
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY} -DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/ -DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DPNG_STATIC=ON -DPNG_STATIC=ON
) )
ExternalProject_Add(external_png ExternalProject_Add(external_png
URL ${PNG_URI} URL ${PNG_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${PNG_HASH} URL_HASH MD5=${PNG_HASH}
PREFIX ${BUILD_DIR}/png PREFIX ${BUILD_DIR}/png
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/png ${DEFAULT_CMAKE_FLAGS} ${PNG_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/png ${DEFAULT_CMAKE_FLAGS} ${PNG_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/png INSTALL_DIR ${LIBDIR}/png
) )
add_dependencies( add_dependencies(
external_png external_png
external_zlib external_zlib
) )
if(WIN32 AND BUILD_MODE STREQUAL Debug) if(WIN32 AND BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_png after_install ExternalProject_Add_Step(external_png after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_staticd${LIBEXT} ${LIBDIR}/png/lib/libpng16${LIBEXT} COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_staticd${LIBEXT} ${LIBDIR}/png/lib/libpng16${LIBEXT}
DEPENDEES install DEPENDEES install
) )
endif() endif()

View File

@@ -18,36 +18,36 @@
if(WIN32) if(WIN32)
if(MSVC14) # vs2015 has timespec if(MSVC14) # vs2015 has timespec
set(PTHREAD_CPPFLAGS "/I. /DHAVE_CONFIG_H /D_TIMESPEC_DEFINED ") set(PTHREAD_CPPFLAGS "/I. /DHAVE_CONFIG_H /D_TIMESPEC_DEFINED ")
else() # everything before doesn't else() # everything before doesn't
set(PTHREAD_CPPFLAGS "/I. /DHAVE_CONFIG_H ") set(PTHREAD_CPPFLAGS "/I. /DHAVE_CONFIG_H ")
endif() endif()
set(PTHREADS_BUILD cd ${BUILD_DIR}/pthreads/src/external_pthreads/ && cd && nmake VC-static /e CPPFLAGS=${PTHREAD_CPPFLAGS} /e XLIBS=/NODEFAULTLIB:msvcr) set(PTHREADS_BUILD cd ${BUILD_DIR}/pthreads/src/external_pthreads/ && cd && nmake VC-static /e CPPFLAGS=${PTHREAD_CPPFLAGS} /e XLIBS=/NODEFAULTLIB:msvcr)
ExternalProject_Add(external_pthreads ExternalProject_Add(external_pthreads
URL ${PTHREADS_URI} URL ${PTHREADS_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${PTHREADS_HASH} URL_HASH MD5=${PTHREADS_HASH}
PREFIX ${BUILD_DIR}/pthreads PREFIX ${BUILD_DIR}/pthreads
CONFIGURE_COMMAND echo . CONFIGURE_COMMAND echo .
BUILD_COMMAND ${PTHREADS_BUILD} BUILD_COMMAND ${PTHREADS_BUILD}
INSTALL_COMMAND COMMAND INSTALL_COMMAND COMMAND
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/libpthreadVC3${LIBEXT} ${LIBDIR}/pthreads/lib/pthreadVC3${LIBEXT} && ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/libpthreadVC3${LIBEXT} ${LIBDIR}/pthreads/lib/pthreadVC3${LIBEXT} &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/pthread.h ${LIBDIR}/pthreads/inc/pthread.h && ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/pthread.h ${LIBDIR}/pthreads/inc/pthread.h &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/sched.h ${LIBDIR}/pthreads/inc/sched.h && ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/sched.h ${LIBDIR}/pthreads/inc/sched.h &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/semaphore.h ${LIBDIR}/pthreads/inc/semaphore.h && ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/semaphore.h ${LIBDIR}/pthreads/inc/semaphore.h &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/_ptw32.h ${LIBDIR}/pthreads/inc/_ptw32.h ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/_ptw32.h ${LIBDIR}/pthreads/inc/_ptw32.h
INSTALL_DIR ${LIBDIR}/pthreads INSTALL_DIR ${LIBDIR}/pthreads
) )
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_pthreads after_install ExternalProject_Add_Step(external_pthreads after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/inc/ ${HARVEST_TARGET}/pthreads/include/ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/inc/ ${HARVEST_TARGET}/pthreads/include/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/lib/ ${HARVEST_TARGET}/pthreads/lib COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/lib/ ${HARVEST_TARGET}/pthreads/lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -20,24 +20,24 @@ set(PUGIXML_EXTRA_ARGS
) )
ExternalProject_Add(external_pugixml ExternalProject_Add(external_pugixml
URL ${PUGIXML_URI} URL ${PUGIXML_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${PUGIXML_HASH} URL_HASH MD5=${PUGIXML_HASH}
PREFIX ${BUILD_DIR}/pugixml PREFIX ${BUILD_DIR}/pugixml
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/pugixml ${DEFAULT_CMAKE_FLAGS} ${PUGIXML_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/pugixml ${DEFAULT_CMAKE_FLAGS} ${PUGIXML_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/pugixml INSTALL_DIR ${LIBDIR}/pugixml
) )
if(WIN32) if(WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_pugixml after_install ExternalProject_Add_Step(external_pugixml after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pugixml/lib/pugixml.lib ${HARVEST_TARGET}/osl/lib/pugixml.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pugixml/lib/pugixml.lib ${HARVEST_TARGET}/osl/lib/pugixml.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_pugixml after_install ExternalProject_Add_Step(external_pugixml after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pugixml/lib/pugixml.lib ${HARVEST_TARGET}/osl/lib/pugixml_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pugixml/lib/pugixml.lib ${HARVEST_TARGET}/osl/lib/pugixml_d.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -18,164 +18,164 @@
set(PYTHON_POSTFIX) set(PYTHON_POSTFIX)
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
set(PYTHON_POSTFIX _d) set(PYTHON_POSTFIX _d)
endif() endif()
if(WIN32) if(WIN32)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(SSL_POSTFIX -x64) set(SSL_POSTFIX -x64)
else() else()
set(SSL_POSTFIX) set(SSL_POSTFIX)
endif() endif()
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe) set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe)
macro(cmake_to_dos_path MsysPath ResultingPath) macro(cmake_to_dos_path MsysPath ResultingPath)
string(REPLACE "/" "\\" ${ResultingPath} "${MsysPath}") string(REPLACE "/" "\\" ${ResultingPath} "${MsysPath}")
endmacro() endmacro()
set(PYTHON_EXTERNALS_FOLDER ${BUILD_DIR}/python/src/external_python/externals) set(PYTHON_EXTERNALS_FOLDER ${BUILD_DIR}/python/src/external_python/externals)
set(DOWNLOADS_EXTERNALS_FOLDER ${DOWNLOAD_DIR}/externals) set(DOWNLOADS_EXTERNALS_FOLDER ${DOWNLOAD_DIR}/externals)
cmake_to_dos_path(${PYTHON_EXTERNALS_FOLDER} PYTHON_EXTERNALS_FOLDER_DOS) cmake_to_dos_path(${PYTHON_EXTERNALS_FOLDER} PYTHON_EXTERNALS_FOLDER_DOS)
cmake_to_dos_path(${DOWNLOADS_EXTERNALS_FOLDER} DOWNLOADS_EXTERNALS_FOLDER_DOS) cmake_to_dos_path(${DOWNLOADS_EXTERNALS_FOLDER} DOWNLOADS_EXTERNALS_FOLDER_DOS)
message("Python externals = ${PYTHON_EXTERNALS_FOLDER}") message("Python externals = ${PYTHON_EXTERNALS_FOLDER}")
message("Python externals_dos = ${PYTHON_EXTERNALS_FOLDER_DOS}") message("Python externals_dos = ${PYTHON_EXTERNALS_FOLDER_DOS}")
message("Python DOWNLOADS_EXTERNALS_FOLDER = ${DOWNLOADS_EXTERNALS_FOLDER}") message("Python DOWNLOADS_EXTERNALS_FOLDER = ${DOWNLOADS_EXTERNALS_FOLDER}")
message("Python DOWNLOADS_EXTERNALS_FOLDER_DOS = ${DOWNLOADS_EXTERNALS_FOLDER_DOS}") message("Python DOWNLOADS_EXTERNALS_FOLDER_DOS = ${DOWNLOADS_EXTERNALS_FOLDER_DOS}")
ExternalProject_Add(external_python ExternalProject_Add(external_python
URL ${PYTHON_URI} URL ${PYTHON_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${PYTHON_HASH} URL_HASH MD5=${PYTHON_HASH}
PREFIX ${BUILD_DIR}/python PREFIX ${BUILD_DIR}/python
PATCH_COMMAND PATCH_COMMAND
echo mklink /D "${PYTHON_EXTERNALS_FOLDER_DOS}" "${DOWNLOADS_EXTERNALS_FOLDER_DOS}" && echo mklink /D "${PYTHON_EXTERNALS_FOLDER_DOS}" "${DOWNLOADS_EXTERNALS_FOLDER_DOS}" &&
mklink /D "${PYTHON_EXTERNALS_FOLDER_DOS}" "${DOWNLOADS_EXTERNALS_FOLDER_DOS}" mklink /D "${PYTHON_EXTERNALS_FOLDER_DOS}" "${DOWNLOADS_EXTERNALS_FOLDER_DOS}"
CONFIGURE_COMMAND "" CONFIGURE_COMMAND ""
BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p ${PYTHON_ARCH} -c ${BUILD_MODE} BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p ${PYTHON_ARCH} -c ${BUILD_MODE}
INSTALL_COMMAND COMMAND INSTALL_COMMAND COMMAND
${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll && ${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll &&
${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb && ${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb &&
${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib && ${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib &&
${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.exp ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.exp && ${CMAKE_COMMAND} -E copy ${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.exp ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.exp &&
${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/include ${LIBDIR}/python/include/Python${PYTHON_SHORT_VERSION} && ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/include ${LIBDIR}/python/include/Python${PYTHON_SHORT_VERSION} &&
${CMAKE_COMMAND} -E copy "${BUILD_DIR}/python/src/external_python/PC/pyconfig.h" ${LIBDIR}/python/include/Python${PYTHON_SHORT_VERSION}/pyconfig.h ${CMAKE_COMMAND} -E copy "${BUILD_DIR}/python/src/external_python/PC/pyconfig.h" ${LIBDIR}/python/include/Python${PYTHON_SHORT_VERSION}/pyconfig.h
) )
message("PythinRedist = ${BUILD_DIR}/python/src/external_python/redist") message("PythinRedist = ${BUILD_DIR}/python/src/external_python/redist")
message("POutput = ${PYTHON_OUTPUTDIR}") message("POutput = ${PYTHON_OUTPUTDIR}")
else() else()
if(APPLE) if(APPLE)
# disable functions that can be in 10.13 sdk but aren't available on 10.9 target # disable functions that can be in 10.13 sdk but aren't available on 10.9 target
set(PYTHON_FUNC_CONFIGS set(PYTHON_FUNC_CONFIGS
export ac_cv_func_futimens=no && export ac_cv_func_futimens=no &&
export ac_cv_func_utimensat=no && export ac_cv_func_utimensat=no &&
export ac_cv_func_basename_r=no && export ac_cv_func_basename_r=no &&
export ac_cv_func_clock_getres=no && export ac_cv_func_clock_getres=no &&
export ac_cv_func_clock_gettime=no && export ac_cv_func_clock_gettime=no &&
export ac_cv_func_clock_settime=no && export ac_cv_func_clock_settime=no &&
export ac_cv_func_dirname_r=no && export ac_cv_func_dirname_r=no &&
export ac_cv_func_getentropy=no && export ac_cv_func_getentropy=no &&
export ac_cv_func_mkostemp=no && export ac_cv_func_mkostemp=no &&
export ac_cv_func_mkostemps=no && export ac_cv_func_mkostemps=no &&
export ac_cv_func_timingsafe_bcmp=no) export ac_cv_func_timingsafe_bcmp=no)
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && ${PYTHON_FUNC_CONFIGS}) set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && ${PYTHON_FUNC_CONFIGS})
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python.exe) set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python.exe)
else() else()
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV}) set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python) set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python)
endif() endif()
set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl") set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl")
set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include -I${LIBDIR}/zlib/include") set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include -I${LIBDIR}/zlib/include")
set(PYTHON_LDFLAGS "-L${LIBDIR}/ffi/lib -L${LIBDIR}/sqlite/lib -L${LIBDIR}/bzip2/lib -L${LIBDIR}/lzma/lib -L${LIBDIR}/zlib/lib") set(PYTHON_LDFLAGS "-L${LIBDIR}/ffi/lib -L${LIBDIR}/sqlite/lib -L${LIBDIR}/bzip2/lib -L${LIBDIR}/lzma/lib -L${LIBDIR}/zlib/lib")
set(PYTHON_CONFIGURE_EXTRA_ENV set(PYTHON_CONFIGURE_EXTRA_ENV
export CFLAGS=${PYTHON_CFLAGS} && export CFLAGS=${PYTHON_CFLAGS} &&
export CPPFLAGS=${PYTHON_CFLAGS} && export CPPFLAGS=${PYTHON_CFLAGS} &&
export LDFLAGS=${PYTHON_LDFLAGS} && export LDFLAGS=${PYTHON_LDFLAGS} &&
export PKG_CONFIG_PATH=${LIBDIR}/ffi/lib/pkgconfig) export PKG_CONFIG_PATH=${LIBDIR}/ffi/lib/pkgconfig)
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_linux.diff) set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_linux.diff)
ExternalProject_Add(external_python ExternalProject_Add(external_python
URL ${PYTHON_URI} URL ${PYTHON_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${PYTHON_HASH} URL_HASH MD5=${PYTHON_HASH}
PREFIX ${BUILD_DIR}/python PREFIX ${BUILD_DIR}/python
PATCH_COMMAND ${PYTHON_PATCH} PATCH_COMMAND ${PYTHON_PATCH}
CONFIGURE_COMMAND ${PYTHON_CONFIGURE_ENV} && ${PYTHON_CONFIGURE_EXTRA_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/python ${PYTHON_CONFIGURE_EXTRA_ARGS} CONFIGURE_COMMAND ${PYTHON_CONFIGURE_ENV} && ${PYTHON_CONFIGURE_EXTRA_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/python ${PYTHON_CONFIGURE_EXTRA_ARGS}
BUILD_COMMAND ${PYTHON_CONFIGURE_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && make -j${MAKE_THREADS} BUILD_COMMAND ${PYTHON_CONFIGURE_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${PYTHON_CONFIGURE_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && make install INSTALL_COMMAND ${PYTHON_CONFIGURE_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && make install
INSTALL_DIR ${LIBDIR}/python) INSTALL_DIR ${LIBDIR}/python)
add_custom_target(Make_Python_Environment ALL DEPENDS external_python) add_custom_target(Make_Python_Environment ALL DEPENDS external_python)
endif() endif()
if(MSVC) if(MSVC)
add_custom_command( add_custom_command(
OUTPUT ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz OUTPUT ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz
OUTPUT ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe OUTPUT ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe
COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/lib ${BUILD_DIR}/python/src/external_python/redist/lib COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/lib ${BUILD_DIR}/python/src/external_python/redist/lib
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_asyncio${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_asyncio${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_asyncio${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_asyncio${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_bz2${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_bz2${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_bz2${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_bz2${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_contextvars${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_contextvars${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_contextvars${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_contextvars${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_ctypes${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_ctypes${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_ctypes${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_ctypes${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_ctypes_test${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_ctypes_test${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_ctypes_test${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_ctypes_test${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_decimal${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_decimal${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_decimal${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_decimal${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_distutils_findvs${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_distutils_findvs${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_distutils_findvs${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_distutils_findvs${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_elementtree${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_elementtree${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_elementtree${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_elementtree${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_hashlib${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_hashlib${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_hashlib${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_hashlib${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_lzma${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_lzma${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_lzma${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_lzma${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_msi${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_msi${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_msi${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_msi${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_multiprocessing${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_multiprocessing${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_multiprocessing${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_multiprocessing${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_overlapped${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_overlapped${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_overlapped${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_overlapped${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_queue${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_queue${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_queue${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_queue${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_socket${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_socket${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_socket${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_socket${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_sqlite3${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_sqlite3${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_sqlite3${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_sqlite3${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_ssl${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_ssl${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_ssl${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_ssl${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testbuffer${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testbuffer${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testbuffer${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testbuffer${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testcapi${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testcapi${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testcapi${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testcapi${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testimportmultiple${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testimportmultiple${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testimportmultiple${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testimportmultiple${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testmultiphase${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testmultiphase${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/_testmultiphase${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/_testmultiphase${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/pyexpat${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/pyexpat${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/pyexpat${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/pyexpat${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_POSTFIX}.exe" ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_POSTFIX}.exe" ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/select${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/select${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/select${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/select${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/unicodedata${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/unicodedata${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/unicodedata${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/unicodedata${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/winsound${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/winsound${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/winsound${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/winsound${PYTHON_POSTFIX}.pyd
#xxlimited is an example extension module, we don't need to ship it and debug doesn't build it #xxlimited is an example extension module, we don't need to ship it and debug doesn't build it
#leaving it commented out, so I won't get confused again with the next update. #leaving it commented out, so I won't get confused again with the next update.
#COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/xxlimited${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/xxlimited${PYTHON_POSTFIX}.pyd #COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/xxlimited${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/xxlimited${PYTHON_POSTFIX}.pyd
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/libssl-1_1${SSL_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/redist/lib/libssl-1_1${SSL_POSTFIX}.dll COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/libssl-1_1${SSL_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/redist/lib/libssl-1_1${SSL_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/libcrypto-1_1${SSL_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/redist/lib/libcrypto-1_1${SSL_POSTFIX}.dll COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/libcrypto-1_1${SSL_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/redist/lib/libcrypto-1_1${SSL_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/sqlite3${PYTHON_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/redist/lib/sqlite3${PYTHON_POSTFIX}.dll COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/sqlite3${PYTHON_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/redist/lib/sqlite3${PYTHON_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/python/src/external_python/redist" ${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz" "." COMMAND ${CMAKE_COMMAND} -E chdir "${BUILD_DIR}/python/src/external_python/redist" ${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz" "."
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/python/ ${HARVEST_TARGET}/python/ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/python/ ${HARVEST_TARGET}/python/
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz
) )
add_custom_target(Package_Python ALL DEPENDS external_python ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe) add_custom_target(Package_Python ALL DEPENDS external_python ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.tar.gz ${BUILD_DIR}/python/src/external_python/redist/bin/python${PYTHON_POSTFIX}.exe)
add_custom_command(OUTPUT ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe add_custom_command(OUTPUT ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe
COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/redist ${BUILD_DIR}/python/src/external_python/run COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/redist ${BUILD_DIR}/python/src/external_python/run
COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/include ${BUILD_DIR}/python/src/external_python/run/include COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/include ${BUILD_DIR}/python/src/external_python/run/include
COMMAND ${CMAKE_COMMAND} -E copy "${BUILD_DIR}/python/src/external_python/PC/pyconfig.h" ${BUILD_DIR}/python/src/external_python/run/include/pyconfig.h COMMAND ${CMAKE_COMMAND} -E copy "${BUILD_DIR}/python/src/external_python/PC/pyconfig.h" ${BUILD_DIR}/python/src/external_python/run/include/pyconfig.h
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib" ${BUILD_DIR}/python/src/external_python/run/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib #missing postfix on purpose, distutils is not expecting it COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib" ${BUILD_DIR}/python/src/external_python/run/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib #missing postfix on purpose, distutils is not expecting it
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib" ${BUILD_DIR}/python/src/external_python/run/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib #other things like numpy still want it though. COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib" ${BUILD_DIR}/python/src/external_python/run/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib #other things like numpy still want it though.
COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_POSTFIX}.exe" ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/python${PYTHON_POSTFIX}.exe" ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe
COMMAND ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe -m ensurepip --upgrade COMMAND ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe -m ensurepip --upgrade
) )
add_custom_target(Make_Python_Environment ALL DEPENDS ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe Package_Python) add_custom_target(Make_Python_Environment ALL DEPENDS ${BUILD_DIR}/python/src/external_python/run/python${PYTHON_POSTFIX}.exe Package_Python)
endif() endif()
if(UNIX) if(UNIX)
add_dependencies( add_dependencies(
external_python external_python
external_bzip2 external_bzip2
external_ffi external_ffi
external_lzma external_lzma
external_ssl external_ssl
external_sqlite external_sqlite
external_zlib external_zlib
) )
endif() endif()

View File

@@ -16,26 +16,26 @@
# #
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(WIN32) if(WIN32)
set(HARVEST_CMD cmd /C FOR /d /r ${BUILD_DIR}/python/src/external_python/run/lib/site-packages %d IN (__pycache__) DO @IF EXIST "%d" rd /s /q "%d" && set(HARVEST_CMD cmd /C FOR /d /r ${BUILD_DIR}/python/src/external_python/run/lib/site-packages %d IN (__pycache__) DO @IF EXIST "%d" rd /s /q "%d" &&
${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/run/lib/site-packages/idna ${HARVEST_TARGET}/Release/site-packages/idna && ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/run/lib/site-packages/idna ${HARVEST_TARGET}/Release/site-packages/idna &&
${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/run/lib/site-packages/chardet ${HARVEST_TARGET}/Release/site-packages/chardet && ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/run/lib/site-packages/chardet ${HARVEST_TARGET}/Release/site-packages/chardet &&
${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/run/lib/site-packages/urllib3 ${HARVEST_TARGET}/Release/site-packages/urllib3 && ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/run/lib/site-packages/urllib3 ${HARVEST_TARGET}/Release/site-packages/urllib3 &&
${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/run/lib/site-packages/certifi ${HARVEST_TARGET}/Release/site-packages/certifi && ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/run/lib/site-packages/certifi ${HARVEST_TARGET}/Release/site-packages/certifi &&
${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/run/lib/site-packages/requests ${HARVEST_TARGET}/Release/site-packages/requests ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/python/src/external_python/run/lib/site-packages/requests ${HARVEST_TARGET}/Release/site-packages/requests
) )
else() else()
set(HARVEST_CMD echo .) set(HARVEST_CMD echo .)
endif() endif()
ExternalProject_Add(external_python_site_packages ExternalProject_Add(external_python_site_packages
DOWNLOAD_COMMAND "" DOWNLOAD_COMMAND ""
CONFIGURE_COMMAND "" CONFIGURE_COMMAND ""
BUILD_COMMAND "" BUILD_COMMAND ""
PREFIX ${BUILD_DIR}/site_packages PREFIX ${BUILD_DIR}/site_packages
INSTALL_COMMAND ${PYTHON_BINARY} -m pip install idna==${IDNA_VERSION} chardet==${CHARDET_VERSION} urllib3==${URLLIB3_VERSION} certifi==${CERTIFI_VERSION} requests==${REQUESTS_VERSION} --no-binary :all: && ${HARVEST_CMD} INSTALL_COMMAND ${PYTHON_BINARY} -m pip install idna==${IDNA_VERSION} chardet==${CHARDET_VERSION} urllib3==${URLLIB3_VERSION} certifi==${CERTIFI_VERSION} requests==${REQUESTS_VERSION} --no-binary :all: && ${HARVEST_CMD}
) )
add_dependencies( add_dependencies(
external_python_site_packages external_python_site_packages
Make_Python_Environment Make_Python_Environment
) )

View File

@@ -17,33 +17,33 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(WIN32) if(WIN32)
set(SDL_EXTRA_ARGS set(SDL_EXTRA_ARGS
-DSDL_STATIC=Off -DSDL_STATIC=Off
) )
else() else()
set(SDL_EXTRA_ARGS set(SDL_EXTRA_ARGS
-DSDL_STATIC=ON -DSDL_STATIC=ON
-DSDL_SHARED=OFF -DSDL_SHARED=OFF
-DSDL_VIDEO=OFF -DSDL_VIDEO=OFF
-DSNDIO=OFF -DSNDIO=OFF
) )
endif() endif()
ExternalProject_Add(external_sdl ExternalProject_Add(external_sdl
URL ${SDL_URI} URL ${SDL_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${SDL_HASH} URL_HASH MD5=${SDL_HASH}
PREFIX ${BUILD_DIR}/sdl PREFIX ${BUILD_DIR}/sdl
PATCH_COMMAND ${PATCH_CMD} -p 0 -N -d ${BUILD_DIR}/sdl/src/external_sdl < ${PATCH_DIR}/sdl.diff PATCH_COMMAND ${PATCH_CMD} -p 0 -N -d ${BUILD_DIR}/sdl/src/external_sdl < ${PATCH_DIR}/sdl.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/sdl ${DEFAULT_CMAKE_FLAGS} ${SDL_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/sdl ${DEFAULT_CMAKE_FLAGS} ${SDL_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/sdl INSTALL_DIR ${LIBDIR}/sdl
) )
if(BUILD_MODE STREQUAL Release AND WIN32) if(BUILD_MODE STREQUAL Release AND WIN32)
ExternalProject_Add_Step(external_sdl after_install ExternalProject_Add_Step(external_sdl after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/include/sdl2 ${HARVEST_TARGET}/sdl/include COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/include/sdl2 ${HARVEST_TARGET}/sdl/include
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/lib ${HARVEST_TARGET}/sdl/lib COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/lib ${HARVEST_TARGET}/sdl/lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/bin ${HARVEST_TARGET}/sdl/lib COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sdl/bin ${HARVEST_TARGET}/sdl/lib
DEPENDEES install DEPENDEES install
) )
endif() endif()

View File

@@ -24,11 +24,11 @@
message("LIBDIR = ${LIBDIR}") message("LIBDIR = ${LIBDIR}")
macro(cmake_to_msys_path MsysPath ResultingPath) macro(cmake_to_msys_path MsysPath ResultingPath)
string(REPLACE ":" "" TmpPath "${MsysPath}") string(REPLACE ":" "" TmpPath "${MsysPath}")
string(SUBSTRING ${TmpPath} 0 1 Drive) string(SUBSTRING ${TmpPath} 0 1 Drive)
string(SUBSTRING ${TmpPath} 1 255 PathPart) string(SUBSTRING ${TmpPath} 1 255 PathPart)
string(TOLOWER ${Drive} LowerDrive) string(TOLOWER ${Drive} LowerDrive)
string(CONCAT ${ResultingPath} "/" ${LowerDrive} ${PathPart}) string(CONCAT ${ResultingPath} "/" ${LowerDrive} ${PathPart})
endmacro() endmacro()
cmake_to_msys_path(${LIBDIR} mingw_LIBDIR) cmake_to_msys_path(${LIBDIR} mingw_LIBDIR)
message("mingw_LIBDIR = ${mingw_LIBDIR}") message("mingw_LIBDIR = ${mingw_LIBDIR}")
@@ -36,192 +36,192 @@ message("mingw_LIBDIR = ${mingw_LIBDIR}")
message("Checking for mingw32") message("Checking for mingw32")
# download mingw32 # download mingw32
if(NOT EXISTS "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z") if(NOT EXISTS "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z")
message("Downloading mingw32") message("Downloading mingw32")
file(DOWNLOAD "https://astuteinternet.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.4/threads-win32/sjlj/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z" "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z") file(DOWNLOAD "https://astuteinternet.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.4/threads-win32/sjlj/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z" "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z")
endif() endif()
# make mingw root directory # make mingw root directory
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/mingw COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/mingw
WORKING_DIRECTORY ${DOWNLOAD_DIR} WORKING_DIRECTORY ${DOWNLOAD_DIR}
) )
endif() endif()
# extract mingw32 # extract mingw32
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/ming32sh.cmd") AND (EXISTS "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z")) if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/ming32sh.cmd") AND (EXISTS "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z"))
message("Extracting mingw32") message("Extracting mingw32")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw
) )
endif() endif()
message("Checking for pkg-config") message("Checking for pkg-config")
if(NOT EXISTS "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip") if(NOT EXISTS "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip")
message("Downloading pkg-config") message("Downloading pkg-config")
file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/pkgconfiglite/0.28-1/pkg-config-lite-0.28-1_bin-win32.zip" "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip") file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/pkgconfiglite/0.28-1/pkg-config-lite-0.28-1_bin-win32.zip" "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip")
endif() endif()
# extract pkgconfig # extract pkgconfig
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/pkg-config.exe") AND (EXISTS "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip")) if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/pkg-config.exe") AND (EXISTS "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip"))
message("Extracting pkg-config") message("Extracting pkg-config")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip" COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip"
WORKING_DIRECTORY ${DOWNLOAD_DIR}/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/
) )
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1/bin/pkg-config.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/pkg-config.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1/bin/pkg-config.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/pkg-config.exe"
) )
endif() endif()
message("Checking for nasm") message("Checking for nasm")
if(NOT EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip") if(NOT EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip")
message("Downloading nasm") message("Downloading nasm")
file(DOWNLOAD "http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/win32/nasm-2.13.02-win32.zip" "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip") file(DOWNLOAD "http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/win32/nasm-2.13.02-win32.zip" "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip")
endif() endif()
# extract nasm # extract nasm
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe") AND (EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip")) if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe") AND (EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip"))
message("Extracting nasm") message("Extracting nasm")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip" COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip"
WORKING_DIRECTORY ${DOWNLOAD_DIR}/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/
) )
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/nasm-2.13.02/nasm.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/nasm-2.13.02/nasm.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe"
) )
endif() endif()
SET(NASM_PATH ${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe) SET(NASM_PATH ${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe)
message("Checking for mingwGet") message("Checking for mingwGet")
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip")
message("Downloading mingw-get") message("Downloading mingw-get")
file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip" "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip") file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip" "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip")
endif() endif()
# extract mingw_get # extract mingw_get
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get.exe") AND (EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip")) if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get.exe") AND (EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip"))
message("Extracting mingw-get") message("Extracting mingw-get")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip" COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip"
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw32/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw32/
) )
endif() endif()
if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/make.exe")) if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/make.exe"))
message("Installing MSYS") message("Installing MSYS")
execute_process( execute_process(
COMMAND ${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get install msys msys-patch COMMAND ${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get install msys msys-patch
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw32/bin/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw32/bin/
) )
endif() endif()
if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/mktemp.exe")) if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/mktemp.exe"))
message("Installing mktemp") message("Installing mktemp")
execute_process( execute_process(
COMMAND ${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get install msys msys-mktemp COMMAND ${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get install msys msys-mktemp
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw32/bin/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw32/bin/
) )
endif() endif()
message("Checking for CoreUtils") message("Checking for CoreUtils")
# download old core_utils for pr.exe (ffmpeg needs it to build) # download old core_utils for pr.exe (ffmpeg needs it to build)
if(NOT EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") if(NOT EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2")
message("Downloading CoreUtils 5.97") message("Downloading CoreUtils 5.97")
file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/_obsolete/coreutils-5.97-MSYS-1.0.11-2/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2" "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/_obsolete/coreutils-5.97-MSYS-1.0.11-2/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2" "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2")
endif() endif()
if((EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/pr.exe")) if((EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/pr.exe"))
message("Installing pr from CoreUtils 5.97") message("Installing pr from CoreUtils 5.97")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/tmp_coreutils COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/tmp_coreutils
WORKING_DIRECTORY ${DOWNLOAD_DIR} WORKING_DIRECTORY ${DOWNLOAD_DIR}
) )
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2 COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2
WORKING_DIRECTORY ${DOWNLOAD_DIR}/tmp_coreutils/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/tmp_coreutils/
) )
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy ${DOWNLOAD_DIR}/tmp_coreutils/coreutils-5.97/bin/pr.exe "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/pr.exe" COMMAND ${CMAKE_COMMAND} -E copy ${DOWNLOAD_DIR}/tmp_coreutils/coreutils-5.97/bin/pr.exe "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/pr.exe"
WORKING_DIRECTORY ${DOWNLOAD_DIR}/tmp_coreutils/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/tmp_coreutils/
) )
endif() endif()
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/ming32sh.cmd") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/ming32sh.cmd")
message("Installing ming32sh.cmd") message("Installing ming32sh.cmd")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/ming32sh.cmd ${DOWNLOAD_DIR}/mingw/mingw32/ming32sh.cmd COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/ming32sh.cmd ${DOWNLOAD_DIR}/mingw/mingw32/ming32sh.cmd
) )
endif() endif()
message("Checking for perl") message("Checking for perl")
# download perl for libvpx # download perl for libvpx
if(NOT EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip") if(NOT EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip")
message("Downloading perl") message("Downloading perl")
file(DOWNLOAD "http://strawberryperl.com/download/5.22.1.3/strawberry-perl-5.22.1.3-32bit-portable.zip" "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip") file(DOWNLOAD "http://strawberryperl.com/download/5.22.1.3/strawberry-perl-5.22.1.3-32bit-portable.zip" "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip")
endif() endif()
# make perl root directory # make perl root directory
if(NOT EXISTS "${DOWNLOAD_DIR}/perl32") if(NOT EXISTS "${DOWNLOAD_DIR}/perl32")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/perl32 COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/perl32
WORKING_DIRECTORY ${DOWNLOAD_DIR} WORKING_DIRECTORY ${DOWNLOAD_DIR}
) )
endif() endif()
# extract perl # extract perl
if((NOT EXISTS "${DOWNLOAD_DIR}/perl32/portable.perl") AND (EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip")) if((NOT EXISTS "${DOWNLOAD_DIR}/perl32/portable.perl") AND (EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip"))
message("Extracting perl") message("Extracting perl")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip
WORKING_DIRECTORY ${DOWNLOAD_DIR}/perl32 WORKING_DIRECTORY ${DOWNLOAD_DIR}/perl32
) )
endif() endif()
# get yasm for vpx # get yasm for vpx
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/yasm.exe") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/yasm.exe")
message("Downloading yasm") message("Downloading yasm")
file(DOWNLOAD "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win32.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/yasm.exe") file(DOWNLOAD "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win32.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/yasm.exe")
endif() endif()
message("checking i686-w64-mingw32-strings") message("checking i686-w64-mingw32-strings")
# copy strings.exe to i686-w64-mingw32-strings for x264 # copy strings.exe to i686-w64-mingw32-strings for x264
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strings.exe") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strings.exe")
message("fixing i686-w64-mingw32-strings.exe") message("fixing i686-w64-mingw32-strings.exe")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/strings.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strings.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/strings.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strings.exe"
) )
endif() endif()
message("checking i686-w64-mingw32-ar.exe") message("checking i686-w64-mingw32-ar.exe")
# copy ar.exe to i686-w64-mingw32-ar.exe for x264 # copy ar.exe to i686-w64-mingw32-ar.exe for x264
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ar.exe") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ar.exe")
message("fixing i686-w64-mingw32-ar.exe") message("fixing i686-w64-mingw32-ar.exe")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/ar.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ar.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/ar.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ar.exe"
) )
endif() endif()
message("checking i686-w64-mingw32-strip.exe") message("checking i686-w64-mingw32-strip.exe")
# copy strip.exe to i686-w64-mingw32-strip.exe for x264 # copy strip.exe to i686-w64-mingw32-strip.exe for x264
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strip.exe") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strip.exe")
message("fixing i686-w64-mingw32-strip.exe") message("fixing i686-w64-mingw32-strip.exe")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/strip.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strip.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/strip.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strip.exe"
) )
endif() endif()
message("checking i686-w64-mingw32-ranlib.exe") message("checking i686-w64-mingw32-ranlib.exe")
# copy ranlib.exe to i686-w64-mingw32-ranlib.exe for x264 # copy ranlib.exe to i686-w64-mingw32-ranlib.exe for x264
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ranlib.exe") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ranlib.exe")
message("fixing i686-w64-mingw32-ranlib.exe") message("fixing i686-w64-mingw32-ranlib.exe")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/ranlib.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ranlib.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/ranlib.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ranlib.exe"
) )
endif() endif()

View File

@@ -24,11 +24,11 @@
message("LIBDIR = ${LIBDIR}") message("LIBDIR = ${LIBDIR}")
macro(cmake_to_msys_path MsysPath ResultingPath) macro(cmake_to_msys_path MsysPath ResultingPath)
string(REPLACE ":" "" TmpPath "${MsysPath}") string(REPLACE ":" "" TmpPath "${MsysPath}")
string(SUBSTRING ${TmpPath} 0 1 Drive) string(SUBSTRING ${TmpPath} 0 1 Drive)
string(SUBSTRING ${TmpPath} 1 255 PathPart) string(SUBSTRING ${TmpPath} 1 255 PathPart)
string(TOLOWER ${Drive} LowerDrive) string(TOLOWER ${Drive} LowerDrive)
string(CONCAT ${ResultingPath} "/" ${LowerDrive} ${PathPart}) string(CONCAT ${ResultingPath} "/" ${LowerDrive} ${PathPart})
endmacro() endmacro()
cmake_to_msys_path(${LIBDIR} mingw_LIBDIR) cmake_to_msys_path(${LIBDIR} mingw_LIBDIR)
message("mingw_LIBDIR = ${mingw_LIBDIR}") message("mingw_LIBDIR = ${mingw_LIBDIR}")
@@ -36,192 +36,192 @@ message("mingw_LIBDIR = ${mingw_LIBDIR}")
message("Checking for mingw64") message("Checking for mingw64")
# download ming64 # download ming64
if(NOT EXISTS "${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z") if(NOT EXISTS "${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z")
message("Downloading mingw64") message("Downloading mingw64")
file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.4/threads-win32/seh/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z" "${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z") file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.9.4/threads-win32/seh/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z" "${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z")
endif() endif()
# make mingw root directory # make mingw root directory
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/mingw COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/mingw
WORKING_DIRECTORY ${DOWNLOAD_DIR} WORKING_DIRECTORY ${DOWNLOAD_DIR}
) )
endif() endif()
# extract mingw64 # extract mingw64
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/ming64sh.cmd") AND (EXISTS "${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z")) if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/ming64sh.cmd") AND (EXISTS "${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z"))
message("Extracting mingw64") message("Extracting mingw64")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/x86_64-4.9.4-release-win32-seh-rt_v5-rev0.7z
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw
) )
endif() endif()
message("Checking for pkg-config") message("Checking for pkg-config")
if(NOT EXISTS "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip") if(NOT EXISTS "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip")
message("Downloading pkg-config") message("Downloading pkg-config")
file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/pkgconfiglite/0.28-1/pkg-config-lite-0.28-1_bin-win32.zip" "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip") file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/pkgconfiglite/0.28-1/pkg-config-lite-0.28-1_bin-win32.zip" "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip")
endif() endif()
# extract pkgconfig # extract pkgconfig
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/pkg-config.exe") AND (EXISTS "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip")) if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/pkg-config.exe") AND (EXISTS "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip"))
message("Extracting pkg-config") message("Extracting pkg-config")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip" COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip"
WORKING_DIRECTORY ${DOWNLOAD_DIR}/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/
) )
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1/bin/pkg-config.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/pkg-config.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1/bin/pkg-config.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/pkg-config.exe"
) )
endif() endif()
message("Checking for nasm") message("Checking for nasm")
if(NOT EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip") if(NOT EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip")
message("Downloading nasm") message("Downloading nasm")
file(DOWNLOAD "http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/win64/nasm-2.13.02-win64.zip" "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip") file(DOWNLOAD "http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/win64/nasm-2.13.02-win64.zip" "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip")
endif() endif()
# extract nasm # extract nasm
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/nasm.exe") AND (EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip")) if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/nasm.exe") AND (EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip"))
message("Extracting nasm") message("Extracting nasm")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip" COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/nasm-2.13.02-win64.zip"
WORKING_DIRECTORY ${DOWNLOAD_DIR}/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/
) )
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/nasm-2.13.02/nasm.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/nasm.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/nasm-2.13.02/nasm.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/nasm.exe"
) )
endif() endif()
SET(NASM_PATH ${DOWNLOAD_DIR}/mingw/mingw64/bin/nasm.exe) SET(NASM_PATH ${DOWNLOAD_DIR}/mingw/mingw64/bin/nasm.exe)
message("Checking for mingwGet") message("Checking for mingwGet")
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip")
message("Downloading mingw-get") message("Downloading mingw-get")
file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip" "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip") file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip" "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip")
endif() endif()
# extract mingw_get # extract mingw_get
if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get.exe") AND (EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip")) if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get.exe") AND (EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip"))
message("Extracting mingw-get") message("Extracting mingw-get")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip" COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip"
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw64/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw64/
) )
endif() endif()
if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/make.exe")) if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/make.exe"))
message("Installing MSYS") message("Installing MSYS")
execute_process( execute_process(
COMMAND ${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get install msys msys-patch COMMAND ${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get install msys msys-patch
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw64/bin/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw64/bin/
) )
endif() endif()
if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/mktemp.exe")) if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/mktemp.exe"))
message("Installing mktemp") message("Installing mktemp")
execute_process( execute_process(
COMMAND ${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get install msys msys-mktemp COMMAND ${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get install msys msys-mktemp
WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw64/bin/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw64/bin/
) )
endif() endif()
message("Checking for CoreUtils") message("Checking for CoreUtils")
# download old core_utils for pr.exe (ffmpeg needs it to build) # download old core_utils for pr.exe (ffmpeg needs it to build)
if(NOT EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") if(NOT EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2")
message("Downloading CoreUtils 5.97") message("Downloading CoreUtils 5.97")
file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/_obsolete/coreutils-5.97-MSYS-1.0.11-2/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2" "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/_obsolete/coreutils-5.97-MSYS-1.0.11-2/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2" "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2")
endif() endif()
if((EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/pr.exe")) if((EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/pr.exe"))
message("Installing pr from CoreUtils 5.97") message("Installing pr from CoreUtils 5.97")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/tmp_coreutils COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/tmp_coreutils
WORKING_DIRECTORY ${DOWNLOAD_DIR} WORKING_DIRECTORY ${DOWNLOAD_DIR}
) )
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2 COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2
WORKING_DIRECTORY ${DOWNLOAD_DIR}/tmp_coreutils/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/tmp_coreutils/
) )
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy ${DOWNLOAD_DIR}/tmp_coreutils/coreutils-5.97/bin/pr.exe "${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/pr.exe" COMMAND ${CMAKE_COMMAND} -E copy ${DOWNLOAD_DIR}/tmp_coreutils/coreutils-5.97/bin/pr.exe "${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/pr.exe"
WORKING_DIRECTORY ${DOWNLOAD_DIR}/tmp_coreutils/ WORKING_DIRECTORY ${DOWNLOAD_DIR}/tmp_coreutils/
) )
endif() endif()
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/ming64sh.cmd") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/ming64sh.cmd")
message("Installing ming64sh.cmd") message("Installing ming64sh.cmd")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/ming64sh.cmd ${DOWNLOAD_DIR}/mingw/mingw64/ming64sh.cmd COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/ming64sh.cmd ${DOWNLOAD_DIR}/mingw/mingw64/ming64sh.cmd
) )
endif() endif()
message("Checking for perl") message("Checking for perl")
# download perl for libvpx # download perl for libvpx
if(NOT EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip") if(NOT EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip")
message("Downloading perl") message("Downloading perl")
file(DOWNLOAD "http://strawberryperl.com/download/5.22.1.3/strawberry-perl-5.22.1.3-64bit-portable.zip" "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip") file(DOWNLOAD "http://strawberryperl.com/download/5.22.1.3/strawberry-perl-5.22.1.3-64bit-portable.zip" "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip")
endif() endif()
# make perl root directory # make perl root directory
if(NOT EXISTS "${DOWNLOAD_DIR}/perl") if(NOT EXISTS "${DOWNLOAD_DIR}/perl")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/perl COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/perl
WORKING_DIRECTORY ${DOWNLOAD_DIR} WORKING_DIRECTORY ${DOWNLOAD_DIR}
) )
endif() endif()
# extract perl # extract perl
if((NOT EXISTS "${DOWNLOAD_DIR}/perl/portable.perl") AND (EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip")) if((NOT EXISTS "${DOWNLOAD_DIR}/perl/portable.perl") AND (EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip"))
message("Extracting perl") message("Extracting perl")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-64bit-portable.zip
WORKING_DIRECTORY ${DOWNLOAD_DIR}/perl WORKING_DIRECTORY ${DOWNLOAD_DIR}/perl
) )
endif() endif()
# get yasm for vpx # get yasm for vpx
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/yasm.exe") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/yasm.exe")
message("Downloading yasm") message("Downloading yasm")
file(DOWNLOAD "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win64.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/yasm.exe") file(DOWNLOAD "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win64.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/yasm.exe")
endif() endif()
message("checking x86_64-w64-mingw32-strings.exe") message("checking x86_64-w64-mingw32-strings.exe")
# copy strings.exe to x86_64-w64-mingw32-strings.exe for x264 # copy strings.exe to x86_64-w64-mingw32-strings.exe for x264
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-strings.exe") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-strings.exe")
message("fixing x86_64-w64-mingw32-strings.exe") message("fixing x86_64-w64-mingw32-strings.exe")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw64/bin/strings.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-strings.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw64/bin/strings.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-strings.exe"
) )
endif() endif()
message("checking x86_64-w64-mingw32-ar.exe") message("checking x86_64-w64-mingw32-ar.exe")
# copy ar.exe to x86_64-w64-mingw32-ar.exe for x264 # copy ar.exe to x86_64-w64-mingw32-ar.exe for x264
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-ar.exe") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-ar.exe")
message("fixing x86_64-w64-mingw32-ar.exe") message("fixing x86_64-w64-mingw32-ar.exe")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw64/bin/ar.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-ar.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw64/bin/ar.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-ar.exe"
) )
endif() endif()
message("checking x86_64-w64-mingw32-strip.exe") message("checking x86_64-w64-mingw32-strip.exe")
# copy strip.exe to x86_64-w64-mingw32-strip.exe for x264 # copy strip.exe to x86_64-w64-mingw32-strip.exe for x264
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-strip.exe") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-strip.exe")
message("fixing x86_64-w64-mingw32-strip.exe") message("fixing x86_64-w64-mingw32-strip.exe")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw64/bin/strip.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-strip.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw64/bin/strip.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-strip.exe"
) )
endif() endif()
message("checking x86_64-w64-mingw32-ranlib.exe") message("checking x86_64-w64-mingw32-ranlib.exe")
# copy ranlib.exe to x86_64-w64-mingw32-ranlib.exe for x264 # copy ranlib.exe to x86_64-w64-mingw32-ranlib.exe for x264
if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-ranlib.exe") if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-ranlib.exe")
message("fixing x86_64-w64-mingw32-ranlib.exe") message("fixing x86_64-w64-mingw32-ranlib.exe")
execute_process( execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw64/bin/ranlib.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-ranlib.exe" COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw64/bin/ranlib.exe" "${DOWNLOAD_DIR}/mingw/mingw64/bin/x86_64-w64-mingw32-ranlib.exe"
) )
endif() endif()

View File

@@ -20,43 +20,43 @@ set(SNDFILE_EXTRA_ARGS)
set(SNDFILE_ENV PKG_CONFIG_PATH=${mingw_LIBDIR}/ogg/lib/pkgconfig:${mingw_LIBDIR}/vorbis/lib/pkgconfig:${mingw_LIBDIR}/flac/lib/pkgconfig:${mingw_LIBDIR}) set(SNDFILE_ENV PKG_CONFIG_PATH=${mingw_LIBDIR}/ogg/lib/pkgconfig:${mingw_LIBDIR}/vorbis/lib/pkgconfig:${mingw_LIBDIR}/flac/lib/pkgconfig:${mingw_LIBDIR})
if(WIN32) if(WIN32)
set(SNDFILE_ENV set ${SNDFILE_ENV} &&) set(SNDFILE_ENV set ${SNDFILE_ENV} &&)
#shared for windows because static libs will drag in a libgcc dependency. #shared for windows because static libs will drag in a libgcc dependency.
set(SNDFILE_OPTIONS --disable-static --enable-shared ) set(SNDFILE_OPTIONS --disable-static --enable-shared )
else() else()
set(SNDFILE_OPTIONS --enable-static --disable-shared ) set(SNDFILE_OPTIONS --enable-static --disable-shared )
endif() endif()
if(UNIX) if(UNIX)
set(SNDFILE_PATCH_CMD ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/sndfile/src/external_sndfile < ${PATCH_DIR}/sndfile.diff) set(SNDFILE_PATCH_CMD ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/sndfile/src/external_sndfile < ${PATCH_DIR}/sndfile.diff)
else() else()
set(SNDFILE_PATCH_CMD) set(SNDFILE_PATCH_CMD)
endif() endif()
ExternalProject_Add(external_sndfile ExternalProject_Add(external_sndfile
URL ${SNDFILE_URI} URL ${SNDFILE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${SNDFILE_HASH} URL_HASH MD5=${SNDFILE_HASH}
PREFIX ${BUILD_DIR}/sndfile PREFIX ${BUILD_DIR}/sndfile
PATCH_COMMAND ${SNDFILE_PATCH_CMD} PATCH_COMMAND ${SNDFILE_PATCH_CMD}
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && ${SNDFILE_ENV} ${CONFIGURE_COMMAND} ${SNDFILE_OPTIONS} --prefix=${mingw_LIBDIR}/sndfile CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && ${SNDFILE_ENV} ${CONFIGURE_COMMAND} ${SNDFILE_OPTIONS} --prefix=${mingw_LIBDIR}/sndfile
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make install
INSTALL_DIR ${LIBDIR}/sndfile INSTALL_DIR ${LIBDIR}/sndfile
) )
if(MSVC) if(MSVC)
set_target_properties(external_sndfile PROPERTIES FOLDER Mingw) set_target_properties(external_sndfile PROPERTIES FOLDER Mingw)
endif() endif()
add_dependencies( add_dependencies(
external_sndfile external_sndfile
external_ogg external_ogg
external_vorbis external_vorbis
) )
if(UNIX) if(UNIX)
add_dependencies( add_dependencies(
external_sndfile external_sndfile
external_flac external_flac
) )
endif() endif()

View File

@@ -17,12 +17,12 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_spnav ExternalProject_Add(external_spnav
URL ${SPNAV_URI} URL ${SPNAV_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${SPNAV_HASH} URL_HASH MD5=${SPNAV_HASH}
PREFIX ${BUILD_DIR}/spnav PREFIX ${BUILD_DIR}/spnav
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/spnav/src/external_spnav/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/spnav --disable-shared --enable-static --with-pic CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/spnav/src/external_spnav/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/spnav --disable-shared --enable-static --with-pic
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/spnav/src/external_spnav/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/spnav/src/external_spnav/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/spnav/src/external_spnav/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/spnav/src/external_spnav/ && make install
INSTALL_DIR ${LIBDIR}/spnav INSTALL_DIR ${LIBDIR}/spnav
) )

View File

@@ -20,38 +20,38 @@ set(SQLITE_CONFIGURE_ENV echo .)
set(SQLITE_CONFIGURATION_ARGS) set(SQLITE_CONFIGURATION_ARGS)
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
set(SQLITE_LDFLAGS -Wl,--as-needed) set(SQLITE_LDFLAGS -Wl,--as-needed)
set(SQLITE_CFLAGS set(SQLITE_CFLAGS
"-DSQLITE_SECURE_DELETE -DSQLITE_ENABLE_COLUMN_METADATA \ "-DSQLITE_SECURE_DELETE -DSQLITE_ENABLE_COLUMN_METADATA \
-DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS \ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS \
-DSQLITE_ENABLE_RTREE=1 -DSQLITE_SOUNDEX=1 \ -DSQLITE_ENABLE_RTREE=1 -DSQLITE_SOUNDEX=1 \
-DSQLITE_ENABLE_UNLOCK_NOTIFY \ -DSQLITE_ENABLE_UNLOCK_NOTIFY \
-DSQLITE_OMIT_LOOKASIDE=1 -DSQLITE_ENABLE_DBSTAT_VTAB \ -DSQLITE_OMIT_LOOKASIDE=1 -DSQLITE_ENABLE_DBSTAT_VTAB \
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 \ -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 \
-DSQLITE_ENABLE_LOAD_EXTENSION \ -DSQLITE_ENABLE_LOAD_EXTENSION \
-DSQLITE_ENABLE_JSON1 \ -DSQLITE_ENABLE_JSON1 \
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \ -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
-DSQLITE_THREADSAFE=1 \ -DSQLITE_THREADSAFE=1 \
-DSQLITE_ENABLE_FTS3_TOKENIZER=1 \ -DSQLITE_ENABLE_FTS3_TOKENIZER=1 \
-DSQLITE_MAX_SCHEMA_RETRY=25 \ -DSQLITE_MAX_SCHEMA_RETRY=25 \
-DSQLITE_ENABLE_PREUPDATE_HOOK \ -DSQLITE_ENABLE_PREUPDATE_HOOK \
-DSQLITE_ENABLE_SESSION \ -DSQLITE_ENABLE_SESSION \
-DSQLITE_ENABLE_STMTVTAB \ -DSQLITE_ENABLE_STMTVTAB \
-DSQLITE_MAX_VARIABLE_NUMBER=250000 \ -DSQLITE_MAX_VARIABLE_NUMBER=250000 \
-fPIC") -fPIC")
set(SQLITE_CONFIGURE_ENV ${SQLITE_CONFIGURE_ENV} && export LDFLAGS=${SQLITE_LDFLAGS} && export CFLAGS=${SQLITE_CFLAGS}) set(SQLITE_CONFIGURE_ENV ${SQLITE_CONFIGURE_ENV} && export LDFLAGS=${SQLITE_LDFLAGS} && export CFLAGS=${SQLITE_CFLAGS})
set(SQLITE_CONFIGURATION_ARGS ${SQLITE_CONFIGURATION_ARGS} --enable-threadsafe --enable-load-extension --enable-json1 --enable-fts4 --enable-fts5 set(SQLITE_CONFIGURATION_ARGS ${SQLITE_CONFIGURATION_ARGS} --enable-threadsafe --enable-load-extension --enable-json1 --enable-fts4 --enable-fts5
--enable-shared=no) --enable-shared=no)
endif() endif()
ExternalProject_Add(external_sqlite ExternalProject_Add(external_sqlite
URL ${SQLITE_URI} URL ${SQLITE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA1=${SQLITE_HASH} URL_HASH SHA1=${SQLITE_HASH}
PREFIX ${BUILD_DIR}/sqlite PREFIX ${BUILD_DIR}/sqlite
PATCH_COMMAND ${SQLITE_PATCH_CMD} PATCH_COMMAND ${SQLITE_PATCH_CMD}
CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS} CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make install
INSTALL_DIR ${LIBDIR}/sqlite INSTALL_DIR ${LIBDIR}/sqlite
) )

View File

@@ -20,29 +20,29 @@ set(SSL_CONFIGURE_COMMAND ./Configure)
set(SSL_PATCH_CMD echo .) set(SSL_PATCH_CMD echo .)
if (APPLE) if (APPLE)
set(SSL_OS_COMPILER "blender-darwin-x86_64") set(SSL_OS_COMPILER "blender-darwin-x86_64")
else() else()
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128) set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128)
set(SSL_OS_COMPILER "blender-linux-x86_64") set(SSL_OS_COMPILER "blender-linux-x86_64")
else() else()
set(SSL_OS_COMPILER "blender-linux-x86") set(SSL_OS_COMPILER "blender-linux-x86")
endif() endif()
endif() endif()
ExternalProject_Add(external_ssl ExternalProject_Add(external_ssl
URL ${SSL_URI} URL ${SSL_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${SSL_HASH} URL_HASH SHA256=${SSL_HASH}
PREFIX ${BUILD_DIR}/ssl PREFIX ${BUILD_DIR}/ssl
PATCH_COMMAND ${SSL_PATCH_CMD} PATCH_COMMAND ${SSL_PATCH_CMD}
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && ${SSL_CONFIGURE_COMMAND} --prefix=${LIBDIR}/ssl CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && ${SSL_CONFIGURE_COMMAND} --prefix=${LIBDIR}/ssl
--openssldir=${LIBDIR}/ssl --openssldir=${LIBDIR}/ssl
no-shared no-shared
no-idea no-mdc2 no-rc5 no-zlib no-ssl3 enable-unit-test no-ssl3-method enable-rfc3779 enable-cms no-idea no-mdc2 no-rc5 no-zlib no-ssl3 enable-unit-test no-ssl3-method enable-rfc3779 enable-cms
--config=${CMAKE_CURRENT_SOURCE_DIR}/cmake/ssl.conf --config=${CMAKE_CURRENT_SOURCE_DIR}/cmake/ssl.conf
${SSL_OS_COMPILER} ${SSL_OS_COMPILER}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make install
INSTALL_DIR ${LIBDIR}/ssl INSTALL_DIR ${LIBDIR}/ssl
) )

View File

@@ -17,36 +17,36 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(TBB_EXTRA_ARGS set(TBB_EXTRA_ARGS
-DTBB_BUILD_SHARED=Off -DTBB_BUILD_SHARED=Off
-DTBB_BUILD_TBBMALLOC=Off -DTBB_BUILD_TBBMALLOC=Off
-DTBB_BUILD_TBBMALLOC_PROXY=Off -DTBB_BUILD_TBBMALLOC_PROXY=Off
-DTBB_BUILD_STATIC=On -DTBB_BUILD_STATIC=On
) )
# CMake script for TBB from https://github.com/wjakob/tbb/blob/master/CMakeLists.txt # CMake script for TBB from https://github.com/wjakob/tbb/blob/master/CMakeLists.txt
ExternalProject_Add(external_tbb ExternalProject_Add(external_tbb
URL ${TBB_URI} URL ${TBB_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${TBB_HASH} URL_HASH MD5=${TBB_HASH}
PREFIX ${BUILD_DIR}/tbb PREFIX ${BUILD_DIR}/tbb
PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_tbb.txt ${BUILD_DIR}/tbb/src/external_tbb/CMakeLists.txt && PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_tbb.txt ${BUILD_DIR}/tbb/src/external_tbb/CMakeLists.txt &&
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/tbb/src/external_tbb/build/vs2013/version_string.ver ${BUILD_DIR}/tbb/src/external_tbb/src/tbb/version_string.ver ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/tbb/src/external_tbb/build/vs2013/version_string.ver ${BUILD_DIR}/tbb/src/external_tbb/src/tbb/version_string.ver
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/tbb ${DEFAULT_CMAKE_FLAGS} ${TBB_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/tbb ${DEFAULT_CMAKE_FLAGS} ${TBB_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/tbb INSTALL_DIR ${LIBDIR}/tbb
) )
if (WIN32) if (WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_tbb after_install ExternalProject_Add_Step(external_tbb after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb.lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tbb/include/ ${HARVEST_TARGET}/tbb/include/ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tbb/include/ ${HARVEST_TARGET}/tbb/include/
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_tbb after_install ExternalProject_Add_Step(external_tbb after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb_debug.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb_debug.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
endif() endif()

View File

@@ -17,28 +17,28 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_theora ExternalProject_Add(external_theora
URL ${THEORA_URI} URL ${THEORA_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${THEORA_HASH} URL_HASH SHA256=${THEORA_HASH}
PREFIX ${BUILD_DIR}/theora PREFIX ${BUILD_DIR}/theora
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/theora/src/external_theora/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/theora CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/theora/src/external_theora/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/theora
--disable-shared --disable-shared
--enable-static --enable-static
--with-pic --with-pic
--with-ogg=${LIBDIR}/ogg --with-ogg=${LIBDIR}/ogg
--with-vorbis=${LIBDIR}/vorbis --with-vorbis=${LIBDIR}/vorbis
--disable-examples --disable-examples
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/theora/src/external_theora/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/theora/src/external_theora/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/theora/src/external_theora/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/theora/src/external_theora/ && make install
INSTALL_DIR ${LIBDIR}/theora INSTALL_DIR ${LIBDIR}/theora
) )
add_dependencies( add_dependencies(
external_theora external_theora
external_vorbis external_vorbis
external_ogg external_ogg
) )
if(MSVC) if(MSVC)
set_target_properties(external_theora PROPERTIES FOLDER Mingw) set_target_properties(external_theora PROPERTIES FOLDER Mingw)
endif() endif()

View File

@@ -17,31 +17,31 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(TIFF_EXTRA_ARGS set(TIFF_EXTRA_ARGS
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY} -DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include -DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
-DPNG_STATIC=ON -DPNG_STATIC=ON
-DBUILD_SHARED_LIBS=OFF -DBUILD_SHARED_LIBS=OFF
-Dlzma=OFF -Dlzma=OFF
-Djbig=OFF -Djbig=OFF
) )
ExternalProject_Add(external_tiff ExternalProject_Add(external_tiff
URL ${TIFF_URI} URL ${TIFF_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${TIFF_HASH} URL_HASH MD5=${TIFF_HASH}
PREFIX ${BUILD_DIR}/tiff PREFIX ${BUILD_DIR}/tiff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/tiff ${DEFAULT_CMAKE_FLAGS} ${TIFF_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/tiff ${DEFAULT_CMAKE_FLAGS} ${TIFF_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/tiff INSTALL_DIR ${LIBDIR}/tiff
) )
add_dependencies( add_dependencies(
external_tiff external_tiff
external_zlib external_zlib
) )
if(WIN32 AND BUILD_MODE STREQUAL Debug) if(WIN32 AND BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_tiff after_install ExternalProject_Add_Step(external_tiff after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiffd${LIBEXT} ${LIBDIR}/tiff/lib/tiff${LIBEXT} COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiffd${LIBEXT} ${LIBDIR}/tiff/lib/tiff${LIBEXT}
DEPENDEES install DEPENDEES install
) )
endif() endif()

View File

@@ -20,12 +20,12 @@ set(TINYXML_EXTRA_ARGS
) )
ExternalProject_Add(external_tinyxml ExternalProject_Add(external_tinyxml
URL ${TINYXML_URI} URL ${TINYXML_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${TINYXML_HASH} URL_HASH MD5=${TINYXML_HASH}
PREFIX ${BUILD_DIR}/tinyxml PREFIX ${BUILD_DIR}/tinyxml
#patch taken from ocio #patch taken from ocio
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/tinyxml/src/external_tinyxml < ${PATCH_DIR}/tinyxml.diff PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/tinyxml/src/external_tinyxml < ${PATCH_DIR}/tinyxml.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/tinyxml ${DEFAULT_CMAKE_FLAGS} ${TINYXML_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/tinyxml ${DEFAULT_CMAKE_FLAGS} ${TINYXML_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/tinyxml INSTALL_DIR ${LIBDIR}/tinyxml
) )

View File

@@ -47,27 +47,27 @@ set(PTHREADS_HASH f3bf81bb395840b3446197bcf4ecd653)
set(ILMBASE_VERSION 2.3.0) set(ILMBASE_VERSION 2.3.0)
if (WIN32) if (WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
set(ILMBASE_VERSION_POSTFIX _s) set(ILMBASE_VERSION_POSTFIX _s)
set(OPENEXR_VERSION_POSTFIX _s) set(OPENEXR_VERSION_POSTFIX _s)
else() else()
set(ILMBASE_VERSION_POSTFIX _s_d) set(ILMBASE_VERSION_POSTFIX _s_d)
set(OPENEXR_VERSION_POSTFIX _s_d) set(OPENEXR_VERSION_POSTFIX _s_d)
endif() endif()
else() else()
set(ILMBASE_VERSION_POSTFIX) set(ILMBASE_VERSION_POSTFIX)
endif() endif()
set(ILMBASE_URI https://github.com/openexr/openexr/releases/download/v${ILMBASE_VERSION}/ilmbase-${ILMBASE_VERSION}.tar.gz) set(ILMBASE_URI https://github.com/openexr/openexr/releases/download/v${ILMBASE_VERSION}/ilmbase-${ILMBASE_VERSION}.tar.gz)
set(ILMBASE_HASH 354bf86de3b930ab87ac63619d60c860) set(ILMBASE_HASH 354bf86de3b930ab87ac63619d60c860)
set(OPENEXR_VERSION 2.3.0) set(OPENEXR_VERSION 2.3.0)
if (WIN32) #release 2.3.0 tarball has broken cmake support if (WIN32) #release 2.3.0 tarball has broken cmake support
set(OPENEXR_URI https://github.com/openexr/openexr/archive/0ac2ea34c8f3134148a5df4052e40f155b76f6fb.tar.gz) set(OPENEXR_URI https://github.com/openexr/openexr/archive/0ac2ea34c8f3134148a5df4052e40f155b76f6fb.tar.gz)
set(OPENEXR_HASH ed159435d508240712fbaaa21d94bafb) set(OPENEXR_HASH ed159435d508240712fbaaa21d94bafb)
else() else()
set(OPENEXR_VERSION_POSTFIX) set(OPENEXR_VERSION_POSTFIX)
set(OPENEXR_URI https://github.com/openexr/openexr/releases/download/v${OPENEXR_VERSION}/openexr-${OPENEXR_VERSION}.tar.gz) set(OPENEXR_URI https://github.com/openexr/openexr/releases/download/v${OPENEXR_VERSION}/openexr-${OPENEXR_VERSION}.tar.gz)
set(OPENEXR_HASH a157e8a46596bc185f2472a5a4682174) set(OPENEXR_HASH a157e8a46596bc185f2472a5a4682174)
endif() endif()
set(FREETYPE_VERSION 2.9.1) set(FREETYPE_VERSION 2.9.1)

View File

@@ -17,25 +17,25 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_vorbis ExternalProject_Add(external_vorbis
URL ${VORBIS_URI} URL ${VORBIS_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${VORBIS_HASH} URL_HASH SHA256=${VORBIS_HASH}
PREFIX ${BUILD_DIR}/vorbis PREFIX ${BUILD_DIR}/vorbis
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vorbis/src/external_vorbis/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/vorbis CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vorbis/src/external_vorbis/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/vorbis
--disable-shared --disable-shared
--enable-static --enable-static
--with-pic --with-pic
--with-ogg=${LIBDIR}/ogg --with-ogg=${LIBDIR}/ogg
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vorbis/src/external_vorbis/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vorbis/src/external_vorbis/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vorbis/src/external_vorbis/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vorbis/src/external_vorbis/ && make install
INSTALL_DIR ${LIBDIR}/vorbis INSTALL_DIR ${LIBDIR}/vorbis
) )
add_dependencies( add_dependencies(
external_vorbis external_vorbis
external_ogg external_ogg
) )
if(MSVC) if(MSVC)
set_target_properties(external_vorbis PROPERTIES FOLDER Mingw) set_target_properties(external_vorbis PROPERTIES FOLDER Mingw)
endif() endif()

View File

@@ -17,44 +17,44 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(WIN32) if(WIN32)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(VPX_EXTRA_FLAGS --target=x86_64-win64-gcc --disable-multithread) set(VPX_EXTRA_FLAGS --target=x86_64-win64-gcc --disable-multithread)
else() else()
set(VPX_EXTRA_FLAGS --target=x86-win32-gcc --disable-multithread) set(VPX_EXTRA_FLAGS --target=x86-win32-gcc --disable-multithread)
endif() endif()
else() else()
if(APPLE) if(APPLE)
set(VPX_EXTRA_FLAGS --target=x86_64-darwin13-gcc) set(VPX_EXTRA_FLAGS --target=x86_64-darwin13-gcc)
else() else()
set(VPX_EXTRA_FLAGS --target=generic-gnu) set(VPX_EXTRA_FLAGS --target=generic-gnu)
endif() endif()
endif() endif()
ExternalProject_Add(external_vpx ExternalProject_Add(external_vpx
URL ${VPX_URI} URL ${VPX_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${VPX_HASH} URL_HASH SHA256=${VPX_HASH}
PREFIX ${BUILD_DIR}/vpx PREFIX ${BUILD_DIR}/vpx
CONFIGURE_COMMAND ${CONFIGURE_ENV} && CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
cd ${BUILD_DIR}/vpx/src/external_vpx/ && cd ${BUILD_DIR}/vpx/src/external_vpx/ &&
${CONFIGURE_COMMAND_NO_TARGET} --prefix=${LIBDIR}/vpx ${CONFIGURE_COMMAND_NO_TARGET} --prefix=${LIBDIR}/vpx
--disable-shared --disable-shared
--enable-static --enable-static
--disable-install-bins --disable-install-bins
--disable-install-srcs --disable-install-srcs
--disable-sse4_1 --disable-sse4_1
--disable-sse3 --disable-sse3
--disable-ssse3 --disable-ssse3
--disable-avx --disable-avx
--disable-avx2 --disable-avx2
--disable-unit-tests --disable-unit-tests
--disable-examples --disable-examples
${VPX_EXTRA_FLAGS} ${VPX_EXTRA_FLAGS}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vpx/src/external_vpx/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vpx/src/external_vpx/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vpx/src/external_vpx/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vpx/src/external_vpx/ && make install
INSTALL_DIR ${LIBDIR}/vpx INSTALL_DIR ${LIBDIR}/vpx
) )
if(MSVC) if(MSVC)
set_target_properties(external_vpx PROPERTIES FOLDER Mingw) set_target_properties(external_vpx PROPERTIES FOLDER Mingw)
endif() endif()

View File

@@ -20,22 +20,22 @@
# library itself does not depend on them, so should give no problems. # library itself does not depend on them, so should give no problems.
set(WEBP_EXTRA_ARGS set(WEBP_EXTRA_ARGS
-DWEBP_HAVE_SSE2=ON -DWEBP_HAVE_SSE2=ON
-DWEBP_HAVE_SSE41=OFF -DWEBP_HAVE_SSE41=OFF
-DWEBP_HAVE_AVX2=OFF -DWEBP_HAVE_AVX2=OFF
) )
if(WIN32) if(WIN32)
set(WEBP_BUILD_DIR ${BUILD_MODE}/) set(WEBP_BUILD_DIR ${BUILD_MODE}/)
else() else()
set(WEBP_BUILD_DIR) set(WEBP_BUILD_DIR)
endif() endif()
ExternalProject_Add(external_webp ExternalProject_Add(external_webp
URL ${WEBP_URI} URL ${WEBP_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${WEBP_HASH} URL_HASH MD5=${WEBP_HASH}
PREFIX ${BUILD_DIR}/webp PREFIX ${BUILD_DIR}/webp
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/webp -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${WEBP_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/webp -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${WEBP_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/webp INSTALL_DIR ${LIBDIR}/webp
) )

View File

@@ -17,29 +17,29 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(WIN32) if(WIN32)
set(X264_EXTRA_ARGS --enable-win32thread --cross-prefix=${MINGW_HOST}- --host=${MINGW_HOST}) set(X264_EXTRA_ARGS --enable-win32thread --cross-prefix=${MINGW_HOST}- --host=${MINGW_HOST})
set(X264_PATCH_CMD ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/x264/src/external_x264 < ${PATCH_DIR}/x264.diff) set(X264_PATCH_CMD ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/x264/src/external_x264 < ${PATCH_DIR}/x264.diff)
else() else()
set(X264_PATCH_CMD echo .) set(X264_PATCH_CMD echo .)
endif() endif()
ExternalProject_Add(external_x264 ExternalProject_Add(external_x264
URL ${X264_URI} URL ${X264_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${X264_HASH} URL_HASH SHA256=${X264_HASH}
PREFIX ${BUILD_DIR}/x264 PREFIX ${BUILD_DIR}/x264
PATCH_COMMAND ${X264_PATCH_CMD} PATCH_COMMAND ${X264_PATCH_CMD}
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/x264/src/external_x264/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/x264 CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/x264/src/external_x264/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/x264
--enable-static --enable-static
--enable-pic --enable-pic
--disable-lavf --disable-lavf
${X264_EXTRA_ARGS} ${X264_EXTRA_ARGS}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/x264/src/external_x264/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/x264/src/external_x264/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/x264/src/external_x264/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/x264/src/external_x264/ && make install
INSTALL_DIR ${LIBDIR}/x264 INSTALL_DIR ${LIBDIR}/x264
) )
if(MSVC) if(MSVC)
set_target_properties(external_x264 PROPERTIES FOLDER Mingw) set_target_properties(external_x264 PROPERTIES FOLDER Mingw)
endif() endif()

View File

@@ -17,20 +17,20 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_xml2 ExternalProject_Add(external_xml2
URL ${XML2_URI} URL ${XML2_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${XML2_HASH} URL_HASH MD5=${XML2_HASH}
PREFIX ${BUILD_DIR}/xml2 PREFIX ${BUILD_DIR}/xml2
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && ${CONFIGURE_COMMAND} CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && ${CONFIGURE_COMMAND}
--prefix=${LIBDIR}/xml2 --prefix=${LIBDIR}/xml2
--disable-shared --disable-shared
--enable-static --enable-static
--with-pic --with-pic
--with-python=no --with-python=no
--with-lzma=no --with-lzma=no
--with-zlib=no --with-zlib=no
--with-iconv=no --with-iconv=no
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make install INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make install
INSTALL_DIR ${LIBDIR}/xml2 INSTALL_DIR ${LIBDIR}/xml2
) )

View File

@@ -17,28 +17,28 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
if(WIN32) if(WIN32)
set(XVIDCORE_EXTRA_ARGS --host=${MINGW_HOST}) set(XVIDCORE_EXTRA_ARGS --host=${MINGW_HOST})
endif() endif()
ExternalProject_Add(external_xvidcore ExternalProject_Add(external_xvidcore
URL ${XVIDCORE_URI} URL ${XVIDCORE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH SHA256=${XVIDCORE_HASH} URL_HASH SHA256=${XVIDCORE_HASH}
PREFIX ${BUILD_DIR}/xvidcore PREFIX ${BUILD_DIR}/xvidcore
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xvidcore/src/external_xvidcore/build/generic && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/xvidcore ${XVIDCORE_EXTRA_ARGS} CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xvidcore/src/external_xvidcore/build/generic && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/xvidcore ${XVIDCORE_EXTRA_ARGS}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xvidcore/src/external_xvidcore/build/generic && make -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xvidcore/src/external_xvidcore/build/generic && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && INSTALL_COMMAND ${CONFIGURE_ENV} &&
${CMAKE_COMMAND} -E remove ${LIBDIR}/xvidcore/lib/* && # clean because re-installing fails otherwise ${CMAKE_COMMAND} -E remove ${LIBDIR}/xvidcore/lib/* && # clean because re-installing fails otherwise
cd ${BUILD_DIR}/xvidcore/src/external_xvidcore/build/generic && make install cd ${BUILD_DIR}/xvidcore/src/external_xvidcore/build/generic && make install
INSTALL_DIR ${LIBDIR}/xvidcore INSTALL_DIR ${LIBDIR}/xvidcore
) )
ExternalProject_Add_Step(external_xvidcore after_install ExternalProject_Add_Step(external_xvidcore after_install
COMMAND ${CMAKE_COMMAND} -E rename ${LIBDIR}/xvidcore/lib/xvidcore.a ${LIBDIR}/xvidcore/lib/libxvidcore.a || true COMMAND ${CMAKE_COMMAND} -E rename ${LIBDIR}/xvidcore/lib/xvidcore.a ${LIBDIR}/xvidcore/lib/libxvidcore.a || true
COMMAND ${CMAKE_COMMAND} -E remove ${LIBDIR}/xvidcore/lib/xvidcore.dll.a COMMAND ${CMAKE_COMMAND} -E remove ${LIBDIR}/xvidcore/lib/xvidcore.dll.a
DEPENDEES install DEPENDEES install
) )
if(MSVC) if(MSVC)
set_target_properties(external_xvidcore PROPERTIES FOLDER Mingw) set_target_properties(external_xvidcore PROPERTIES FOLDER Mingw)
endif() endif()

View File

@@ -17,18 +17,18 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(YAMLCPP_EXTRA_ARGS set(YAMLCPP_EXTRA_ARGS
-DBUILD_GMOCK=OFF -DBUILD_GMOCK=OFF
-DYAML_CPP_BUILD_TESTS=OFF -DYAML_CPP_BUILD_TESTS=OFF
-DYAML_CPP_BUILD_TOOLS=OFF -DYAML_CPP_BUILD_TOOLS=OFF
-DYAML_CPP_BUILD_CONTRIB=OFF -DYAML_CPP_BUILD_CONTRIB=OFF
-DMSVC_SHARED_RT=OFF -DMSVC_SHARED_RT=OFF
) )
ExternalProject_Add(external_yamlcpp ExternalProject_Add(external_yamlcpp
URL ${YAMLCPP_URI} URL ${YAMLCPP_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${YAMLCPP_HASH} URL_HASH MD5=${YAMLCPP_HASH}
PREFIX ${BUILD_DIR}/yamlcpp PREFIX ${BUILD_DIR}/yamlcpp
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/yamlcpp ${DEFAULT_CMAKE_FLAGS} ${YAMLCPP_EXTRA_ARGS} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/yamlcpp ${DEFAULT_CMAKE_FLAGS} ${YAMLCPP_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/yamlcpp INSTALL_DIR ${LIBDIR}/yamlcpp
) )

View File

@@ -17,31 +17,31 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_zlib ExternalProject_Add(external_zlib
URL ${ZLIB_URI} URL ${ZLIB_URI}
URL_HASH MD5=${ZLIB_HASH} URL_HASH MD5=${ZLIB_HASH}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
PREFIX ${BUILD_DIR}/zlib PREFIX ${BUILD_DIR}/zlib
CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${LIBDIR}/zlib ${DEFAULT_CMAKE_FLAGS} CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${LIBDIR}/zlib ${DEFAULT_CMAKE_FLAGS}
INSTALL_DIR ${LIBDIR}/zlib INSTALL_DIR ${LIBDIR}/zlib
) )
if (WIN32) if (WIN32)
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_zlib after_install ExternalProject_Add_Step(external_zlib after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/zlibstatic${LIBEXT} ${HARVEST_TARGET}/zlib/lib/libz_st${LIBEXT} COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/zlibstatic${LIBEXT} ${HARVEST_TARGET}/zlib/lib/libz_st${LIBEXT}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/zlib/include/ ${HARVEST_TARGET}/zlib/include/ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/zlib/include/ ${HARVEST_TARGET}/zlib/include/
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(BUILD_MODE STREQUAL Debug) if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_zlib after_install ExternalProject_Add_Step(external_zlib after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/zlibstaticd${LIBEXT} ${HARVEST_TARGET}/zlib/lib/libz_st_d${LIBEXT} COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/zlibstaticd${LIBEXT} ${HARVEST_TARGET}/zlib/lib/libz_st_d${LIBEXT}
DEPENDEES install DEPENDEES install
) )
endif() endif()
else() else()
ExternalProject_Add_Step(external_zlib after_install ExternalProject_Add_Step(external_zlib after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/libz.a ${LIBDIR}/zlib/lib/libz_pic.a COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/zlib/lib/libz.a ${LIBDIR}/zlib/lib/libz_pic.a
DEPENDEES install DEPENDEES install
) )
endif() endif()

View File

@@ -17,23 +17,23 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
ExternalProject_Add(external_zlib_mingw ExternalProject_Add(external_zlib_mingw
URL ${ZLIB_URI} URL ${ZLIB_URI}
URL_HASH MD5=${ZLIB_HASH} URL_HASH MD5=${ZLIB_HASH}
DOWNLOAD_DIR ${DOWNLOAD_DIR} DOWNLOAD_DIR ${DOWNLOAD_DIR}
PREFIX ${BUILD_DIR}/zlib_mingw PREFIX ${BUILD_DIR}/zlib_mingw
CONFIGURE_COMMAND echo . CONFIGURE_COMMAND echo .
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/zlib_mingw/src/external_zlib_mingw/ && make -f win32/makefile.gcc -j${MAKE_THREADS} BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/zlib_mingw/src/external_zlib_mingw/ && make -f win32/makefile.gcc -j${MAKE_THREADS}
INSTALL_COMMAND echo . INSTALL_COMMAND echo .
INSTALL_DIR ${LIBDIR}/zlib_mingw INSTALL_DIR ${LIBDIR}/zlib_mingw
) )
if(BUILD_MODE STREQUAL Release) if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_zlib_mingw after_install ExternalProject_Add_Step(external_zlib_mingw after_install
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/zlib_mingw/src/external_zlib_mingw/libz.a ${LIBDIR}/zlib/lib/z.lib COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/zlib_mingw/src/external_zlib_mingw/libz.a ${LIBDIR}/zlib/lib/z.lib
DEPENDEES install DEPENDEES install
) )
endif() endif()
if(MSVC) if(MSVC)
set_target_properties(external_zlib_mingw PROPERTIES FOLDER Mingw) set_target_properties(external_zlib_mingw PROPERTIES FOLDER Mingw)
endif() endif()

View File

@@ -6,29 +6,29 @@ include("${CMAKE_CURRENT_LIST_DIR}/../../cmake/config/blender_release.cmake")
# Some of the paths will depend on this # Some of the paths will depend on this
if(EXISTS "/lib/x86_64-linux-gnu/libc-2.24.so") if(EXISTS "/lib/x86_64-linux-gnu/libc-2.24.so")
message(STATUS "Building in GLibc-2.24 environment") message(STATUS "Building in GLibc-2.24 environment")
set(GLIBC "2.24") set(GLIBC "2.24")
set(MULTILIB "/x86_64-linux-gnu") set(MULTILIB "/x86_64-linux-gnu")
set(LIBDIR_NAME "linux_x86_64") set(LIBDIR_NAME "linux_x86_64")
elseif(EXISTS "/lib/i386-linux-gnu//libc-2.24.so") elseif(EXISTS "/lib/i386-linux-gnu//libc-2.24.so")
message(STATUS "Building in GLibc-2.24 environment") message(STATUS "Building in GLibc-2.24 environment")
set(GLIBC "2.24") set(GLIBC "2.24")
set(MULTILIB "/i386-linux-gnu") set(MULTILIB "/i386-linux-gnu")
set(LIBDIR_NAME "linux_i686") set(LIBDIR_NAME "linux_i686")
elseif(EXISTS "/lib/x86_64-linux-gnu/libc-2.19.so") elseif(EXISTS "/lib/x86_64-linux-gnu/libc-2.19.so")
message(STATUS "Building in GLibc-2.19 environment") message(STATUS "Building in GLibc-2.19 environment")
set(GLIBC "2.19") set(GLIBC "2.19")
set(MULTILIB "/x86_64-linux-gnu") set(MULTILIB "/x86_64-linux-gnu")
elseif(EXISTS "/lib/i386-linux-gnu//libc-2.19.so") elseif(EXISTS "/lib/i386-linux-gnu//libc-2.19.so")
message(STATUS "Building in GLibc-2.19 environment") message(STATUS "Building in GLibc-2.19 environment")
set(GLIBC "2.19") set(GLIBC "2.19")
set(MULTILIB "/i386-linux-gnu") set(MULTILIB "/i386-linux-gnu")
elseif(EXISTS "/lib/libc-2.11.3.so") elseif(EXISTS "/lib/libc-2.11.3.so")
message(STATUS "Building in GLibc-2.11 environment") message(STATUS "Building in GLibc-2.11 environment")
set(GLIBC "2.11") set(GLIBC "2.11")
set(MULTILIB "") set(MULTILIB "")
else() else()
message(FATAL_ERROR "Unknown build environment") message(FATAL_ERROR "Unknown build environment")
endif() endif()
# Default to only build Blender # Default to only build Blender
@@ -67,18 +67,18 @@ set(Boost_USE_STATIC_LIBS ON CACHE BOOL "" FORCE)
# FFmpeg libraries # FFmpeg libraries
set(FFMPEG "/opt/lib/ffmpeg" CACHE STRING "" FORCE) set(FFMPEG "/opt/lib/ffmpeg" CACHE STRING "" FORCE)
set(FFMPEG_LIBRARIES set(FFMPEG_LIBRARIES
avdevice avformat avcodec avutil avfilter swscale swresample avdevice avformat avcodec avutil avfilter swscale swresample
/usr/lib${MULTILIB}/libxvidcore.a /usr/lib${MULTILIB}/libxvidcore.a
/usr/lib${MULTILIB}/libx264.a /usr/lib${MULTILIB}/libx264.a
/usr/lib${MULTILIB}/libmp3lame.a /usr/lib${MULTILIB}/libmp3lame.a
/usr/lib${MULTILIB}/libvpx.a /usr/lib${MULTILIB}/libvpx.a
/usr/lib${MULTILIB}/libvorbis.a /usr/lib${MULTILIB}/libvorbis.a
/usr/lib${MULTILIB}/libogg.a /usr/lib${MULTILIB}/libogg.a
/usr/lib${MULTILIB}/libvorbisenc.a /usr/lib${MULTILIB}/libvorbisenc.a
/usr/lib${MULTILIB}/libtheora.a /usr/lib${MULTILIB}/libtheora.a
/usr/lib${MULTILIB}/libschroedinger-1.0.a /usr/lib${MULTILIB}/libschroedinger-1.0.a
/usr/lib${MULTILIB}/liborc-0.4.a /usr/lib${MULTILIB}/liborc-0.4.a
CACHE STRING "" FORCE CACHE STRING "" FORCE
) )
# SndFile libraries # SndFile libraries
@@ -88,9 +88,9 @@ set(SNDFILE_LIBRARY "/usr/lib${MULTILIB}/libsndfile.a;/usr/lib${MULTILI
set(OPENAL_ROOT_DIR "/opt/lib/openal" CACHE STRING "" FORCE) set(OPENAL_ROOT_DIR "/opt/lib/openal" CACHE STRING "" FORCE)
set(OPENAL_INCLUDE_DIR "${OPENAL_ROOT_DIR}/include/AL" CACHE STRING "" FORCE) set(OPENAL_INCLUDE_DIR "${OPENAL_ROOT_DIR}/include/AL" CACHE STRING "" FORCE)
set(OPENAL_LIBRARY set(OPENAL_LIBRARY
${OPENAL_ROOT_DIR}/lib/libopenal.a ${OPENAL_ROOT_DIR}/lib/libopenal.a
${OPENAL_ROOT_DIR}/lib/libcommon.a ${OPENAL_ROOT_DIR}/lib/libcommon.a
CACHE STRING "" FORCE CACHE STRING "" FORCE
) )
# OpenCollada libraries # OpenCollada libraries
@@ -112,15 +112,15 @@ set(FREETYPE_LIBRARY "/usr/lib${MULTILIB}/libfreetype.a" CACHE STRING "" FORCE)
# OpenImageIO # OpenImageIO
if(GLIBC EQUAL "2.19") if(GLIBC EQUAL "2.19")
set(OPENIMAGEIO_LIBRARY set(OPENIMAGEIO_LIBRARY
/opt/lib/oiio/lib/libOpenImageIO.a /opt/lib/oiio/lib/libOpenImageIO.a
/opt/lib/oiio/lib/libOpenImageIO_Util.a /opt/lib/oiio/lib/libOpenImageIO_Util.a
/usr/lib${MULTILIB}/libwebp.a /usr/lib${MULTILIB}/libwebp.a
/usr/lib${MULTILIB}/liblzma.a /usr/lib${MULTILIB}/liblzma.a
/usr/lib${MULTILIB}/libjbig.a /usr/lib${MULTILIB}/libjbig.a
${FREETYPE_LIBRARY} ${FREETYPE_LIBRARY}
CACHE STRING "" FORCE CACHE STRING "" FORCE
) )
endif() endif()
# OpenSubdiv libraries # OpenSubdiv libraries
@@ -151,13 +151,13 @@ set(ZLIB_LIBRARY "/usr/lib${MULTILIB}/libz.a" CACHE STRING "" FORCE)
# OpenVDB # OpenVDB
set(OPENVDB_LIBRARY set(OPENVDB_LIBRARY
/opt/lib/openvdb/lib/libopenvdb.a /opt/lib/openvdb/lib/libopenvdb.a
CACHE BOOL "" FORCE CACHE BOOL "" FORCE
) )
set(BLOSC_LIBRARY set(BLOSC_LIBRARY
/opt/lib/blosc/lib/libblosc.a /opt/lib/blosc/lib/libblosc.a
CACHE BOOL "" FORCE CACHE BOOL "" FORCE
) )
else() else()

View File

@@ -23,7 +23,7 @@
# If GLEW_ROOT_DIR was defined in the environment, use it. # If GLEW_ROOT_DIR was defined in the environment, use it.
IF(NOT GLEW_ROOT_DIR AND NOT $ENV{GLEW_ROOT_DIR} STREQUAL "") IF(NOT GLEW_ROOT_DIR AND NOT $ENV{GLEW_ROOT_DIR} STREQUAL "")
SET(GLEW_ROOT_DIR $ENV{GLEW_ROOT_DIR}) SET(GLEW_ROOT_DIR $ENV{GLEW_ROOT_DIR})
ENDIF() ENDIF()
SET(_glew_SEARCH_DIRS SET(_glew_SEARCH_DIRS

View File

@@ -22,65 +22,65 @@
#============================================================================= #=============================================================================
if(LLVM_ROOT_DIR) if(LLVM_ROOT_DIR)
if(DEFINED LLVM_VERSION) if(DEFINED LLVM_VERSION)
find_program(LLVM_CONFIG llvm-config-${LLVM_VERSION} HINTS ${LLVM_ROOT_DIR}/bin NO_CMAKE_PATH) find_program(LLVM_CONFIG llvm-config-${LLVM_VERSION} HINTS ${LLVM_ROOT_DIR}/bin NO_CMAKE_PATH)
endif() endif()
if(NOT LLVM_CONFIG) if(NOT LLVM_CONFIG)
find_program(LLVM_CONFIG llvm-config HINTS ${LLVM_ROOT_DIR}/bin NO_CMAKE_PATH) find_program(LLVM_CONFIG llvm-config HINTS ${LLVM_ROOT_DIR}/bin NO_CMAKE_PATH)
endif() endif()
else() else()
if(DEFINED LLVM_VERSION) if(DEFINED LLVM_VERSION)
message(running llvm-config-${LLVM_VERSION}) message(running llvm-config-${LLVM_VERSION})
find_program(LLVM_CONFIG llvm-config-${LLVM_VERSION}) find_program(LLVM_CONFIG llvm-config-${LLVM_VERSION})
endif() endif()
if(NOT LLVM_CONFIG) if(NOT LLVM_CONFIG)
find_program(LLVM_CONFIG llvm-config) find_program(LLVM_CONFIG llvm-config)
endif() endif()
endif() endif()
if(NOT DEFINED LLVM_VERSION) if(NOT DEFINED LLVM_VERSION)
execute_process(COMMAND ${LLVM_CONFIG} --version execute_process(COMMAND ${LLVM_CONFIG} --version
OUTPUT_VARIABLE LLVM_VERSION OUTPUT_VARIABLE LLVM_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
set(LLVM_VERSION ${LLVM_VERSION} CACHE STRING "Version of LLVM to use") set(LLVM_VERSION ${LLVM_VERSION} CACHE STRING "Version of LLVM to use")
endif() endif()
if(NOT LLVM_ROOT_DIR) if(NOT LLVM_ROOT_DIR)
execute_process(COMMAND ${LLVM_CONFIG} --prefix execute_process(COMMAND ${LLVM_CONFIG} --prefix
OUTPUT_VARIABLE LLVM_ROOT_DIR OUTPUT_VARIABLE LLVM_ROOT_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
set(LLVM_ROOT_DIR ${LLVM_ROOT_DIR} CACHE PATH "Path to the LLVM installation") set(LLVM_ROOT_DIR ${LLVM_ROOT_DIR} CACHE PATH "Path to the LLVM installation")
endif() endif()
if(NOT LLVM_LIBPATH) if(NOT LLVM_LIBPATH)
execute_process(COMMAND ${LLVM_CONFIG} --libdir execute_process(COMMAND ${LLVM_CONFIG} --libdir
OUTPUT_VARIABLE LLVM_LIBPATH OUTPUT_VARIABLE LLVM_LIBPATH
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
set(LLVM_LIBPATH ${LLVM_LIBPATH} CACHE PATH "Path to the LLVM library path") set(LLVM_LIBPATH ${LLVM_LIBPATH} CACHE PATH "Path to the LLVM library path")
mark_as_advanced(LLVM_LIBPATH) mark_as_advanced(LLVM_LIBPATH)
endif() endif()
if(LLVM_STATIC) if(LLVM_STATIC)
find_library(LLVM_LIBRARY find_library(LLVM_LIBRARY
NAMES LLVMAnalysis # first of a whole bunch of libs to get NAMES LLVMAnalysis # first of a whole bunch of libs to get
PATHS ${LLVM_LIBPATH}) PATHS ${LLVM_LIBPATH})
else() else()
find_library(LLVM_LIBRARY find_library(LLVM_LIBRARY
NAMES NAMES
LLVM-${LLVM_VERSION} LLVM-${LLVM_VERSION}
LLVMAnalysis # check for the static library as a fall-back LLVMAnalysis # check for the static library as a fall-back
PATHS ${LLVM_LIBPATH}) PATHS ${LLVM_LIBPATH})
endif() endif()
if(LLVM_LIBRARY AND LLVM_ROOT_DIR AND LLVM_LIBPATH) if(LLVM_LIBRARY AND LLVM_ROOT_DIR AND LLVM_LIBPATH)
if(LLVM_STATIC) if(LLVM_STATIC)
# if static LLVM libraries were requested, use llvm-config to generate # if static LLVM libraries were requested, use llvm-config to generate
# the list of what libraries we need, and substitute that in the right # the list of what libraries we need, and substitute that in the right
# way for LLVM_LIBRARY. # way for LLVM_LIBRARY.
execute_process(COMMAND ${LLVM_CONFIG} --libfiles execute_process(COMMAND ${LLVM_CONFIG} --libfiles
OUTPUT_VARIABLE LLVM_LIBRARY OUTPUT_VARIABLE LLVM_LIBRARY
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REPLACE " " ";" LLVM_LIBRARY "${LLVM_LIBRARY}") string(REPLACE " " ";" LLVM_LIBRARY "${LLVM_LIBRARY}")
endif() endif()
endif() endif()

View File

@@ -24,11 +24,11 @@
# If LIBSNDFILE_ROOT_DIR was defined in the environment, use it. # If LIBSNDFILE_ROOT_DIR was defined in the environment, use it.
IF(NOT LIBSNDFILE_ROOT_DIR AND NOT $ENV{LIBSNDFILE_ROOT_DIR} STREQUAL "") IF(NOT LIBSNDFILE_ROOT_DIR AND NOT $ENV{LIBSNDFILE_ROOT_DIR} STREQUAL "")
SET(LIBSNDFILE_ROOT_DIR $ENV{LIBSNDFILE_ROOT_DIR}) SET(LIBSNDFILE_ROOT_DIR $ENV{LIBSNDFILE_ROOT_DIR})
ENDIF() ENDIF()
SET(_sndfile_SEARCH_DIRS SET(_sndfile_SEARCH_DIRS
${LIBSNDFILE_ROOT_DIR} ${LIBSNDFILE_ROOT_DIR}
/usr/local /usr/local
/sw # Fink /sw # Fink
/opt/local # DarwinPorts /opt/local # DarwinPorts
@@ -54,14 +54,14 @@ FIND_LIBRARY(LIBSNDFILE_LIBRARY
# all listed variables are TRUE # all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs) INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SndFile DEFAULT_MSG FIND_PACKAGE_HANDLE_STANDARD_ARGS(SndFile DEFAULT_MSG
LIBSNDFILE_LIBRARY LIBSNDFILE_INCLUDE_DIR) LIBSNDFILE_LIBRARY LIBSNDFILE_INCLUDE_DIR)
IF(LIBSNDFILE_FOUND) IF(LIBSNDFILE_FOUND)
SET(LIBSNDFILE_LIBRARIES ${LIBSNDFILE_LIBRARY}) SET(LIBSNDFILE_LIBRARIES ${LIBSNDFILE_LIBRARY})
SET(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE_INCLUDE_DIR}) SET(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE_INCLUDE_DIR})
ENDIF(LIBSNDFILE_FOUND) ENDIF(LIBSNDFILE_FOUND)
MARK_AS_ADVANCED( MARK_AS_ADVANCED(
LIBSNDFILE_INCLUDE_DIR LIBSNDFILE_INCLUDE_DIR
LIBSNDFILE_LIBRARY LIBSNDFILE_LIBRARY
) )

View File

@@ -13,55 +13,55 @@
#============================================================================= #=============================================================================
macro(BLENDER_SRC_GTEST_EX NAME SRC EXTRA_LIBS DO_ADD_TEST) macro(BLENDER_SRC_GTEST_EX NAME SRC EXTRA_LIBS DO_ADD_TEST)
if(WITH_GTESTS) if(WITH_GTESTS)
get_property(_current_include_directories get_property(_current_include_directories
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
PROPERTY INCLUDE_DIRECTORIES) PROPERTY INCLUDE_DIRECTORIES)
set(TEST_INC set(TEST_INC
${_current_include_directories} ${_current_include_directories}
${CMAKE_SOURCE_DIR}/tests/gtests ${CMAKE_SOURCE_DIR}/tests/gtests
${GLOG_INCLUDE_DIRS} ${GLOG_INCLUDE_DIRS}
${GFLAGS_INCLUDE_DIRS} ${GFLAGS_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/extern/gtest/include ${CMAKE_SOURCE_DIR}/extern/gtest/include
${CMAKE_SOURCE_DIR}/extern/gmock/include ${CMAKE_SOURCE_DIR}/extern/gmock/include
) )
unset(_current_include_directories) unset(_current_include_directories)
add_executable(${NAME}_test ${SRC}) add_executable(${NAME}_test ${SRC})
target_link_libraries(${NAME}_test target_link_libraries(${NAME}_test
${EXTRA_LIBS} ${EXTRA_LIBS}
${PLATFORM_LINKLIBS} ${PLATFORM_LINKLIBS}
bf_testing_main bf_testing_main
bf_intern_eigen bf_intern_eigen
bf_intern_guardedalloc bf_intern_guardedalloc
extern_gtest extern_gtest
extern_gmock extern_gmock
# needed for glog # needed for glog
${PTHREADS_LIBRARIES} ${PTHREADS_LIBRARIES}
${GLOG_LIBRARIES} ${GLOG_LIBRARIES}
${GFLAGS_LIBRARIES}) ${GFLAGS_LIBRARIES})
if(WITH_OPENMP_STATIC) if(WITH_OPENMP_STATIC)
target_link_libraries(${NAME}_test ${OpenMP_LIBRARIES}) target_link_libraries(${NAME}_test ${OpenMP_LIBRARIES})
endif() endif()
set_target_properties(${NAME}_test PROPERTIES set_target_properties(${NAME}_test PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${TESTS_OUTPUT_DIR}" RUNTIME_OUTPUT_DIRECTORY "${TESTS_OUTPUT_DIR}"
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${TESTS_OUTPUT_DIR}" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${TESTS_OUTPUT_DIR}"
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${TESTS_OUTPUT_DIR}" RUNTIME_OUTPUT_DIRECTORY_DEBUG "${TESTS_OUTPUT_DIR}"
INCLUDE_DIRECTORIES "${TEST_INC}") INCLUDE_DIRECTORIES "${TEST_INC}")
if(${DO_ADD_TEST}) if(${DO_ADD_TEST})
add_test(NAME ${NAME}_test COMMAND ${TESTS_OUTPUT_DIR}/${NAME}_test WORKING_DIRECTORY $<TARGET_FILE_DIR:blender>) add_test(NAME ${NAME}_test COMMAND ${TESTS_OUTPUT_DIR}/${NAME}_test WORKING_DIRECTORY $<TARGET_FILE_DIR:blender>)
endif() endif()
endif() endif()
endmacro() endmacro()
macro(BLENDER_SRC_GTEST NAME SRC EXTRA_LIBS) macro(BLENDER_SRC_GTEST NAME SRC EXTRA_LIBS)
BLENDER_SRC_GTEST_EX("${NAME}" "${SRC}" "${EXTRA_LIBS}" "TRUE") BLENDER_SRC_GTEST_EX("${NAME}" "${SRC}" "${EXTRA_LIBS}" "TRUE")
endmacro() endmacro()
macro(BLENDER_TEST NAME EXTRA_LIBS) macro(BLENDER_TEST NAME EXTRA_LIBS)
BLENDER_SRC_GTEST_EX("${NAME}" "${NAME}_test.cc" "${EXTRA_LIBS}" "TRUE") BLENDER_SRC_GTEST_EX("${NAME}" "${NAME}_test.cc" "${EXTRA_LIBS}" "TRUE")
endmacro() endmacro()
macro(BLENDER_TEST_PERFORMANCE NAME EXTRA_LIBS) macro(BLENDER_TEST_PERFORMANCE NAME EXTRA_LIBS)
BLENDER_SRC_GTEST_EX("${NAME}" "${NAME}_test.cc" "${EXTRA_LIBS}" "FALSE") BLENDER_SRC_GTEST_EX("${NAME}" "${NAME}_test.cc" "${EXTRA_LIBS}" "FALSE")
endmacro() endmacro()

View File

@@ -4,22 +4,22 @@
if(NOT DEFINED RPMBUILD) if(NOT DEFINED RPMBUILD)
find_program(RPMBUILD find_program(RPMBUILD
NAMES rpmbuild NAMES rpmbuild
PATHS "/usr/bin") PATHS "/usr/bin")
mark_as_advanced(RPMBUILD) mark_as_advanced(RPMBUILD)
if(RPMBUILD) if(RPMBUILD)
message(STATUS "RPM Build Found: ${RPMBUILD}") message(STATUS "RPM Build Found: ${RPMBUILD}")
else() else()
message(STATUS "RPM Build Not Found (rpmbuild). RPM generation will not be available") message(STATUS "RPM Build Not Found (rpmbuild). RPM generation will not be available")
endif() endif()
endif() endif()
if(RPMBUILD) if(RPMBUILD)
set(RPMBUILD_FOUND TRUE) set(RPMBUILD_FOUND TRUE)
else() else()
set(RPMBUILD_FOUND FALSE) set(RPMBUILD_FOUND FALSE)
endif() endif()

View File

@@ -14,162 +14,162 @@ set(MY_WC_COMMIT_TIMESTAMP 0)
# Guess if this is a git working copy and then look up the revision # Guess if this is a git working copy and then look up the revision
if(EXISTS ${SOURCE_DIR}/.git) if(EXISTS ${SOURCE_DIR}/.git)
execute_process(COMMAND git rev-parse --abbrev-ref HEAD execute_process(COMMAND git rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE MY_WC_BRANCH OUTPUT_VARIABLE MY_WC_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
if(MY_WC_BRANCH STREQUAL "HEAD") if(MY_WC_BRANCH STREQUAL "HEAD")
# Detached HEAD, check whether commit hash is reachable # Detached HEAD, check whether commit hash is reachable
# in the master branch # in the master branch
execute_process(COMMAND git rev-parse --short=12 HEAD execute_process(COMMAND git rev-parse --short=12 HEAD
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE MY_WC_HASH OUTPUT_VARIABLE MY_WC_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND git branch --list master blender-v* --contains ${MY_WC_HASH} execute_process(COMMAND git branch --list master blender-v* --contains ${MY_WC_HASH}
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE _git_contains_check OUTPUT_VARIABLE _git_contains_check
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT _git_contains_check STREQUAL "") if(NOT _git_contains_check STREQUAL "")
set(MY_WC_BRANCH "master") set(MY_WC_BRANCH "master")
else() else()
execute_process(COMMAND git show-ref --tags -d execute_process(COMMAND git show-ref --tags -d
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE _git_tag_hashes OUTPUT_VARIABLE _git_tag_hashes
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND git rev-parse HEAD execute_process(COMMAND git rev-parse HEAD
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE _git_head_hash OUTPUT_VARIABLE _git_head_hash
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
if(_git_tag_hashes MATCHES "${_git_head_hash}") if(_git_tag_hashes MATCHES "${_git_head_hash}")
set(MY_WC_BRANCH "master") set(MY_WC_BRANCH "master")
else() else()
execute_process(COMMAND git branch --contains ${MY_WC_HASH} execute_process(COMMAND git branch --contains ${MY_WC_HASH}
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE _git_contains_branches OUTPUT_VARIABLE _git_contains_branches
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REGEX REPLACE "^\\*[ \t]+" "" _git_contains_branches "${_git_contains_branches}") string(REGEX REPLACE "^\\*[ \t]+" "" _git_contains_branches "${_git_contains_branches}")
string(REGEX REPLACE "[\r\n]+" ";" _git_contains_branches "${_git_contains_branches}") string(REGEX REPLACE "[\r\n]+" ";" _git_contains_branches "${_git_contains_branches}")
string(REGEX REPLACE ";[ \t]+" ";" _git_contains_branches "${_git_contains_branches}") string(REGEX REPLACE ";[ \t]+" ";" _git_contains_branches "${_git_contains_branches}")
foreach(_branch ${_git_contains_branches}) foreach(_branch ${_git_contains_branches})
if(NOT "${_branch}" MATCHES "\\(HEAD.*") if(NOT "${_branch}" MATCHES "\\(HEAD.*")
set(MY_WC_BRANCH "${_branch}") set(MY_WC_BRANCH "${_branch}")
break() break()
endif() endif()
endforeach() endforeach()
unset(_branch) unset(_branch)
unset(_git_contains_branches) unset(_git_contains_branches)
endif() endif()
unset(_git_tag_hashes) unset(_git_tag_hashes)
unset(_git_head_hashs) unset(_git_head_hashs)
endif() endif()
unset(_git_contains_check) unset(_git_contains_check)
else() else()
execute_process(COMMAND git log HEAD..@{u} execute_process(COMMAND git log HEAD..@{u}
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE _git_below_check OUTPUT_VARIABLE _git_below_check
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET) ERROR_QUIET)
if(NOT _git_below_check STREQUAL "") if(NOT _git_below_check STREQUAL "")
# If there're commits between HEAD and upstream this means # If there're commits between HEAD and upstream this means
# that we're reset-ed to older revision. Use it's hash then. # that we're reset-ed to older revision. Use it's hash then.
execute_process(COMMAND git rev-parse --short=12 HEAD execute_process(COMMAND git rev-parse --short=12 HEAD
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE MY_WC_HASH OUTPUT_VARIABLE MY_WC_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
else() else()
execute_process(COMMAND git rev-parse --short=12 @{u} execute_process(COMMAND git rev-parse --short=12 @{u}
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE MY_WC_HASH OUTPUT_VARIABLE MY_WC_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET) ERROR_QUIET)
if(MY_WC_HASH STREQUAL "") if(MY_WC_HASH STREQUAL "")
# Local branch, not set to upstream. # Local branch, not set to upstream.
# Well, let's use HEAD for now # Well, let's use HEAD for now
execute_process(COMMAND git rev-parse --short=12 HEAD execute_process(COMMAND git rev-parse --short=12 HEAD
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE MY_WC_HASH OUTPUT_VARIABLE MY_WC_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
endif() endif()
endif() endif()
if(MY_WC_BRANCH MATCHES "^blender-v") if(MY_WC_BRANCH MATCHES "^blender-v")
set(MY_WC_BRANCH "master") set(MY_WC_BRANCH "master")
endif() endif()
unset(_git_below_check) unset(_git_below_check)
endif() endif()
execute_process(COMMAND git log -1 --format=%ct execute_process(COMMAND git log -1 --format=%ct
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE MY_WC_COMMIT_TIMESTAMP OUTPUT_VARIABLE MY_WC_COMMIT_TIMESTAMP
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
# May fail in rare cases # May fail in rare cases
if(MY_WC_COMMIT_TIMESTAMP STREQUAL "") if(MY_WC_COMMIT_TIMESTAMP STREQUAL "")
set(MY_WC_COMMIT_TIMESTAMP 0) set(MY_WC_COMMIT_TIMESTAMP 0)
endif() endif()
# Update GIT index before getting dirty files # Update GIT index before getting dirty files
execute_process(COMMAND git update-index -q --refresh execute_process(COMMAND git update-index -q --refresh
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND git diff-index --name-only HEAD -- execute_process(COMMAND git diff-index --name-only HEAD --
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE _git_changed_files OUTPUT_VARIABLE _git_changed_files
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT _git_changed_files STREQUAL "") if(NOT _git_changed_files STREQUAL "")
set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)") set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)")
else() else()
# Unpushed commits are also considered local modifications # Unpushed commits are also considered local modifications
execute_process(COMMAND git log @{u}.. execute_process(COMMAND git log @{u}..
WORKING_DIRECTORY ${SOURCE_DIR} WORKING_DIRECTORY ${SOURCE_DIR}
OUTPUT_VARIABLE _git_unpushed_log OUTPUT_VARIABLE _git_unpushed_log
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET) ERROR_QUIET)
if(NOT _git_unpushed_log STREQUAL "") if(NOT _git_unpushed_log STREQUAL "")
set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)") set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)")
endif() endif()
unset(_git_unpushed_log) unset(_git_unpushed_log)
endif() endif()
unset(_git_changed_files) unset(_git_changed_files)
endif() endif()
# BUILD_PLATFORM and BUILD_PLATFORM are taken from CMake # BUILD_PLATFORM and BUILD_PLATFORM are taken from CMake
# but BUILD_DATE and BUILD_TIME are platform dependent # but BUILD_DATE and BUILD_TIME are platform dependent
if(UNIX) if(UNIX)
if(NOT BUILD_DATE) if(NOT BUILD_DATE)
execute_process(COMMAND date "+%Y-%m-%d" OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND date "+%Y-%m-%d" OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
endif() endif()
if(NOT BUILD_TIME) if(NOT BUILD_TIME)
execute_process(COMMAND date "+%H:%M:%S" OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND date "+%H:%M:%S" OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
endif() endif()
elseif(WIN32) elseif(WIN32)
if(NOT BUILD_DATE) if(NOT BUILD_DATE)
execute_process(COMMAND cmd /c date /t OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND cmd /c date /t OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
endif() endif()
if(NOT BUILD_TIME) if(NOT BUILD_TIME)
execute_process(COMMAND cmd /c time /t OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND cmd /c time /t OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
endif() endif()
endif() endif()
# Write a file with the BUILD_HASH define # Write a file with the BUILD_HASH define
file(WRITE buildinfo.h.txt file(WRITE buildinfo.h.txt
"#define BUILD_HASH \"${MY_WC_HASH}\"\n" "#define BUILD_HASH \"${MY_WC_HASH}\"\n"
"#define BUILD_COMMIT_TIMESTAMP ${MY_WC_COMMIT_TIMESTAMP}\n" "#define BUILD_COMMIT_TIMESTAMP ${MY_WC_COMMIT_TIMESTAMP}\n"
"#define BUILD_BRANCH \"${MY_WC_BRANCH}\"\n" "#define BUILD_BRANCH \"${MY_WC_BRANCH}\"\n"
"#define BUILD_DATE \"${BUILD_DATE}\"\n" "#define BUILD_DATE \"${BUILD_DATE}\"\n"
"#define BUILD_TIME \"${BUILD_TIME}\"\n" "#define BUILD_TIME \"${BUILD_TIME}\"\n"
) )
# cleanup # cleanup

View File

@@ -55,12 +55,12 @@ set(WITH_MEM_JEMALLOC ON CACHE BOOL "" FORCE)
# platform dependent options # platform dependent options
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
set(WITH_JACK ON CACHE BOOL "" FORCE) set(WITH_JACK ON CACHE BOOL "" FORCE)
set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE) set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE)
elseif(WIN32) elseif(WIN32)
set(WITH_JACK OFF CACHE BOOL "" FORCE) set(WITH_JACK OFF CACHE BOOL "" FORCE)
elseif(APPLE) elseif(APPLE)
set(WITH_JACK ON CACHE BOOL "" FORCE) set(WITH_JACK ON CACHE BOOL "" FORCE)
# include("${CMAKE_CURRENT_SOURCE_DIR}/../platform/platform_apple_xcode.cmake") # include("${CMAKE_CURRENT_SOURCE_DIR}/../platform/platform_apple_xcode.cmake")
endif() endif()

View File

@@ -58,12 +58,12 @@ set(CYCLES_CUDA_BINARIES_ARCH sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_70;sm
# platform dependent options # platform dependent options
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
set(WITH_JACK ON CACHE BOOL "" FORCE) set(WITH_JACK ON CACHE BOOL "" FORCE)
set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE) set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE)
elseif(WIN32) elseif(WIN32)
set(WITH_JACK OFF CACHE BOOL "" FORCE) set(WITH_JACK OFF CACHE BOOL "" FORCE)
elseif(APPLE) elseif(APPLE)
set(WITH_JACK ON CACHE BOOL "" FORCE) set(WITH_JACK ON CACHE BOOL "" FORCE)
# include("${CMAKE_CURRENT_SOURCE_DIR}/../platform/platform_apple_xcode.cmake") # include("${CMAKE_CURRENT_SOURCE_DIR}/../platform/platform_apple_xcode.cmake")
endif() endif()

View File

@@ -32,6 +32,6 @@ set(WITH_OPENVDB OFF CACHE BOOL "" FORCE)
set(WITH_ALEMBIC OFF CACHE BOOL "" FORCE) set(WITH_ALEMBIC OFF CACHE BOOL "" FORCE)
if(CMAKE_SYSTEM_NAME MATCHES "Linux") if(CMAKE_SYSTEM_NAME MATCHES "Linux")
# jemalloc causes linking error on import, disable. # jemalloc causes linking error on import, disable.
set(WITH_MEM_JEMALLOC OFF CACHE BOOL "" FORCE) set(WITH_MEM_JEMALLOC OFF CACHE BOOL "" FORCE)
endif() endif()

View File

@@ -19,175 +19,175 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
macro(list_insert_after macro(list_insert_after
list_id item_check item_add list_id item_check item_add
) )
set(_index) set(_index)
list(FIND "${list_id}" "${item_check}" _index) list(FIND "${list_id}" "${item_check}" _index)
if("${_index}" MATCHES "-1") if("${_index}" MATCHES "-1")
message(FATAL_ERROR "'${list_id}' doesn't contain '${item_check}'") message(FATAL_ERROR "'${list_id}' doesn't contain '${item_check}'")
endif() endif()
math(EXPR _index "${_index} + 1") math(EXPR _index "${_index} + 1")
list(INSERT ${list_id} "${_index}" ${item_add}) list(INSERT ${list_id} "${_index}" ${item_add})
unset(_index) unset(_index)
endmacro() endmacro()
macro(list_insert_before macro(list_insert_before
list_id item_check item_add list_id item_check item_add
) )
set(_index) set(_index)
list(FIND "${list_id}" "${item_check}" _index) list(FIND "${list_id}" "${item_check}" _index)
if("${_index}" MATCHES "-1") if("${_index}" MATCHES "-1")
message(FATAL_ERROR "'${list_id}' doesn't contain '${item_check}'") message(FATAL_ERROR "'${list_id}' doesn't contain '${item_check}'")
endif() endif()
list(INSERT ${list_id} "${_index}" ${item_add}) list(INSERT ${list_id} "${_index}" ${item_add})
unset(_index) unset(_index)
endmacro() endmacro()
function(list_assert_duplicates function(list_assert_duplicates
list_id list_id
) )
# message(STATUS "list data: ${list_id}") # message(STATUS "list data: ${list_id}")
list(LENGTH list_id _len_before) list(LENGTH list_id _len_before)
list(REMOVE_DUPLICATES list_id) list(REMOVE_DUPLICATES list_id)
list(LENGTH list_id _len_after) list(LENGTH list_id _len_after)
# message(STATUS "list size ${_len_before} -> ${_len_after}") # message(STATUS "list size ${_len_before} -> ${_len_after}")
if(NOT _len_before EQUAL _len_after) if(NOT _len_before EQUAL _len_after)
message(FATAL_ERROR "duplicate found in list which should not contain duplicates: ${list_id}") message(FATAL_ERROR "duplicate found in list which should not contain duplicates: ${list_id}")
endif() endif()
unset(_len_before) unset(_len_before)
unset(_len_after) unset(_len_after)
endfunction() endfunction()
# foo_bar.spam --> foo_barMySuffix.spam # foo_bar.spam --> foo_barMySuffix.spam
macro(file_suffix macro(file_suffix
file_name_new file_name file_suffix file_name_new file_name file_suffix
) )
get_filename_component(_file_name_PATH ${file_name} PATH) get_filename_component(_file_name_PATH ${file_name} PATH)
get_filename_component(_file_name_NAME_WE ${file_name} NAME_WE) get_filename_component(_file_name_NAME_WE ${file_name} NAME_WE)
get_filename_component(_file_name_EXT ${file_name} EXT) get_filename_component(_file_name_EXT ${file_name} EXT)
set(${file_name_new} "${_file_name_PATH}/${_file_name_NAME_WE}${file_suffix}${_file_name_EXT}") set(${file_name_new} "${_file_name_PATH}/${_file_name_NAME_WE}${file_suffix}${_file_name_EXT}")
unset(_file_name_PATH) unset(_file_name_PATH)
unset(_file_name_NAME_WE) unset(_file_name_NAME_WE)
unset(_file_name_EXT) unset(_file_name_EXT)
endmacro() endmacro()
# useful for adding debug suffix to library lists: # useful for adding debug suffix to library lists:
# /somepath/foo.lib --> /somepath/foo_d.lib # /somepath/foo.lib --> /somepath/foo_d.lib
macro(file_list_suffix macro(file_list_suffix
fp_list_new fp_list fn_suffix fp_list_new fp_list fn_suffix
) )
# incase of empty list # incase of empty list
set(_fp) set(_fp)
set(_fp_suffixed) set(_fp_suffixed)
set(fp_list_new) set(fp_list_new)
foreach(_fp ${fp_list}) foreach(_fp ${fp_list})
file_suffix(_fp_suffixed "${_fp}" "${fn_suffix}") file_suffix(_fp_suffixed "${_fp}" "${fn_suffix}")
list(APPEND "${fp_list_new}" "${_fp_suffixed}") list(APPEND "${fp_list_new}" "${_fp_suffixed}")
endforeach() endforeach()
unset(_fp) unset(_fp)
unset(_fp_suffixed) unset(_fp_suffixed)
endmacro() endmacro()
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
macro(find_package_static) macro(find_package_static)
set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES}) set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES})
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
find_package(${ARGV}) find_package(${ARGV})
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back}) set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back})
unset(_cmake_find_library_suffixes_back) unset(_cmake_find_library_suffixes_back)
endmacro() endmacro()
macro(find_library_static) macro(find_library_static)
set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES}) set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES})
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
find_library(${ARGV}) find_library(${ARGV})
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back}) set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back})
unset(_cmake_find_library_suffixes_back) unset(_cmake_find_library_suffixes_back)
endmacro() endmacro()
endif() endif()
function(target_link_libraries_optimized function(target_link_libraries_optimized
TARGET TARGET
LIBS LIBS
) )
foreach(_LIB ${LIBS}) foreach(_LIB ${LIBS})
target_link_libraries(${TARGET} optimized "${_LIB}") target_link_libraries(${TARGET} optimized "${_LIB}")
endforeach() endforeach()
endfunction() endfunction()
function(target_link_libraries_debug function(target_link_libraries_debug
TARGET TARGET
LIBS LIBS
) )
foreach(_LIB ${LIBS}) foreach(_LIB ${LIBS})
target_link_libraries(${TARGET} debug "${_LIB}") target_link_libraries(${TARGET} debug "${_LIB}")
endforeach() endforeach()
endfunction() endfunction()
# Nicer makefiles with -I/1/foo/ instead of -I/1/2/3/../../foo/ # Nicer makefiles with -I/1/foo/ instead of -I/1/2/3/../../foo/
# use it instead of include_directories() # use it instead of include_directories()
function(blender_include_dirs function(blender_include_dirs
includes includes
) )
set(_ALL_INCS "") set(_ALL_INCS "")
foreach(_INC ${ARGV}) foreach(_INC ${ARGV})
get_filename_component(_ABS_INC ${_INC} ABSOLUTE) get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
list(APPEND _ALL_INCS ${_ABS_INC}) list(APPEND _ALL_INCS ${_ABS_INC})
# for checking for invalid includes, disable for regular use # for checking for invalid includes, disable for regular use
##if(NOT EXISTS "${_ABS_INC}/") ##if(NOT EXISTS "${_ABS_INC}/")
## message(FATAL_ERROR "Include not found: ${_ABS_INC}/") ## message(FATAL_ERROR "Include not found: ${_ABS_INC}/")
##endif() ##endif()
endforeach() endforeach()
include_directories(${_ALL_INCS}) include_directories(${_ALL_INCS})
endfunction() endfunction()
function(blender_include_dirs_sys function(blender_include_dirs_sys
includes includes
) )
set(_ALL_INCS "") set(_ALL_INCS "")
foreach(_INC ${ARGV}) foreach(_INC ${ARGV})
get_filename_component(_ABS_INC ${_INC} ABSOLUTE) get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
list(APPEND _ALL_INCS ${_ABS_INC}) list(APPEND _ALL_INCS ${_ABS_INC})
##if(NOT EXISTS "${_ABS_INC}/") ##if(NOT EXISTS "${_ABS_INC}/")
## message(FATAL_ERROR "Include not found: ${_ABS_INC}/") ## message(FATAL_ERROR "Include not found: ${_ABS_INC}/")
##endif() ##endif()
endforeach() endforeach()
include_directories(SYSTEM ${_ALL_INCS}) include_directories(SYSTEM ${_ALL_INCS})
endfunction() endfunction()
function(blender_source_group function(blender_source_group
sources sources
) )
# Group by location on disk # Group by location on disk
source_group("Source Files" FILES CMakeLists.txt) source_group("Source Files" FILES CMakeLists.txt)
foreach(_SRC ${sources}) foreach(_SRC ${sources})
get_filename_component(_SRC_EXT ${_SRC} EXT) get_filename_component(_SRC_EXT ${_SRC} EXT)
if((${_SRC_EXT} MATCHES ".h") OR if((${_SRC_EXT} MATCHES ".h") OR
(${_SRC_EXT} MATCHES ".hpp") OR (${_SRC_EXT} MATCHES ".hpp") OR
(${_SRC_EXT} MATCHES ".hh")) (${_SRC_EXT} MATCHES ".hh"))
set(GROUP_ID "Header Files") set(GROUP_ID "Header Files")
else() else()
set(GROUP_ID "Source Files") set(GROUP_ID "Source Files")
endif() endif()
source_group("${GROUP_ID}" FILES ${_SRC}) source_group("${GROUP_ID}" FILES ${_SRC})
endforeach() endforeach()
endfunction() endfunction()
@@ -199,412 +199,412 @@ endfunction()
# #
# Optionally takes an arg passed to set(), eg PARENT_SCOPE. # Optionally takes an arg passed to set(), eg PARENT_SCOPE.
macro(add_cc_flags_custom_test macro(add_cc_flags_custom_test
name name
) )
string(TOUPPER ${name} _name_upper) string(TOUPPER ${name} _name_upper)
if(DEFINED CMAKE_C_FLAGS_${_name_upper}) if(DEFINED CMAKE_C_FLAGS_${_name_upper})
message(STATUS "Using custom CFLAGS: CMAKE_C_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"") message(STATUS "Using custom CFLAGS: CMAKE_C_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${_name_upper}}" ${ARGV1}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${_name_upper}}" ${ARGV1})
endif() endif()
if(DEFINED CMAKE_CXX_FLAGS_${_name_upper}) if(DEFINED CMAKE_CXX_FLAGS_${_name_upper})
message(STATUS "Using custom CXXFLAGS: CMAKE_CXX_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"") message(STATUS "Using custom CXXFLAGS: CMAKE_CXX_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${_name_upper}}" ${ARGV1}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${_name_upper}}" ${ARGV1})
endif() endif()
unset(_name_upper) unset(_name_upper)
endmacro() endmacro()
# only MSVC uses SOURCE_GROUP # only MSVC uses SOURCE_GROUP
function(blender_add_lib__impl function(blender_add_lib__impl
name name
sources sources
includes includes
includes_sys includes_sys
library_deps library_deps
) )
# message(STATUS "Configuring library ${name}") # message(STATUS "Configuring library ${name}")
# include_directories(${includes}) # include_directories(${includes})
# include_directories(SYSTEM ${includes_sys}) # include_directories(SYSTEM ${includes_sys})
blender_include_dirs("${includes}") blender_include_dirs("${includes}")
blender_include_dirs_sys("${includes_sys}") blender_include_dirs_sys("${includes_sys}")
add_library(${name} ${sources}) add_library(${name} ${sources})
if (NOT "${library_deps}" STREQUAL "") if (NOT "${library_deps}" STREQUAL "")
target_link_libraries(${name} "${library_deps}") target_link_libraries(${name} "${library_deps}")
endif() endif()
# works fine without having the includes # works fine without having the includes
# listed is helpful for IDE's (QtCreator/MSVC) # listed is helpful for IDE's (QtCreator/MSVC)
blender_source_group("${sources}") blender_source_group("${sources}")
#if enabled, set the FOLDER property for visual studio projects #if enabled, set the FOLDER property for visual studio projects
if(WINDOWS_USE_VISUAL_STUDIO_FOLDERS) if(WINDOWS_USE_VISUAL_STUDIO_FOLDERS)
get_filename_component(FolderDir ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) get_filename_component(FolderDir ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY)
string(REPLACE ${CMAKE_SOURCE_DIR} "" FolderDir ${FolderDir}) string(REPLACE ${CMAKE_SOURCE_DIR} "" FolderDir ${FolderDir})
set_target_properties(${name} PROPERTIES FOLDER ${FolderDir}) set_target_properties(${name} PROPERTIES FOLDER ${FolderDir})
endif() endif()
list_assert_duplicates("${sources}") list_assert_duplicates("${sources}")
list_assert_duplicates("${includes}") list_assert_duplicates("${includes}")
# Not for system includes because they can resolve to the same path # Not for system includes because they can resolve to the same path
# list_assert_duplicates("${includes_sys}") # list_assert_duplicates("${includes_sys}")
endfunction() endfunction()
function(blender_add_lib_nolist function(blender_add_lib_nolist
name name
sources sources
includes includes
includes_sys includes_sys
library_deps library_deps
) )
add_cc_flags_custom_test(${name} PARENT_SCOPE) add_cc_flags_custom_test(${name} PARENT_SCOPE)
blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}") blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}")
endfunction() endfunction()
function(blender_add_lib function(blender_add_lib
name name
sources sources
includes includes
includes_sys includes_sys
library_deps library_deps
) )
add_cc_flags_custom_test(${name} PARENT_SCOPE) add_cc_flags_custom_test(${name} PARENT_SCOPE)
blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}") blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}")
set_property(GLOBAL APPEND PROPERTY BLENDER_LINK_LIBS ${name}) set_property(GLOBAL APPEND PROPERTY BLENDER_LINK_LIBS ${name})
endfunction() endfunction()
function(SETUP_LIBDIRS) function(SETUP_LIBDIRS)
# NOTE: For all new libraries, use absolute library paths. # NOTE: For all new libraries, use absolute library paths.
# This should eventually be phased out. # This should eventually be phased out.
if(NOT MSVC) if(NOT MSVC)
link_directories(${JPEG_LIBPATH} ${PNG_LIBPATH} ${ZLIB_LIBPATH} ${FREETYPE_LIBPATH}) link_directories(${JPEG_LIBPATH} ${PNG_LIBPATH} ${ZLIB_LIBPATH} ${FREETYPE_LIBPATH})
if(WITH_PYTHON) # AND NOT WITH_PYTHON_MODULE # WIN32 needs if(WITH_PYTHON) # AND NOT WITH_PYTHON_MODULE # WIN32 needs
link_directories(${PYTHON_LIBPATH}) link_directories(${PYTHON_LIBPATH})
endif() endif()
if(WITH_SDL AND NOT WITH_SDL_DYNLOAD) if(WITH_SDL AND NOT WITH_SDL_DYNLOAD)
link_directories(${SDL_LIBPATH}) link_directories(${SDL_LIBPATH})
endif() endif()
if(WITH_CODEC_FFMPEG) if(WITH_CODEC_FFMPEG)
link_directories(${FFMPEG_LIBPATH}) link_directories(${FFMPEG_LIBPATH})
endif() endif()
if(WITH_IMAGE_OPENEXR) if(WITH_IMAGE_OPENEXR)
link_directories(${OPENEXR_LIBPATH}) link_directories(${OPENEXR_LIBPATH})
endif() endif()
if(WITH_IMAGE_TIFF) if(WITH_IMAGE_TIFF)
link_directories(${TIFF_LIBPATH}) link_directories(${TIFF_LIBPATH})
endif() endif()
if(WITH_BOOST) if(WITH_BOOST)
link_directories(${BOOST_LIBPATH}) link_directories(${BOOST_LIBPATH})
endif() endif()
if(WITH_OPENIMAGEIO) if(WITH_OPENIMAGEIO)
link_directories(${OPENIMAGEIO_LIBPATH}) link_directories(${OPENIMAGEIO_LIBPATH})
endif() endif()
if(WITH_OPENCOLORIO) if(WITH_OPENCOLORIO)
link_directories(${OPENCOLORIO_LIBPATH}) link_directories(${OPENCOLORIO_LIBPATH})
endif() endif()
if(WITH_OPENVDB) if(WITH_OPENVDB)
link_directories(${OPENVDB_LIBPATH}) link_directories(${OPENVDB_LIBPATH})
endif() endif()
if(WITH_OPENAL) if(WITH_OPENAL)
link_directories(${OPENAL_LIBPATH}) link_directories(${OPENAL_LIBPATH})
endif() endif()
if(WITH_JACK AND NOT WITH_JACK_DYNLOAD) if(WITH_JACK AND NOT WITH_JACK_DYNLOAD)
link_directories(${JACK_LIBPATH}) link_directories(${JACK_LIBPATH})
endif() endif()
if(WITH_CODEC_SNDFILE) if(WITH_CODEC_SNDFILE)
link_directories(${LIBSNDFILE_LIBPATH}) link_directories(${LIBSNDFILE_LIBPATH})
endif() endif()
if(WITH_FFTW3) if(WITH_FFTW3)
link_directories(${FFTW3_LIBPATH}) link_directories(${FFTW3_LIBPATH})
endif() endif()
if(WITH_OPENCOLLADA) if(WITH_OPENCOLLADA)
link_directories(${OPENCOLLADA_LIBPATH}) link_directories(${OPENCOLLADA_LIBPATH})
## Never set ## Never set
# link_directories(${PCRE_LIBPATH}) # link_directories(${PCRE_LIBPATH})
# link_directories(${EXPAT_LIBPATH}) # link_directories(${EXPAT_LIBPATH})
endif() endif()
if(WITH_LLVM) if(WITH_LLVM)
link_directories(${LLVM_LIBPATH}) link_directories(${LLVM_LIBPATH})
endif() endif()
if(WITH_ALEMBIC) if(WITH_ALEMBIC)
link_directories(${ALEMBIC_LIBPATH}) link_directories(${ALEMBIC_LIBPATH})
link_directories(${HDF5_LIBPATH}) link_directories(${HDF5_LIBPATH})
endif() endif()
if(WIN32 AND NOT UNIX) if(WIN32 AND NOT UNIX)
link_directories(${PTHREADS_LIBPATH}) link_directories(${PTHREADS_LIBPATH})
endif() endif()
endif() endif()
endfunction() endfunction()
macro(setup_platform_linker_flags) macro(setup_platform_linker_flags)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}")
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}") set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}")
endmacro() endmacro()
function(setup_liblinks function(setup_liblinks
target target
) )
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE)
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE) set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE)
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE) set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE)
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE) set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE)
set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "${CMAKE_MODULE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE) set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "${CMAKE_MODULE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE)
# jemalloc must be early in the list, to be before pthread (see T57998) # jemalloc must be early in the list, to be before pthread (see T57998)
if(WITH_MEM_JEMALLOC) if(WITH_MEM_JEMALLOC)
target_link_libraries(${target} ${JEMALLOC_LIBRARIES}) target_link_libraries(${target} ${JEMALLOC_LIBRARIES})
endif() endif()
target_link_libraries( target_link_libraries(
${target} ${target}
${PNG_LIBRARIES} ${PNG_LIBRARIES}
${FREETYPE_LIBRARY} ${FREETYPE_LIBRARY}
) )
# since we are using the local libs for python when compiling msvc projects, we need to add _d when compiling debug versions # since we are using the local libs for python when compiling msvc projects, we need to add _d when compiling debug versions
if(WITH_PYTHON) # AND NOT WITH_PYTHON_MODULE # WIN32 needs if(WITH_PYTHON) # AND NOT WITH_PYTHON_MODULE # WIN32 needs
target_link_libraries(${target} ${PYTHON_LINKFLAGS}) target_link_libraries(${target} ${PYTHON_LINKFLAGS})
if(WIN32 AND NOT UNIX) if(WIN32 AND NOT UNIX)
file_list_suffix(PYTHON_LIBRARIES_DEBUG "${PYTHON_LIBRARIES}" "_d") file_list_suffix(PYTHON_LIBRARIES_DEBUG "${PYTHON_LIBRARIES}" "_d")
target_link_libraries_debug(${target} "${PYTHON_LIBRARIES_DEBUG}") target_link_libraries_debug(${target} "${PYTHON_LIBRARIES_DEBUG}")
target_link_libraries_optimized(${target} "${PYTHON_LIBRARIES}") target_link_libraries_optimized(${target} "${PYTHON_LIBRARIES}")
unset(PYTHON_LIBRARIES_DEBUG) unset(PYTHON_LIBRARIES_DEBUG)
else() else()
target_link_libraries(${target} ${PYTHON_LIBRARIES}) target_link_libraries(${target} ${PYTHON_LIBRARIES})
endif() endif()
endif() endif()
if(WITH_LZO AND WITH_SYSTEM_LZO) if(WITH_LZO AND WITH_SYSTEM_LZO)
target_link_libraries(${target} ${LZO_LIBRARIES}) target_link_libraries(${target} ${LZO_LIBRARIES})
endif() endif()
if(WITH_SYSTEM_GLEW) if(WITH_SYSTEM_GLEW)
target_link_libraries(${target} ${BLENDER_GLEW_LIBRARIES}) target_link_libraries(${target} ${BLENDER_GLEW_LIBRARIES})
endif() endif()
if(WITH_BULLET AND WITH_SYSTEM_BULLET) if(WITH_BULLET AND WITH_SYSTEM_BULLET)
target_link_libraries(${target} ${BULLET_LIBRARIES}) target_link_libraries(${target} ${BULLET_LIBRARIES})
endif() endif()
if(WITH_AUDASPACE AND WITH_SYSTEM_AUDASPACE) if(WITH_AUDASPACE AND WITH_SYSTEM_AUDASPACE)
target_link_libraries(${target} ${AUDASPACE_C_LIBRARIES} ${AUDASPACE_PY_LIBRARIES}) target_link_libraries(${target} ${AUDASPACE_C_LIBRARIES} ${AUDASPACE_PY_LIBRARIES})
endif() endif()
if(WITH_OPENAL) if(WITH_OPENAL)
target_link_libraries(${target} ${OPENAL_LIBRARY}) target_link_libraries(${target} ${OPENAL_LIBRARY})
endif() endif()
if(WITH_FFTW3) if(WITH_FFTW3)
target_link_libraries(${target} ${FFTW3_LIBRARIES}) target_link_libraries(${target} ${FFTW3_LIBRARIES})
endif() endif()
if(WITH_JACK AND NOT WITH_JACK_DYNLOAD) if(WITH_JACK AND NOT WITH_JACK_DYNLOAD)
target_link_libraries(${target} ${JACK_LIBRARIES}) target_link_libraries(${target} ${JACK_LIBRARIES})
endif() endif()
if(WITH_CODEC_SNDFILE) if(WITH_CODEC_SNDFILE)
target_link_libraries(${target} ${LIBSNDFILE_LIBRARIES}) target_link_libraries(${target} ${LIBSNDFILE_LIBRARIES})
endif() endif()
if(WITH_SDL AND NOT WITH_SDL_DYNLOAD) if(WITH_SDL AND NOT WITH_SDL_DYNLOAD)
target_link_libraries(${target} ${SDL_LIBRARY}) target_link_libraries(${target} ${SDL_LIBRARY})
endif() endif()
if(WITH_CYCLES_OSL) if(WITH_CYCLES_OSL)
target_link_libraries(${target} ${OSL_LIBRARIES}) target_link_libraries(${target} ${OSL_LIBRARIES})
endif() endif()
if(WITH_OPENVDB) if(WITH_OPENVDB)
target_link_libraries(${target} ${OPENVDB_LIBRARIES} ${TBB_LIBRARIES} ${BLOSC_LIBRARIES}) target_link_libraries(${target} ${OPENVDB_LIBRARIES} ${TBB_LIBRARIES} ${BLOSC_LIBRARIES})
endif() endif()
if(WITH_OPENIMAGEIO) if(WITH_OPENIMAGEIO)
target_link_libraries(${target} ${OPENIMAGEIO_LIBRARIES}) target_link_libraries(${target} ${OPENIMAGEIO_LIBRARIES})
endif() endif()
if(WITH_OPENCOLORIO) if(WITH_OPENCOLORIO)
target_link_libraries(${target} ${OPENCOLORIO_LIBRARIES}) target_link_libraries(${target} ${OPENCOLORIO_LIBRARIES})
endif() endif()
if(WITH_OPENSUBDIV) if(WITH_OPENSUBDIV)
target_link_libraries(${target} ${OPENSUBDIV_LIBRARIES}) target_link_libraries(${target} ${OPENSUBDIV_LIBRARIES})
endif() endif()
if(WITH_CYCLES_EMBREE) if(WITH_CYCLES_EMBREE)
target_link_libraries(${target} ${EMBREE_LIBRARIES}) target_link_libraries(${target} ${EMBREE_LIBRARIES})
endif() endif()
if(WITH_BOOST) if(WITH_BOOST)
target_link_libraries(${target} ${BOOST_LIBRARIES}) target_link_libraries(${target} ${BOOST_LIBRARIES})
if(Boost_USE_STATIC_LIBS AND Boost_USE_ICU) if(Boost_USE_STATIC_LIBS AND Boost_USE_ICU)
target_link_libraries(${target} ${ICU_LIBRARIES}) target_link_libraries(${target} ${ICU_LIBRARIES})
endif() endif()
endif() endif()
target_link_libraries(${target} ${JPEG_LIBRARIES}) target_link_libraries(${target} ${JPEG_LIBRARIES})
if(WITH_ALEMBIC) if(WITH_ALEMBIC)
target_link_libraries(${target} ${ALEMBIC_LIBRARIES} ${HDF5_LIBRARIES}) target_link_libraries(${target} ${ALEMBIC_LIBRARIES} ${HDF5_LIBRARIES})
endif() endif()
if(WITH_IMAGE_TIFF) if(WITH_IMAGE_TIFF)
target_link_libraries(${target} ${TIFF_LIBRARY}) target_link_libraries(${target} ${TIFF_LIBRARY})
endif() endif()
if(WITH_IMAGE_OPENEXR) if(WITH_IMAGE_OPENEXR)
target_link_libraries(${target} ${OPENEXR_LIBRARIES}) target_link_libraries(${target} ${OPENEXR_LIBRARIES})
endif() endif()
if(WITH_IMAGE_OPENJPEG) if(WITH_IMAGE_OPENJPEG)
target_link_libraries(${target} ${OPENJPEG_LIBRARIES}) target_link_libraries(${target} ${OPENJPEG_LIBRARIES})
endif() endif()
if(WITH_CODEC_FFMPEG) if(WITH_CODEC_FFMPEG)
target_link_libraries(${target} ${FFMPEG_LIBRARIES}) target_link_libraries(${target} ${FFMPEG_LIBRARIES})
endif() endif()
if(WITH_OPENCOLLADA) if(WITH_OPENCOLLADA)
if(WIN32 AND NOT UNIX) if(WIN32 AND NOT UNIX)
file_list_suffix(OPENCOLLADA_LIBRARIES_DEBUG "${OPENCOLLADA_LIBRARIES}" "_d") file_list_suffix(OPENCOLLADA_LIBRARIES_DEBUG "${OPENCOLLADA_LIBRARIES}" "_d")
target_link_libraries_debug(${target} "${OPENCOLLADA_LIBRARIES_DEBUG}") target_link_libraries_debug(${target} "${OPENCOLLADA_LIBRARIES_DEBUG}")
target_link_libraries_optimized(${target} "${OPENCOLLADA_LIBRARIES}") target_link_libraries_optimized(${target} "${OPENCOLLADA_LIBRARIES}")
unset(OPENCOLLADA_LIBRARIES_DEBUG) unset(OPENCOLLADA_LIBRARIES_DEBUG)
file_list_suffix(PCRE_LIBRARIES_DEBUG "${PCRE_LIBRARIES}" "_d") file_list_suffix(PCRE_LIBRARIES_DEBUG "${PCRE_LIBRARIES}" "_d")
target_link_libraries_debug(${target} "${PCRE_LIBRARIES_DEBUG}") target_link_libraries_debug(${target} "${PCRE_LIBRARIES_DEBUG}")
target_link_libraries_optimized(${target} "${PCRE_LIBRARIES}") target_link_libraries_optimized(${target} "${PCRE_LIBRARIES}")
unset(PCRE_LIBRARIES_DEBUG) unset(PCRE_LIBRARIES_DEBUG)
if(EXPAT_LIB) if(EXPAT_LIB)
file_list_suffix(EXPAT_LIB_DEBUG "${EXPAT_LIB}" "_d") file_list_suffix(EXPAT_LIB_DEBUG "${EXPAT_LIB}" "_d")
target_link_libraries_debug(${target} "${EXPAT_LIB_DEBUG}") target_link_libraries_debug(${target} "${EXPAT_LIB_DEBUG}")
target_link_libraries_optimized(${target} "${EXPAT_LIB}") target_link_libraries_optimized(${target} "${EXPAT_LIB}")
unset(EXPAT_LIB_DEBUG) unset(EXPAT_LIB_DEBUG)
endif() endif()
else() else()
target_link_libraries( target_link_libraries(
${target} ${target}
${OPENCOLLADA_LIBRARIES} ${OPENCOLLADA_LIBRARIES}
${PCRE_LIBRARIES} ${PCRE_LIBRARIES}
${XML2_LIBRARIES} ${XML2_LIBRARIES}
${EXPAT_LIB} ${EXPAT_LIB}
) )
endif() endif()
endif() endif()
if(WITH_MOD_CLOTH_ELTOPO) if(WITH_MOD_CLOTH_ELTOPO)
target_link_libraries(${target} ${LAPACK_LIBRARIES}) target_link_libraries(${target} ${LAPACK_LIBRARIES})
endif() endif()
if(WITH_LLVM) if(WITH_LLVM)
target_link_libraries(${target} ${LLVM_LIBRARY}) target_link_libraries(${target} ${LLVM_LIBRARY})
endif() endif()
if(WIN32 AND NOT UNIX) if(WIN32 AND NOT UNIX)
target_link_libraries(${target} ${PTHREADS_LIBRARIES}) target_link_libraries(${target} ${PTHREADS_LIBRARIES})
endif() endif()
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
if(WITH_OPENMP_STATIC) if(WITH_OPENMP_STATIC)
target_link_libraries(${target} ${OpenMP_LIBRARIES}) target_link_libraries(${target} ${OpenMP_LIBRARIES})
endif() endif()
if(WITH_INPUT_NDOF) if(WITH_INPUT_NDOF)
target_link_libraries(${target} ${NDOF_LIBRARIES}) target_link_libraries(${target} ${NDOF_LIBRARIES})
endif() endif()
endif() endif()
if(WITH_SYSTEM_GLOG) if(WITH_SYSTEM_GLOG)
target_link_libraries(${target} ${GLOG_LIBRARIES}) target_link_libraries(${target} ${GLOG_LIBRARIES})
endif() endif()
if(WITH_SYSTEM_GFLAGS) if(WITH_SYSTEM_GFLAGS)
target_link_libraries(${target} ${GFLAGS_LIBRARIES}) target_link_libraries(${target} ${GFLAGS_LIBRARIES})
endif() endif()
# We put CLEW and CUEW here because OPENSUBDIV_LIBRARIES depends on them.. # We put CLEW and CUEW here because OPENSUBDIV_LIBRARIES depends on them..
if(WITH_CYCLES OR WITH_COMPOSITOR OR WITH_OPENSUBDIV) if(WITH_CYCLES OR WITH_COMPOSITOR OR WITH_OPENSUBDIV)
target_link_libraries(${target} "extern_clew") target_link_libraries(${target} "extern_clew")
if(WITH_CUDA_DYNLOAD) if(WITH_CUDA_DYNLOAD)
target_link_libraries(${target} "extern_cuew") target_link_libraries(${target} "extern_cuew")
else() else()
target_link_libraries(${target} ${CUDA_CUDA_LIBRARY}) target_link_libraries(${target} ${CUDA_CUDA_LIBRARY})
endif() endif()
endif() endif()
target_link_libraries( target_link_libraries(
${target} ${target}
${ZLIB_LIBRARIES} ${ZLIB_LIBRARIES}
) )
#system libraries with no dependencies such as platform link libs or opengl should go last #system libraries with no dependencies such as platform link libs or opengl should go last
target_link_libraries(${target} target_link_libraries(${target}
${BLENDER_GL_LIBRARIES}) ${BLENDER_GL_LIBRARIES})
#target_link_libraries(${target} ${PLATFORM_LINKLIBS} ${CMAKE_DL_LIBS}) #target_link_libraries(${target} ${PLATFORM_LINKLIBS} ${CMAKE_DL_LIBS})
target_link_libraries(${target} ${PLATFORM_LINKLIBS}) target_link_libraries(${target} ${PLATFORM_LINKLIBS})
endfunction() endfunction()
macro(TEST_SSE_SUPPORT macro(TEST_SSE_SUPPORT
_sse_flags _sse_flags
_sse2_flags) _sse2_flags)
include(CheckCSourceRuns) include(CheckCSourceRuns)
# message(STATUS "Detecting SSE support") # message(STATUS "Detecting SSE support")
if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_C_COMPILER_ID MATCHES "Clang")) if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
set(${_sse_flags} "-msse") set(${_sse_flags} "-msse")
set(${_sse2_flags} "-msse2") set(${_sse2_flags} "-msse2")
elseif(MSVC) elseif(MSVC)
# x86_64 has this auto enabled # x86_64 has this auto enabled
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(${_sse_flags} "") set(${_sse_flags} "")
set(${_sse2_flags} "") set(${_sse2_flags} "")
else() else()
set(${_sse_flags} "/arch:SSE") set(${_sse_flags} "/arch:SSE")
set(${_sse2_flags} "/arch:SSE2") set(${_sse2_flags} "/arch:SSE2")
endif() endif()
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel") elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
set(${_sse_flags} "") # icc defaults to -msse set(${_sse_flags} "") # icc defaults to -msse
set(${_sse2_flags} "") # icc defaults to -msse2 set(${_sse2_flags} "") # icc defaults to -msse2
else() else()
message(WARNING "SSE flags for this compiler: '${CMAKE_C_COMPILER_ID}' not known") message(WARNING "SSE flags for this compiler: '${CMAKE_C_COMPILER_ID}' not known")
set(${_sse_flags}) set(${_sse_flags})
set(${_sse2_flags}) set(${_sse2_flags})
endif() endif()
set(CMAKE_REQUIRED_FLAGS "${${_sse_flags}} ${${_sse2_flags}}") set(CMAKE_REQUIRED_FLAGS "${${_sse_flags}} ${${_sse2_flags}}")
if(NOT DEFINED SUPPORT_SSE_BUILD) if(NOT DEFINED SUPPORT_SSE_BUILD)
# result cached # result cached
check_c_source_runs(" check_c_source_runs("
#include <xmmintrin.h> #include <xmmintrin.h>
int main(void) { __m128 v = _mm_setzero_ps(); return 0; }" int main(void) { __m128 v = _mm_setzero_ps(); return 0; }"
SUPPORT_SSE_BUILD) SUPPORT_SSE_BUILD)
if(SUPPORT_SSE_BUILD) if(SUPPORT_SSE_BUILD)
message(STATUS "SSE Support: detected.") message(STATUS "SSE Support: detected.")
else() else()
message(STATUS "SSE Support: missing.") message(STATUS "SSE Support: missing.")
endif() endif()
endif() endif()
if(NOT DEFINED SUPPORT_SSE2_BUILD) if(NOT DEFINED SUPPORT_SSE2_BUILD)
# result cached # result cached
check_c_source_runs(" check_c_source_runs("
#include <emmintrin.h> #include <emmintrin.h>
int main(void) { __m128d v = _mm_setzero_pd(); return 0; }" int main(void) { __m128d v = _mm_setzero_pd(); return 0; }"
SUPPORT_SSE2_BUILD) SUPPORT_SSE2_BUILD)
if(SUPPORT_SSE2_BUILD) if(SUPPORT_SSE2_BUILD)
message(STATUS "SSE2 Support: detected.") message(STATUS "SSE2 Support: detected.")
else() else()
message(STATUS "SSE2 Support: missing.") message(STATUS "SSE2 Support: missing.")
endif() endif()
endif() endif()
unset(CMAKE_REQUIRED_FLAGS) unset(CMAKE_REQUIRED_FLAGS)
endmacro() endmacro()
# Only print message if running CMake first time # Only print message if running CMake first time
macro(message_first_run) macro(message_first_run)
if(FIRST_RUN) if(FIRST_RUN)
message(${ARGV}) message(${ARGV})
endif() endif()
endmacro() endmacro()
# when we have warnings as errors applied globally this # when we have warnings as errors applied globally this
@@ -612,252 +612,252 @@ endmacro()
# utility macro # utility macro
macro(remove_cc_flag macro(remove_cc_flag
_flag) _flag)
foreach(flag ${ARGV}) foreach(flag ${ARGV})
string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}") string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}") string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}")
string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}") string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}") string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
endforeach() endforeach()
unset(flag) unset(flag)
endmacro() endmacro()
macro(add_c_flag macro(add_c_flag
flag) flag)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
endmacro() endmacro()
macro(add_cxx_flag macro(add_cxx_flag
flag) flag)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
endmacro() endmacro()
macro(remove_strict_flags) macro(remove_strict_flags)
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
remove_cc_flag( remove_cc_flag(
"-Wstrict-prototypes" "-Wstrict-prototypes"
"-Wmissing-prototypes" "-Wmissing-prototypes"
"-Wmissing-declarations" "-Wmissing-declarations"
"-Wmissing-format-attribute" "-Wmissing-format-attribute"
"-Wunused-local-typedefs" "-Wunused-local-typedefs"
"-Wunused-macros" "-Wunused-macros"
"-Wunused-parameter" "-Wunused-parameter"
"-Wwrite-strings" "-Wwrite-strings"
"-Wredundant-decls" "-Wredundant-decls"
"-Wundef" "-Wundef"
"-Wshadow" "-Wshadow"
"-Wdouble-promotion" "-Wdouble-promotion"
"-Wold-style-definition" "-Wold-style-definition"
"-Werror=[^ ]+" "-Werror=[^ ]+"
"-Werror" "-Werror"
) )
# negate flags implied by '-Wall' # negate flags implied by '-Wall'
add_c_flag("${C_REMOVE_STRICT_FLAGS}") add_c_flag("${C_REMOVE_STRICT_FLAGS}")
add_cxx_flag("${CXX_REMOVE_STRICT_FLAGS}") add_cxx_flag("${CXX_REMOVE_STRICT_FLAGS}")
endif() endif()
if(CMAKE_C_COMPILER_ID MATCHES "Clang") if(CMAKE_C_COMPILER_ID MATCHES "Clang")
remove_cc_flag( remove_cc_flag(
"-Wunused-parameter" "-Wunused-parameter"
"-Wunused-variable" "-Wunused-variable"
"-Werror=[^ ]+" "-Werror=[^ ]+"
"-Werror" "-Werror"
) )
# negate flags implied by '-Wall' # negate flags implied by '-Wall'
add_c_flag("${C_REMOVE_STRICT_FLAGS}") add_c_flag("${C_REMOVE_STRICT_FLAGS}")
add_cxx_flag("${CXX_REMOVE_STRICT_FLAGS}") add_cxx_flag("${CXX_REMOVE_STRICT_FLAGS}")
endif() endif()
if(MSVC) if(MSVC)
# TODO # TODO
endif() endif()
endmacro() endmacro()
macro(remove_extra_strict_flags) macro(remove_extra_strict_flags)
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
remove_cc_flag( remove_cc_flag(
"-Wunused-parameter" "-Wunused-parameter"
) )
endif() endif()
if(CMAKE_C_COMPILER_ID MATCHES "Clang") if(CMAKE_C_COMPILER_ID MATCHES "Clang")
remove_cc_flag( remove_cc_flag(
"-Wunused-parameter" "-Wunused-parameter"
) )
endif() endif()
if(MSVC) if(MSVC)
# TODO # TODO
endif() endif()
endmacro() endmacro()
# note, we can only append flags on a single file so we need to negate the options. # note, we can only append flags on a single file so we need to negate the options.
# at the moment we cant shut up ffmpeg deprecations, so use this, but will # at the moment we cant shut up ffmpeg deprecations, so use this, but will
# probably add more removals here. # probably add more removals here.
macro(remove_strict_c_flags_file macro(remove_strict_c_flags_file
filenames) filenames)
foreach(_SOURCE ${ARGV}) foreach(_SOURCE ${ARGV})
if(CMAKE_COMPILER_IS_GNUCC OR if(CMAKE_COMPILER_IS_GNUCC OR
(CMAKE_C_COMPILER_ID MATCHES "Clang")) (CMAKE_C_COMPILER_ID MATCHES "Clang"))
set_source_files_properties(${_SOURCE} set_source_files_properties(${_SOURCE}
PROPERTIES PROPERTIES
COMPILE_FLAGS "${C_REMOVE_STRICT_FLAGS}" COMPILE_FLAGS "${C_REMOVE_STRICT_FLAGS}"
) )
endif() endif()
if(MSVC) if(MSVC)
# TODO # TODO
endif() endif()
endforeach() endforeach()
unset(_SOURCE) unset(_SOURCE)
endmacro() endmacro()
macro(remove_strict_cxx_flags_file macro(remove_strict_cxx_flags_file
filenames) filenames)
remove_strict_c_flags_file(${filenames} ${ARHV}) remove_strict_c_flags_file(${filenames} ${ARHV})
foreach(_SOURCE ${ARGV}) foreach(_SOURCE ${ARGV})
if(CMAKE_COMPILER_IS_GNUCC OR if(CMAKE_COMPILER_IS_GNUCC OR
(CMAKE_CXX_COMPILER_ID MATCHES "Clang")) (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
set_source_files_properties(${_SOURCE} set_source_files_properties(${_SOURCE}
PROPERTIES PROPERTIES
COMPILE_FLAGS "${CXX_REMOVE_STRICT_FLAGS}" COMPILE_FLAGS "${CXX_REMOVE_STRICT_FLAGS}"
) )
endif() endif()
if(MSVC) if(MSVC)
# TODO # TODO
endif() endif()
endforeach() endforeach()
unset(_SOURCE) unset(_SOURCE)
endmacro() endmacro()
# External libs may need 'signed char' to be default. # External libs may need 'signed char' to be default.
macro(remove_cc_flag_unsigned_char) macro(remove_cc_flag_unsigned_char)
if(CMAKE_COMPILER_IS_GNUCC OR if(CMAKE_COMPILER_IS_GNUCC OR
(CMAKE_C_COMPILER_ID MATCHES "Clang") OR (CMAKE_C_COMPILER_ID MATCHES "Clang") OR
(CMAKE_C_COMPILER_ID MATCHES "Intel")) (CMAKE_C_COMPILER_ID MATCHES "Intel"))
remove_cc_flag("-funsigned-char") remove_cc_flag("-funsigned-char")
elseif(MSVC) elseif(MSVC)
remove_cc_flag("/J") remove_cc_flag("/J")
else() else()
message(WARNING message(WARNING
"Compiler '${CMAKE_C_COMPILER_ID}' failed to disable 'unsigned char' flag." "Compiler '${CMAKE_C_COMPILER_ID}' failed to disable 'unsigned char' flag."
"Build files need updating." "Build files need updating."
) )
endif() endif()
endmacro() endmacro()
function(ADD_CHECK_C_COMPILER_FLAG function(ADD_CHECK_C_COMPILER_FLAG
_CFLAGS _CFLAGS
_CACHE_VAR _CACHE_VAR
_FLAG _FLAG
) )
include(CheckCCompilerFlag) include(CheckCCompilerFlag)
CHECK_C_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}") CHECK_C_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}")
if(${_CACHE_VAR}) if(${_CACHE_VAR})
# message(STATUS "Using CFLAG: ${_FLAG}") # message(STATUS "Using CFLAG: ${_FLAG}")
set(${_CFLAGS} "${${_CFLAGS}} ${_FLAG}" PARENT_SCOPE) set(${_CFLAGS} "${${_CFLAGS}} ${_FLAG}" PARENT_SCOPE)
else() else()
message(STATUS "Unsupported CFLAG: ${_FLAG}") message(STATUS "Unsupported CFLAG: ${_FLAG}")
endif() endif()
endfunction() endfunction()
function(ADD_CHECK_CXX_COMPILER_FLAG function(ADD_CHECK_CXX_COMPILER_FLAG
_CXXFLAGS _CXXFLAGS
_CACHE_VAR _CACHE_VAR
_FLAG _FLAG
) )
include(CheckCXXCompilerFlag) include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}") CHECK_CXX_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}")
if(${_CACHE_VAR}) if(${_CACHE_VAR})
# message(STATUS "Using CXXFLAG: ${_FLAG}") # message(STATUS "Using CXXFLAG: ${_FLAG}")
set(${_CXXFLAGS} "${${_CXXFLAGS}} ${_FLAG}" PARENT_SCOPE) set(${_CXXFLAGS} "${${_CXXFLAGS}} ${_FLAG}" PARENT_SCOPE)
else() else()
message(STATUS "Unsupported CXXFLAG: ${_FLAG}") message(STATUS "Unsupported CXXFLAG: ${_FLAG}")
endif() endif()
endfunction() endfunction()
function(get_blender_version) function(get_blender_version)
# extracts header vars and defines them in the parent scope: # extracts header vars and defines them in the parent scope:
# #
# - BLENDER_VERSION (major.minor) # - BLENDER_VERSION (major.minor)
# - BLENDER_VERSION_MAJOR # - BLENDER_VERSION_MAJOR
# - BLENDER_VERSION_MINOR # - BLENDER_VERSION_MINOR
# - BLENDER_SUBVERSION (used for internal versioning mainly) # - BLENDER_SUBVERSION (used for internal versioning mainly)
# - BLENDER_VERSION_CHAR (a, b, c, ...or empty string) # - BLENDER_VERSION_CHAR (a, b, c, ...or empty string)
# - BLENDER_VERSION_CYCLE (alpha, beta, rc, release) # - BLENDER_VERSION_CYCLE (alpha, beta, rc, release)
# So cmake depends on BKE_blender.h, beware of inf-loops! # So cmake depends on BKE_blender.h, beware of inf-loops!
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h
${CMAKE_BINARY_DIR}/source/blender/blenkernel/BKE_blender_version.h.done) ${CMAKE_BINARY_DIR}/source/blender/blenkernel/BKE_blender_version.h.done)
file(STRINGS ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h _contents REGEX "^#define[ \t]+BLENDER_.*$") file(STRINGS ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h _contents REGEX "^#define[ \t]+BLENDER_.*$")
string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION[ \t]+([0-9]+).*" "\\1" _out_version "${_contents}") string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION[ \t]+([0-9]+).*" "\\1" _out_version "${_contents}")
string(REGEX REPLACE ".*#define[ \t]+BLENDER_SUBVERSION[ \t]+([0-9]+).*" "\\1" _out_subversion "${_contents}") string(REGEX REPLACE ".*#define[ \t]+BLENDER_SUBVERSION[ \t]+([0-9]+).*" "\\1" _out_subversion "${_contents}")
string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CHAR[ \t]+([a-z]+).*" "\\1" _out_version_char "${_contents}") string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CHAR[ \t]+([a-z]+).*" "\\1" _out_version_char "${_contents}")
string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CYCLE[ \t]+([a-z]+).*" "\\1" _out_version_cycle "${_contents}") string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CYCLE[ \t]+([a-z]+).*" "\\1" _out_version_cycle "${_contents}")
if(NOT ${_out_version} MATCHES "[0-9]+") if(NOT ${_out_version} MATCHES "[0-9]+")
message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION") message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION")
endif() endif()
if(NOT ${_out_subversion} MATCHES "[0-9]+") if(NOT ${_out_subversion} MATCHES "[0-9]+")
message(FATAL_ERROR "Version parsing failed for BLENDER_SUBVERSION") message(FATAL_ERROR "Version parsing failed for BLENDER_SUBVERSION")
endif() endif()
# clumsy regex, only single char are ok but it could be unset # clumsy regex, only single char are ok but it could be unset
string(LENGTH "${_out_version_char}" _out_version_char_len) string(LENGTH "${_out_version_char}" _out_version_char_len)
if(NOT _out_version_char_len EQUAL 1) if(NOT _out_version_char_len EQUAL 1)
set(_out_version_char "") set(_out_version_char "")
elseif(NOT ${_out_version_char} MATCHES "[a-z]+") elseif(NOT ${_out_version_char} MATCHES "[a-z]+")
message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_CHAR") message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_CHAR")
endif() endif()
if(NOT ${_out_version_cycle} MATCHES "[a-z]+") if(NOT ${_out_version_cycle} MATCHES "[a-z]+")
message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_CYCLE") message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_CYCLE")
endif() endif()
math(EXPR _out_version_major "${_out_version} / 100") math(EXPR _out_version_major "${_out_version} / 100")
math(EXPR _out_version_minor "${_out_version} % 100") math(EXPR _out_version_minor "${_out_version} % 100")
# for packaging, alpha to numbers # for packaging, alpha to numbers
string(COMPARE EQUAL "${_out_version_char}" "" _out_version_char_empty) string(COMPARE EQUAL "${_out_version_char}" "" _out_version_char_empty)
if(${_out_version_char_empty}) if(${_out_version_char_empty})
set(_out_version_char_index "0") set(_out_version_char_index "0")
else() else()
set(_char_ls a b c d e f g h i j k l m n o p q r s t u v w x y z) set(_char_ls a b c d e f g h i j k l m n o p q r s t u v w x y z)
list(FIND _char_ls ${_out_version_char} _out_version_char_index) list(FIND _char_ls ${_out_version_char} _out_version_char_index)
math(EXPR _out_version_char_index "${_out_version_char_index} + 1") math(EXPR _out_version_char_index "${_out_version_char_index} + 1")
endif() endif()
# output vars # output vars
set(BLENDER_VERSION "${_out_version_major}.${_out_version_minor}" PARENT_SCOPE) set(BLENDER_VERSION "${_out_version_major}.${_out_version_minor}" PARENT_SCOPE)
set(BLENDER_VERSION_MAJOR "${_out_version_major}" PARENT_SCOPE) set(BLENDER_VERSION_MAJOR "${_out_version_major}" PARENT_SCOPE)
set(BLENDER_VERSION_MINOR "${_out_version_minor}" PARENT_SCOPE) set(BLENDER_VERSION_MINOR "${_out_version_minor}" PARENT_SCOPE)
set(BLENDER_SUBVERSION "${_out_subversion}" PARENT_SCOPE) set(BLENDER_SUBVERSION "${_out_subversion}" PARENT_SCOPE)
set(BLENDER_VERSION_CHAR "${_out_version_char}" PARENT_SCOPE) set(BLENDER_VERSION_CHAR "${_out_version_char}" PARENT_SCOPE)
set(BLENDER_VERSION_CHAR_INDEX "${_out_version_char_index}" PARENT_SCOPE) set(BLENDER_VERSION_CHAR_INDEX "${_out_version_char_index}" PARENT_SCOPE)
set(BLENDER_VERSION_CYCLE "${_out_version_cycle}" PARENT_SCOPE) set(BLENDER_VERSION_CYCLE "${_out_version_cycle}" PARENT_SCOPE)
endfunction() endfunction()
@@ -865,48 +865,48 @@ endfunction()
# hacks to override initial project settings # hacks to override initial project settings
# these macros must be called directly before/after project(Blender) # these macros must be called directly before/after project(Blender)
macro(blender_project_hack_pre) macro(blender_project_hack_pre)
# ------------------ # ------------------
# GCC -O3 HACK START # GCC -O3 HACK START
# needed because O3 can cause problems but # needed because O3 can cause problems but
# allow the builder to set O3 manually after. # allow the builder to set O3 manually after.
if(DEFINED CMAKE_C_FLAGS_RELEASE) if(DEFINED CMAKE_C_FLAGS_RELEASE)
set(_reset_standard_cflags_rel OFF) set(_reset_standard_cflags_rel OFF)
else() else()
set(_reset_standard_cflags_rel ON) set(_reset_standard_cflags_rel ON)
endif() endif()
if(DEFINED CMAKE_CXX_FLAGS_RELEASE) if(DEFINED CMAKE_CXX_FLAGS_RELEASE)
set(_reset_standard_cxxflags_rel OFF) set(_reset_standard_cxxflags_rel OFF)
else() else()
set(_reset_standard_cxxflags_rel ON) set(_reset_standard_cxxflags_rel ON)
endif() endif()
endmacro() endmacro()
macro(blender_project_hack_post) macro(blender_project_hack_post)
# ---------------- # ----------------
# GCC -O3 HACK END # GCC -O3 HACK END
if(_reset_standard_cflags_rel) if(_reset_standard_cflags_rel)
string(REGEX REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") string(REGEX REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "" FORCE) set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "" FORCE)
mark_as_advanced(CMAKE_C_FLAGS_RELEASE) mark_as_advanced(CMAKE_C_FLAGS_RELEASE)
endif() endif()
if(_reset_standard_cxxflags_rel) if(_reset_standard_cxxflags_rel)
string(REGEX REPLACE "-O3" "-O2" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") string(REGEX REPLACE "-O3" "-O2" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "" FORCE) set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "" FORCE)
mark_as_advanced(CMAKE_CXX_FLAGS_RELEASE) mark_as_advanced(CMAKE_CXX_FLAGS_RELEASE)
endif() endif()
unset(_reset_standard_cflags_rel) unset(_reset_standard_cflags_rel)
unset(_reset_standard_cxxflags_rel) unset(_reset_standard_cxxflags_rel)
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# workaround for omission in cmake 2.8.4's GNU.cmake, fixed in 2.8.5 # workaround for omission in cmake 2.8.4's GNU.cmake, fixed in 2.8.5
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
if(NOT DARWIN) if(NOT DARWIN)
set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ") set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
endif() endif()
endif() endif()
endmacro() endmacro()
@@ -914,297 +914,297 @@ endmacro()
# only install them at the end so the directories don't get cleared with # only install them at the end so the directories don't get cleared with
# the files in them. used by cycles to install addon. # the files in them. used by cycles to install addon.
function(delayed_install function(delayed_install
base base
files files
destination) destination)
foreach(f ${files}) foreach(f ${files})
if(IS_ABSOLUTE ${f}) if(IS_ABSOLUTE ${f})
set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${f}) set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${f})
else() else()
set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${base}/${f}) set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${base}/${f})
endif() endif()
set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_DESTINATIONS ${destination}) set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_DESTINATIONS ${destination})
endforeach() endforeach()
endfunction() endfunction()
# note this is a function instead of a macro so that ${BUILD_TYPE} in targetdir # note this is a function instead of a macro so that ${BUILD_TYPE} in targetdir
# does not get expanded in calling but is preserved # does not get expanded in calling but is preserved
function(delayed_do_install function(delayed_do_install
targetdir) targetdir)
get_property(files GLOBAL PROPERTY DELAYED_INSTALL_FILES) get_property(files GLOBAL PROPERTY DELAYED_INSTALL_FILES)
get_property(destinations GLOBAL PROPERTY DELAYED_INSTALL_DESTINATIONS) get_property(destinations GLOBAL PROPERTY DELAYED_INSTALL_DESTINATIONS)
if(files) if(files)
list(LENGTH files n) list(LENGTH files n)
math(EXPR n "${n}-1") math(EXPR n "${n}-1")
foreach(i RANGE ${n}) foreach(i RANGE ${n})
list(GET files ${i} f) list(GET files ${i} f)
list(GET destinations ${i} d) list(GET destinations ${i} d)
if(NOT IS_ABSOLUTE ${d}) if(NOT IS_ABSOLUTE ${d})
install(FILES ${f} DESTINATION ${targetdir}/${d}) install(FILES ${f} DESTINATION ${targetdir}/${d})
else() else()
install(FILES ${f} DESTINATION ${d}) install(FILES ${f} DESTINATION ${d})
endif() endif()
endforeach() endforeach()
endif() endif()
endfunction() endfunction()
function(data_to_c function(data_to_c
file_from file_to file_from file_to
list_to_add list_to_add
) )
list(APPEND ${list_to_add} ${file_to}) list(APPEND ${list_to_add} ${file_to})
set(${list_to_add} ${${list_to_add}} PARENT_SCOPE) set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
get_filename_component(_file_to_path ${file_to} PATH) get_filename_component(_file_to_path ${file_to} PATH)
add_custom_command( add_custom_command(
OUTPUT ${file_to} OUTPUT ${file_to}
COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path} COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
COMMAND "$<TARGET_FILE:datatoc>" ${file_from} ${file_to} COMMAND "$<TARGET_FILE:datatoc>" ${file_from} ${file_to}
DEPENDS ${file_from} datatoc) DEPENDS ${file_from} datatoc)
set_source_files_properties(${file_to} PROPERTIES GENERATED TRUE) set_source_files_properties(${file_to} PROPERTIES GENERATED TRUE)
endfunction() endfunction()
# same as above but generates the var name and output automatic. # same as above but generates the var name and output automatic.
function(data_to_c_simple function(data_to_c_simple
file_from file_from
list_to_add list_to_add
) )
# remove ../'s # remove ../'s
get_filename_component(_file_from ${CMAKE_CURRENT_SOURCE_DIR}/${file_from} REALPATH) get_filename_component(_file_from ${CMAKE_CURRENT_SOURCE_DIR}/${file_from} REALPATH)
get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${file_from}.c REALPATH) get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${file_from}.c REALPATH)
list(APPEND ${list_to_add} ${_file_to}) list(APPEND ${list_to_add} ${_file_to})
source_group(Generated FILES ${_file_to}) source_group(Generated FILES ${_file_to})
list(APPEND ${list_to_add} ${file_from}) list(APPEND ${list_to_add} ${file_from})
set(${list_to_add} ${${list_to_add}} PARENT_SCOPE) set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
get_filename_component(_file_to_path ${_file_to} PATH) get_filename_component(_file_to_path ${_file_to} PATH)
add_custom_command( add_custom_command(
OUTPUT ${_file_to} OUTPUT ${_file_to}
COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path} COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
COMMAND "$<TARGET_FILE:datatoc>" ${_file_from} ${_file_to} COMMAND "$<TARGET_FILE:datatoc>" ${_file_from} ${_file_to}
DEPENDS ${_file_from} datatoc) DEPENDS ${_file_from} datatoc)
set_source_files_properties(${_file_to} PROPERTIES GENERATED TRUE) set_source_files_properties(${_file_to} PROPERTIES GENERATED TRUE)
endfunction() endfunction()
# macro for converting pixmap directory to a png and then a c file # macro for converting pixmap directory to a png and then a c file
function(data_to_c_simple_icons function(data_to_c_simple_icons
path_from icon_prefix icon_names path_from icon_prefix icon_names
list_to_add list_to_add
) )
# Conversion steps # Conversion steps
# path_from -> _file_from -> _file_to # path_from -> _file_from -> _file_to
# foo/*.dat -> foo.png -> foo.png.c # foo/*.dat -> foo.png -> foo.png.c
get_filename_component(_path_from_abs ${path_from} ABSOLUTE) get_filename_component(_path_from_abs ${path_from} ABSOLUTE)
# remove ../'s # remove ../'s
get_filename_component(_file_from ${CMAKE_CURRENT_BINARY_DIR}/${path_from}.png REALPATH) get_filename_component(_file_from ${CMAKE_CURRENT_BINARY_DIR}/${path_from}.png REALPATH)
get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${path_from}.png.c REALPATH) get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${path_from}.png.c REALPATH)
list(APPEND ${list_to_add} ${_file_to}) list(APPEND ${list_to_add} ${_file_to})
set(${list_to_add} ${${list_to_add}} PARENT_SCOPE) set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
get_filename_component(_file_to_path ${_file_to} PATH) get_filename_component(_file_to_path ${_file_to} PATH)
# Construct a list of absolute paths from input # Construct a list of absolute paths from input
set(_icon_files) set(_icon_files)
foreach(_var ${icon_names}) foreach(_var ${icon_names})
list(APPEND _icon_files "${_path_from_abs}/${icon_prefix}${_var}.dat") list(APPEND _icon_files "${_path_from_abs}/${icon_prefix}${_var}.dat")
endforeach() endforeach()
add_custom_command( add_custom_command(
OUTPUT ${_file_from} ${_file_to} OUTPUT ${_file_from} ${_file_to}
COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path} COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
#COMMAND python3 ${CMAKE_SOURCE_DIR}/source/blender/datatoc/datatoc_icon.py ${_path_from_abs} ${_file_from} #COMMAND python3 ${CMAKE_SOURCE_DIR}/source/blender/datatoc/datatoc_icon.py ${_path_from_abs} ${_file_from}
COMMAND "$<TARGET_FILE:datatoc_icon>" ${_path_from_abs} ${_file_from} COMMAND "$<TARGET_FILE:datatoc_icon>" ${_path_from_abs} ${_file_from}
COMMAND "$<TARGET_FILE:datatoc>" ${_file_from} ${_file_to} COMMAND "$<TARGET_FILE:datatoc>" ${_file_from} ${_file_to}
DEPENDS DEPENDS
${_icon_files} ${_icon_files}
datatoc_icon datatoc_icon
datatoc datatoc
# could be an arg but for now we only create icons depending on UI_icons.h # could be an arg but for now we only create icons depending on UI_icons.h
${CMAKE_SOURCE_DIR}/source/blender/editors/include/UI_icons.h ${CMAKE_SOURCE_DIR}/source/blender/editors/include/UI_icons.h
) )
set_source_files_properties(${_file_from} ${_file_to} PROPERTIES GENERATED TRUE) set_source_files_properties(${_file_from} ${_file_to} PROPERTIES GENERATED TRUE)
endfunction() endfunction()
# XXX Not used for now... # XXX Not used for now...
function(svg_to_png function(svg_to_png
file_from file_from
file_to file_to
dpi dpi
list_to_add list_to_add
) )
# remove ../'s # remove ../'s
get_filename_component(_file_from ${CMAKE_CURRENT_SOURCE_DIR}/${file_from} REALPATH) get_filename_component(_file_from ${CMAKE_CURRENT_SOURCE_DIR}/${file_from} REALPATH)
get_filename_component(_file_to ${CMAKE_CURRENT_SOURCE_DIR}/${file_to} REALPATH) get_filename_component(_file_to ${CMAKE_CURRENT_SOURCE_DIR}/${file_to} REALPATH)
list(APPEND ${list_to_add} ${_file_to}) list(APPEND ${list_to_add} ${_file_to})
set(${list_to_add} ${${list_to_add}} PARENT_SCOPE) set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
find_program(INKSCAPE_EXE inkscape) find_program(INKSCAPE_EXE inkscape)
mark_as_advanced(INKSCAPE_EXE) mark_as_advanced(INKSCAPE_EXE)
if(INKSCAPE_EXE) if(INKSCAPE_EXE)
if(APPLE) if(APPLE)
# in OS X app bundle, the binary is a shim that doesn't take any # in OS X app bundle, the binary is a shim that doesn't take any
# command line arguments, replace it with the actual binary # command line arguments, replace it with the actual binary
string(REPLACE "MacOS/Inkscape" "Resources/bin/inkscape" INKSCAPE_REAL_EXE ${INKSCAPE_EXE}) string(REPLACE "MacOS/Inkscape" "Resources/bin/inkscape" INKSCAPE_REAL_EXE ${INKSCAPE_EXE})
if(EXISTS "${INKSCAPE_REAL_EXE}") if(EXISTS "${INKSCAPE_REAL_EXE}")
set(INKSCAPE_EXE ${INKSCAPE_REAL_EXE}) set(INKSCAPE_EXE ${INKSCAPE_REAL_EXE})
endif() endif()
endif() endif()
add_custom_command( add_custom_command(
OUTPUT ${_file_to} OUTPUT ${_file_to}
COMMAND ${INKSCAPE_EXE} ${_file_from} --export-dpi=${dpi} --without-gui --export-png=${_file_to} COMMAND ${INKSCAPE_EXE} ${_file_from} --export-dpi=${dpi} --without-gui --export-png=${_file_to}
DEPENDS ${_file_from} ${INKSCAPE_EXE} DEPENDS ${_file_from} ${INKSCAPE_EXE}
) )
else() else()
message(WARNING "Inkscape not found, could not re-generate ${_file_to} from ${_file_from}!") message(WARNING "Inkscape not found, could not re-generate ${_file_to} from ${_file_from}!")
endif() endif()
endfunction() endfunction()
function(msgfmt_simple function(msgfmt_simple
file_from file_from
list_to_add list_to_add
) )
# remove ../'s # remove ../'s
get_filename_component(_file_from_we ${file_from} NAME_WE) get_filename_component(_file_from_we ${file_from} NAME_WE)
get_filename_component(_file_from ${file_from} REALPATH) get_filename_component(_file_from ${file_from} REALPATH)
get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${_file_from_we}.mo REALPATH) get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${_file_from_we}.mo REALPATH)
list(APPEND ${list_to_add} ${_file_to}) list(APPEND ${list_to_add} ${_file_to})
set(${list_to_add} ${${list_to_add}} PARENT_SCOPE) set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
get_filename_component(_file_to_path ${_file_to} PATH) get_filename_component(_file_to_path ${_file_to} PATH)
add_custom_command( add_custom_command(
OUTPUT ${_file_to} OUTPUT ${_file_to}
COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path} COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
COMMAND "$<TARGET_FILE:msgfmt>" ${_file_from} ${_file_to} COMMAND "$<TARGET_FILE:msgfmt>" ${_file_from} ${_file_to}
DEPENDS msgfmt ${_file_from}) DEPENDS msgfmt ${_file_from})
set_source_files_properties(${_file_to} PROPERTIES GENERATED TRUE) set_source_files_properties(${_file_to} PROPERTIES GENERATED TRUE)
endfunction() endfunction()
function(find_python_package function(find_python_package
package package
) )
string(TOUPPER ${package} _upper_package) string(TOUPPER ${package} _upper_package)
# set but invalid # set but invalid
if((NOT ${PYTHON_${_upper_package}_PATH} STREQUAL "") AND if((NOT ${PYTHON_${_upper_package}_PATH} STREQUAL "") AND
(NOT ${PYTHON_${_upper_package}_PATH} MATCHES NOTFOUND)) (NOT ${PYTHON_${_upper_package}_PATH} MATCHES NOTFOUND))
# if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}/${package}") # if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}/${package}")
# message(WARNING "PYTHON_${_upper_package}_PATH is invalid, ${package} not found in '${PYTHON_${_upper_package}_PATH}' " # message(WARNING "PYTHON_${_upper_package}_PATH is invalid, ${package} not found in '${PYTHON_${_upper_package}_PATH}' "
# "WITH_PYTHON_INSTALL_${_upper_package} option will be ignored when installing python") # "WITH_PYTHON_INSTALL_${_upper_package} option will be ignored when installing python")
# set(WITH_PYTHON_INSTALL${_upper_package} OFF) # set(WITH_PYTHON_INSTALL${_upper_package} OFF)
# endif() # endif()
# not set, so initialize # not set, so initialize
else() else()
string(REPLACE "." ";" _PY_VER_SPLIT "${PYTHON_VERSION}") string(REPLACE "." ";" _PY_VER_SPLIT "${PYTHON_VERSION}")
list(GET _PY_VER_SPLIT 0 _PY_VER_MAJOR) list(GET _PY_VER_SPLIT 0 _PY_VER_MAJOR)
# re-cache # re-cache
unset(PYTHON_${_upper_package}_PATH CACHE) unset(PYTHON_${_upper_package}_PATH CACHE)
find_path(PYTHON_${_upper_package}_PATH find_path(PYTHON_${_upper_package}_PATH
NAMES NAMES
${package} ${package}
HINTS HINTS
"${PYTHON_LIBPATH}/" "${PYTHON_LIBPATH}/"
"${PYTHON_LIBPATH}/python${PYTHON_VERSION}/" "${PYTHON_LIBPATH}/python${PYTHON_VERSION}/"
"${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/" "${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/"
PATH_SUFFIXES PATH_SUFFIXES
site-packages site-packages
dist-packages dist-packages
vendor-packages vendor-packages
NO_DEFAULT_PATH NO_DEFAULT_PATH
) )
if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}") if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}")
message(WARNING message(WARNING
"Python package '${package}' path could not be found in:\n" "Python package '${package}' path could not be found in:\n"
"'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/${package}', " "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/${package}', "
"'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/site-packages/${package}', " "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/site-packages/${package}', "
"'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/dist-packages/${package}', " "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/dist-packages/${package}', "
"'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/dist-packages/${package}', " "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/dist-packages/${package}', "
"'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/vendor-packages/${package}', " "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/vendor-packages/${package}', "
"'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/vendor-packages/${package}', " "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/vendor-packages/${package}', "
"\n" "\n"
"The 'WITH_PYTHON_INSTALL_${_upper_package}' option will be ignored when installing Python.\n" "The 'WITH_PYTHON_INSTALL_${_upper_package}' option will be ignored when installing Python.\n"
"The build will be usable, only add-ons that depend on this package won't be functional." "The build will be usable, only add-ons that depend on this package won't be functional."
) )
set(WITH_PYTHON_INSTALL_${_upper_package} OFF PARENT_SCOPE) set(WITH_PYTHON_INSTALL_${_upper_package} OFF PARENT_SCOPE)
else() else()
message(STATUS "${package} found at '${PYTHON_${_upper_package}_PATH}'") message(STATUS "${package} found at '${PYTHON_${_upper_package}_PATH}'")
endif() endif()
endif() endif()
endfunction() endfunction()
# like Python's 'print(dir())' # like Python's 'print(dir())'
function(print_all_vars) function(print_all_vars)
get_cmake_property(_vars VARIABLES) get_cmake_property(_vars VARIABLES)
foreach(_var ${_vars}) foreach(_var ${_vars})
message("${_var}=${${_var}}") message("${_var}=${${_var}}")
endforeach() endforeach()
endfunction() endfunction()
macro(openmp_delayload macro(openmp_delayload
projectname projectname
) )
if(MSVC) if(MSVC)
if(WITH_OPENMP) if(WITH_OPENMP)
if(MSVC_VERSION EQUAL 1800) if(MSVC_VERSION EQUAL 1800)
set(OPENMP_DLL_NAME "vcomp120") set(OPENMP_DLL_NAME "vcomp120")
else() else()
set(OPENMP_DLL_NAME "vcomp140") set(OPENMP_DLL_NAME "vcomp140")
endif() endif()
SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_RELEASE "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib") SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_RELEASE "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib")
SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_DEBUG "/DELAYLOAD:${OPENMP_DLL_NAME}d.dll delayimp.lib") SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_DEBUG "/DELAYLOAD:${OPENMP_DLL_NAME}d.dll delayimp.lib")
SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib") SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib")
SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_MINSIZEREL "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib") SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_MINSIZEREL "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib")
endif() endif()
endif() endif()
endmacro() endmacro()
macro(WINDOWS_SIGN_TARGET target) macro(WINDOWS_SIGN_TARGET target)
if(WITH_WINDOWS_CODESIGN) if(WITH_WINDOWS_CODESIGN)
if(!SIGNTOOL_EXE) if(!SIGNTOOL_EXE)
error("Codesigning is enabled, but signtool is not found") error("Codesigning is enabled, but signtool is not found")
else() else()
if(WINDOWS_CODESIGN_PFX_PASSWORD) if(WINDOWS_CODESIGN_PFX_PASSWORD)
set(CODESIGNPASSWORD /p ${WINDOWS_CODESIGN_PFX_PASSWORD}) set(CODESIGNPASSWORD /p ${WINDOWS_CODESIGN_PFX_PASSWORD})
else() else()
if($ENV{PFXPASSWORD}) if($ENV{PFXPASSWORD})
set(CODESIGNPASSWORD /p $ENV{PFXPASSWORD}) set(CODESIGNPASSWORD /p $ENV{PFXPASSWORD})
else() else()
message(FATAL_ERROR "WITH_WINDOWS_CODESIGN is on but WINDOWS_CODESIGN_PFX_PASSWORD not set, and environment variable PFXPASSWORD not found, unable to sign code.") message(FATAL_ERROR "WITH_WINDOWS_CODESIGN is on but WINDOWS_CODESIGN_PFX_PASSWORD not set, and environment variable PFXPASSWORD not found, unable to sign code.")
endif() endif()
endif() endif()
add_custom_command(TARGET ${target} add_custom_command(TARGET ${target}
POST_BUILD POST_BUILD
COMMAND ${SIGNTOOL_EXE} sign /f ${WINDOWS_CODESIGN_PFX} ${CODESIGNPASSWORD} $<TARGET_FILE:${target}> COMMAND ${SIGNTOOL_EXE} sign /f ${WINDOWS_CODESIGN_PFX} ${CODESIGNPASSWORD} $<TARGET_FILE:${target}>
VERBATIM VERBATIM
) )
endif() endif()
endif() endif()
endmacro() endmacro()

View File

@@ -23,15 +23,15 @@ SET(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}")
# Get the build revision, note that this can get out-of-sync, so for packaging run cmake first. # Get the build revision, note that this can get out-of-sync, so for packaging run cmake first.
set(MY_WC_HASH "unknown") set(MY_WC_HASH "unknown")
if(EXISTS ${CMAKE_SOURCE_DIR}/.git/) if(EXISTS ${CMAKE_SOURCE_DIR}/.git/)
find_package(Git) find_package(Git)
if(GIT_FOUND) if(GIT_FOUND)
# message(STATUS "Found Git: ${GIT_EXECUTABLE}") # message(STATUS "Found Git: ${GIT_EXECUTABLE}")
execute_process(COMMAND git rev-parse --short=12 HEAD execute_process(COMMAND git rev-parse --short=12 HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE MY_WC_HASH OUTPUT_VARIABLE MY_WC_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET) ERROR_QUIET)
endif() endif()
endif() endif()
set(BUILD_REV ${MY_WC_HASH}) set(BUILD_REV ${MY_WC_HASH})
unset(MY_WC_HASH) unset(MY_WC_HASH)
@@ -41,61 +41,61 @@ unset(MY_WC_HASH)
execute_process(COMMAND date "+%Y%m%d" OUTPUT_VARIABLE CPACK_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND date "+%Y%m%d" OUTPUT_VARIABLE CPACK_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER) string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
if(MSVC) if(MSVC)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(PACKAGE_ARCH windows64) set(PACKAGE_ARCH windows64)
else() else()
set(PACKAGE_ARCH windows32) set(PACKAGE_ARCH windows32)
endif() endif()
else(MSVC) else(MSVC)
set(PACKAGE_ARCH ${CMAKE_SYSTEM_PROCESSOR}) set(PACKAGE_ARCH ${CMAKE_SYSTEM_PROCESSOR})
endif() endif()
if(CPACK_OVERRIDE_PACKAGENAME) if(CPACK_OVERRIDE_PACKAGENAME)
set(CPACK_PACKAGE_FILE_NAME ${CPACK_OVERRIDE_PACKAGENAME}-${PACKAGE_ARCH}) set(CPACK_PACKAGE_FILE_NAME ${CPACK_OVERRIDE_PACKAGENAME}-${PACKAGE_ARCH})
else() else()
set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME_LOWER}-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-git${CPACK_DATE}.${BUILD_REV}-${PACKAGE_ARCH}) set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME_LOWER}-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-git${CPACK_DATE}.${BUILD_REV}-${PACKAGE_ARCH})
endif() endif()
if(CMAKE_SYSTEM_NAME MATCHES "Linux") if(CMAKE_SYSTEM_NAME MATCHES "Linux")
# RPM packages # RPM packages
include(build_files/cmake/RpmBuild.cmake) include(build_files/cmake/RpmBuild.cmake)
if(RPMBUILD_FOUND) if(RPMBUILD_FOUND)
set(CPACK_GENERATOR "RPM") set(CPACK_GENERATOR "RPM")
set(CPACK_RPM_PACKAGE_RELEASE "git${CPACK_DATE}.${BUILD_REV}") set(CPACK_RPM_PACKAGE_RELEASE "git${CPACK_DATE}.${BUILD_REV}")
set(CPACK_SET_DESTDIR "true") set(CPACK_SET_DESTDIR "true")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}")
set(CPACK_PACKAGE_RELOCATABLE "false") set(CPACK_PACKAGE_RELOCATABLE "false")
set(CPACK_RPM_PACKAGE_LICENSE "GPLv2+ and Apache 2.0") set(CPACK_RPM_PACKAGE_LICENSE "GPLv2+ and Apache 2.0")
set(CPACK_RPM_PACKAGE_GROUP "Amusements/Multimedia") set(CPACK_RPM_PACKAGE_GROUP "Amusements/Multimedia")
set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_SOURCE_DIR}/build_files/package_spec/rpm/blender.spec.in") set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_SOURCE_DIR}/build_files/package_spec/rpm/blender.spec.in")
endif() endif()
endif() endif()
# Mac Bundle # Mac Bundle
if(APPLE) if(APPLE)
set(CPACK_GENERATOR "DragNDrop") set(CPACK_GENERATOR "DragNDrop")
# Libraries are bundled directly # Libraries are bundled directly
set(CPACK_COMPONENT_LIBRARIES_HIDDEN TRUE) set(CPACK_COMPONENT_LIBRARIES_HIDDEN TRUE)
endif() endif()
if(WIN32) if(WIN32)
set(CPACK_PACKAGE_INSTALL_DIRECTORY "Blender Foundation/Blender") set(CPACK_PACKAGE_INSTALL_DIRECTORY "Blender Foundation/Blender")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "Blender Foundation/Blender") set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "Blender Foundation/Blender")
set(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/release/windows/icons/winblender.ico) set(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/release/windows/icons/winblender.ico)
set(CPACK_NSIS_COMPRESSOR "/SOLID lzma") set(CPACK_NSIS_COMPRESSOR "/SOLID lzma")
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/release/text/GPL3-license.txt) set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/release/text/GPL3-license.txt)
set(CPACK_WIX_PRODUCT_ICON ${CMAKE_SOURCE_DIR}/release/windows/icons/winblender.ico) set(CPACK_WIX_PRODUCT_ICON ${CMAKE_SOURCE_DIR}/release/windows/icons/winblender.ico)
set(CPACK_WIX_UPGRADE_GUID "B767E4FD-7DE7-4094-B051-3AE62E13A17A") set(CPACK_WIX_UPGRADE_GUID "B767E4FD-7DE7-4094-B051-3AE62E13A17A")
set(CPACK_WIX_TEMPLATE ${LIBDIR}/package/installer_wix/WIX.template) set(CPACK_WIX_TEMPLATE ${LIBDIR}/package/installer_wix/WIX.template)
set(CPACK_WIX_UI_BANNER ${LIBDIR}/package/installer_wix/WIX_UI_BANNER.bmp) set(CPACK_WIX_UI_BANNER ${LIBDIR}/package/installer_wix/WIX_UI_BANNER.bmp)
set(CPACK_WIX_UI_DIALOG ${LIBDIR}/package/installer_wix/WIX_UI_DIALOG.bmp) set(CPACK_WIX_UI_DIALOG ${LIBDIR}/package/installer_wix/WIX_UI_DIALOG.bmp)
#force lzma instead of deflate #force lzma instead of deflate
set(CPACK_WIX_LIGHT_EXTRA_FLAGS -dcl:high) set(CPACK_WIX_LIGHT_EXTRA_FLAGS -dcl:high)
endif() endif()
set(CPACK_PACKAGE_EXECUTABLES "blender" "blender") set(CPACK_PACKAGE_EXECUTABLES "blender" "blender")
@@ -106,30 +106,30 @@ include(CPack)
# Target for build_archive.py script, to automatically pass along # Target for build_archive.py script, to automatically pass along
# version, revision, platform, build directory # version, revision, platform, build directory
macro(add_package_archive packagename extension) macro(add_package_archive packagename extension)
set(build_archive python ${CMAKE_SOURCE_DIR}/build_files/package_spec/build_archive.py) set(build_archive python ${CMAKE_SOURCE_DIR}/build_files/package_spec/build_archive.py)
set(package_output ${CMAKE_BINARY_DIR}/release/${packagename}.${extension}) set(package_output ${CMAKE_BINARY_DIR}/release/${packagename}.${extension})
add_custom_target(package_archive DEPENDS ${package_output}) add_custom_target(package_archive DEPENDS ${package_output})
add_custom_command( add_custom_command(
OUTPUT ${package_output} OUTPUT ${package_output}
COMMAND ${build_archive} ${packagename} ${extension} bin release COMMAND ${build_archive} ${packagename} ${extension} bin release
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
unset(build_archive) unset(build_archive)
unset(package_output) unset(package_output)
endmacro() endmacro()
if(APPLE) if(APPLE)
add_package_archive( add_package_archive(
"${PROJECT_NAME}-${BLENDER_VERSION}-${BUILD_REV}-OSX-${CMAKE_OSX_ARCHITECTURES}" "${PROJECT_NAME}-${BLENDER_VERSION}-${BUILD_REV}-OSX-${CMAKE_OSX_ARCHITECTURES}"
"zip") "zip")
elseif(UNIX) elseif(UNIX)
# platform name could be tweaked, to include glibc, and ensure processor is correct (i386 vs i686) # platform name could be tweaked, to include glibc, and ensure processor is correct (i386 vs i686)
string(TOLOWER ${CMAKE_SYSTEM_NAME} PACKAGE_SYSTEM_NAME) string(TOLOWER ${CMAKE_SYSTEM_NAME} PACKAGE_SYSTEM_NAME)
add_package_archive( add_package_archive(
"${PROJECT_NAME}-${BLENDER_VERSION}-${BUILD_REV}-${PACKAGE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}" "${PROJECT_NAME}-${BLENDER_VERSION}-${BUILD_REV}-${PACKAGE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}"
"tar.bz2") "tar.bz2")
endif() endif()
unset(MAJOR_VERSION) unset(MAJOR_VERSION)

View File

@@ -27,102 +27,102 @@ macro(find_package_wrapper)
endmacro() endmacro()
if(NOT DEFINED LIBDIR) if(NOT DEFINED LIBDIR)
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin) set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin)
# Prefer lib directory paths # Prefer lib directory paths
file(GLOB LIB_SUBDIRS ${LIBDIR}/*) file(GLOB LIB_SUBDIRS ${LIBDIR}/*)
set(CMAKE_PREFIX_PATH ${LIB_SUBDIRS}) set(CMAKE_PREFIX_PATH ${LIB_SUBDIRS})
else() else()
message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}") message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
endif() endif()
if(NOT EXISTS "${LIBDIR}/") if(NOT EXISTS "${LIBDIR}/")
message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'") message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
endif() endif()
if(WITH_OPENAL) if(WITH_OPENAL)
find_package(OpenAL) find_package(OpenAL)
if(OPENAL_FOUND) if(OPENAL_FOUND)
set(WITH_OPENAL ON) set(WITH_OPENAL ON)
else() else()
set(WITH_OPENAL OFF) set(WITH_OPENAL OFF)
endif() endif()
endif() endif()
if(WITH_ALEMBIC) if(WITH_ALEMBIC)
set(ALEMBIC ${LIBDIR}/alembic) set(ALEMBIC ${LIBDIR}/alembic)
set(ALEMBIC_INCLUDE_DIR ${ALEMBIC}/include) set(ALEMBIC_INCLUDE_DIR ${ALEMBIC}/include)
set(ALEMBIC_INCLUDE_DIRS ${ALEMBIC_INCLUDE_DIR}) set(ALEMBIC_INCLUDE_DIRS ${ALEMBIC_INCLUDE_DIR})
set(ALEMBIC_LIBPATH ${ALEMBIC}/lib) set(ALEMBIC_LIBPATH ${ALEMBIC}/lib)
set(ALEMBIC_LIBRARIES Alembic) set(ALEMBIC_LIBRARIES Alembic)
set(ALEMBIC_FOUND ON) set(ALEMBIC_FOUND ON)
endif() endif()
if(WITH_OPENSUBDIV) if(WITH_OPENSUBDIV)
set(OPENSUBDIV ${LIBDIR}/opensubdiv) set(OPENSUBDIV ${LIBDIR}/opensubdiv)
set(OPENSUBDIV_LIBPATH ${OPENSUBDIV}/lib) set(OPENSUBDIV_LIBPATH ${OPENSUBDIV}/lib)
find_library(OSD_LIB_CPU NAMES osdCPU PATHS ${OPENSUBDIV_LIBPATH}) find_library(OSD_LIB_CPU NAMES osdCPU PATHS ${OPENSUBDIV_LIBPATH})
find_library(OSD_LIB_GPU NAMES osdGPU PATHS ${OPENSUBDIV_LIBPATH}) find_library(OSD_LIB_GPU NAMES osdGPU PATHS ${OPENSUBDIV_LIBPATH})
set(OPENSUBDIV_INCLUDE_DIR ${OPENSUBDIV}/include) set(OPENSUBDIV_INCLUDE_DIR ${OPENSUBDIV}/include)
set(OPENSUBDIV_INCLUDE_DIRS ${OPENSUBDIV_INCLUDE_DIR}) set(OPENSUBDIV_INCLUDE_DIRS ${OPENSUBDIV_INCLUDE_DIR})
list(APPEND OPENSUBDIV_LIBRARIES ${OSD_LIB_CPU} ${OSD_LIB_GPU}) list(APPEND OPENSUBDIV_LIBRARIES ${OSD_LIB_CPU} ${OSD_LIB_GPU})
endif() endif()
if(WITH_JACK) if(WITH_JACK)
find_library(JACK_FRAMEWORK find_library(JACK_FRAMEWORK
NAMES jackmp NAMES jackmp
) )
set(JACK_INCLUDE_DIRS ${JACK_FRAMEWORK}/headers) set(JACK_INCLUDE_DIRS ${JACK_FRAMEWORK}/headers)
if(NOT JACK_FRAMEWORK) if(NOT JACK_FRAMEWORK)
set(WITH_JACK OFF) set(WITH_JACK OFF)
endif() endif()
endif() endif()
if(WITH_CODEC_SNDFILE) if(WITH_CODEC_SNDFILE)
set(LIBSNDFILE ${LIBDIR}/sndfile) set(LIBSNDFILE ${LIBDIR}/sndfile)
set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include) set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include)
set(LIBSNDFILE_LIBRARIES sndfile FLAC ogg vorbis vorbisenc) set(LIBSNDFILE_LIBRARIES sndfile FLAC ogg vorbis vorbisenc)
set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib ${LIBDIR}/ffmpeg/lib) # TODO, deprecate set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib ${LIBDIR}/ffmpeg/lib) # TODO, deprecate
endif() endif()
if(WITH_PYTHON) if(WITH_PYTHON)
# we use precompiled libraries for py 3.7 and up by default # we use precompiled libraries for py 3.7 and up by default
set(PYTHON_VERSION 3.7) set(PYTHON_VERSION 3.7)
if(NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK) if(NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK)
# normally cached but not since we include them with blender # normally cached but not since we include them with blender
set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m") set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m") set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.a) set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.a)
set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}") set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
# set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled # set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
else() else()
# module must be compiled against Python framework # module must be compiled against Python framework
set(_py_framework "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}") set(_py_framework "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}")
set(PYTHON_INCLUDE_DIR "${_py_framework}/include/python${PYTHON_VERSION}m") set(PYTHON_INCLUDE_DIR "${_py_framework}/include/python${PYTHON_VERSION}m")
set(PYTHON_EXECUTABLE "${_py_framework}/bin/python${PYTHON_VERSION}m") set(PYTHON_EXECUTABLE "${_py_framework}/bin/python${PYTHON_VERSION}m")
set(PYTHON_LIBPATH "${_py_framework}/lib/python${PYTHON_VERSION}/config-${PYTHON_VERSION}m") set(PYTHON_LIBPATH "${_py_framework}/lib/python${PYTHON_VERSION}/config-${PYTHON_VERSION}m")
#set(PYTHON_LIBRARY python${PYTHON_VERSION}) #set(PYTHON_LIBRARY python${PYTHON_VERSION})
#set(PYTHON_LINKFLAGS "-u _PyMac_Error -framework Python") # won't build with this enabled #set(PYTHON_LINKFLAGS "-u _PyMac_Error -framework Python") # won't build with this enabled
unset(_py_framework) unset(_py_framework)
endif() endif()
# uncached vars # uncached vars
set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}") set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}") set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
# needed for Audaspace, numpy is installed into python site-packages # needed for Audaspace, numpy is installed into python site-packages
set(PYTHON_NUMPY_INCLUDE_DIRS "${PYTHON_LIBPATH}/site-packages/numpy/core/include") set(PYTHON_NUMPY_INCLUDE_DIRS "${PYTHON_LIBPATH}/site-packages/numpy/core/include")
if(NOT EXISTS "${PYTHON_EXECUTABLE}") if(NOT EXISTS "${PYTHON_EXECUTABLE}")
message(FATAL_ERROR "Python executable missing: ${PYTHON_EXECUTABLE}") message(FATAL_ERROR "Python executable missing: ${PYTHON_EXECUTABLE}")
endif() endif()
endif() endif()
if(WITH_FFTW3) if(WITH_FFTW3)
set(FFTW3 ${LIBDIR}/fftw3) set(FFTW3 ${LIBDIR}/fftw3)
set(FFTW3_INCLUDE_DIRS ${FFTW3}/include) set(FFTW3_INCLUDE_DIRS ${FFTW3}/include)
set(FFTW3_LIBRARIES fftw3) set(FFTW3_LIBRARIES fftw3)
set(FFTW3_LIBPATH ${FFTW3}/lib) set(FFTW3_LIBPATH ${FFTW3}/lib)
endif() endif()
set(PNG_LIBRARIES png) set(PNG_LIBRARIES png)
@@ -138,101 +138,101 @@ set(FREETYPE_LIBPATH ${FREETYPE}/lib)
set(FREETYPE_LIBRARY freetype) set(FREETYPE_LIBRARY freetype)
if(WITH_IMAGE_OPENEXR) if(WITH_IMAGE_OPENEXR)
set(OPENEXR ${LIBDIR}/openexr) set(OPENEXR ${LIBDIR}/openexr)
set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include) set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR}/include/OpenEXR) set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR}/include/OpenEXR)
set(OPENEXR_LIBRARIES set(OPENEXR_LIBRARIES
Iex Iex
Half Half
IlmImf IlmImf
Imath Imath
IlmThread) IlmThread)
set(OPENEXR_LIBPATH ${OPENEXR}/lib) set(OPENEXR_LIBPATH ${OPENEXR}/lib)
endif() endif()
if(WITH_CODEC_FFMPEG) if(WITH_CODEC_FFMPEG)
set(FFMPEG ${LIBDIR}/ffmpeg) set(FFMPEG ${LIBDIR}/ffmpeg)
set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include) set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
set(FFMPEG_LIBRARIES set(FFMPEG_LIBRARIES
avcodec avdevice avformat avutil avcodec avdevice avformat avutil
mp3lame swscale x264 xvidcore mp3lame swscale x264 xvidcore
theora theoradec theoraenc theora theoradec theoraenc
vorbis vorbisenc vorbisfile ogg vorbis vorbisenc vorbisfile ogg
vpx swresample) vpx swresample)
set(FFMPEG_LIBPATH ${FFMPEG}/lib) set(FFMPEG_LIBPATH ${FFMPEG}/lib)
endif() endif()
if(WITH_IMAGE_OPENJPEG OR WITH_CODEC_FFMPEG) if(WITH_IMAGE_OPENJPEG OR WITH_CODEC_FFMPEG)
# use openjpeg from libdir that is linked into ffmpeg # use openjpeg from libdir that is linked into ffmpeg
set(OPENJPEG ${LIBDIR}/openjpeg) set(OPENJPEG ${LIBDIR}/openjpeg)
set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include) set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include)
set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/libopenjp2.a) set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/libopenjp2.a)
endif() endif()
find_library(SYSTEMSTUBS_LIBRARY find_library(SYSTEMSTUBS_LIBRARY
NAMES NAMES
SystemStubs SystemStubs
PATHS PATHS
) )
mark_as_advanced(SYSTEMSTUBS_LIBRARY) mark_as_advanced(SYSTEMSTUBS_LIBRARY)
if(SYSTEMSTUBS_LIBRARY) if(SYSTEMSTUBS_LIBRARY)
list(APPEND PLATFORM_LINKLIBS SystemStubs) list(APPEND PLATFORM_LINKLIBS SystemStubs)
endif() endif()
set(PLATFORM_CFLAGS "-pipe -funsigned-char") set(PLATFORM_CFLAGS "-pipe -funsigned-char")
set(PLATFORM_LINKFLAGS set(PLATFORM_LINKFLAGS
"-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio" "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio"
) )
list(APPEND PLATFORM_LINKLIBS c++) list(APPEND PLATFORM_LINKLIBS c++)
if(WITH_JACK) if(WITH_JACK)
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -F/Library/Frameworks -weak_framework jackmp") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -F/Library/Frameworks -weak_framework jackmp")
endif() endif()
if(WITH_PYTHON_MODULE OR WITH_PYTHON_FRAMEWORK) if(WITH_PYTHON_MODULE OR WITH_PYTHON_FRAMEWORK)
# force cmake to link right framework # force cmake to link right framework
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/Python") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/Python")
endif() endif()
if(WITH_OPENCOLLADA) if(WITH_OPENCOLLADA)
set(OPENCOLLADA ${LIBDIR}/opencollada) set(OPENCOLLADA ${LIBDIR}/opencollada)
set(OPENCOLLADA_INCLUDE_DIRS set(OPENCOLLADA_INCLUDE_DIRS
${LIBDIR}/opencollada/include/COLLADAStreamWriter ${LIBDIR}/opencollada/include/COLLADAStreamWriter
${LIBDIR}/opencollada/include/COLLADABaseUtils ${LIBDIR}/opencollada/include/COLLADABaseUtils
${LIBDIR}/opencollada/include/COLLADAFramework ${LIBDIR}/opencollada/include/COLLADAFramework
${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader ${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader
${LIBDIR}/opencollada/include/GeneratedSaxParser ${LIBDIR}/opencollada/include/GeneratedSaxParser
) )
set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib) set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib)
set(OPENCOLLADA_LIBRARIES set(OPENCOLLADA_LIBRARIES
OpenCOLLADASaxFrameworkLoader OpenCOLLADASaxFrameworkLoader
-lOpenCOLLADAFramework -lOpenCOLLADAFramework
-lOpenCOLLADABaseUtils -lOpenCOLLADABaseUtils
-lOpenCOLLADAStreamWriter -lOpenCOLLADAStreamWriter
-lMathMLSolver -lMathMLSolver
-lGeneratedSaxParser -lGeneratedSaxParser
-lbuffer -lftoa -lUTF -lbuffer -lftoa -lUTF
${OPENCOLLADA_LIBPATH}/libxml2.a ${OPENCOLLADA_LIBPATH}/libxml2.a
) )
# PCRE is bundled with openCollada # PCRE is bundled with openCollada
#set(PCRE ${LIBDIR}/pcre) #set(PCRE ${LIBDIR}/pcre)
#set(PCRE_LIBPATH ${PCRE}/lib) #set(PCRE_LIBPATH ${PCRE}/lib)
set(PCRE_LIBRARIES pcre) set(PCRE_LIBRARIES pcre)
# libxml2 is used # libxml2 is used
#set(EXPAT ${LIBDIR}/expat) #set(EXPAT ${LIBDIR}/expat)
#set(EXPAT_LIBPATH ${EXPAT}/lib) #set(EXPAT_LIBPATH ${EXPAT}/lib)
set(EXPAT_LIB) set(EXPAT_LIB)
endif() endif()
if(WITH_SDL) if(WITH_SDL)
set(SDL ${LIBDIR}/sdl) set(SDL ${LIBDIR}/sdl)
set(SDL_INCLUDE_DIR ${SDL}/include) set(SDL_INCLUDE_DIR ${SDL}/include)
set(SDL_LIBRARY SDL2) set(SDL_LIBRARY SDL2)
set(SDL_LIBPATH ${SDL}/lib) set(SDL_LIBPATH ${SDL}/lib)
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework ForceFeedback") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework ForceFeedback")
endif() endif()
set(PNG "${LIBDIR}/png") set(PNG "${LIBDIR}/png")
@@ -244,166 +244,166 @@ set(JPEG_INCLUDE_DIR "${JPEG}/include")
set(JPEG_LIBPATH ${JPEG}/lib) set(JPEG_LIBPATH ${JPEG}/lib)
if(WITH_IMAGE_TIFF) if(WITH_IMAGE_TIFF)
set(TIFF ${LIBDIR}/tiff) set(TIFF ${LIBDIR}/tiff)
set(TIFF_INCLUDE_DIR ${TIFF}/include) set(TIFF_INCLUDE_DIR ${TIFF}/include)
set(TIFF_LIBRARY tiff) set(TIFF_LIBRARY tiff)
set(TIFF_LIBPATH ${TIFF}/lib) set(TIFF_LIBPATH ${TIFF}/lib)
endif() endif()
if(WITH_BOOST) if(WITH_BOOST)
set(BOOST ${LIBDIR}/boost) set(BOOST ${LIBDIR}/boost)
set(BOOST_INCLUDE_DIR ${BOOST}/include) set(BOOST_INCLUDE_DIR ${BOOST}/include)
set(BOOST_POSTFIX) set(BOOST_POSTFIX)
set(BOOST_LIBRARIES set(BOOST_LIBRARIES
boost_date_time${BOOST_POSTFIX} boost_date_time${BOOST_POSTFIX}
boost_filesystem${BOOST_POSTFIX} boost_filesystem${BOOST_POSTFIX}
boost_regex${BOOST_POSTFIX} boost_regex${BOOST_POSTFIX}
boost_system${BOOST_POSTFIX} boost_system${BOOST_POSTFIX}
boost_thread${BOOST_POSTFIX} boost_thread${BOOST_POSTFIX}
boost_wave${BOOST_POSTFIX} boost_wave${BOOST_POSTFIX}
) )
if(WITH_INTERNATIONAL) if(WITH_INTERNATIONAL)
list(APPEND BOOST_LIBRARIES boost_locale${BOOST_POSTFIX}) list(APPEND BOOST_LIBRARIES boost_locale${BOOST_POSTFIX})
endif() endif()
if(WITH_CYCLES_NETWORK) if(WITH_CYCLES_NETWORK)
list(APPEND BOOST_LIBRARIES boost_serialization${BOOST_POSTFIX}) list(APPEND BOOST_LIBRARIES boost_serialization${BOOST_POSTFIX})
endif() endif()
if(WITH_OPENVDB) if(WITH_OPENVDB)
list(APPEND BOOST_LIBRARIES boost_iostreams${BOOST_POSTFIX}) list(APPEND BOOST_LIBRARIES boost_iostreams${BOOST_POSTFIX})
endif() endif()
set(BOOST_LIBPATH ${BOOST}/lib) set(BOOST_LIBPATH ${BOOST}/lib)
set(BOOST_DEFINITIONS) set(BOOST_DEFINITIONS)
endif() endif()
if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG) if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it ! set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it !
endif() endif()
if(WITH_OPENIMAGEIO) if(WITH_OPENIMAGEIO)
set(OPENIMAGEIO ${LIBDIR}/openimageio) set(OPENIMAGEIO ${LIBDIR}/openimageio)
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include) set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
set(OPENIMAGEIO_LIBRARIES set(OPENIMAGEIO_LIBRARIES
${OPENIMAGEIO}/lib/libOpenImageIO.a ${OPENIMAGEIO}/lib/libOpenImageIO.a
${PNG_LIBRARIES} ${PNG_LIBRARIES}
${JPEG_LIBRARIES} ${JPEG_LIBRARIES}
${TIFF_LIBRARY} ${TIFF_LIBRARY}
${OPENEXR_LIBRARIES} ${OPENEXR_LIBRARIES}
${OPENJPEG_LIBRARIES} ${OPENJPEG_LIBRARIES}
${ZLIB_LIBRARIES} ${ZLIB_LIBRARIES}
) )
set(OPENIMAGEIO_LIBPATH set(OPENIMAGEIO_LIBPATH
${OPENIMAGEIO}/lib ${OPENIMAGEIO}/lib
${JPEG_LIBPATH} ${JPEG_LIBPATH}
${PNG_LIBPATH} ${PNG_LIBPATH}
${TIFF_LIBPATH} ${TIFF_LIBPATH}
${OPENEXR_LIBPATH} ${OPENEXR_LIBPATH}
${ZLIB_LIBPATH} ${ZLIB_LIBPATH}
) )
set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD") set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD")
set(OPENIMAGEIO_IDIFF "${LIBDIR}/openimageio/bin/idiff") set(OPENIMAGEIO_IDIFF "${LIBDIR}/openimageio/bin/idiff")
endif() endif()
if(WITH_OPENCOLORIO) if(WITH_OPENCOLORIO)
set(OPENCOLORIO ${LIBDIR}/opencolorio) set(OPENCOLORIO ${LIBDIR}/opencolorio)
set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include) set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
set(OPENCOLORIO_LIBRARIES OpenColorIO tinyxml yaml-cpp) set(OPENCOLORIO_LIBRARIES OpenColorIO tinyxml yaml-cpp)
set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib) set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib)
endif() endif()
if(WITH_OPENVDB) if(WITH_OPENVDB)
set(OPENVDB ${LIBDIR}/openvdb) set(OPENVDB ${LIBDIR}/openvdb)
set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include) set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include)
set(TBB_INCLUDE_DIRS ${LIBDIR}/tbb/include) set(TBB_INCLUDE_DIRS ${LIBDIR}/tbb/include)
set(TBB_LIBRARIES ${LIBDIR}/tbb/lib/libtbb.a) set(TBB_LIBRARIES ${LIBDIR}/tbb/lib/libtbb.a)
set(OPENVDB_LIBRARIES openvdb blosc ${TBB_LIBRARIES}) set(OPENVDB_LIBRARIES openvdb blosc ${TBB_LIBRARIES})
set(OPENVDB_LIBPATH ${LIBDIR}/openvdb/lib) set(OPENVDB_LIBPATH ${LIBDIR}/openvdb/lib)
set(OPENVDB_DEFINITIONS) set(OPENVDB_DEFINITIONS)
endif() endif()
if(WITH_LLVM) if(WITH_LLVM)
set(LLVM_ROOT_DIR ${LIBDIR}/llvm) set(LLVM_ROOT_DIR ${LIBDIR}/llvm)
set(LLVM_VERSION 3.4) set(LLVM_VERSION 3.4)
if(EXISTS "${LLVM_ROOT_DIR}/bin/llvm-config") if(EXISTS "${LLVM_ROOT_DIR}/bin/llvm-config")
set(LLVM_CONFIG "${LLVM_ROOT_DIR}/bin/llvm-config") set(LLVM_CONFIG "${LLVM_ROOT_DIR}/bin/llvm-config")
else() else()
set(LLVM_CONFIG llvm-config) set(LLVM_CONFIG llvm-config)
endif() endif()
execute_process(COMMAND ${LLVM_CONFIG} --version execute_process(COMMAND ${LLVM_CONFIG} --version
OUTPUT_VARIABLE LLVM_VERSION OUTPUT_VARIABLE LLVM_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${LLVM_CONFIG} --prefix execute_process(COMMAND ${LLVM_CONFIG} --prefix
OUTPUT_VARIABLE LLVM_ROOT_DIR OUTPUT_VARIABLE LLVM_ROOT_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${LLVM_CONFIG} --libdir execute_process(COMMAND ${LLVM_CONFIG} --libdir
OUTPUT_VARIABLE LLVM_LIBPATH OUTPUT_VARIABLE LLVM_LIBPATH
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
find_library(LLVM_LIBRARY find_library(LLVM_LIBRARY
NAMES LLVMAnalysis # first of a whole bunch of libs to get NAMES LLVMAnalysis # first of a whole bunch of libs to get
PATHS ${LLVM_LIBPATH}) PATHS ${LLVM_LIBPATH})
if(LLVM_LIBRARY AND LLVM_ROOT_DIR AND LLVM_LIBPATH) if(LLVM_LIBRARY AND LLVM_ROOT_DIR AND LLVM_LIBPATH)
if(LLVM_STATIC) if(LLVM_STATIC)
# if static LLVM libraries were requested, use llvm-config to generate # if static LLVM libraries were requested, use llvm-config to generate
# the list of what libraries we need, and substitute that in the right # the list of what libraries we need, and substitute that in the right
# way for LLVM_LIBRARY. # way for LLVM_LIBRARY.
execute_process(COMMAND ${LLVM_CONFIG} --libfiles execute_process(COMMAND ${LLVM_CONFIG} --libfiles
OUTPUT_VARIABLE LLVM_LIBRARY OUTPUT_VARIABLE LLVM_LIBRARY
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REPLACE ".a /" ".a;/" LLVM_LIBRARY ${LLVM_LIBRARY}) string(REPLACE ".a /" ".a;/" LLVM_LIBRARY ${LLVM_LIBRARY})
else() else()
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -lLLVM-3.4") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -lLLVM-3.4")
endif() endif()
else() else()
message(FATAL_ERROR "LLVM not found.") message(FATAL_ERROR "LLVM not found.")
endif() endif()
endif() endif()
if(WITH_CYCLES_OSL) if(WITH_CYCLES_OSL)
set(CYCLES_OSL ${LIBDIR}/osl) set(CYCLES_OSL ${LIBDIR}/osl)
find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
# WARNING! depends on correct order of OSL libs linking # WARNING! depends on correct order of OSL libs linking
list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -force_load ${OSL_LIB_EXEC} ${OSL_LIB_QUERY}) list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -force_load ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include) find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin) find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER) if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER)
set(OSL_FOUND TRUE) set(OSL_FOUND TRUE)
else() else()
message(STATUS "OSL not found") message(STATUS "OSL not found")
set(WITH_CYCLES_OSL OFF) set(WITH_CYCLES_OSL OFF)
endif() endif()
endif() endif()
if(WITH_CYCLES_EMBREE) if(WITH_CYCLES_EMBREE)
find_package(Embree 3.2.4 REQUIRED) find_package(Embree 3.2.4 REQUIRED)
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Xlinker -stack_size -Xlinker 0x100000") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Xlinker -stack_size -Xlinker 0x100000")
endif() endif()
# CMake FindOpenMP doesn't know about AppleClang before 3.12, so provide custom flags. # CMake FindOpenMP doesn't know about AppleClang before 3.12, so provide custom flags.
if(WITH_OPENMP) if(WITH_OPENMP)
if(CMAKE_C_COMPILER_ID MATCHES "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0") if(CMAKE_C_COMPILER_ID MATCHES "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0")
# Use OpenMP from our precompiled libraries. # Use OpenMP from our precompiled libraries.
message(STATUS "Using ${LIBDIR}/openmp for OpenMP") message(STATUS "Using ${LIBDIR}/openmp for OpenMP")
set(OPENMP_CUSTOM ON) set(OPENMP_CUSTOM ON)
set(OPENMP_FOUND ON) set(OPENMP_FOUND ON)
set(OpenMP_C_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'") set(OpenMP_C_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'")
set(OpenMP_CXX_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'") set(OpenMP_CXX_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L'${LIBDIR}/openmp/lib' -lomp") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L'${LIBDIR}/openmp/lib' -lomp")
# Copy libomp.dylib to allow executables like datatoc to work. # Copy libomp.dylib to allow executables like datatoc to work.
if(CMAKE_MAKE_PROGRAM MATCHES "xcodebuild") if(CMAKE_MAKE_PROGRAM MATCHES "xcodebuild")
set(OPENMP_DYLIB_AUX_PATH "${CMAKE_BINARY_DIR}/bin") set(OPENMP_DYLIB_AUX_PATH "${CMAKE_BINARY_DIR}/bin")
else() else()
set(OPENMP_DYLIB_AUX_PATH "${CMAKE_BINARY_DIR}") set(OPENMP_DYLIB_AUX_PATH "${CMAKE_BINARY_DIR}")
endif() endif()
execute_process( execute_process(
COMMAND mkdir -p ${OPENMP_DYLIB_AUX_PATH}/Resources/lib COMMAND mkdir -p ${OPENMP_DYLIB_AUX_PATH}/Resources/lib
COMMAND cp -p ${LIBDIR}/openmp/lib/libomp.dylib ${OPENMP_DYLIB_AUX_PATH}/Resources/lib/libomp.dylib) COMMAND cp -p ${LIBDIR}/openmp/lib/libomp.dylib ${OPENMP_DYLIB_AUX_PATH}/Resources/lib/libomp.dylib)
endif() endif()
endif() endif()
set(EXETYPE MACOSX_BUNDLE) set(EXETYPE MACOSX_BUNDLE)
@@ -411,24 +411,24 @@ set(EXETYPE MACOSX_BUNDLE)
set(CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g") set(CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g")
set(CMAKE_CXX_FLAGS_DEBUG "-fno-strict-aliasing -g") set(CMAKE_CXX_FLAGS_DEBUG "-fno-strict-aliasing -g")
if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR CMAKE_OSX_ARCHITECTURES MATCHES "i386") if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR CMAKE_OSX_ARCHITECTURES MATCHES "i386")
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3") set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3")
set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3") set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3")
if(NOT CMAKE_C_COMPILER_ID MATCHES "Clang") if(NOT CMAKE_C_COMPILER_ID MATCHES "Clang")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller")
endif() endif()
else() else()
set(CMAKE_C_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing") set(CMAKE_C_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
set(CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing") set(CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
endif() endif()
if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5) if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
# Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv # Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
endif() endif()
# Get rid of eventually clashes, we export some symbols explicitly as local # Get rid of eventually clashes, we export some symbols explicitly as local
set(PLATFORM_LINKFLAGS set(PLATFORM_LINKFLAGS
"${PLATFORM_LINKFLAGS} -Xlinker -unexported_symbols_list -Xlinker '${CMAKE_SOURCE_DIR}/source/creator/osx_locals.map'" "${PLATFORM_LINKFLAGS} -Xlinker -unexported_symbols_list -Xlinker '${CMAKE_SOURCE_DIR}/source/creator/osx_locals.map'"
) )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")

View File

@@ -25,92 +25,92 @@
cmake_minimum_required(VERSION 3.0.0) cmake_minimum_required(VERSION 3.0.0)
if(NOT CMAKE_OSX_ARCHITECTURES) if(NOT CMAKE_OSX_ARCHITECTURES)
set(CMAKE_OSX_ARCHITECTURES x86_64 CACHE STRING set(CMAKE_OSX_ARCHITECTURES x86_64 CACHE STRING
"Choose the architecture you want to build Blender for: i386, x86_64 or ppc" "Choose the architecture you want to build Blender for: i386, x86_64 or ppc"
FORCE) FORCE)
endif() endif()
if(NOT DEFINED OSX_SYSTEM) if(NOT DEFINED OSX_SYSTEM)
execute_process( execute_process(
COMMAND xcodebuild -version -sdk macosx SDKVersion COMMAND xcodebuild -version -sdk macosx SDKVersion
OUTPUT_VARIABLE OSX_SYSTEM OUTPUT_VARIABLE OSX_SYSTEM
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
endif() endif()
# workaround for incorrect cmake xcode lookup for developer previews - XCODE_VERSION does not # workaround for incorrect cmake xcode lookup for developer previews - XCODE_VERSION does not
# take xcode-select path into account but would always look into /Applications/Xcode.app # take xcode-select path into account but would always look into /Applications/Xcode.app
# while dev versions are named Xcode<version>-DP<preview_number> # while dev versions are named Xcode<version>-DP<preview_number>
execute_process( execute_process(
COMMAND xcode-select --print-path COMMAND xcode-select --print-path
OUTPUT_VARIABLE XCODE_CHECK OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_VARIABLE XCODE_CHECK OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REPLACE "/Contents/Developer" "" XCODE_BUNDLE ${XCODE_CHECK}) # truncate to bundlepath in any case string(REPLACE "/Contents/Developer" "" XCODE_BUNDLE ${XCODE_CHECK}) # truncate to bundlepath in any case
if(${CMAKE_GENERATOR} MATCHES "Xcode") if(${CMAKE_GENERATOR} MATCHES "Xcode")
# earlier xcode has no bundled developer dir, no sense in getting xcode path from # earlier xcode has no bundled developer dir, no sense in getting xcode path from
if(${XCODE_VERSION} VERSION_GREATER 4.2) if(${XCODE_VERSION} VERSION_GREATER 4.2)
# reduce to XCode name without dp extension # reduce to XCode name without dp extension
string(SUBSTRING "${XCODE_CHECK}" 14 6 DP_NAME) string(SUBSTRING "${XCODE_CHECK}" 14 6 DP_NAME)
if(${DP_NAME} MATCHES Xcode5) if(${DP_NAME} MATCHES Xcode5)
set(XCODE_VERSION 5) set(XCODE_VERSION 5)
endif() endif()
endif() endif()
##### cmake incompatibility with xcode 4.3 and higher ##### ##### cmake incompatibility with xcode 4.3 and higher #####
if(${XCODE_VERSION} MATCHES '') # cmake fails due looking for xcode in the wrong path, thus will be empty var if(${XCODE_VERSION} MATCHES '') # cmake fails due looking for xcode in the wrong path, thus will be empty var
message(FATAL_ERROR "Xcode 4.3 and higher must be used with cmake 2.8-8 or higher") message(FATAL_ERROR "Xcode 4.3 and higher must be used with cmake 2.8-8 or higher")
endif() endif()
### end cmake incompatibility with xcode 4.3 and higher ### ### end cmake incompatibility with xcode 4.3 and higher ###
if(${XCODE_VERSION} VERSION_EQUAL 4 OR ${XCODE_VERSION} VERSION_GREATER 4 AND ${XCODE_VERSION} VERSION_LESS 4.3) if(${XCODE_VERSION} VERSION_EQUAL 4 OR ${XCODE_VERSION} VERSION_GREATER 4 AND ${XCODE_VERSION} VERSION_LESS 4.3)
# Xcode 4 defaults to the Apple LLVM Compiler. # Xcode 4 defaults to the Apple LLVM Compiler.
# Override the default compiler selection because Blender only compiles with gcc up to xcode 4.2 # Override the default compiler selection because Blender only compiles with gcc up to xcode 4.2
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42") set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
message(STATUS "Setting compiler to: " ${CMAKE_XCODE_ATTRIBUTE_GCC_VERSION}) message(STATUS "Setting compiler to: " ${CMAKE_XCODE_ATTRIBUTE_GCC_VERSION})
endif() endif()
else() # unix makefile generator does not fill XCODE_VERSION var, so we get it with a command else() # unix makefile generator does not fill XCODE_VERSION var, so we get it with a command
execute_process(COMMAND xcodebuild -version OUTPUT_VARIABLE XCODE_VERS_BUILD_NR) execute_process(COMMAND xcodebuild -version OUTPUT_VARIABLE XCODE_VERS_BUILD_NR)
string(SUBSTRING "${XCODE_VERS_BUILD_NR}" 6 3 XCODE_VERSION) # truncate away build-nr string(SUBSTRING "${XCODE_VERS_BUILD_NR}" 6 3 XCODE_VERSION) # truncate away build-nr
unset(XCODE_VERS_BUILD_NR) unset(XCODE_VERS_BUILD_NR)
endif() endif()
message(STATUS "Detected OS X ${OSX_SYSTEM} and Xcode ${XCODE_VERSION} at ${XCODE_BUNDLE}") message(STATUS "Detected OS X ${OSX_SYSTEM} and Xcode ${XCODE_VERSION} at ${XCODE_BUNDLE}")
if(${XCODE_VERSION} VERSION_LESS 4.3) if(${XCODE_VERSION} VERSION_LESS 4.3)
# use guaranteed existing sdk # use guaranteed existing sdk
set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk CACHE PATH "" FORCE) set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk CACHE PATH "" FORCE)
else() else()
# note: xcode-select path could be ambiguous, # note: xcode-select path could be ambiguous,
# cause /Applications/Xcode.app/Contents/Developer or /Applications/Xcode.app would be allowed # cause /Applications/Xcode.app/Contents/Developer or /Applications/Xcode.app would be allowed
# so i use a selfcomposed bundlepath here # so i use a selfcomposed bundlepath here
set(OSX_SYSROOT_PREFIX ${XCODE_BUNDLE}/Contents/Developer/Platforms/MacOSX.platform) set(OSX_SYSROOT_PREFIX ${XCODE_BUNDLE}/Contents/Developer/Platforms/MacOSX.platform)
message(STATUS "OSX_SYSROOT_PREFIX: " ${OSX_SYSROOT_PREFIX}) message(STATUS "OSX_SYSROOT_PREFIX: " ${OSX_SYSROOT_PREFIX})
set(OSX_DEVELOPER_PREFIX /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk) # use guaranteed existing sdk set(OSX_DEVELOPER_PREFIX /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk) # use guaranteed existing sdk
set(CMAKE_OSX_SYSROOT ${OSX_SYSROOT_PREFIX}/${OSX_DEVELOPER_PREFIX} CACHE PATH "" FORCE) set(CMAKE_OSX_SYSROOT ${OSX_SYSROOT_PREFIX}/${OSX_DEVELOPER_PREFIX} CACHE PATH "" FORCE)
if(${CMAKE_GENERATOR} MATCHES "Xcode") if(${CMAKE_GENERATOR} MATCHES "Xcode")
# to silence sdk not found warning, just overrides CMAKE_OSX_SYSROOT # to silence sdk not found warning, just overrides CMAKE_OSX_SYSROOT
set(CMAKE_XCODE_ATTRIBUTE_SDKROOT macosx${OSX_SYSTEM}) set(CMAKE_XCODE_ATTRIBUTE_SDKROOT macosx${OSX_SYSTEM})
endif() endif()
endif() endif()
if(OSX_SYSTEM MATCHES 10.9) if(OSX_SYSTEM MATCHES 10.9)
# make sure syslibs and headers are looked up in sdk ( especially for 10.9 openGL atm. ) # make sure syslibs and headers are looked up in sdk ( especially for 10.9 openGL atm. )
set(CMAKE_FIND_ROOT_PATH ${CMAKE_OSX_SYSROOT}) set(CMAKE_FIND_ROOT_PATH ${CMAKE_OSX_SYSROOT})
endif() endif()
# 10.9 is our min. target, if you use higher sdk, weak linking happens # 10.9 is our min. target, if you use higher sdk, weak linking happens
if(CMAKE_OSX_DEPLOYMENT_TARGET) if(CMAKE_OSX_DEPLOYMENT_TARGET)
if(${CMAKE_OSX_DEPLOYMENT_TARGET} VERSION_LESS 10.9) if(${CMAKE_OSX_DEPLOYMENT_TARGET} VERSION_LESS 10.9)
message(STATUS "Setting deployment target to 10.9, lower versions are not supported") message(STATUS "Setting deployment target to 10.9, lower versions are not supported")
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE) set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE)
endif() endif()
else() else()
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE) set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE)
endif() endif()
if(NOT ${CMAKE_GENERATOR} MATCHES "Xcode") if(NOT ${CMAKE_GENERATOR} MATCHES "Xcode")
# force CMAKE_OSX_DEPLOYMENT_TARGET for makefiles, will not work else ( cmake bug ? ) # force CMAKE_OSX_DEPLOYMENT_TARGET for makefiles, will not work else ( cmake bug ? )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
add_definitions("-DMACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}") add_definitions("-DMACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
endif() endif()

View File

@@ -22,34 +22,34 @@
# Detect precompiled library directory # Detect precompiled library directory
if(NOT DEFINED LIBDIR) if(NOT DEFINED LIBDIR)
set(LIBDIR_NAME ${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}) set(LIBDIR_NAME ${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR})
string(TOLOWER ${LIBDIR_NAME} LIBDIR_NAME) string(TOLOWER ${LIBDIR_NAME} LIBDIR_NAME)
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_NAME}) set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_NAME})
else() else()
message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}") message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
endif() endif()
if(EXISTS ${LIBDIR}) if(EXISTS ${LIBDIR})
file(GLOB LIB_SUBDIRS ${LIBDIR}/*) file(GLOB LIB_SUBDIRS ${LIBDIR}/*)
# NOTE: Make sure "proper" compiled zlib comes first before the one # NOTE: Make sure "proper" compiled zlib comes first before the one
# which is a part of OpenCollada. They have different ABI, and we # which is a part of OpenCollada. They have different ABI, and we
# do need to use the official one. # do need to use the official one.
set(CMAKE_PREFIX_PATH ${LIBDIR}/zlib ${LIB_SUBDIRS}) set(CMAKE_PREFIX_PATH ${LIBDIR}/zlib ${LIB_SUBDIRS})
set(WITH_STATIC_LIBS ON) set(WITH_STATIC_LIBS ON)
set(WITH_OPENMP_STATIC ON) set(WITH_OPENMP_STATIC ON)
endif() endif()
if(WITH_STATIC_LIBS) if(WITH_STATIC_LIBS)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++")
endif() endif()
# Wrapper to prefer static libraries # Wrapper to prefer static libraries
macro(find_package_wrapper) macro(find_package_wrapper)
if(WITH_STATIC_LIBS) if(WITH_STATIC_LIBS)
find_package_static(${ARGV}) find_package_static(${ARGV})
else() else()
find_package(${ARGV}) find_package(${ARGV})
endif() endif()
endmacro() endmacro()
find_package_wrapper(JPEG REQUIRED) find_package_wrapper(JPEG REQUIRED)
@@ -58,360 +58,360 @@ find_package_wrapper(ZLIB REQUIRED)
find_package_wrapper(Freetype REQUIRED) find_package_wrapper(Freetype REQUIRED)
if(WITH_LZO AND WITH_SYSTEM_LZO) if(WITH_LZO AND WITH_SYSTEM_LZO)
find_package_wrapper(LZO) find_package_wrapper(LZO)
if(NOT LZO_FOUND) if(NOT LZO_FOUND)
message(FATAL_ERROR "Failed finding system LZO version!") message(FATAL_ERROR "Failed finding system LZO version!")
endif() endif()
endif() endif()
if(WITH_SYSTEM_EIGEN3) if(WITH_SYSTEM_EIGEN3)
find_package_wrapper(Eigen3) find_package_wrapper(Eigen3)
if(NOT EIGEN3_FOUND) if(NOT EIGEN3_FOUND)
message(FATAL_ERROR "Failed finding system Eigen3 version!") message(FATAL_ERROR "Failed finding system Eigen3 version!")
endif() endif()
endif() endif()
# else values are set below for all platforms # else values are set below for all platforms
if(WITH_PYTHON) if(WITH_PYTHON)
# No way to set py35, remove for now. # No way to set py35, remove for now.
# find_package(PythonLibs) # find_package(PythonLibs)
# Use our own instead, since without py is such a rare case, # Use our own instead, since without py is such a rare case,
# require this package # require this package
# XXX Linking errors with debian static python :/ # XXX Linking errors with debian static python :/
# find_package_wrapper(PythonLibsUnix REQUIRED) # find_package_wrapper(PythonLibsUnix REQUIRED)
find_package(PythonLibsUnix REQUIRED) find_package(PythonLibsUnix REQUIRED)
endif() endif()
if(WITH_IMAGE_OPENEXR) if(WITH_IMAGE_OPENEXR)
find_package_wrapper(OpenEXR) # our own module find_package_wrapper(OpenEXR) # our own module
if(NOT OPENEXR_FOUND) if(NOT OPENEXR_FOUND)
set(WITH_IMAGE_OPENEXR OFF) set(WITH_IMAGE_OPENEXR OFF)
endif() endif()
endif() endif()
if(WITH_IMAGE_OPENJPEG) if(WITH_IMAGE_OPENJPEG)
find_package_wrapper(OpenJPEG) find_package_wrapper(OpenJPEG)
if(NOT OPENJPEG_FOUND) if(NOT OPENJPEG_FOUND)
set(WITH_IMAGE_OPENJPEG OFF) set(WITH_IMAGE_OPENJPEG OFF)
endif() endif()
endif() endif()
if(WITH_IMAGE_TIFF) if(WITH_IMAGE_TIFF)
# XXX Linking errors with debian static tiff :/ # XXX Linking errors with debian static tiff :/
# find_package_wrapper(TIFF) # find_package_wrapper(TIFF)
find_package(TIFF) find_package(TIFF)
if(NOT TIFF_FOUND) if(NOT TIFF_FOUND)
set(WITH_IMAGE_TIFF OFF) set(WITH_IMAGE_TIFF OFF)
endif() endif()
endif() endif()
# Audio IO # Audio IO
if(WITH_SYSTEM_AUDASPACE) if(WITH_SYSTEM_AUDASPACE)
find_package_wrapper(Audaspace) find_package_wrapper(Audaspace)
if(NOT AUDASPACE_FOUND OR NOT AUDASPACE_C_FOUND) if(NOT AUDASPACE_FOUND OR NOT AUDASPACE_C_FOUND)
message(FATAL_ERROR "Audaspace external library not found!") message(FATAL_ERROR "Audaspace external library not found!")
endif() endif()
endif() endif()
if(WITH_OPENAL) if(WITH_OPENAL)
find_package_wrapper(OpenAL) find_package_wrapper(OpenAL)
if(NOT OPENAL_FOUND) if(NOT OPENAL_FOUND)
set(WITH_OPENAL OFF) set(WITH_OPENAL OFF)
endif() endif()
endif() endif()
if(WITH_SDL) if(WITH_SDL)
if(WITH_SDL_DYNLOAD) if(WITH_SDL_DYNLOAD)
set(SDL_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extern/sdlew/include/SDL2") set(SDL_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extern/sdlew/include/SDL2")
set(SDL_LIBRARY) set(SDL_LIBRARY)
else() else()
find_package_wrapper(SDL2) find_package_wrapper(SDL2)
if(SDL2_FOUND) if(SDL2_FOUND)
# Use same names for both versions of SDL until we move to 2.x. # Use same names for both versions of SDL until we move to 2.x.
set(SDL_INCLUDE_DIR "${SDL2_INCLUDE_DIR}") set(SDL_INCLUDE_DIR "${SDL2_INCLUDE_DIR}")
set(SDL_LIBRARY "${SDL2_LIBRARY}") set(SDL_LIBRARY "${SDL2_LIBRARY}")
set(SDL_FOUND "${SDL2_FOUND}") set(SDL_FOUND "${SDL2_FOUND}")
else() else()
find_package_wrapper(SDL) find_package_wrapper(SDL)
endif() endif()
mark_as_advanced( mark_as_advanced(
SDL_INCLUDE_DIR SDL_INCLUDE_DIR
SDL_LIBRARY SDL_LIBRARY
) )
# unset(SDLMAIN_LIBRARY CACHE) # unset(SDLMAIN_LIBRARY CACHE)
if(NOT SDL_FOUND) if(NOT SDL_FOUND)
set(WITH_SDL OFF) set(WITH_SDL OFF)
endif() endif()
endif() endif()
endif() endif()
if(WITH_JACK) if(WITH_JACK)
find_package_wrapper(Jack) find_package_wrapper(Jack)
if(NOT JACK_FOUND) if(NOT JACK_FOUND)
set(WITH_JACK OFF) set(WITH_JACK OFF)
endif() endif()
endif() endif()
# Codecs # Codecs
if(WITH_CODEC_SNDFILE) if(WITH_CODEC_SNDFILE)
find_package_wrapper(SndFile) find_package_wrapper(SndFile)
if(NOT LIBSNDFILE_FOUND) if(NOT LIBSNDFILE_FOUND)
set(WITH_CODEC_SNDFILE OFF) set(WITH_CODEC_SNDFILE OFF)
endif() endif()
endif() endif()
if(WITH_CODEC_FFMPEG) if(WITH_CODEC_FFMPEG)
if(EXISTS ${LIBDIR}) if(EXISTS ${LIBDIR})
# For precompiled lib directory, all ffmpeg dependencies are in the same folder # For precompiled lib directory, all ffmpeg dependencies are in the same folder
file(GLOB ffmpeg_libs ${LIBDIR}/ffmpeg/lib/*.a ${LIBDIR}/sndfile/lib/*.a) file(GLOB ffmpeg_libs ${LIBDIR}/ffmpeg/lib/*.a ${LIBDIR}/sndfile/lib/*.a)
set(FFMPEG ${LIBDIR}/ffmpeg CACHE PATH "FFMPEG Directory") set(FFMPEG ${LIBDIR}/ffmpeg CACHE PATH "FFMPEG Directory")
set(FFMPEG_LIBRARIES ${ffmpeg_libs} ${ffmpeg_libs} CACHE STRING "FFMPEG Libraries") set(FFMPEG_LIBRARIES ${ffmpeg_libs} ${ffmpeg_libs} CACHE STRING "FFMPEG Libraries")
else() else()
set(FFMPEG /usr CACHE PATH "FFMPEG Directory") set(FFMPEG /usr CACHE PATH "FFMPEG Directory")
set(FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries") set(FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries")
endif() endif()
mark_as_advanced(FFMPEG) mark_as_advanced(FFMPEG)
# lame, but until we have proper find module for ffmpeg # lame, but until we have proper find module for ffmpeg
set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include) set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
if(EXISTS "${FFMPEG}/include/ffmpeg/") if(EXISTS "${FFMPEG}/include/ffmpeg/")
list(APPEND FFMPEG_INCLUDE_DIRS "${FFMPEG}/include/ffmpeg") list(APPEND FFMPEG_INCLUDE_DIRS "${FFMPEG}/include/ffmpeg")
endif() endif()
# end lameness # end lameness
mark_as_advanced(FFMPEG_LIBRARIES) mark_as_advanced(FFMPEG_LIBRARIES)
set(FFMPEG_LIBPATH ${FFMPEG}/lib) set(FFMPEG_LIBPATH ${FFMPEG}/lib)
endif() endif()
if(WITH_FFTW3) if(WITH_FFTW3)
find_package_wrapper(Fftw3) find_package_wrapper(Fftw3)
if(NOT FFTW3_FOUND) if(NOT FFTW3_FOUND)
set(WITH_FFTW3 OFF) set(WITH_FFTW3 OFF)
endif() endif()
endif() endif()
if(WITH_OPENCOLLADA) if(WITH_OPENCOLLADA)
find_package_wrapper(OpenCOLLADA) find_package_wrapper(OpenCOLLADA)
if(OPENCOLLADA_FOUND) if(OPENCOLLADA_FOUND)
find_package_wrapper(XML2) find_package_wrapper(XML2)
find_package_wrapper(PCRE) find_package_wrapper(PCRE)
else() else()
set(WITH_OPENCOLLADA OFF) set(WITH_OPENCOLLADA OFF)
endif() endif()
endif() endif()
if(WITH_MEM_JEMALLOC) if(WITH_MEM_JEMALLOC)
find_package_wrapper(JeMalloc) find_package_wrapper(JeMalloc)
if(NOT JEMALLOC_FOUND) if(NOT JEMALLOC_FOUND)
set(WITH_MEM_JEMALLOC OFF) set(WITH_MEM_JEMALLOC OFF)
endif() endif()
endif() endif()
if(WITH_INPUT_NDOF) if(WITH_INPUT_NDOF)
find_package_wrapper(Spacenav) find_package_wrapper(Spacenav)
if(SPACENAV_FOUND) if(SPACENAV_FOUND)
# use generic names within blenders buildsystem. # use generic names within blenders buildsystem.
set(NDOF_INCLUDE_DIRS ${SPACENAV_INCLUDE_DIRS}) set(NDOF_INCLUDE_DIRS ${SPACENAV_INCLUDE_DIRS})
set(NDOF_LIBRARIES ${SPACENAV_LIBRARIES}) set(NDOF_LIBRARIES ${SPACENAV_LIBRARIES})
else() else()
set(WITH_INPUT_NDOF OFF) set(WITH_INPUT_NDOF OFF)
endif() endif()
endif() endif()
if(WITH_CYCLES_OSL) if(WITH_CYCLES_OSL)
set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation") set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
if(NOT OSL_ROOT) if(NOT OSL_ROOT)
set(OSL_ROOT ${CYCLES_OSL}) set(OSL_ROOT ${CYCLES_OSL})
endif() endif()
find_package_wrapper(OpenShadingLanguage) find_package_wrapper(OpenShadingLanguage)
if(OSL_FOUND) if(OSL_FOUND)
if(${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6") 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, # Note: --whole-archive is needed to force loading of all symbols in liboslexec,
# otherwise LLVM is missing the osl_allocate_closure_component function # otherwise LLVM is missing the osl_allocate_closure_component function
set(OSL_LIBRARIES set(OSL_LIBRARIES
${OSL_OSLCOMP_LIBRARY} ${OSL_OSLCOMP_LIBRARY}
-Wl,--whole-archive ${OSL_OSLEXEC_LIBRARY} -Wl,--whole-archive ${OSL_OSLEXEC_LIBRARY}
-Wl,--no-whole-archive ${OSL_OSLQUERY_LIBRARY} -Wl,--no-whole-archive ${OSL_OSLQUERY_LIBRARY}
) )
endif() endif()
else() else()
message(STATUS "OSL not found, disabling it from Cycles") message(STATUS "OSL not found, disabling it from Cycles")
set(WITH_CYCLES_OSL OFF) set(WITH_CYCLES_OSL OFF)
endif() endif()
endif() endif()
if(WITH_OPENVDB) if(WITH_OPENVDB)
find_package_wrapper(OpenVDB) find_package_wrapper(OpenVDB)
find_package_wrapper(TBB) find_package_wrapper(TBB)
find_package_wrapper(Blosc) find_package_wrapper(Blosc)
if(NOT TBB_FOUND) if(NOT TBB_FOUND)
set(WITH_OPENVDB OFF) set(WITH_OPENVDB OFF)
set(WITH_OPENVDB_BLOSC OFF) set(WITH_OPENVDB_BLOSC OFF)
message(STATUS "TBB not found, disabling OpenVDB") message(STATUS "TBB not found, disabling OpenVDB")
elseif(NOT OPENVDB_FOUND) elseif(NOT OPENVDB_FOUND)
set(WITH_OPENVDB OFF) set(WITH_OPENVDB OFF)
set(WITH_OPENVDB_BLOSC OFF) set(WITH_OPENVDB_BLOSC OFF)
message(STATUS "OpenVDB not found, disabling it") message(STATUS "OpenVDB not found, disabling it")
elseif(NOT BLOSC_FOUND) elseif(NOT BLOSC_FOUND)
set(WITH_OPENVDB_BLOSC OFF) set(WITH_OPENVDB_BLOSC OFF)
message(STATUS "Blosc not found, disabling it for OpenVBD") message(STATUS "Blosc not found, disabling it for OpenVBD")
endif() endif()
endif() endif()
if(WITH_ALEMBIC) if(WITH_ALEMBIC)
find_package_wrapper(Alembic) find_package_wrapper(Alembic)
if(WITH_ALEMBIC_HDF5) if(WITH_ALEMBIC_HDF5)
set(HDF5_ROOT_DIR ${LIBDIR}/hdf5) set(HDF5_ROOT_DIR ${LIBDIR}/hdf5)
find_package_wrapper(HDF5) find_package_wrapper(HDF5)
endif() endif()
if(NOT ALEMBIC_FOUND OR (WITH_ALEMBIC_HDF5 AND NOT HDF5_FOUND)) if(NOT ALEMBIC_FOUND OR (WITH_ALEMBIC_HDF5 AND NOT HDF5_FOUND))
set(WITH_ALEMBIC OFF) set(WITH_ALEMBIC OFF)
set(WITH_ALEMBIC_HDF5 OFF) set(WITH_ALEMBIC_HDF5 OFF)
endif() endif()
endif() endif()
if(WITH_BOOST) if(WITH_BOOST)
# uses in build instructions to override include and library variables # uses in build instructions to override include and library variables
if(NOT BOOST_CUSTOM) if(NOT BOOST_CUSTOM)
if(WITH_STATIC_LIBS) if(WITH_STATIC_LIBS)
set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_STATIC_LIBS ON)
endif() endif()
set(Boost_USE_MULTITHREADED ON) set(Boost_USE_MULTITHREADED ON)
set(__boost_packages filesystem regex thread date_time) set(__boost_packages filesystem regex thread date_time)
if(WITH_CYCLES_OSL) if(WITH_CYCLES_OSL)
if(NOT (${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6")) if(NOT (${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6"))
list(APPEND __boost_packages wave) list(APPEND __boost_packages wave)
else() else()
endif() endif()
endif() endif()
if(WITH_INTERNATIONAL) if(WITH_INTERNATIONAL)
list(APPEND __boost_packages locale) list(APPEND __boost_packages locale)
endif() endif()
if(WITH_CYCLES_NETWORK) if(WITH_CYCLES_NETWORK)
list(APPEND __boost_packages serialization) list(APPEND __boost_packages serialization)
endif() endif()
if(WITH_OPENVDB) if(WITH_OPENVDB)
list(APPEND __boost_packages iostreams) list(APPEND __boost_packages iostreams)
endif() endif()
list(APPEND __boost_packages system) list(APPEND __boost_packages system)
find_package(Boost 1.48 COMPONENTS ${__boost_packages}) find_package(Boost 1.48 COMPONENTS ${__boost_packages})
if(NOT Boost_FOUND) if(NOT Boost_FOUND)
# try to find non-multithreaded if -mt not found, this flag # try to find non-multithreaded if -mt not found, this flag
# doesn't matter for us, it has nothing to do with thread # doesn't matter for us, it has nothing to do with thread
# safety, but keep it to not disturb build setups # safety, but keep it to not disturb build setups
set(Boost_USE_MULTITHREADED OFF) set(Boost_USE_MULTITHREADED OFF)
find_package(Boost 1.48 COMPONENTS ${__boost_packages}) find_package(Boost 1.48 COMPONENTS ${__boost_packages})
endif() endif()
unset(__boost_packages) unset(__boost_packages)
if(Boost_USE_STATIC_LIBS AND WITH_BOOST_ICU) if(Boost_USE_STATIC_LIBS AND WITH_BOOST_ICU)
find_package(IcuLinux) find_package(IcuLinux)
endif() endif()
mark_as_advanced(Boost_DIR) # why doesn't boost do this? mark_as_advanced(Boost_DIR) # why doesn't boost do this?
endif() endif()
set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS}) set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
set(BOOST_LIBRARIES ${Boost_LIBRARIES}) set(BOOST_LIBRARIES ${Boost_LIBRARIES})
set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS}) set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS})
set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB") set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
endif() endif()
if(WITH_OPENIMAGEIO) if(WITH_OPENIMAGEIO)
find_package_wrapper(OpenImageIO) find_package_wrapper(OpenImageIO)
if(NOT OPENIMAGEIO_PUGIXML_FOUND AND WITH_CYCLES_STANDALONE) if(NOT OPENIMAGEIO_PUGIXML_FOUND AND WITH_CYCLES_STANDALONE)
find_package_wrapper(PugiXML) find_package_wrapper(PugiXML)
else() else()
set(PUGIXML_INCLUDE_DIR "${OPENIMAGEIO_INCLUDE_DIR/OpenImageIO}") set(PUGIXML_INCLUDE_DIR "${OPENIMAGEIO_INCLUDE_DIR/OpenImageIO}")
set(PUGIXML_LIBRARIES "") set(PUGIXML_LIBRARIES "")
endif() endif()
set(OPENIMAGEIO_LIBRARIES set(OPENIMAGEIO_LIBRARIES
${OPENIMAGEIO_LIBRARIES} ${OPENIMAGEIO_LIBRARIES}
${PNG_LIBRARIES} ${PNG_LIBRARIES}
${JPEG_LIBRARIES} ${JPEG_LIBRARIES}
${ZLIB_LIBRARIES} ${ZLIB_LIBRARIES}
${BOOST_LIBRARIES} ${BOOST_LIBRARIES}
) )
set(OPENIMAGEIO_LIBPATH) # TODO, remove and reference the absolute path everywhere set(OPENIMAGEIO_LIBPATH) # TODO, remove and reference the absolute path everywhere
set(OPENIMAGEIO_DEFINITIONS "") set(OPENIMAGEIO_DEFINITIONS "")
if(WITH_IMAGE_TIFF) if(WITH_IMAGE_TIFF)
list(APPEND OPENIMAGEIO_LIBRARIES "${TIFF_LIBRARY}") list(APPEND OPENIMAGEIO_LIBRARIES "${TIFF_LIBRARY}")
endif() endif()
if(WITH_IMAGE_OPENEXR) if(WITH_IMAGE_OPENEXR)
list(APPEND OPENIMAGEIO_LIBRARIES "${OPENEXR_LIBRARIES}") list(APPEND OPENIMAGEIO_LIBRARIES "${OPENEXR_LIBRARIES}")
endif() endif()
if(NOT OPENIMAGEIO_FOUND) if(NOT OPENIMAGEIO_FOUND)
set(WITH_OPENIMAGEIO OFF) set(WITH_OPENIMAGEIO OFF)
message(STATUS "OpenImageIO not found, disabling WITH_CYCLES") message(STATUS "OpenImageIO not found, disabling WITH_CYCLES")
endif() endif()
endif() endif()
if(WITH_OPENCOLORIO) if(WITH_OPENCOLORIO)
find_package_wrapper(OpenColorIO) find_package_wrapper(OpenColorIO)
set(OPENCOLORIO_LIBRARIES ${OPENCOLORIO_LIBRARIES}) set(OPENCOLORIO_LIBRARIES ${OPENCOLORIO_LIBRARIES})
set(OPENCOLORIO_LIBPATH) # TODO, remove and reference the absolute path everywhere set(OPENCOLORIO_LIBPATH) # TODO, remove and reference the absolute path everywhere
set(OPENCOLORIO_DEFINITIONS) set(OPENCOLORIO_DEFINITIONS)
if(NOT OPENCOLORIO_FOUND) if(NOT OPENCOLORIO_FOUND)
set(WITH_OPENCOLORIO OFF) set(WITH_OPENCOLORIO OFF)
message(STATUS "OpenColorIO not found") message(STATUS "OpenColorIO not found")
endif() endif()
endif() endif()
if(WITH_CYCLES_EMBREE) if(WITH_CYCLES_EMBREE)
find_package(Embree 3.2.4 REQUIRED) find_package(Embree 3.2.4 REQUIRED)
endif() endif()
if(WITH_LLVM) if(WITH_LLVM)
if(EXISTS ${LIBDIR}) if(EXISTS ${LIBDIR})
set(LLVM_STATIC ON) set(LLVM_STATIC ON)
endif() endif()
find_package_wrapper(LLVM) find_package_wrapper(LLVM)
# Symbol conflicts with same UTF library used by OpenCollada # Symbol conflicts with same UTF library used by OpenCollada
if(EXISTS ${LIBDIR}) if(EXISTS ${LIBDIR})
if(WITH_OPENCOLLADA AND (${LLVM_VERSION} VERSION_LESS "4.0.0")) if(WITH_OPENCOLLADA AND (${LLVM_VERSION} VERSION_LESS "4.0.0"))
list(REMOVE_ITEM OPENCOLLADA_LIBRARIES ${OPENCOLLADA_UTF_LIBRARY}) list(REMOVE_ITEM OPENCOLLADA_LIBRARIES ${OPENCOLLADA_UTF_LIBRARY})
endif() endif()
endif() endif()
if(NOT LLVM_FOUND) if(NOT LLVM_FOUND)
set(WITH_LLVM OFF) set(WITH_LLVM OFF)
message(STATUS "LLVM not found") message(STATUS "LLVM not found")
endif() endif()
endif() endif()
if(WITH_LLVM OR WITH_SDL_DYNLOAD) if(WITH_LLVM OR WITH_SDL_DYNLOAD)
# Fix for conflict with Mesa llvmpipe # Fix for conflict with Mesa llvmpipe
set(PLATFORM_LINKFLAGS set(PLATFORM_LINKFLAGS
"${PLATFORM_LINKFLAGS} -Wl,--version-script='${CMAKE_SOURCE_DIR}/source/creator/blender.map'" "${PLATFORM_LINKFLAGS} -Wl,--version-script='${CMAKE_SOURCE_DIR}/source/creator/blender.map'"
) )
endif() endif()
if(WITH_OPENSUBDIV) if(WITH_OPENSUBDIV)
find_package_wrapper(OpenSubdiv) find_package_wrapper(OpenSubdiv)
set(OPENSUBDIV_LIBRARIES ${OPENSUBDIV_LIBRARIES}) set(OPENSUBDIV_LIBRARIES ${OPENSUBDIV_LIBRARIES})
set(OPENSUBDIV_LIBPATH) # TODO, remove and reference the absolute path everywhere set(OPENSUBDIV_LIBPATH) # TODO, remove and reference the absolute path everywhere
if(NOT OPENSUBDIV_FOUND) if(NOT OPENSUBDIV_FOUND)
set(WITH_OPENSUBDIV OFF) set(WITH_OPENSUBDIV OFF)
message(STATUS "OpenSubdiv not found") message(STATUS "OpenSubdiv not found")
endif() endif()
endif() endif()
# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
if(HAIKU) if(HAIKU)
list(APPEND PLATFORM_LINKLIBS -lnetwork) list(APPEND PLATFORM_LINKLIBS -lnetwork)
else() else()
list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm) list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm)
endif() endif()
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
@@ -420,15 +420,15 @@ list(APPEND PLATFORM_LINKLIBS ${CMAKE_THREAD_LIBS_INIT})
set(PTHREADS_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) set(PTHREADS_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
if(CMAKE_DL_LIBS) if(CMAKE_DL_LIBS)
list(APPEND PLATFORM_LINKLIBS ${CMAKE_DL_LIBS}) list(APPEND PLATFORM_LINKLIBS ${CMAKE_DL_LIBS})
endif() endif()
if(CMAKE_SYSTEM_NAME MATCHES "Linux") if(CMAKE_SYSTEM_NAME MATCHES "Linux")
if(NOT WITH_PYTHON_MODULE) if(NOT WITH_PYTHON_MODULE)
# binreloc is linux only # binreloc is linux only
set(BINRELOC_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/binreloc/include) set(BINRELOC_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/binreloc/include)
set(WITH_BINRELOC ON) set(WITH_BINRELOC ON)
endif() endif()
endif() endif()
# lfs on glibc, all compilers should use # lfs on glibc, all compilers should use
@@ -436,43 +436,43 @@ add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
# GNU Compiler # GNU Compiler
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
if(WITH_LINKER_GOLD) if(WITH_LINKER_GOLD)
execute_process( execute_process(
COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version
ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) ERROR_QUIET OUTPUT_VARIABLE LD_VERSION)
if("${LD_VERSION}" MATCHES "GNU gold") if("${LD_VERSION}" MATCHES "GNU gold")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=gold") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=gold")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")
else() else()
message(STATUS "GNU gold linker isn't available, using the default system linker.") message(STATUS "GNU gold linker isn't available, using the default system linker.")
endif() endif()
unset(LD_VERSION) unset(LD_VERSION)
endif() endif()
# CLang is the same as GCC for now. # CLang is the same as GCC for now.
elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
# Intel C++ Compiler # Intel C++ Compiler
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel") elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
# think these next two are broken # think these next two are broken
find_program(XIAR xiar) find_program(XIAR xiar)
if(XIAR) if(XIAR)
set(CMAKE_AR "${XIAR}") set(CMAKE_AR "${XIAR}")
endif() endif()
mark_as_advanced(XIAR) mark_as_advanced(XIAR)
find_program(XILD xild) find_program(XILD xild)
if(XILD) if(XILD)
set(CMAKE_LINKER "${XILD}") set(CMAKE_LINKER "${XILD}")
endif() endif()
mark_as_advanced(XILD) mark_as_advanced(XILD)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fp-model precise -prec_div -parallel") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fp-model precise -prec_div -parallel")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fp-model precise -prec_div -parallel") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fp-model precise -prec_div -parallel")
# set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -diag-enable sc3") # set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -diag-enable sc3")
set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel") set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel")
endif() endif()

View File

@@ -23,44 +23,44 @@
add_definitions(-DWIN32) add_definitions(-DWIN32)
if(NOT MSVC) if(NOT MSVC)
message(FATAL_ERROR "Compiler is unsupported") message(FATAL_ERROR "Compiler is unsupported")
endif() endif()
if(CMAKE_C_COMPILER_ID MATCHES "Clang") if(CMAKE_C_COMPILER_ID MATCHES "Clang")
set(MSVC_CLANG On) set(MSVC_CLANG On)
set(VC_TOOLS_DIR $ENV{VCToolsRedistDir} CACHE STRING "Location of the msvc redistributables") set(VC_TOOLS_DIR $ENV{VCToolsRedistDir} CACHE STRING "Location of the msvc redistributables")
set(MSVC_REDIST_DIR ${VC_TOOLS_DIR}) set(MSVC_REDIST_DIR ${VC_TOOLS_DIR})
if (DEFINED MSVC_REDIST_DIR) if (DEFINED MSVC_REDIST_DIR)
file(TO_CMAKE_PATH ${MSVC_REDIST_DIR} MSVC_REDIST_DIR) file(TO_CMAKE_PATH ${MSVC_REDIST_DIR} MSVC_REDIST_DIR)
else() else()
message("Unable to detect the Visual Studio redist directory, copying of the runtime dlls will not work, try running from the visual studio developer prompt.") message("Unable to detect the Visual Studio redist directory, copying of the runtime dlls will not work, try running from the visual studio developer prompt.")
endif() endif()
endif() endif()
set_property(GLOBAL PROPERTY USE_FOLDERS ${WINDOWS_USE_VISUAL_STUDIO_FOLDERS}) set_property(GLOBAL PROPERTY USE_FOLDERS ${WINDOWS_USE_VISUAL_STUDIO_FOLDERS})
if(NOT WITH_PYTHON_MODULE) if(NOT WITH_PYTHON_MODULE)
set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT blender) set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT blender)
endif() endif()
macro(warn_hardcoded_paths package_name macro(warn_hardcoded_paths package_name
) )
if(WITH_WINDOWS_FIND_MODULES) if(WITH_WINDOWS_FIND_MODULES)
message(WARNING "Using HARDCODED ${package_name} locations") message(WARNING "Using HARDCODED ${package_name} locations")
endif() endif()
endmacro() endmacro()
macro(windows_find_package package_name macro(windows_find_package package_name
) )
if(WITH_WINDOWS_FIND_MODULES) if(WITH_WINDOWS_FIND_MODULES)
find_package(${package_name}) find_package(${package_name})
endif() endif()
endmacro() endmacro()
macro(find_package_wrapper) macro(find_package_wrapper)
if(WITH_WINDOWS_FIND_MODULES) if(WITH_WINDOWS_FIND_MODULES)
find_package(${ARGV}) find_package(${ARGV})
endif() endif()
endmacro() endmacro()
add_definitions(-DWIN32) add_definitions(-DWIN32)
@@ -71,22 +71,22 @@ add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
# Minimum MSVC Version # Minimum MSVC Version
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC) if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
if(MSVC_VERSION EQUAL 1800) if(MSVC_VERSION EQUAL 1800)
set(_min_ver "18.0.31101") set(_min_ver "18.0.31101")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${_min_ver}) if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${_min_ver})
message(FATAL_ERROR message(FATAL_ERROR
"Visual Studio 2013 (Update 4, ${_min_ver}) required, " "Visual Studio 2013 (Update 4, ${_min_ver}) required, "
"found (${CMAKE_CXX_COMPILER_VERSION})") "found (${CMAKE_CXX_COMPILER_VERSION})")
endif() endif()
endif() endif()
if(MSVC_VERSION EQUAL 1900) if(MSVC_VERSION EQUAL 1900)
set(_min_ver "19.0.24210") set(_min_ver "19.0.24210")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${_min_ver}) if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${_min_ver})
message(FATAL_ERROR message(FATAL_ERROR
"Visual Studio 2015 (Update 3, ${_min_ver}) required, " "Visual Studio 2015 (Update 3, ${_min_ver}) required, "
"found (${CMAKE_CXX_COMPILER_VERSION})") "found (${CMAKE_CXX_COMPILER_VERSION})")
endif() endif()
endif() endif()
endif() endif()
unset(_min_ver) unset(_min_ver)
@@ -96,20 +96,20 @@ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO")
list(APPEND PLATFORM_LINKLIBS list(APPEND PLATFORM_LINKLIBS
ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32
advapi32 shfolder shell32 ole32 oleaut32 uuid psapi Dbghelp advapi32 shfolder shell32 ole32 oleaut32 uuid psapi Dbghelp
) )
if(WITH_INPUT_IME) if(WITH_INPUT_IME)
list(APPEND PLATFORM_LINKLIBS imm32) list(APPEND PLATFORM_LINKLIBS imm32)
endif() endif()
add_definitions( add_definitions(
-D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE
-D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE
-D_CONSOLE -D_CONSOLE
-D_LIB -D_LIB
) )
# MSVC11 needs _ALLOW_KEYWORD_MACROS to build # MSVC11 needs _ALLOW_KEYWORD_MACROS to build
@@ -128,11 +128,11 @@ include(InstallRequiredSystemLibraries)
remove_cc_flag("/MDd" "/MD") remove_cc_flag("/MDd" "/MD")
if(MSVC_CLANG) # Clangs version of cl doesn't support all flags if(MSVC_CLANG) # Clangs version of cl doesn't support all flags
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARN_FLAGS} /nologo /J /Gd /EHsc -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference ") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARN_FLAGS} /nologo /J /Gd /EHsc -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference ")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference")
else() else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /nologo /J /Gd /MP /EHsc") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /nologo /J /Gd /MP /EHsc")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd /MP") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd /MP")
endif() endif()
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
@@ -152,50 +152,50 @@ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /ignore:4049 /ignore:4217 /ignore:
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /ignore:4221") set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /ignore:4221")
if(CMAKE_CL_64) if(CMAKE_CL_64)
set(PLATFORM_LINKFLAGS "/MACHINE:X64 ${PLATFORM_LINKFLAGS}") set(PLATFORM_LINKFLAGS "/MACHINE:X64 ${PLATFORM_LINKFLAGS}")
else() else()
set(PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}") set(PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}")
endif() endif()
set(PLATFORM_LINKFLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG} /IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib") set(PLATFORM_LINKFLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG} /IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib")
if(NOT DEFINED LIBDIR) if(NOT DEFINED LIBDIR)
# Setup 64bit and 64bit windows systems # Setup 64bit and 64bit windows systems
if(CMAKE_CL_64) if(CMAKE_CL_64)
message(STATUS "64 bit compiler detected.") message(STATUS "64 bit compiler detected.")
set(LIBDIR_BASE "win64") set(LIBDIR_BASE "win64")
else() else()
message(STATUS "32 bit compiler detected.") message(STATUS "32 bit compiler detected.")
set(LIBDIR_BASE "windows") set(LIBDIR_BASE "windows")
endif() endif()
# Can be 1910..1912 # Can be 1910..1912
if(MSVC_VERSION GREATER 1919) if(MSVC_VERSION GREATER 1919)
message(STATUS "Visual Studio 2019 detected.") message(STATUS "Visual Studio 2019 detected.")
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14) set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
elseif(MSVC_VERSION GREATER 1909) elseif(MSVC_VERSION GREATER 1909)
message(STATUS "Visual Studio 2017 detected.") message(STATUS "Visual Studio 2017 detected.")
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14) set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
elseif(MSVC_VERSION EQUAL 1900) elseif(MSVC_VERSION EQUAL 1900)
message(STATUS "Visual Studio 2015 detected.") message(STATUS "Visual Studio 2015 detected.")
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14) set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
else() else()
message(STATUS "Visual Studio 2013 detected.") message(STATUS "Visual Studio 2013 detected.")
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc12) set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc12)
endif() endif()
else() else()
message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}") message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
endif() endif()
if(NOT EXISTS "${LIBDIR}/") if(NOT EXISTS "${LIBDIR}/")
message(FATAL_ERROR "Windows requires pre-compiled libs at: '${LIBDIR}'") message(FATAL_ERROR "Windows requires pre-compiled libs at: '${LIBDIR}'")
endif() endif()
# Add each of our libraries to our cmake_prefix_path so find_package() could work # Add each of our libraries to our cmake_prefix_path so find_package() could work
file(GLOB children RELATIVE ${LIBDIR} ${LIBDIR}/*) file(GLOB children RELATIVE ${LIBDIR} ${LIBDIR}/*)
foreach(child ${children}) foreach(child ${children})
if(IS_DIRECTORY ${LIBDIR}/${child}) if(IS_DIRECTORY ${LIBDIR}/${child})
list(APPEND CMAKE_PREFIX_PATH ${LIBDIR}/${child}) list(APPEND CMAKE_PREFIX_PATH ${LIBDIR}/${child})
endif() endif()
endforeach() endforeach()
set(ZLIB_INCLUDE_DIRS ${LIBDIR}/zlib/include) set(ZLIB_INCLUDE_DIRS ${LIBDIR}/zlib/include)
@@ -208,20 +208,20 @@ windows_find_package(zlib) # we want to find before finding things that depend o
windows_find_package(png) windows_find_package(png)
if(NOT PNG_FOUND) if(NOT PNG_FOUND)
warn_hardcoded_paths(libpng) warn_hardcoded_paths(libpng)
set(PNG_PNG_INCLUDE_DIR ${LIBDIR}/png/include) set(PNG_PNG_INCLUDE_DIR ${LIBDIR}/png/include)
set(PNG_LIBRARIES ${LIBDIR}/png/lib/libpng.lib) set(PNG_LIBRARIES ${LIBDIR}/png/lib/libpng.lib)
set(PNG "${LIBDIR}/png") set(PNG "${LIBDIR}/png")
set(PNG_INCLUDE_DIRS "${PNG}/include") set(PNG_INCLUDE_DIRS "${PNG}/include")
set(PNG_LIBPATH ${PNG}/lib) # not cmake defined set(PNG_LIBPATH ${PNG}/lib) # not cmake defined
endif() endif()
set(JPEG_NAMES ${JPEG_NAMES} libjpeg) set(JPEG_NAMES ${JPEG_NAMES} libjpeg)
windows_find_package(jpeg REQUIRED) windows_find_package(jpeg REQUIRED)
if(NOT JPEG_FOUND) if(NOT JPEG_FOUND)
warn_hardcoded_paths(jpeg) warn_hardcoded_paths(jpeg)
set(JPEG_INCLUDE_DIR ${LIBDIR}/jpeg/include) set(JPEG_INCLUDE_DIR ${LIBDIR}/jpeg/include)
set(JPEG_LIBRARIES ${LIBDIR}/jpeg/lib/libjpeg.lib) set(JPEG_LIBRARIES ${LIBDIR}/jpeg/lib/libjpeg.lib)
endif() endif()
set(PTHREADS_INCLUDE_DIRS ${LIBDIR}/pthreads/include) set(PTHREADS_INCLUDE_DIRS ${LIBDIR}/pthreads/include)
@@ -229,313 +229,313 @@ set(PTHREADS_LIBRARIES ${LIBDIR}/pthreads/lib/pthreadVC3.lib)
set(FREETYPE ${LIBDIR}/freetype) set(FREETYPE ${LIBDIR}/freetype)
set(FREETYPE_INCLUDE_DIRS set(FREETYPE_INCLUDE_DIRS
${LIBDIR}/freetype/include ${LIBDIR}/freetype/include
${LIBDIR}/freetype/include/freetype2 ${LIBDIR}/freetype/include/freetype2
) )
set(FREETYPE_LIBRARY ${LIBDIR}/freetype/lib/freetype2ST.lib) set(FREETYPE_LIBRARY ${LIBDIR}/freetype/lib/freetype2ST.lib)
windows_find_package(freetype REQUIRED) windows_find_package(freetype REQUIRED)
if(WITH_FFTW3) if(WITH_FFTW3)
set(FFTW3 ${LIBDIR}/fftw3) set(FFTW3 ${LIBDIR}/fftw3)
set(FFTW3_LIBRARIES ${FFTW3}/lib/libfftw.lib) set(FFTW3_LIBRARIES ${FFTW3}/lib/libfftw.lib)
set(FFTW3_INCLUDE_DIRS ${FFTW3}/include) set(FFTW3_INCLUDE_DIRS ${FFTW3}/include)
set(FFTW3_LIBPATH ${FFTW3}/lib) set(FFTW3_LIBPATH ${FFTW3}/lib)
endif() endif()
if(WITH_OPENCOLLADA) if(WITH_OPENCOLLADA)
set(OPENCOLLADA ${LIBDIR}/opencollada) set(OPENCOLLADA ${LIBDIR}/opencollada)
set(OPENCOLLADA_INCLUDE_DIRS set(OPENCOLLADA_INCLUDE_DIRS
${OPENCOLLADA}/include/opencollada/COLLADAStreamWriter ${OPENCOLLADA}/include/opencollada/COLLADAStreamWriter
${OPENCOLLADA}/include/opencollada/COLLADABaseUtils ${OPENCOLLADA}/include/opencollada/COLLADABaseUtils
${OPENCOLLADA}/include/opencollada/COLLADAFramework ${OPENCOLLADA}/include/opencollada/COLLADAFramework
${OPENCOLLADA}/include/opencollada/COLLADASaxFrameworkLoader ${OPENCOLLADA}/include/opencollada/COLLADASaxFrameworkLoader
${OPENCOLLADA}/include/opencollada/GeneratedSaxParser ${OPENCOLLADA}/include/opencollada/GeneratedSaxParser
) )
set(OPENCOLLADA_LIBRARIES set(OPENCOLLADA_LIBRARIES
${OPENCOLLADA}/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib ${OPENCOLLADA}/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib
${OPENCOLLADA}/lib/opencollada/OpenCOLLADAFramework.lib ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAFramework.lib
${OPENCOLLADA}/lib/opencollada/OpenCOLLADABaseUtils.lib ${OPENCOLLADA}/lib/opencollada/OpenCOLLADABaseUtils.lib
${OPENCOLLADA}/lib/opencollada/OpenCOLLADAStreamWriter.lib ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAStreamWriter.lib
${OPENCOLLADA}/lib/opencollada/MathMLSolver.lib ${OPENCOLLADA}/lib/opencollada/MathMLSolver.lib
${OPENCOLLADA}/lib/opencollada/GeneratedSaxParser.lib ${OPENCOLLADA}/lib/opencollada/GeneratedSaxParser.lib
${OPENCOLLADA}/lib/opencollada/xml.lib ${OPENCOLLADA}/lib/opencollada/xml.lib
${OPENCOLLADA}/lib/opencollada/buffer.lib ${OPENCOLLADA}/lib/opencollada/buffer.lib
${OPENCOLLADA}/lib/opencollada/ftoa.lib ${OPENCOLLADA}/lib/opencollada/ftoa.lib
) )
list(APPEND OPENCOLLADA_LIBRARIES ${OPENCOLLADA}/lib/opencollada/UTF.lib) list(APPEND OPENCOLLADA_LIBRARIES ${OPENCOLLADA}/lib/opencollada/UTF.lib)
set(PCRE_LIBRARIES set(PCRE_LIBRARIES
${OPENCOLLADA}/lib/opencollada/pcre.lib ${OPENCOLLADA}/lib/opencollada/pcre.lib
) )
endif() endif()
if(WITH_CODEC_FFMPEG) if(WITH_CODEC_FFMPEG)
set(FFMPEG_INCLUDE_DIRS set(FFMPEG_INCLUDE_DIRS
${LIBDIR}/ffmpeg/include ${LIBDIR}/ffmpeg/include
${LIBDIR}/ffmpeg/include/msvc ${LIBDIR}/ffmpeg/include/msvc
) )
windows_find_package(FFMPEG) windows_find_package(FFMPEG)
if(NOT FFMPEG_FOUND) if(NOT FFMPEG_FOUND)
warn_hardcoded_paths(ffmpeg) warn_hardcoded_paths(ffmpeg)
set(FFMPEG_LIBRARIES set(FFMPEG_LIBRARIES
${LIBDIR}/ffmpeg/lib/avcodec.lib ${LIBDIR}/ffmpeg/lib/avcodec.lib
${LIBDIR}/ffmpeg/lib/avformat.lib ${LIBDIR}/ffmpeg/lib/avformat.lib
${LIBDIR}/ffmpeg/lib/avdevice.lib ${LIBDIR}/ffmpeg/lib/avdevice.lib
${LIBDIR}/ffmpeg/lib/avutil.lib ${LIBDIR}/ffmpeg/lib/avutil.lib
${LIBDIR}/ffmpeg/lib/swscale.lib ${LIBDIR}/ffmpeg/lib/swscale.lib
) )
endif() endif()
endif() endif()
if(WITH_IMAGE_OPENEXR) if(WITH_IMAGE_OPENEXR)
set(OPENEXR_ROOT_DIR ${LIBDIR}/openexr) set(OPENEXR_ROOT_DIR ${LIBDIR}/openexr)
set(OPENEXR_VERSION "2.1") set(OPENEXR_VERSION "2.1")
windows_find_package(OPENEXR REQUIRED) windows_find_package(OPENEXR REQUIRED)
if(NOT OPENEXR_FOUND) if(NOT OPENEXR_FOUND)
warn_hardcoded_paths(OpenEXR) warn_hardcoded_paths(OpenEXR)
set(OPENEXR ${LIBDIR}/openexr) set(OPENEXR ${LIBDIR}/openexr)
set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include) set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR}/include/OpenEXR) set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR}/include/OpenEXR)
set(OPENEXR_LIBPATH ${OPENEXR}/lib) set(OPENEXR_LIBPATH ${OPENEXR}/lib)
set(OPENEXR_LIBRARIES set(OPENEXR_LIBRARIES
optimized ${OPENEXR_LIBPATH}/Iex_s.lib optimized ${OPENEXR_LIBPATH}/Iex_s.lib
optimized ${OPENEXR_LIBPATH}/Half_s.lib optimized ${OPENEXR_LIBPATH}/Half_s.lib
optimized ${OPENEXR_LIBPATH}/IlmImf_s.lib optimized ${OPENEXR_LIBPATH}/IlmImf_s.lib
optimized ${OPENEXR_LIBPATH}/Imath_s.lib optimized ${OPENEXR_LIBPATH}/Imath_s.lib
optimized ${OPENEXR_LIBPATH}/IlmThread_s.lib optimized ${OPENEXR_LIBPATH}/IlmThread_s.lib
debug ${OPENEXR_LIBPATH}/Iex_s_d.lib debug ${OPENEXR_LIBPATH}/Iex_s_d.lib
debug ${OPENEXR_LIBPATH}/Half_s_d.lib debug ${OPENEXR_LIBPATH}/Half_s_d.lib
debug ${OPENEXR_LIBPATH}/IlmImf_s_d.lib debug ${OPENEXR_LIBPATH}/IlmImf_s_d.lib
debug ${OPENEXR_LIBPATH}/Imath_s_d.lib debug ${OPENEXR_LIBPATH}/Imath_s_d.lib
debug ${OPENEXR_LIBPATH}/IlmThread_s_d.lib debug ${OPENEXR_LIBPATH}/IlmThread_s_d.lib
) )
endif() endif()
endif() endif()
if(WITH_IMAGE_TIFF) if(WITH_IMAGE_TIFF)
# Try to find tiff first then complain and set static and maybe wrong paths # Try to find tiff first then complain and set static and maybe wrong paths
windows_find_package(TIFF) windows_find_package(TIFF)
if(NOT TIFF_FOUND) if(NOT TIFF_FOUND)
warn_hardcoded_paths(libtiff) warn_hardcoded_paths(libtiff)
set(TIFF_LIBRARY ${LIBDIR}/tiff/lib/libtiff.lib) set(TIFF_LIBRARY ${LIBDIR}/tiff/lib/libtiff.lib)
set(TIFF_INCLUDE_DIR ${LIBDIR}/tiff/include) set(TIFF_INCLUDE_DIR ${LIBDIR}/tiff/include)
endif() endif()
endif() endif()
if(WITH_JACK) if(WITH_JACK)
set(JACK_INCLUDE_DIRS set(JACK_INCLUDE_DIRS
${LIBDIR}/jack/include/jack ${LIBDIR}/jack/include/jack
${LIBDIR}/jack/include ${LIBDIR}/jack/include
) )
set(JACK_LIBRARIES optimized ${LIBDIR}/jack/lib/libjack.lib debug ${LIBDIR}/jack/lib/libjack_d.lib) set(JACK_LIBRARIES optimized ${LIBDIR}/jack/lib/libjack.lib debug ${LIBDIR}/jack/lib/libjack_d.lib)
endif() endif()
if(WITH_PYTHON) if(WITH_PYTHON)
set(PYTHON_VERSION 3.7) # CACHE STRING) set(PYTHON_VERSION 3.7) # CACHE STRING)
string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION}) string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
# Use shared libs for vc2008 and vc2010 until we actually have vc2010 libs # Use shared libs for vc2008 and vc2010 until we actually have vc2010 libs
set(PYTHON_LIBRARY ${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}.lib) set(PYTHON_LIBRARY ${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}.lib)
unset(_PYTHON_VERSION_NO_DOTS) unset(_PYTHON_VERSION_NO_DOTS)
# Shared includes for both vc2008 and vc2010 # Shared includes for both vc2008 and vc2010
set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/include/python${PYTHON_VERSION}) set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/include/python${PYTHON_VERSION})
# uncached vars # uncached vars
set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}") set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}") set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
endif() endif()
if(WITH_BOOST) if(WITH_BOOST)
if(WITH_CYCLES_OSL) if(WITH_CYCLES_OSL)
set(boost_extra_libs wave) set(boost_extra_libs wave)
endif() endif()
if(WITH_INTERNATIONAL) if(WITH_INTERNATIONAL)
list(APPEND boost_extra_libs locale) list(APPEND boost_extra_libs locale)
endif() endif()
if(WITH_OPENVDB) if(WITH_OPENVDB)
list(APPEND boost_extra_libs iostreams) list(APPEND boost_extra_libs iostreams)
endif() endif()
set(Boost_USE_STATIC_RUNTIME ON) # prefix lib set(Boost_USE_STATIC_RUNTIME ON) # prefix lib
set(Boost_USE_MULTITHREADED ON) # suffix -mt set(Boost_USE_MULTITHREADED ON) # suffix -mt
set(Boost_USE_STATIC_LIBS ON) # suffix -s set(Boost_USE_STATIC_LIBS ON) # suffix -s
if(WITH_WINDOWS_FIND_MODULES) if(WITH_WINDOWS_FIND_MODULES)
find_package(Boost COMPONENTS date_time filesystem thread regex system ${boost_extra_libs}) find_package(Boost COMPONENTS date_time filesystem thread regex system ${boost_extra_libs})
endif() endif()
if(NOT Boost_FOUND) if(NOT Boost_FOUND)
warn_hardcoded_paths(BOOST) warn_hardcoded_paths(BOOST)
set(BOOST ${LIBDIR}/boost) set(BOOST ${LIBDIR}/boost)
set(BOOST_INCLUDE_DIR ${BOOST}/include) set(BOOST_INCLUDE_DIR ${BOOST}/include)
set(BOOST_LIBPATH ${BOOST}/lib) set(BOOST_LIBPATH ${BOOST}/lib)
if(CMAKE_CL_64) if(CMAKE_CL_64)
set(BOOST_POSTFIX "vc140-mt-s-x64-1_68.lib") set(BOOST_POSTFIX "vc140-mt-s-x64-1_68.lib")
set(BOOST_DEBUG_POSTFIX "vc140-mt-sgd-x64-1_68.lib") set(BOOST_DEBUG_POSTFIX "vc140-mt-sgd-x64-1_68.lib")
else() else()
set(BOOST_POSTFIX "vc140-mt-s-x32-1_68.lib") set(BOOST_POSTFIX "vc140-mt-s-x32-1_68.lib")
set(BOOST_DEBUG_POSTFIX "vc140-mt-sgd-x32-1_68.lib") set(BOOST_DEBUG_POSTFIX "vc140-mt-sgd-x32-1_68.lib")
endif() endif()
set(BOOST_LIBRARIES set(BOOST_LIBRARIES
optimized ${BOOST_LIBPATH}/libboost_date_time-${BOOST_POSTFIX} optimized ${BOOST_LIBPATH}/libboost_date_time-${BOOST_POSTFIX}
optimized ${BOOST_LIBPATH}/libboost_filesystem-${BOOST_POSTFIX} optimized ${BOOST_LIBPATH}/libboost_filesystem-${BOOST_POSTFIX}
optimized ${BOOST_LIBPATH}/libboost_regex-${BOOST_POSTFIX} optimized ${BOOST_LIBPATH}/libboost_regex-${BOOST_POSTFIX}
optimized ${BOOST_LIBPATH}/libboost_system-${BOOST_POSTFIX} optimized ${BOOST_LIBPATH}/libboost_system-${BOOST_POSTFIX}
optimized ${BOOST_LIBPATH}/libboost_thread-${BOOST_POSTFIX} optimized ${BOOST_LIBPATH}/libboost_thread-${BOOST_POSTFIX}
optimized ${BOOST_LIBPATH}/libboost_chrono-${BOOST_POSTFIX} optimized ${BOOST_LIBPATH}/libboost_chrono-${BOOST_POSTFIX}
debug ${BOOST_LIBPATH}/libboost_date_time-${BOOST_DEBUG_POSTFIX} debug ${BOOST_LIBPATH}/libboost_date_time-${BOOST_DEBUG_POSTFIX}
debug ${BOOST_LIBPATH}/libboost_filesystem-${BOOST_DEBUG_POSTFIX} debug ${BOOST_LIBPATH}/libboost_filesystem-${BOOST_DEBUG_POSTFIX}
debug ${BOOST_LIBPATH}/libboost_regex-${BOOST_DEBUG_POSTFIX} debug ${BOOST_LIBPATH}/libboost_regex-${BOOST_DEBUG_POSTFIX}
debug ${BOOST_LIBPATH}/libboost_system-${BOOST_DEBUG_POSTFIX} debug ${BOOST_LIBPATH}/libboost_system-${BOOST_DEBUG_POSTFIX}
debug ${BOOST_LIBPATH}/libboost_thread-${BOOST_DEBUG_POSTFIX} debug ${BOOST_LIBPATH}/libboost_thread-${BOOST_DEBUG_POSTFIX}
debug ${BOOST_LIBPATH}/libboost_chrono-${BOOST_DEBUG_POSTFIX} debug ${BOOST_LIBPATH}/libboost_chrono-${BOOST_DEBUG_POSTFIX}
) )
if(WITH_CYCLES_OSL) if(WITH_CYCLES_OSL)
set(BOOST_LIBRARIES ${BOOST_LIBRARIES} set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
optimized ${BOOST_LIBPATH}/libboost_wave-${BOOST_POSTFIX} optimized ${BOOST_LIBPATH}/libboost_wave-${BOOST_POSTFIX}
debug ${BOOST_LIBPATH}/libboost_wave-${BOOST_DEBUG_POSTFIX}) debug ${BOOST_LIBPATH}/libboost_wave-${BOOST_DEBUG_POSTFIX})
endif() endif()
if(WITH_INTERNATIONAL) if(WITH_INTERNATIONAL)
set(BOOST_LIBRARIES ${BOOST_LIBRARIES} set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
optimized ${BOOST_LIBPATH}/libboost_locale-${BOOST_POSTFIX} optimized ${BOOST_LIBPATH}/libboost_locale-${BOOST_POSTFIX}
debug ${BOOST_LIBPATH}/libboost_locale-${BOOST_DEBUG_POSTFIX}) debug ${BOOST_LIBPATH}/libboost_locale-${BOOST_DEBUG_POSTFIX})
endif() endif()
else() # we found boost using find_package else() # we found boost using find_package
set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS}) set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
set(BOOST_LIBRARIES ${Boost_LIBRARIES}) set(BOOST_LIBRARIES ${Boost_LIBRARIES})
set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS}) set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS})
endif() endif()
set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB") set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
endif() endif()
if(WITH_OPENIMAGEIO) if(WITH_OPENIMAGEIO)
windows_find_package(OpenImageIO) windows_find_package(OpenImageIO)
set(OPENIMAGEIO ${LIBDIR}/openimageio) set(OPENIMAGEIO ${LIBDIR}/openimageio)
set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include) set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
set(OIIO_OPTIMIZED optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO.lib optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util.lib) set(OIIO_OPTIMIZED optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO.lib optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util.lib)
set(OIIO_DEBUG debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_d.lib debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util_d.lib) set(OIIO_DEBUG debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_d.lib debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util_d.lib)
set(OPENIMAGEIO_LIBRARIES ${OIIO_OPTIMIZED} ${OIIO_DEBUG}) set(OPENIMAGEIO_LIBRARIES ${OIIO_OPTIMIZED} ${OIIO_DEBUG})
set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0") set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0")
set(OPENCOLORIO_DEFINITIONS "-DOCIO_STATIC_BUILD") set(OPENCOLORIO_DEFINITIONS "-DOCIO_STATIC_BUILD")
set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe") set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe")
add_definitions(-DOIIO_STATIC_BUILD) add_definitions(-DOIIO_STATIC_BUILD)
add_definitions(-DOIIO_NO_SSE=1) add_definitions(-DOIIO_NO_SSE=1)
endif() endif()
if(WITH_LLVM) if(WITH_LLVM)
set(LLVM_ROOT_DIR ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation") set(LLVM_ROOT_DIR ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation")
set(LLVM_INCLUDE_DIRS ${LLVM_ROOT_DIR}/$<$<CONFIG:Debug>:Debug>/include CACHE PATH "Path to the LLVM include directory") set(LLVM_INCLUDE_DIRS ${LLVM_ROOT_DIR}/$<$<CONFIG:Debug>:Debug>/include CACHE PATH "Path to the LLVM include directory")
file(GLOB LLVM_LIBRARY_OPTIMIZED ${LLVM_ROOT_DIR}/lib/*.lib) file(GLOB LLVM_LIBRARY_OPTIMIZED ${LLVM_ROOT_DIR}/lib/*.lib)
if(EXISTS ${LLVM_ROOT_DIR}/debug/lib) if(EXISTS ${LLVM_ROOT_DIR}/debug/lib)
foreach(LLVM_OPTIMIZED_LIB ${LLVM_LIBRARY_OPTIMIZED}) foreach(LLVM_OPTIMIZED_LIB ${LLVM_LIBRARY_OPTIMIZED})
get_filename_component(LIBNAME ${LLVM_OPTIMIZED_LIB} ABSOLUTE) get_filename_component(LIBNAME ${LLVM_OPTIMIZED_LIB} ABSOLUTE)
list(APPEND LLVM_LIBS optimized ${LIBNAME}) list(APPEND LLVM_LIBS optimized ${LIBNAME})
endforeach(LLVM_OPTIMIZED_LIB) endforeach(LLVM_OPTIMIZED_LIB)
file(GLOB LLVM_LIBRARY_DEBUG ${LLVM_ROOT_DIR}/debug/lib/*.lib) file(GLOB LLVM_LIBRARY_DEBUG ${LLVM_ROOT_DIR}/debug/lib/*.lib)
foreach(LLVM_DEBUG_LIB ${LLVM_LIBRARY_DEBUG}) foreach(LLVM_DEBUG_LIB ${LLVM_LIBRARY_DEBUG})
get_filename_component(LIBNAME ${LLVM_DEBUG_LIB} ABSOLUTE) get_filename_component(LIBNAME ${LLVM_DEBUG_LIB} ABSOLUTE)
list(APPEND LLVM_LIBS debug ${LIBNAME}) list(APPEND LLVM_LIBS debug ${LIBNAME})
endforeach(LLVM_DEBUG_LIB) endforeach(LLVM_DEBUG_LIB)
set(LLVM_LIBRARY ${LLVM_LIBS}) set(LLVM_LIBRARY ${LLVM_LIBS})
else() else()
message(WARNING "LLVM debug libs not present on this system. Using release libs for debug builds.") message(WARNING "LLVM debug libs not present on this system. Using release libs for debug builds.")
set(LLVM_LIBRARY ${LLVM_LIBRARY_OPTIMIZED}) set(LLVM_LIBRARY ${LLVM_LIBRARY_OPTIMIZED})
endif() endif()
endif() endif()
if(WITH_OPENCOLORIO) if(WITH_OPENCOLORIO)
set(OPENCOLORIO ${LIBDIR}/opencolorio) set(OPENCOLORIO ${LIBDIR}/opencolorio)
set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include) set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
set(OPENCOLORIO_LIBPATH ${LIBDIR}/opencolorio/lib) set(OPENCOLORIO_LIBPATH ${LIBDIR}/opencolorio/lib)
set(OPENCOLORIO_LIBRARIES set(OPENCOLORIO_LIBRARIES
optimized ${OPENCOLORIO_LIBPATH}/OpenColorIO.lib optimized ${OPENCOLORIO_LIBPATH}/OpenColorIO.lib
optimized ${OPENCOLORIO_LIBPATH}/tinyxml.lib optimized ${OPENCOLORIO_LIBPATH}/tinyxml.lib
optimized ${OPENCOLORIO_LIBPATH}/libyaml-cpp.lib optimized ${OPENCOLORIO_LIBPATH}/libyaml-cpp.lib
debug ${OPENCOLORIO_LIBPATH}/OpenColorIO_d.lib debug ${OPENCOLORIO_LIBPATH}/OpenColorIO_d.lib
debug ${OPENCOLORIO_LIBPATH}/tinyxml_d.lib debug ${OPENCOLORIO_LIBPATH}/tinyxml_d.lib
debug ${OPENCOLORIO_LIBPATH}/libyaml-cpp_d.lib debug ${OPENCOLORIO_LIBPATH}/libyaml-cpp_d.lib
) )
set(OPENCOLORIO_DEFINITIONS) set(OPENCOLORIO_DEFINITIONS)
endif() endif()
if(WITH_OPENVDB) if(WITH_OPENVDB)
set(BLOSC_LIBRARIES optimized ${LIBDIR}/blosc/lib/libblosc.lib debug ${LIBDIR}/blosc/lib/libblosc_d.lib) set(BLOSC_LIBRARIES optimized ${LIBDIR}/blosc/lib/libblosc.lib debug ${LIBDIR}/blosc/lib/libblosc_d.lib)
set(TBB_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbb.lib debug ${LIBDIR}/tbb/lib/tbb_debug.lib) set(TBB_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbb.lib debug ${LIBDIR}/tbb/lib/tbb_debug.lib)
set(TBB_INCLUDE_DIR ${LIBDIR}/tbb/include) set(TBB_INCLUDE_DIR ${LIBDIR}/tbb/include)
set(OPENVDB ${LIBDIR}/openvdb) set(OPENVDB ${LIBDIR}/openvdb)
set(OPENVDB_LIBPATH ${LIBDIR}/openvdb/lib) set(OPENVDB_LIBPATH ${LIBDIR}/openvdb/lib)
set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include ${TBB_INCLUDE_DIR}) set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include ${TBB_INCLUDE_DIR})
set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug ${OPENVDB_LIBPATH}/openvdb_d.lib ${TBB_LIBRARIES} ${BLOSC_LIBRARIES}) set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug ${OPENVDB_LIBPATH}/openvdb_d.lib ${TBB_LIBRARIES} ${BLOSC_LIBRARIES})
set(OPENVDB_DEFINITIONS -DNOMINMAX) set(OPENVDB_DEFINITIONS -DNOMINMAX)
endif() endif()
if(WITH_ALEMBIC) if(WITH_ALEMBIC)
set(ALEMBIC ${LIBDIR}/alembic) set(ALEMBIC ${LIBDIR}/alembic)
set(ALEMBIC_INCLUDE_DIR ${ALEMBIC}/include) set(ALEMBIC_INCLUDE_DIR ${ALEMBIC}/include)
set(ALEMBIC_INCLUDE_DIRS ${ALEMBIC_INCLUDE_DIR}) set(ALEMBIC_INCLUDE_DIRS ${ALEMBIC_INCLUDE_DIR})
set(ALEMBIC_LIBPATH ${ALEMBIC}/lib) set(ALEMBIC_LIBPATH ${ALEMBIC}/lib)
set(ALEMBIC_LIBRARIES optimized ${ALEMBIC}/lib/alembic.lib debug ${ALEMBIC}/lib/alembic_d.lib) set(ALEMBIC_LIBRARIES optimized ${ALEMBIC}/lib/alembic.lib debug ${ALEMBIC}/lib/alembic_d.lib)
set(ALEMBIC_FOUND 1) set(ALEMBIC_FOUND 1)
endif() endif()
if(WITH_MOD_CLOTH_ELTOPO) if(WITH_MOD_CLOTH_ELTOPO)
set(LAPACK ${LIBDIR}/lapack) set(LAPACK ${LIBDIR}/lapack)
# set(LAPACK_INCLUDE_DIR ${LAPACK}/include) # set(LAPACK_INCLUDE_DIR ${LAPACK}/include)
set(LAPACK_LIBPATH ${LAPACK}/lib) set(LAPACK_LIBPATH ${LAPACK}/lib)
set(LAPACK_LIBRARIES set(LAPACK_LIBRARIES
${LIBDIR}/lapack/lib/libf2c.lib ${LIBDIR}/lapack/lib/libf2c.lib
${LIBDIR}/lapack/lib/clapack_nowrap.lib ${LIBDIR}/lapack/lib/clapack_nowrap.lib
${LIBDIR}/lapack/lib/BLAS_nowrap.lib ${LIBDIR}/lapack/lib/BLAS_nowrap.lib
) )
endif() endif()
if(WITH_IMAGE_OPENJPEG) if(WITH_IMAGE_OPENJPEG)
set(OPENJPEG ${LIBDIR}/openjpeg) set(OPENJPEG ${LIBDIR}/openjpeg)
set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.3) set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.3)
set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/openjp2.lib) set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/openjp2.lib)
endif() endif()
if(WITH_OPENSUBDIV) if(WITH_OPENSUBDIV)
set(OPENSUBDIV_INCLUDE_DIR ${LIBDIR}/opensubdiv/include) set(OPENSUBDIV_INCLUDE_DIR ${LIBDIR}/opensubdiv/include)
set(OPENSUBDIV_LIBPATH ${LIBDIR}/opensubdiv/lib) set(OPENSUBDIV_LIBPATH ${LIBDIR}/opensubdiv/lib)
set(OPENSUBDIV_LIBRARIES set(OPENSUBDIV_LIBRARIES
optimized ${OPENSUBDIV_LIBPATH}/osdCPU.lib optimized ${OPENSUBDIV_LIBPATH}/osdCPU.lib
optimized ${OPENSUBDIV_LIBPATH}/osdGPU.lib optimized ${OPENSUBDIV_LIBPATH}/osdGPU.lib
debug ${OPENSUBDIV_LIBPATH}/osdCPU_d.lib debug ${OPENSUBDIV_LIBPATH}/osdCPU_d.lib
debug ${OPENSUBDIV_LIBPATH}/osdGPU_d.lib debug ${OPENSUBDIV_LIBPATH}/osdGPU_d.lib
) )
set(OPENSUBDIV_HAS_OPENMP TRUE) set(OPENSUBDIV_HAS_OPENMP TRUE)
set(OPENSUBDIV_HAS_TBB FALSE) set(OPENSUBDIV_HAS_TBB FALSE)
set(OPENSUBDIV_HAS_OPENCL TRUE) set(OPENSUBDIV_HAS_OPENCL TRUE)
set(OPENSUBDIV_HAS_CUDA FALSE) set(OPENSUBDIV_HAS_CUDA FALSE)
set(OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK TRUE) set(OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK TRUE)
set(OPENSUBDIV_HAS_GLSL_COMPUTE TRUE) set(OPENSUBDIV_HAS_GLSL_COMPUTE TRUE)
windows_find_package(OpenSubdiv) windows_find_package(OpenSubdiv)
endif() endif()
if(WITH_SDL) if(WITH_SDL)
set(SDL ${LIBDIR}/sdl) set(SDL ${LIBDIR}/sdl)
set(SDL_INCLUDE_DIR ${SDL}/include) set(SDL_INCLUDE_DIR ${SDL}/include)
set(SDL_LIBPATH ${SDL}/lib) set(SDL_LIBPATH ${SDL}/lib)
set(SDL_LIBRARY ${SDL_LIBPATH}/SDL2.lib) set(SDL_LIBRARY ${SDL_LIBPATH}/SDL2.lib)
endif() endif()
# Audio IO # Audio IO
if(WITH_SYSTEM_AUDASPACE) if(WITH_SYSTEM_AUDASPACE)
set(AUDASPACE_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace) set(AUDASPACE_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace)
set(AUDASPACE_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace.lib) set(AUDASPACE_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace.lib)
set(AUDASPACE_C_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace) set(AUDASPACE_C_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace)
set(AUDASPACE_C_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace-c.lib) set(AUDASPACE_C_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace-c.lib)
set(AUDASPACE_PY_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace) set(AUDASPACE_PY_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace)
set(AUDASPACE_PY_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace-py.lib) set(AUDASPACE_PY_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace-py.lib)
endif() endif()
# used in many places so include globally, like OpenGL # used in many places so include globally, like OpenGL
@@ -544,130 +544,130 @@ blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}")
#find signtool #find signtool
set(ProgramFilesX86_NAME "ProgramFiles(x86)") #env dislikes the ( ) set(ProgramFilesX86_NAME "ProgramFiles(x86)") #env dislikes the ( )
find_program(SIGNTOOL_EXE signtool find_program(SIGNTOOL_EXE signtool
HINTS HINTS
"$ENV{${ProgramFilesX86_NAME}}/Windows Kits/10/bin/x86/" "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/10/bin/x86/"
"$ENV{ProgramFiles}/Windows Kits/10/bin/x86/" "$ENV{ProgramFiles}/Windows Kits/10/bin/x86/"
"$ENV{${ProgramFilesX86_NAME}}/Windows Kits/8.1/bin/x86/" "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/8.1/bin/x86/"
"$ENV{ProgramFiles}/Windows Kits/8.1/bin/x86/" "$ENV{ProgramFiles}/Windows Kits/8.1/bin/x86/"
"$ENV{${ProgramFilesX86_NAME}}/Windows Kits/8.0/bin/x86/" "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/8.0/bin/x86/"
"$ENV{ProgramFiles}/Windows Kits/8.0/bin/x86/" "$ENV{ProgramFiles}/Windows Kits/8.0/bin/x86/"
) )
set(WINTAB_INC ${LIBDIR}/wintab/include) set(WINTAB_INC ${LIBDIR}/wintab/include)
if(WITH_OPENAL) if(WITH_OPENAL)
set(OPENAL ${LIBDIR}/openal) set(OPENAL ${LIBDIR}/openal)
set(OPENALDIR ${LIBDIR}/openal) set(OPENALDIR ${LIBDIR}/openal)
set(OPENAL_INCLUDE_DIR ${OPENAL}/include/AL) set(OPENAL_INCLUDE_DIR ${OPENAL}/include/AL)
set(OPENAL_LIBPATH ${OPENAL}/lib) set(OPENAL_LIBPATH ${OPENAL}/lib)
if(MSVC) if(MSVC)
set(OPENAL_LIBRARY ${OPENAL_LIBPATH}/openal32.lib) set(OPENAL_LIBRARY ${OPENAL_LIBPATH}/openal32.lib)
else() else()
set(OPENAL_LIBRARY ${OPENAL_LIBPATH}/wrap_oal.lib) set(OPENAL_LIBRARY ${OPENAL_LIBPATH}/wrap_oal.lib)
endif() endif()
endif() endif()
if(WITH_CODEC_SNDFILE) if(WITH_CODEC_SNDFILE)
set(LIBSNDFILE ${LIBDIR}/sndfile) set(LIBSNDFILE ${LIBDIR}/sndfile)
set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include) set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include)
set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib) # TODO, deprecate set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib) # TODO, deprecate
set(LIBSNDFILE_LIBRARIES ${LIBSNDFILE_LIBPATH}/libsndfile-1.lib) set(LIBSNDFILE_LIBRARIES ${LIBSNDFILE_LIBPATH}/libsndfile-1.lib)
endif() endif()
if(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD) if(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
add_definitions(-D__SSE__ -D__MMX__) add_definitions(-D__SSE__ -D__MMX__)
endif() endif()
if(WITH_CYCLES_OSL) if(WITH_CYCLES_OSL)
set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation") set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
find_library(OSL_LIB_EXEC_DEBUG NAMES oslexec_d PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_EXEC_DEBUG NAMES oslexec_d PATHS ${CYCLES_OSL}/lib)
find_library(OSL_LIB_COMP_DEBUG NAMES oslcomp_d PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_COMP_DEBUG NAMES oslcomp_d PATHS ${CYCLES_OSL}/lib)
find_library(OSL_LIB_QUERY_DEBUG NAMES oslquery_d PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_QUERY_DEBUG NAMES oslquery_d PATHS ${CYCLES_OSL}/lib)
list(APPEND OSL_LIBRARIES list(APPEND OSL_LIBRARIES
optimized ${OSL_LIB_COMP} optimized ${OSL_LIB_COMP}
optimized ${OSL_LIB_EXEC} optimized ${OSL_LIB_EXEC}
optimized ${OSL_LIB_QUERY} optimized ${OSL_LIB_QUERY}
optimized ${CYCLES_OSL}/lib/pugixml.lib optimized ${CYCLES_OSL}/lib/pugixml.lib
debug ${OSL_LIB_EXEC_DEBUG} debug ${OSL_LIB_EXEC_DEBUG}
debug ${OSL_LIB_COMP_DEBUG} debug ${OSL_LIB_COMP_DEBUG}
debug ${OSL_LIB_QUERY_DEBUG} debug ${OSL_LIB_QUERY_DEBUG}
debug ${CYCLES_OSL}/lib/pugixml_d.lib debug ${CYCLES_OSL}/lib/pugixml_d.lib
) )
find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include) find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin) find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER) if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER)
set(OSL_FOUND TRUE) set(OSL_FOUND TRUE)
else() else()
message(STATUS "OSL not found") message(STATUS "OSL not found")
set(WITH_CYCLES_OSL OFF) set(WITH_CYCLES_OSL OFF)
endif() endif()
endif() endif()
if(WITH_CYCLES_EMBREE) if(WITH_CYCLES_EMBREE)
windows_find_package(Embree) windows_find_package(Embree)
if(NOT EMBREE_FOUND) if(NOT EMBREE_FOUND)
set(EMBREE_INCLUDE_DIRS ${LIBDIR}/embree/include) set(EMBREE_INCLUDE_DIRS ${LIBDIR}/embree/include)
set(EMBREE_LIBRARIES set(EMBREE_LIBRARIES
optimized ${LIBDIR}/embree/lib/embree3.lib optimized ${LIBDIR}/embree/lib/embree3.lib
optimized ${LIBDIR}/embree/lib/embree_avx2.lib optimized ${LIBDIR}/embree/lib/embree_avx2.lib
optimized ${LIBDIR}/embree/lib/embree_avx.lib optimized ${LIBDIR}/embree/lib/embree_avx.lib
optimized ${LIBDIR}/embree/lib/embree_sse42.lib optimized ${LIBDIR}/embree/lib/embree_sse42.lib
optimized ${LIBDIR}/embree/lib/lexers.lib optimized ${LIBDIR}/embree/lib/lexers.lib
optimized ${LIBDIR}/embree/lib/math.lib optimized ${LIBDIR}/embree/lib/math.lib
optimized ${LIBDIR}/embree/lib/simd.lib optimized ${LIBDIR}/embree/lib/simd.lib
optimized ${LIBDIR}/embree/lib/sys.lib optimized ${LIBDIR}/embree/lib/sys.lib
optimized ${LIBDIR}/embree/lib/tasking.lib optimized ${LIBDIR}/embree/lib/tasking.lib
debug ${LIBDIR}/embree/lib/embree3_d.lib debug ${LIBDIR}/embree/lib/embree3_d.lib
debug ${LIBDIR}/embree/lib/embree_avx2_d.lib debug ${LIBDIR}/embree/lib/embree_avx2_d.lib
debug ${LIBDIR}/embree/lib/embree_avx_d.lib debug ${LIBDIR}/embree/lib/embree_avx_d.lib
debug ${LIBDIR}/embree/lib/embree_sse42_d.lib debug ${LIBDIR}/embree/lib/embree_sse42_d.lib
debug ${LIBDIR}/embree/lib/lexers_d.lib debug ${LIBDIR}/embree/lib/lexers_d.lib
debug ${LIBDIR}/embree/lib/math_d.lib debug ${LIBDIR}/embree/lib/math_d.lib
debug ${LIBDIR}/embree/lib/simd_d.lib debug ${LIBDIR}/embree/lib/simd_d.lib
debug ${LIBDIR}/embree/lib/sys_d.lib debug ${LIBDIR}/embree/lib/sys_d.lib
debug ${LIBDIR}/embree/lib/tasking_d.lib) debug ${LIBDIR}/embree/lib/tasking_d.lib)
endif() endif()
endif() endif()
if (WINDOWS_PYTHON_DEBUG) if (WINDOWS_PYTHON_DEBUG)
# Include the system scripts in the blender_python_system_scripts project. # Include the system scripts in the blender_python_system_scripts project.
FILE(GLOB_RECURSE inFiles "${CMAKE_SOURCE_DIR}/release/scripts/*.*" ) FILE(GLOB_RECURSE inFiles "${CMAKE_SOURCE_DIR}/release/scripts/*.*" )
ADD_CUSTOM_TARGET(blender_python_system_scripts SOURCES ${inFiles}) ADD_CUSTOM_TARGET(blender_python_system_scripts SOURCES ${inFiles})
foreach(_source IN ITEMS ${inFiles}) foreach(_source IN ITEMS ${inFiles})
get_filename_component(_source_path "${_source}" PATH) get_filename_component(_source_path "${_source}" PATH)
string(REPLACE "${CMAKE_SOURCE_DIR}/release/scripts/" "" _source_path "${_source_path}") string(REPLACE "${CMAKE_SOURCE_DIR}/release/scripts/" "" _source_path "${_source_path}")
string(REPLACE "/" "\\" _group_path "${_source_path}") string(REPLACE "/" "\\" _group_path "${_source_path}")
source_group("${_group_path}" FILES "${_source}") source_group("${_group_path}" FILES "${_source}")
endforeach() endforeach()
# Include the user scripts from the profile folder in the blender_python_user_scripts project. # Include the user scripts from the profile folder in the blender_python_user_scripts project.
set(USER_SCRIPTS_ROOT "$ENV{appdata}/blender foundation/blender/${BLENDER_VERSION}") set(USER_SCRIPTS_ROOT "$ENV{appdata}/blender foundation/blender/${BLENDER_VERSION}")
file(TO_CMAKE_PATH ${USER_SCRIPTS_ROOT} USER_SCRIPTS_ROOT) file(TO_CMAKE_PATH ${USER_SCRIPTS_ROOT} USER_SCRIPTS_ROOT)
FILE(GLOB_RECURSE inFiles "${USER_SCRIPTS_ROOT}/scripts/*.*" ) FILE(GLOB_RECURSE inFiles "${USER_SCRIPTS_ROOT}/scripts/*.*" )
ADD_CUSTOM_TARGET(blender_python_user_scripts SOURCES ${inFiles}) ADD_CUSTOM_TARGET(blender_python_user_scripts SOURCES ${inFiles})
foreach(_source IN ITEMS ${inFiles}) foreach(_source IN ITEMS ${inFiles})
get_filename_component(_source_path "${_source}" PATH) get_filename_component(_source_path "${_source}" PATH)
string(REPLACE "${USER_SCRIPTS_ROOT}/scripts" "" _source_path "${_source_path}") string(REPLACE "${USER_SCRIPTS_ROOT}/scripts" "" _source_path "${_source_path}")
string(REPLACE "/" "\\" _group_path "${_source_path}") string(REPLACE "/" "\\" _group_path "${_source_path}")
source_group("${_group_path}" FILES "${_source}") source_group("${_group_path}" FILES "${_source}")
endforeach() endforeach()
set_target_properties(blender_python_system_scripts PROPERTIES FOLDER "scripts") set_target_properties(blender_python_system_scripts PROPERTIES FOLDER "scripts")
set_target_properties(blender_python_user_scripts PROPERTIES FOLDER "scripts") set_target_properties(blender_python_user_scripts PROPERTIES FOLDER "scripts")
# Set the default debugging options for the project, only write this file once so the user # Set the default debugging options for the project, only write this file once so the user
# is free to override them at their own perril. # is free to override them at their own perril.
set(USER_PROPS_FILE "${CMAKE_CURRENT_BINARY_DIR}/source/creator/blender.Cpp.user.props") set(USER_PROPS_FILE "${CMAKE_CURRENT_BINARY_DIR}/source/creator/blender.Cpp.user.props")
if(NOT EXISTS ${USER_PROPS_FILE}) if(NOT EXISTS ${USER_PROPS_FILE})
# Layout below is messy, because otherwise the generated file will look messy. # Layout below is messy, because otherwise the generated file will look messy.
file(WRITE ${USER_PROPS_FILE} "<?xml version=\"1.0\" encoding=\"utf-8\"?> file(WRITE ${USER_PROPS_FILE} "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\"> <Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">
<PropertyGroup> <PropertyGroup>
<LocalDebuggerCommandArguments>-con --env-system-scripts \"${CMAKE_SOURCE_DIR}/release/scripts\" </LocalDebuggerCommandArguments> <LocalDebuggerCommandArguments>-con --env-system-scripts \"${CMAKE_SOURCE_DIR}/release/scripts\" </LocalDebuggerCommandArguments>
</PropertyGroup> </PropertyGroup>
</Project>") </Project>")
endif() endif()
endif() endif()

62
extern/CMakeLists.txt vendored
View File

@@ -26,9 +26,9 @@ remove_strict_flags()
# Not a strict flag, but noisy for code we don't maintain # Not a strict flag, but noisy for code we don't maintain
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
remove_cc_flag( remove_cc_flag(
"-Wmisleading-indentation" "-Wmisleading-indentation"
) )
endif() endif()
@@ -36,72 +36,72 @@ add_subdirectory(rangetree)
add_subdirectory(wcwidth) add_subdirectory(wcwidth)
if(WITH_BULLET) if(WITH_BULLET)
if(NOT WITH_SYSTEM_BULLET) if(NOT WITH_SYSTEM_BULLET)
add_subdirectory(bullet2) add_subdirectory(bullet2)
endif() endif()
endif() endif()
if(WITH_DRACO) if(WITH_DRACO)
add_subdirectory(draco) add_subdirectory(draco)
endif() endif()
# now only available in a branch # now only available in a branch
#if(WITH_MOD_CLOTH_ELTOPO) #if(WITH_MOD_CLOTH_ELTOPO)
# add_subdirectory(eltopo) # add_subdirectory(eltopo)
#endif() #endif()
if(WITH_BINRELOC) if(WITH_BINRELOC)
add_subdirectory(binreloc) add_subdirectory(binreloc)
endif() endif()
if(NOT WITH_SYSTEM_GLEW) if(NOT WITH_SYSTEM_GLEW)
if(WITH_GLEW_ES) if(WITH_GLEW_ES)
add_subdirectory(glew-es) add_subdirectory(glew-es)
else() else()
add_subdirectory(glew) add_subdirectory(glew)
endif() endif()
endif() endif()
if(WITH_LZO AND NOT WITH_SYSTEM_LZO) if(WITH_LZO AND NOT WITH_SYSTEM_LZO)
add_subdirectory(lzo) add_subdirectory(lzo)
endif() endif()
if(WITH_LZMA) if(WITH_LZMA)
add_subdirectory(lzma) add_subdirectory(lzma)
endif() endif()
if(WITH_CYCLES OR WITH_COMPOSITOR OR WITH_OPENSUBDIV) if(WITH_CYCLES OR WITH_COMPOSITOR OR WITH_OPENSUBDIV)
add_subdirectory(clew) add_subdirectory(clew)
if(WITH_CUDA_DYNLOAD) if(WITH_CUDA_DYNLOAD)
add_subdirectory(cuew) add_subdirectory(cuew)
endif() endif()
endif() endif()
if(WITH_X11 AND WITH_GHOST_XDND) if(WITH_X11 AND WITH_GHOST_XDND)
add_subdirectory(xdnd) add_subdirectory(xdnd)
endif() endif()
if(WITH_LIBMV) if(WITH_LIBMV)
add_subdirectory(ceres) add_subdirectory(ceres)
endif() endif()
if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING)) if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING))
if(NOT WITH_SYSTEM_GFLAGS) if(NOT WITH_SYSTEM_GFLAGS)
add_subdirectory(gflags) add_subdirectory(gflags)
endif() endif()
add_subdirectory(glog) add_subdirectory(glog)
endif() endif()
if(WITH_GTESTS) if(WITH_GTESTS)
add_subdirectory(gtest) add_subdirectory(gtest)
add_subdirectory(gmock) add_subdirectory(gmock)
endif() endif()
if(WITH_SDL AND WITH_SDL_DYNLOAD) if(WITH_SDL AND WITH_SDL_DYNLOAD)
add_subdirectory(sdlew) add_subdirectory(sdlew)
endif() endif()
if(WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE) if(WITH_AUDASPACE AND NOT WITH_SYSTEM_AUDASPACE)
set(AUDASPACE_CMAKE_CFG ${CMAKE_CURRENT_SOURCE_DIR}/audaspace/blender_config.cmake) set(AUDASPACE_CMAKE_CFG ${CMAKE_CURRENT_SOURCE_DIR}/audaspace/blender_config.cmake)
add_subdirectory(audaspace) add_subdirectory(audaspace)
endif() endif()

View File

@@ -18,7 +18,7 @@ cmake_minimum_required(VERSION 3.0)
include(CMakeDependentOption) include(CMakeDependentOption)
if(POLICY CMP0054) if(POLICY CMP0054)
cmake_policy(SET CMP0054 NEW) cmake_policy(SET CMP0054 NEW)
endif() endif()
project(audaspace) project(audaspace)
@@ -27,223 +27,223 @@ set(AUDASPACE_VERSION 1.3)
set(AUDASPACE_LONG_VERSION ${AUDASPACE_VERSION}.0) set(AUDASPACE_LONG_VERSION ${AUDASPACE_VERSION}.0)
if(DEFINED AUDASPACE_CMAKE_CFG) if(DEFINED AUDASPACE_CMAKE_CFG)
include(${AUDASPACE_CMAKE_CFG}) include(${AUDASPACE_CMAKE_CFG})
endif() endif()
if(NOT DEFINED AUDASPACE_STANDALONE) if(NOT DEFINED AUDASPACE_STANDALONE)
set(AUDASPACE_STANDALONE TRUE) set(AUDASPACE_STANDALONE TRUE)
endif() endif()
# sources # sources
set(SRC set(SRC
src/devices/DefaultSynchronizer.cpp src/devices/DefaultSynchronizer.cpp
src/devices/DeviceManager.cpp src/devices/DeviceManager.cpp
src/devices/NULLDevice.cpp src/devices/NULLDevice.cpp
src/devices/ReadDevice.cpp src/devices/ReadDevice.cpp
src/devices/SoftwareDevice.cpp src/devices/SoftwareDevice.cpp
src/Exception.cpp src/Exception.cpp
src/file/File.cpp src/file/File.cpp
src/file/FileManager.cpp src/file/FileManager.cpp
src/file/FileWriter.cpp src/file/FileWriter.cpp
src/fx/Accumulator.cpp src/fx/Accumulator.cpp
src/fx/ADSR.cpp src/fx/ADSR.cpp
src/fx/ADSRReader.cpp src/fx/ADSRReader.cpp
src/fx/BaseIIRFilterReader.cpp src/fx/BaseIIRFilterReader.cpp
src/fx/ButterworthCalculator.cpp src/fx/ButterworthCalculator.cpp
src/fx/Butterworth.cpp src/fx/Butterworth.cpp
src/fx/CallbackIIRFilterReader.cpp src/fx/CallbackIIRFilterReader.cpp
src/fx/Delay.cpp src/fx/Delay.cpp
src/fx/DelayReader.cpp src/fx/DelayReader.cpp
src/fx/DynamicIIRFilter.cpp src/fx/DynamicIIRFilter.cpp
src/fx/DynamicIIRFilterReader.cpp src/fx/DynamicIIRFilterReader.cpp
src/fx/DynamicMusic.cpp src/fx/DynamicMusic.cpp
src/fx/Effect.cpp src/fx/Effect.cpp
src/fx/EffectReader.cpp src/fx/EffectReader.cpp
src/fx/Envelope.cpp src/fx/Envelope.cpp
src/fx/Fader.cpp src/fx/Fader.cpp
src/fx/FaderReader.cpp src/fx/FaderReader.cpp
src/fx/HighpassCalculator.cpp src/fx/HighpassCalculator.cpp
src/fx/Highpass.cpp src/fx/Highpass.cpp
src/fx/IIRFilter.cpp src/fx/IIRFilter.cpp
src/fx/IIRFilterReader.cpp src/fx/IIRFilterReader.cpp
src/fx/Limiter.cpp src/fx/Limiter.cpp
src/fx/LimiterReader.cpp src/fx/LimiterReader.cpp
src/fx/Loop.cpp src/fx/Loop.cpp
src/fx/LoopReader.cpp src/fx/LoopReader.cpp
src/fx/LowpassCalculator.cpp src/fx/LowpassCalculator.cpp
src/fx/Lowpass.cpp src/fx/Lowpass.cpp
src/fx/Modulator.cpp src/fx/Modulator.cpp
src/fx/ModulatorReader.cpp src/fx/ModulatorReader.cpp
src/fx/MutableReader.cpp src/fx/MutableReader.cpp
src/fx/MutableSound.cpp src/fx/MutableSound.cpp
src/fx/Pitch.cpp src/fx/Pitch.cpp
src/fx/PitchReader.cpp src/fx/PitchReader.cpp
src/fx/PlaybackManager.cpp src/fx/PlaybackManager.cpp
src/fx/PlaybackCategory.cpp src/fx/PlaybackCategory.cpp
src/fx/Reverse.cpp src/fx/Reverse.cpp
src/fx/ReverseReader.cpp src/fx/ReverseReader.cpp
src/fx/SoundList.cpp src/fx/SoundList.cpp
src/fx/Source.cpp src/fx/Source.cpp
src/fx/Sum.cpp src/fx/Sum.cpp
src/fx/Threshold.cpp src/fx/Threshold.cpp
src/fx/Volume.cpp src/fx/Volume.cpp
src/fx/VolumeReader.cpp src/fx/VolumeReader.cpp
src/fx/VolumeSound.cpp src/fx/VolumeSound.cpp
src/fx/VolumeStorage.cpp src/fx/VolumeStorage.cpp
src/generator/Sawtooth.cpp src/generator/Sawtooth.cpp
src/generator/SawtoothReader.cpp src/generator/SawtoothReader.cpp
src/generator/Silence.cpp src/generator/Silence.cpp
src/generator/SilenceReader.cpp src/generator/SilenceReader.cpp
src/generator/Sine.cpp src/generator/Sine.cpp
src/generator/SineReader.cpp src/generator/SineReader.cpp
src/generator/Square.cpp src/generator/Square.cpp
src/generator/SquareReader.cpp src/generator/SquareReader.cpp
src/generator/Triangle.cpp src/generator/Triangle.cpp
src/generator/TriangleReader.cpp src/generator/TriangleReader.cpp
src/respec/ChannelMapper.cpp src/respec/ChannelMapper.cpp
src/respec/ChannelMapperReader.cpp src/respec/ChannelMapperReader.cpp
src/respec/Converter.cpp src/respec/Converter.cpp
src/respec/ConverterFunctions.cpp src/respec/ConverterFunctions.cpp
src/respec/ConverterReader.cpp src/respec/ConverterReader.cpp
src/respec/JOSResample.cpp src/respec/JOSResample.cpp
src/respec/JOSResampleReaderCoeff.cpp src/respec/JOSResampleReaderCoeff.cpp
src/respec/JOSResampleReader.cpp src/respec/JOSResampleReader.cpp
src/respec/LinearResample.cpp src/respec/LinearResample.cpp
src/respec/LinearResampleReader.cpp src/respec/LinearResampleReader.cpp
src/respec/Mixer.cpp src/respec/Mixer.cpp
src/respec/ResampleReader.cpp src/respec/ResampleReader.cpp
src/respec/SpecsChanger.cpp src/respec/SpecsChanger.cpp
src/sequence/AnimateableProperty.cpp src/sequence/AnimateableProperty.cpp
src/sequence/Double.cpp src/sequence/Double.cpp
src/sequence/DoubleReader.cpp src/sequence/DoubleReader.cpp
src/sequence/PingPong.cpp src/sequence/PingPong.cpp
src/sequence/Sequence.cpp src/sequence/Sequence.cpp
src/sequence/SequenceData.cpp src/sequence/SequenceData.cpp
src/sequence/SequenceEntry.cpp src/sequence/SequenceEntry.cpp
src/sequence/SequenceHandle.cpp src/sequence/SequenceHandle.cpp
src/sequence/SequenceReader.cpp src/sequence/SequenceReader.cpp
src/sequence/Superpose.cpp src/sequence/Superpose.cpp
src/sequence/SuperposeReader.cpp src/sequence/SuperposeReader.cpp
src/util/Barrier.cpp src/util/Barrier.cpp
src/util/Buffer.cpp src/util/Buffer.cpp
src/util/BufferReader.cpp src/util/BufferReader.cpp
src/util/StreamBuffer.cpp src/util/StreamBuffer.cpp
src/util/ThreadPool.cpp src/util/ThreadPool.cpp
) )
set(PRIVATE_HDR set(PRIVATE_HDR
src/sequence/SequenceHandle.h src/sequence/SequenceHandle.h
) )
set(PUBLIC_HDR set(PUBLIC_HDR
include/devices/DefaultSynchronizer.h include/devices/DefaultSynchronizer.h
include/devices/DeviceManager.h include/devices/DeviceManager.h
include/devices/I3DDevice.h include/devices/I3DDevice.h
include/devices/I3DHandle.h include/devices/I3DHandle.h
include/devices/IDeviceFactory.h include/devices/IDeviceFactory.h
include/devices/IDevice.h include/devices/IDevice.h
include/devices/IHandle.h include/devices/IHandle.h
include/devices/ISynchronizer.h include/devices/ISynchronizer.h
include/devices/NULLDevice.h include/devices/NULLDevice.h
include/devices/ReadDevice.h include/devices/ReadDevice.h
include/devices/SoftwareDevice.h include/devices/SoftwareDevice.h
include/Exception.h include/Exception.h
include/file/File.h include/file/File.h
include/file/FileManager.h include/file/FileManager.h
include/file/FileWriter.h include/file/FileWriter.h
include/file/IFileInput.h include/file/IFileInput.h
include/file/IFileOutput.h include/file/IFileOutput.h
include/file/IWriter.h include/file/IWriter.h
include/fx/Accumulator.h include/fx/Accumulator.h
include/fx/ADSR.h include/fx/ADSR.h
include/fx/ADSRReader.h include/fx/ADSRReader.h
include/fx/BaseIIRFilterReader.h include/fx/BaseIIRFilterReader.h
include/fx/ButterworthCalculator.h include/fx/ButterworthCalculator.h
include/fx/Butterworth.h include/fx/Butterworth.h
include/fx/CallbackIIRFilterReader.h include/fx/CallbackIIRFilterReader.h
include/fx/Delay.h include/fx/Delay.h
include/fx/DelayReader.h include/fx/DelayReader.h
include/fx/DynamicIIRFilter.h include/fx/DynamicIIRFilter.h
include/fx/DynamicIIRFilterReader.h include/fx/DynamicIIRFilterReader.h
include/fx/DynamicMusic.h include/fx/DynamicMusic.h
include/fx/Effect.h include/fx/Effect.h
include/fx/EffectReader.h include/fx/EffectReader.h
include/fx/Envelope.h include/fx/Envelope.h
include/fx/Fader.h include/fx/Fader.h
include/fx/FaderReader.h include/fx/FaderReader.h
include/fx/HighpassCalculator.h include/fx/HighpassCalculator.h
include/fx/Highpass.h include/fx/Highpass.h
include/fx/IDynamicIIRFilterCalculator.h include/fx/IDynamicIIRFilterCalculator.h
include/fx/IIRFilter.h include/fx/IIRFilter.h
include/fx/IIRFilterReader.h include/fx/IIRFilterReader.h
include/fx/Limiter.h include/fx/Limiter.h
include/fx/LimiterReader.h include/fx/LimiterReader.h
include/fx/Loop.h include/fx/Loop.h
include/fx/LoopReader.h include/fx/LoopReader.h
include/fx/LowpassCalculator.h include/fx/LowpassCalculator.h
include/fx/Lowpass.h include/fx/Lowpass.h
include/fx/Modulator.h include/fx/Modulator.h
include/fx/ModulatorReader.h include/fx/ModulatorReader.h
include/fx/MutableReader.h include/fx/MutableReader.h
include/fx/MutableSound.h include/fx/MutableSound.h
include/fx/Pitch.h include/fx/Pitch.h
include/fx/PitchReader.h include/fx/PitchReader.h
include/fx/PlaybackManager.h include/fx/PlaybackManager.h
include/fx/PlaybackCategory.h include/fx/PlaybackCategory.h
include/fx/Reverse.h include/fx/Reverse.h
include/fx/ReverseReader.h include/fx/ReverseReader.h
include/fx/SoundList.h include/fx/SoundList.h
include/fx/Source.h include/fx/Source.h
include/fx/Sum.h include/fx/Sum.h
include/fx/Threshold.h include/fx/Threshold.h
include/fx/Volume.h include/fx/Volume.h
include/fx/VolumeReader.h include/fx/VolumeReader.h
include/fx/VolumeSound.h include/fx/VolumeSound.h
include/fx/VolumeStorage.h include/fx/VolumeStorage.h
include/generator/Sawtooth.h include/generator/Sawtooth.h
include/generator/SawtoothReader.h include/generator/SawtoothReader.h
include/generator/Silence.h include/generator/Silence.h
include/generator/SilenceReader.h include/generator/SilenceReader.h
include/generator/Sine.h include/generator/Sine.h
include/generator/SineReader.h include/generator/SineReader.h
include/generator/Square.h include/generator/Square.h
include/generator/SquareReader.h include/generator/SquareReader.h
include/generator/Triangle.h include/generator/Triangle.h
include/generator/TriangleReader.h include/generator/TriangleReader.h
include/IReader.h include/IReader.h
include/ISound.h include/ISound.h
include/plugin/PluginManager.h include/plugin/PluginManager.h
include/respec/ChannelMapper.h include/respec/ChannelMapper.h
include/respec/ChannelMapperReader.h include/respec/ChannelMapperReader.h
include/respec/ConverterFunctions.h include/respec/ConverterFunctions.h
include/respec/Converter.h include/respec/Converter.h
include/respec/ConverterReader.h include/respec/ConverterReader.h
include/respec/JOSResample.h include/respec/JOSResample.h
include/respec/JOSResampleReader.h include/respec/JOSResampleReader.h
include/respec/LinearResample.h include/respec/LinearResample.h
include/respec/LinearResampleReader.h include/respec/LinearResampleReader.h
include/respec/Mixer.h include/respec/Mixer.h
include/respec/ResampleReader.h include/respec/ResampleReader.h
include/respec/Specification.h include/respec/Specification.h
include/respec/SpecsChanger.h include/respec/SpecsChanger.h
include/sequence/AnimateableProperty.h include/sequence/AnimateableProperty.h
include/sequence/Double.h include/sequence/Double.h
include/sequence/DoubleReader.h include/sequence/DoubleReader.h
include/sequence/PingPong.h include/sequence/PingPong.h
include/sequence/SequenceData.h include/sequence/SequenceData.h
include/sequence/SequenceEntry.h include/sequence/SequenceEntry.h
include/sequence/Sequence.h include/sequence/Sequence.h
include/sequence/SequenceReader.h include/sequence/SequenceReader.h
include/sequence/Superpose.h include/sequence/Superpose.h
include/sequence/SuperposeReader.h include/sequence/SuperposeReader.h
include/util/Barrier.h include/util/Barrier.h
include/util/Buffer.h include/util/Buffer.h
include/util/BufferReader.h include/util/BufferReader.h
include/util/ILockable.h include/util/ILockable.h
include/util/Math3D.h include/util/Math3D.h
include/util/StreamBuffer.h include/util/StreamBuffer.h
include/util/ThreadPool.h include/util/ThreadPool.h
) )
set(HDR ${PRIVATE_HDR} ${PUBLIC_HDR}) set(HDR ${PRIVATE_HDR} ${PUBLIC_HDR})
@@ -251,15 +251,15 @@ set(HDR ${PRIVATE_HDR} ${PUBLIC_HDR})
set(INCLUDE ${CMAKE_CURRENT_BINARY_DIR} include) set(INCLUDE ${CMAKE_CURRENT_BINARY_DIR} include)
if(WIN32) if(WIN32)
set(LIBRARIES) set(LIBRARIES)
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
set(DLLS) set(DLLS)
set(LIBRARY_PATH "../lib" CACHE PATH "Path which contains the libraries.") set(LIBRARY_PATH "../lib" CACHE PATH "Path which contains the libraries.")
file(GLOB LIBRARY_DIRS ${LIBRARY_PATH}/*) file(GLOB LIBRARY_DIRS ${LIBRARY_PATH}/*)
list(APPEND CMAKE_PREFIX_PATH ${LIBRARY_DIRS}) list(APPEND CMAKE_PREFIX_PATH ${LIBRARY_DIRS})
endif() endif()
else() else()
set(LIBRARIES ${CMAKE_DL_LIBS} -lpthread) set(LIBRARIES ${CMAKE_DL_LIBS} -lpthread)
endif() endif()
set(STATIC_PLUGINS "") set(STATIC_PLUGINS "")
@@ -267,418 +267,418 @@ set(STATIC_PLUGINS "")
# dependencies # dependencies
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
set(PACKAGE_OPTION QUIET) set(PACKAGE_OPTION QUIET)
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/") list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/")
option(BUILD_DEMOS "Build and install demos" TRUE) option(BUILD_DEMOS "Build and install demos" TRUE)
option(SHARED_LIBRARY "Build Shared Library" TRUE) option(SHARED_LIBRARY "Build Shared Library" TRUE)
option(WITH_C "Build C Module" TRUE) option(WITH_C "Build C Module" TRUE)
option(WITH_DOCS "Build C++ HTML Documentation with Doxygen" TRUE) option(WITH_DOCS "Build C++ HTML Documentation with Doxygen" TRUE)
option(WITH_FFMPEG "Build With FFMPEG" TRUE) option(WITH_FFMPEG "Build With FFMPEG" TRUE)
option(WITH_FFTW "Build With FFTW" TRUE) option(WITH_FFTW "Build With FFTW" TRUE)
option(WITH_JACK "Build With Plugin" TRUE) option(WITH_JACK "Build With Plugin" TRUE)
option(WITH_LIBSNDFILE "Build With LibSndFile" TRUE) option(WITH_LIBSNDFILE "Build With LibSndFile" TRUE)
option(WITH_OPENAL "Build With OpenAL" TRUE) option(WITH_OPENAL "Build With OpenAL" TRUE)
option(WITH_PYTHON "Build With Python Library" TRUE) option(WITH_PYTHON "Build With Python Library" TRUE)
option(WITH_SDL "Build With SDL" TRUE) option(WITH_SDL "Build With SDL" TRUE)
option(WITH_STRICT_DEPENDENCIES "Error and abort instead of warning if a library is not found." FALSE) option(WITH_STRICT_DEPENDENCIES "Error and abort instead of warning if a library is not found." FALSE)
if(WITH_STRICT_DEPENDENCIES) if(WITH_STRICT_DEPENDENCIES)
set(PACKAGE_OPTION REQUIRED) set(PACKAGE_OPTION REQUIRED)
endif() endif()
endif() endif()
if(WIN32) if(WIN32)
set(DEFAULT_PLUGIN_PATH "." CACHE STRING "Default plugin installation and loading path.") set(DEFAULT_PLUGIN_PATH "." CACHE STRING "Default plugin installation and loading path.")
set(DOCUMENTATION_INSTALL_PATH "doc" CACHE PATH "Path where the documentation is installed.") set(DOCUMENTATION_INSTALL_PATH "doc" CACHE PATH "Path where the documentation is installed.")
else() else()
set(DEFAULT_PLUGIN_PATH "${CMAKE_INSTALL_PREFIX}/share/audaspace/plugins" CACHE STRING "Default plugin installation and loading path.") set(DEFAULT_PLUGIN_PATH "${CMAKE_INSTALL_PREFIX}/share/audaspace/plugins" CACHE STRING "Default plugin installation and loading path.")
set(DOCUMENTATION_INSTALL_PATH "share/doc/audaspace" CACHE PATH "Path where the documentation is installed.") set(DOCUMENTATION_INSTALL_PATH "share/doc/audaspace" CACHE PATH "Path where the documentation is installed.")
endif() endif()
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
cmake_dependent_option(SEPARATE_C "Build C Binding as separate library" TRUE "WITH_C" FALSE) cmake_dependent_option(SEPARATE_C "Build C Binding as separate library" TRUE "WITH_C" FALSE)
cmake_dependent_option(PLUGIN_FFMPEG "Build FFMPEG Plugin" TRUE "WITH_FFMPEG;SHARED_LIBRARY" FALSE) cmake_dependent_option(PLUGIN_FFMPEG "Build FFMPEG Plugin" TRUE "WITH_FFMPEG;SHARED_LIBRARY" FALSE)
cmake_dependent_option(PLUGIN_JACK "Build JACK Plugin" TRUE "WITH_JACK;SHARED_LIBRARY" FALSE) cmake_dependent_option(PLUGIN_JACK "Build JACK Plugin" TRUE "WITH_JACK;SHARED_LIBRARY" FALSE)
cmake_dependent_option(PLUGIN_LIBSNDFILE "Build LibSndFile Plugin" TRUE "WITH_LIBSNDFILE;SHARED_LIBRARY" FALSE) cmake_dependent_option(PLUGIN_LIBSNDFILE "Build LibSndFile Plugin" TRUE "WITH_LIBSNDFILE;SHARED_LIBRARY" FALSE)
cmake_dependent_option(PLUGIN_OPENAL "Build OpenAL Plugin" TRUE "WITH_OPENAL;SHARED_LIBRARY" FALSE) cmake_dependent_option(PLUGIN_OPENAL "Build OpenAL Plugin" TRUE "WITH_OPENAL;SHARED_LIBRARY" FALSE)
cmake_dependent_option(PLUGIN_SDL "Build SDL Plugin" TRUE "WITH_SDL;SHARED_LIBRARY" FALSE) cmake_dependent_option(PLUGIN_SDL "Build SDL Plugin" TRUE "WITH_SDL;SHARED_LIBRARY" FALSE)
cmake_dependent_option(WITH_PYTHON_MODULE "Build Python Module" TRUE "WITH_PYTHON" FALSE) cmake_dependent_option(WITH_PYTHON_MODULE "Build Python Module" TRUE "WITH_PYTHON" FALSE)
cmake_dependent_option(USE_SDL2 "Use SDL2 instead of 1 if available" TRUE "WITH_SDL" FALSE) cmake_dependent_option(USE_SDL2 "Use SDL2 instead of 1 if available" TRUE "WITH_SDL" FALSE)
cmake_dependent_option(DYNLOAD_JACK "Dynamically load JACK" FALSE "WITH_JACK" FALSE) cmake_dependent_option(DYNLOAD_JACK "Dynamically load JACK" FALSE "WITH_JACK" FALSE)
cmake_dependent_option(WITH_BINDING_DOCS "Build C/Python HTML Documentation with Sphinx" TRUE "WITH_PYTHON_MODULE" FALSE) cmake_dependent_option(WITH_BINDING_DOCS "Build C/Python HTML Documentation with Sphinx" TRUE "WITH_PYTHON_MODULE" FALSE)
endif() endif()
# compiler options # compiler options
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
add_definitions(-std=c++11) add_definitions(-std=c++11)
list(APPEND CMAKE_C_COMPILER_FLAGS "-fvisibility=hidden") list(APPEND CMAKE_C_COMPILER_FLAGS "-fvisibility=hidden")
list(APPEND CMAKE_CXX_COMPILER_FLAGS "-fvisibility=hidden") list(APPEND CMAKE_CXX_COMPILER_FLAGS "-fvisibility=hidden")
endif() endif()
if(MSVC) if(MSVC)
list(APPEND CMAKE_C_FLAGS_DEBUG "/Zi /Od") list(APPEND CMAKE_C_FLAGS_DEBUG "/Zi /Od")
list(APPEND CMAKE_CXX_FLAGS_DEBUG "/Zi /Od") list(APPEND CMAKE_CXX_FLAGS_DEBUG "/Zi /Od")
list(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG "/DEBUG") list(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG "/DEBUG")
list(APPEND CMAKE_STATIC_LINKER_FLAGS_DEBUG "/DEBUG") list(APPEND CMAKE_STATIC_LINKER_FLAGS_DEBUG "/DEBUG")
list(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG "/DEBUG") list(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG "/DEBUG")
if(SHARED_LIBRARY) if(SHARED_LIBRARY)
include(GenerateExportHeader) include(GenerateExportHeader)
endif() endif()
endif() endif()
if(APPLE AND NOT CMAKE_OSX_DEPLOYMENT_TARGET) if(APPLE AND NOT CMAKE_OSX_DEPLOYMENT_TARGET)
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE) set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE)
endif() endif()
endif() endif()
if(MSVC) if(MSVC)
add_definitions( add_definitions(
/D_USE_MATH_DEFINES /D_USE_MATH_DEFINES
/EHsc /EHsc
/DNOMINMAX /DNOMINMAX
/D_STDINT_H /D_STDINT_H
) )
endif() endif()
# platform specific options # platform specific options
if(MSYS OR MINGW) if(MSYS OR MINGW)
add_definitions(-D_USE_MATH_DEFINES) add_definitions(-D_USE_MATH_DEFINES)
endif() endif()
# C # C
if(WITH_C) if(WITH_C)
set(C_SRC set(C_SRC
bindings/C/AUD_ThreadPool.cpp bindings/C/AUD_ThreadPool.cpp
bindings/C/AUD_Source.cpp bindings/C/AUD_Source.cpp
bindings/C/AUD_Device.cpp bindings/C/AUD_Device.cpp
bindings/C/AUD_DynamicMusic.cpp bindings/C/AUD_DynamicMusic.cpp
bindings/C/AUD_Handle.cpp bindings/C/AUD_Handle.cpp
bindings/C/AUD_PlaybackManager.cpp bindings/C/AUD_PlaybackManager.cpp
bindings/C/AUD_Sequence.cpp bindings/C/AUD_Sequence.cpp
bindings/C/AUD_Sound.cpp bindings/C/AUD_Sound.cpp
bindings/C/AUD_Special.cpp bindings/C/AUD_Special.cpp
) )
set(C_HDR set(C_HDR
bindings/C/AUD_ThreadPool.h bindings/C/AUD_ThreadPool.h
bindings/C/AUD_Source.h bindings/C/AUD_Source.h
bindings/C/AUD_Device.h bindings/C/AUD_Device.h
bindings/C/AUD_DynamicMusic.h bindings/C/AUD_DynamicMusic.h
bindings/C/AUD_Handle.h bindings/C/AUD_Handle.h
bindings/C/AUD_PlaybackManager.h bindings/C/AUD_PlaybackManager.h
bindings/C/AUD_Sequence.h bindings/C/AUD_Sequence.h
bindings/C/AUD_Sound.h bindings/C/AUD_Sound.h
bindings/C/AUD_Special.h bindings/C/AUD_Special.h
bindings/C/AUD_Types.h bindings/C/AUD_Types.h
) )
if(WITH_FFTW) if(WITH_FFTW)
list(APPEND C_SRC list(APPEND C_SRC
bindings/C/AUD_HRTF.cpp bindings/C/AUD_HRTF.cpp
bindings/C/AUD_ImpulseResponse.cpp bindings/C/AUD_ImpulseResponse.cpp
) )
list(APPEND C_HDR list(APPEND C_HDR
bindings/C/AUD_HRTF.h bindings/C/AUD_HRTF.h
bindings/C/AUD_ImpulseResponse.h bindings/C/AUD_ImpulseResponse.h
) )
endif() endif()
if(NOT SEPARATE_C) if(NOT SEPARATE_C)
list(APPEND SRC ${C_SRC}) list(APPEND SRC ${C_SRC})
list(APPEND HDR ${C_HDR}) list(APPEND HDR ${C_HDR})
else() else()
set(AUDASPACE_C_LIBRARY -laudaspace-c) set(AUDASPACE_C_LIBRARY -laudaspace-c)
endif() endif()
endif() endif()
# FFMPEG # FFMPEG
if(WITH_FFMPEG) if(WITH_FFMPEG)
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
find_package(FFMPEG ${PACKAGE_OPTION}) find_package(FFMPEG ${PACKAGE_OPTION})
endif() endif()
if(FFMPEG_FOUND) if(FFMPEG_FOUND)
set(FFMPEG_SRC set(FFMPEG_SRC
plugins/ffmpeg/FFMPEG.cpp plugins/ffmpeg/FFMPEG.cpp
plugins/ffmpeg/FFMPEGReader.cpp plugins/ffmpeg/FFMPEGReader.cpp
plugins/ffmpeg/FFMPEGWriter.cpp plugins/ffmpeg/FFMPEGWriter.cpp
) )
set(FFMPEG_HDR set(FFMPEG_HDR
plugins/ffmpeg/FFMPEG.h plugins/ffmpeg/FFMPEG.h
plugins/ffmpeg/FFMPEGReader.h plugins/ffmpeg/FFMPEGReader.h
plugins/ffmpeg/FFMPEGWriter.h plugins/ffmpeg/FFMPEGWriter.h
) )
if(NOT PLUGIN_FFMPEG) if(NOT PLUGIN_FFMPEG)
list(APPEND INCLUDE ${FFMPEG_INCLUDE_DIRS}) list(APPEND INCLUDE ${FFMPEG_INCLUDE_DIRS})
list(APPEND LIBRARIES ${FFMPEG_LIBRARIES}) list(APPEND LIBRARIES ${FFMPEG_LIBRARIES})
list(APPEND SRC ${FFMPEG_SRC}) list(APPEND SRC ${FFMPEG_SRC})
list(APPEND HDR ${FFMPEG_HDR}) list(APPEND HDR ${FFMPEG_HDR})
list(APPEND STATIC_PLUGINS FFMPEG) list(APPEND STATIC_PLUGINS FFMPEG)
endif() endif()
if(WIN32 AND AUDASPACE_STANDALONE) if(WIN32 AND AUDASPACE_STANDALONE)
file(GLOB FFMPEG_DLLS ${LIBRARY_PATH}/ffmpeg/bin/*.dll) file(GLOB FFMPEG_DLLS ${LIBRARY_PATH}/ffmpeg/bin/*.dll)
list(APPEND DLLS ${FFMPEG_DLLS}) list(APPEND DLLS ${FFMPEG_DLLS})
endif() endif()
else() else()
set(WITH_FFMPEG FALSE CACHE BOOL "Build With FFMPEG" FORCE) set(WITH_FFMPEG FALSE CACHE BOOL "Build With FFMPEG" FORCE)
message(WARNING "FFMPEG not found, plugin will not be built.") message(WARNING "FFMPEG not found, plugin will not be built.")
endif() endif()
endif() endif()
# FFTW # FFTW
if(WITH_FFTW) if(WITH_FFTW)
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
find_package(FFTW ${PACKAGE_OPTION}) find_package(FFTW ${PACKAGE_OPTION})
endif() endif()
if(FFTW_FOUND) if(FFTW_FOUND)
set(FFTW_SRC set(FFTW_SRC
src/fx/BinauralSound.cpp src/fx/BinauralSound.cpp
src/fx/BinauralReader.cpp src/fx/BinauralReader.cpp
src/fx/Convolver.cpp src/fx/Convolver.cpp
src/fx/ConvolverReader.cpp src/fx/ConvolverReader.cpp
src/fx/ConvolverSound.cpp src/fx/ConvolverSound.cpp
src/fx/FFTConvolver.cpp src/fx/FFTConvolver.cpp
src/fx/HRTF.cpp src/fx/HRTF.cpp
src/fx/ImpulseResponse.cpp src/fx/ImpulseResponse.cpp
src/util/FFTPlan.cpp src/util/FFTPlan.cpp
) )
set(FFTW_HDR set(FFTW_HDR
include/fx/BinauralSound.h include/fx/BinauralSound.h
include/fx/BinauralReader.h include/fx/BinauralReader.h
include/fx/Convolver.h include/fx/Convolver.h
include/fx/ConvolverReader.h include/fx/ConvolverReader.h
include/fx/ConvolverSound.h include/fx/ConvolverSound.h
include/fx/FFTConvolver.h include/fx/FFTConvolver.h
include/fx/HRTF.h include/fx/HRTF.h
include/fx/HRTFLoader.h include/fx/HRTFLoader.h
include/fx/ImpulseResponse.h include/fx/ImpulseResponse.h
include/util/FFTPlan.h include/util/FFTPlan.h
) )
add_definitions(-DWITH_CONVOLUTION) add_definitions(-DWITH_CONVOLUTION)
list(APPEND INCLUDE ${FFTW_INCLUDE_DIR}) list(APPEND INCLUDE ${FFTW_INCLUDE_DIR})
list(APPEND LIBRARIES ${FFTW_LIBRARY}) list(APPEND LIBRARIES ${FFTW_LIBRARY})
list(APPEND SRC ${FFTW_SRC}) list(APPEND SRC ${FFTW_SRC})
list(APPEND HDR ${FFTW_HDR}) list(APPEND HDR ${FFTW_HDR})
if(WIN32 AND AUDASPACE_STANDALONE) if(WIN32 AND AUDASPACE_STANDALONE)
file(GLOB FFTW_DLLS ${LIBRARY_PATH}/fftw/bin/*.dll) file(GLOB FFTW_DLLS ${LIBRARY_PATH}/fftw/bin/*.dll)
list(APPEND DLLS ${FFTW_DLLS}) list(APPEND DLLS ${FFTW_DLLS})
endif() endif()
else() else()
set(WITH_FFTW FALSE CACHE BOOL "Build With FFTW" FORCE) set(WITH_FFTW FALSE CACHE BOOL "Build With FFTW" FORCE)
message(WARNING "FFTW not found, convolution functionality will not be built.") message(WARNING "FFTW not found, convolution functionality will not be built.")
endif() endif()
endif() endif()
# JACK # JACK
if(WITH_JACK) if(WITH_JACK)
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
find_package(Jack ${PACKAGE_OPTION}) find_package(Jack ${PACKAGE_OPTION})
endif() endif()
if(JACK_FOUND) if(JACK_FOUND)
set(JACK_SRC set(JACK_SRC
plugins/jack/JackDevice.cpp plugins/jack/JackDevice.cpp
plugins/jack/JackSynchronizer.cpp plugins/jack/JackSynchronizer.cpp
plugins/jack/JackLibrary.cpp plugins/jack/JackLibrary.cpp
) )
set(JACK_HDR set(JACK_HDR
plugins/jack/JackDevice.h plugins/jack/JackDevice.h
plugins/jack/JackSynchronizer.h plugins/jack/JackSynchronizer.h
plugins/jack/JackLibrary.h plugins/jack/JackLibrary.h
plugins/jack/JackSymbols.h plugins/jack/JackSymbols.h
) )
if(DYNLOAD_JACK) if(DYNLOAD_JACK)
add_definitions(-DDYNLOAD_JACK) add_definitions(-DDYNLOAD_JACK)
endif() endif()
if(NOT PLUGIN_JACK) if(NOT PLUGIN_JACK)
list(APPEND INCLUDE ${JACK_INCLUDE_DIRS}) list(APPEND INCLUDE ${JACK_INCLUDE_DIRS})
if(NOT DYNLOAD_JACK) if(NOT DYNLOAD_JACK)
list(APPEND LIBRARIES ${JACK_LIBRARIES}) list(APPEND LIBRARIES ${JACK_LIBRARIES})
endif() endif()
list(APPEND SRC ${JACK_SRC}) list(APPEND SRC ${JACK_SRC})
list(APPEND HDR ${JACK_HDR}) list(APPEND HDR ${JACK_HDR})
list(APPEND STATIC_PLUGINS JackDevice) list(APPEND STATIC_PLUGINS JackDevice)
endif() endif()
if(WIN32 AND AUDASPACE_STANDALONE) if(WIN32 AND AUDASPACE_STANDALONE)
file(GLOB JACK_DLLS ${LIBRARY_PATH}/jack/bin/*.dll) file(GLOB JACK_DLLS ${LIBRARY_PATH}/jack/bin/*.dll)
list(APPEND DLLS ${JACK_DLLS}) list(APPEND DLLS ${JACK_DLLS})
endif() endif()
else() else()
set(WITH_JACK FALSE CACHE BOOL "Build With JACK" FORCE) set(WITH_JACK FALSE CACHE BOOL "Build With JACK" FORCE)
message(WARNING "JACK not found, plugin will not be built.") message(WARNING "JACK not found, plugin will not be built.")
endif() endif()
endif() endif()
# LibSndFile # LibSndFile
if(WITH_LIBSNDFILE) if(WITH_LIBSNDFILE)
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
find_package(LibSndFile ${PACKAGE_OPTION}) find_package(LibSndFile ${PACKAGE_OPTION})
endif() endif()
if(LIBSNDFILE_FOUND) if(LIBSNDFILE_FOUND)
set(LIBSNDFILE_SRC set(LIBSNDFILE_SRC
plugins/libsndfile/SndFile.cpp plugins/libsndfile/SndFile.cpp
plugins/libsndfile/SndFileReader.cpp plugins/libsndfile/SndFileReader.cpp
plugins/libsndfile/SndFileWriter.cpp plugins/libsndfile/SndFileWriter.cpp
) )
set(LIBSNDFILE_HDR set(LIBSNDFILE_HDR
plugins/libsndfile/SndFile.h plugins/libsndfile/SndFile.h
plugins/libsndfile/SndFileReader.h plugins/libsndfile/SndFileReader.h
plugins/libsndfile/SndFileWriter.h plugins/libsndfile/SndFileWriter.h
) )
if(NOT PLUGIN_LIBSNDFILE) if(NOT PLUGIN_LIBSNDFILE)
list(APPEND INCLUDE ${LIBSNDFILE_INCLUDE_DIRS}) list(APPEND INCLUDE ${LIBSNDFILE_INCLUDE_DIRS})
list(APPEND LIBRARIES ${LIBSNDFILE_LIBRARIES}) list(APPEND LIBRARIES ${LIBSNDFILE_LIBRARIES})
list(APPEND SRC ${LIBSNDFILE_SRC}) list(APPEND SRC ${LIBSNDFILE_SRC})
list(APPEND HDR ${LIBSNDFILE_HDR}) list(APPEND HDR ${LIBSNDFILE_HDR})
list(APPEND STATIC_PLUGINS SndFile) list(APPEND STATIC_PLUGINS SndFile)
endif() endif()
if(WIN32 AND AUDASPACE_STANDALONE) if(WIN32 AND AUDASPACE_STANDALONE)
file(GLOB LIBSNDFILE_DLLS ${LIBRARY_PATH}/libsndfile/bin/*.dll) file(GLOB LIBSNDFILE_DLLS ${LIBRARY_PATH}/libsndfile/bin/*.dll)
list(APPEND DLLS ${LIBSNDFILE_DLLS}) list(APPEND DLLS ${LIBSNDFILE_DLLS})
endif() endif()
else() else()
set(WITH_LIBSNDFILE FALSE CACHE BOOL "Build With LibSndFile" FORCE) set(WITH_LIBSNDFILE FALSE CACHE BOOL "Build With LibSndFile" FORCE)
message(WARNING "LibSndFile not found, plugin will not be built.") message(WARNING "LibSndFile not found, plugin will not be built.")
endif() endif()
endif() endif()
# OpenAL # OpenAL
if(WITH_OPENAL) if(WITH_OPENAL)
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
find_package(OpenAL ${PACKAGE_OPTION}) find_package(OpenAL ${PACKAGE_OPTION})
endif() endif()
if(OPENAL_FOUND) if(OPENAL_FOUND)
set(OPENAL_SRC set(OPENAL_SRC
plugins/openal/OpenALDevice.cpp plugins/openal/OpenALDevice.cpp
plugins/openal/OpenALReader.cpp plugins/openal/OpenALReader.cpp
) )
set(OPENAL_HDR set(OPENAL_HDR
plugins/openal/OpenALDevice.h plugins/openal/OpenALDevice.h
plugins/openal/OpenALReader.h plugins/openal/OpenALReader.h
) )
if(NOT PLUGIN_OPENAL) if(NOT PLUGIN_OPENAL)
list(APPEND INCLUDE ${OPENAL_INCLUDE_DIR}) list(APPEND INCLUDE ${OPENAL_INCLUDE_DIR})
list(APPEND LIBRARIES ${OPENAL_LIBRARY}) list(APPEND LIBRARIES ${OPENAL_LIBRARY})
list(APPEND SRC ${OPENAL_SRC}) list(APPEND SRC ${OPENAL_SRC})
list(APPEND HDR ${OPENAL_HDR}) list(APPEND HDR ${OPENAL_HDR})
list(APPEND STATIC_PLUGINS OpenALDevice) list(APPEND STATIC_PLUGINS OpenALDevice)
endif() endif()
if(WIN32 AND AUDASPACE_STANDALONE) if(WIN32 AND AUDASPACE_STANDALONE)
file(GLOB OPENAL_DLLS ${LIBRARY_PATH}/OpenAL/bin/*.dll) file(GLOB OPENAL_DLLS ${LIBRARY_PATH}/OpenAL/bin/*.dll)
list(APPEND DLLS ${OPENAL_DLLS}) list(APPEND DLLS ${OPENAL_DLLS})
endif() endif()
else() else()
set(WITH_OPENAL FALSE CACHE BOOL "Build With OpenAL" FORCE) set(WITH_OPENAL FALSE CACHE BOOL "Build With OpenAL" FORCE)
message(WARNING "OpenAL not found, plugin will not be built.") message(WARNING "OpenAL not found, plugin will not be built.")
endif() endif()
endif() endif()
# Python # Python
if(WITH_PYTHON) if(WITH_PYTHON)
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
find_package(PythonLibs 3.2 ${PACKAGE_OPTION}) find_package(PythonLibs 3.2 ${PACKAGE_OPTION})
find_package(NumPy ${PACKAGE_OPTION}) find_package(NumPy ${PACKAGE_OPTION})
endif() endif()
if(PYTHONLIBS_FOUND AND NUMPY_FOUND) if(PYTHONLIBS_FOUND AND NUMPY_FOUND)
list(APPEND INCLUDE ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS}) list(APPEND INCLUDE ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS})
if(WITH_PYTHON_MODULE) if(WITH_PYTHON_MODULE)
find_package(PythonInterp 3.2 ${PACKAGE_OPTION}) find_package(PythonInterp 3.2 ${PACKAGE_OPTION})
if(NOT PYTHONINTERP_FOUND) if(NOT PYTHONINTERP_FOUND)
set(WITH_PYTHON_MODULE FALSE) set(WITH_PYTHON_MODULE FALSE)
message(WARNING "Python interpreter not found, module will not be built.") message(WARNING "Python interpreter not found, module will not be built.")
endif() endif()
endif() endif()
set(AUDASPACE_PY_LIBRARY -laudaspace-py) set(AUDASPACE_PY_LIBRARY -laudaspace-py)
if(WIN32 AND AUDASPACE_STANDALONE) if(WIN32 AND AUDASPACE_STANDALONE)
file(GLOB PYTHON_DLLS ${LIBRARY_PATH}/Python/bin/*.dll) file(GLOB PYTHON_DLLS ${LIBRARY_PATH}/Python/bin/*.dll)
list(APPEND DLLS ${PYTHON_DLLS}) list(APPEND DLLS ${PYTHON_DLLS})
endif() endif()
else() else()
set(WITH_PYTHON FALSE CACHE BOOL "Build With Python Library" FORCE) set(WITH_PYTHON FALSE CACHE BOOL "Build With Python Library" FORCE)
message(WARNING "Python libraries not found, language binding will not be built.") message(WARNING "Python libraries not found, language binding will not be built.")
endif() endif()
endif() endif()
# SDL # SDL
if(WITH_SDL) if(WITH_SDL)
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
if(USE_SDL2) if(USE_SDL2)
find_package(SDL2) find_package(SDL2)
if(SDL2_FOUND) if(SDL2_FOUND)
set(SDL_INCLUDE_DIR ${SDL2_INCLUDE_DIR}) set(SDL_INCLUDE_DIR ${SDL2_INCLUDE_DIR})
set(SDL_LIBRARY ${SDL2_LIBRARY}) set(SDL_LIBRARY ${SDL2_LIBRARY})
set(SDL_FOUND TRUE) set(SDL_FOUND TRUE)
else() else()
find_package(SDL ${PACKAGE_OPTION}) find_package(SDL ${PACKAGE_OPTION})
endif() endif()
else() else()
find_package(SDL ${PACKAGE_OPTION}) find_package(SDL ${PACKAGE_OPTION})
endif() endif()
endif() endif()
if(SDL_FOUND) if(SDL_FOUND)
set(SDL_SRC set(SDL_SRC
plugins/sdl/SDLDevice.cpp plugins/sdl/SDLDevice.cpp
) )
set(SDL_HDR set(SDL_HDR
plugins/sdl/SDLDevice.h plugins/sdl/SDLDevice.h
) )
if(NOT PLUGIN_SDL) if(NOT PLUGIN_SDL)
list(APPEND INCLUDE ${SDL_INCLUDE_DIR}) list(APPEND INCLUDE ${SDL_INCLUDE_DIR})
list(APPEND LIBRARIES ${SDL_LIBRARY}) list(APPEND LIBRARIES ${SDL_LIBRARY})
list(APPEND SRC ${SDL_SRC}) list(APPEND SRC ${SDL_SRC})
list(APPEND HDR ${SDL_HDR}) list(APPEND HDR ${SDL_HDR})
list(APPEND STATIC_PLUGINS SDLDevice) list(APPEND STATIC_PLUGINS SDLDevice)
endif() endif()
if(WIN32 AND AUDASPACE_STANDALONE) if(WIN32 AND AUDASPACE_STANDALONE)
file(GLOB SDL_DLLS ${LIBRARY_PATH}/sdl/bin/*.dll) file(GLOB SDL_DLLS ${LIBRARY_PATH}/sdl/bin/*.dll)
list(APPEND DLLS ${SDL_DLLS}) list(APPEND DLLS ${SDL_DLLS})
endif() endif()
else() else()
set(WITH_SDL FALSE CACHE BOOL "Build With SDL" FORCE) set(WITH_SDL FALSE CACHE BOOL "Build With SDL" FORCE)
message(WARNING "SDL not found, plugin will not be built.") message(WARNING "SDL not found, plugin will not be built.")
endif() endif()
endif() endif()
# library configuration # library configuration
if(SHARED_LIBRARY) if(SHARED_LIBRARY)
set(AUD_LIBRARY_TYPE AUD_SHARED_LIBRARY) set(AUD_LIBRARY_TYPE AUD_SHARED_LIBRARY)
set(LIBRARY_TYPE SHARED) set(LIBRARY_TYPE SHARED)
add_definitions(-DAUD_BUILD_SHARED_LIBRARY) add_definitions(-DAUD_BUILD_SHARED_LIBRARY)
else() else()
set(AUD_LIBRARY_TYPE AUD_STATIC_LIBRARY) set(AUD_LIBRARY_TYPE AUD_STATIC_LIBRARY)
set(LIBRARY_TYPE STATIC) set(LIBRARY_TYPE STATIC)
endif() endif()
# file configuration # file configuration
@@ -691,28 +691,28 @@ set(STATIC_PLUGIN_CLASSES "")
set(STATIC_PLUGIN_REGISTERS "") set(STATIC_PLUGIN_REGISTERS "")
foreach(PLUGIN ${STATIC_PLUGINS}) foreach(PLUGIN ${STATIC_PLUGINS})
list(APPEND STATIC_PLUGIN_CLASSES "STATIC_PLUGIN_CLASS(" ${PLUGIN} ")\n") list(APPEND STATIC_PLUGIN_CLASSES "STATIC_PLUGIN_CLASS(" ${PLUGIN} ")\n")
list(APPEND STATIC_PLUGIN_REGISTERS "\tSTATIC_PLUGIN_REGISTER(" ${PLUGIN} ")\n") list(APPEND STATIC_PLUGIN_REGISTERS "\tSTATIC_PLUGIN_REGISTER(" ${PLUGIN} ")\n")
endforeach() endforeach()
string(CONCAT STATIC_PLUGIN_CLASSES ${STATIC_PLUGIN_CLASSES}) string(CONCAT STATIC_PLUGIN_CLASSES ${STATIC_PLUGIN_CLASSES})
string(CONCAT STATIC_PLUGIN_REGISTERS ${STATIC_PLUGIN_REGISTERS}) string(CONCAT STATIC_PLUGIN_REGISTERS ${STATIC_PLUGIN_REGISTERS})
if(WIN32) if(WIN32)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/plugin/PluginManagerWindows.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/PluginManager.cpp ESCAPE_QUOTES @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/plugin/PluginManagerWindows.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/PluginManager.cpp ESCAPE_QUOTES @ONLY)
if(WITH_FFTW) if(WITH_FFTW)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/fx/HRTFLoaderWindows.cpp ${CMAKE_CURRENT_BINARY_DIR}/HRTFLoader.cpp COPYONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/fx/HRTFLoaderWindows.cpp ${CMAKE_CURRENT_BINARY_DIR}/HRTFLoader.cpp COPYONLY)
endif() endif()
else() else()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/plugin/PluginManagerUnix.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/PluginManager.cpp ESCAPE_QUOTES @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/plugin/PluginManagerUnix.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/PluginManager.cpp ESCAPE_QUOTES @ONLY)
if(WITH_FFTW) if(WITH_FFTW)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/fx/HRTFLoaderUnix.cpp ${CMAKE_CURRENT_BINARY_DIR}/HRTFLoader.cpp COPYONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/fx/HRTFLoaderUnix.cpp ${CMAKE_CURRENT_BINARY_DIR}/HRTFLoader.cpp COPYONLY)
endif() endif()
endif() endif()
list(APPEND SRC ${CMAKE_CURRENT_BINARY_DIR}/PluginManager.cpp) list(APPEND SRC ${CMAKE_CURRENT_BINARY_DIR}/PluginManager.cpp)
if(WITH_FFTW) if(WITH_FFTW)
list(APPEND SRC ${CMAKE_CURRENT_BINARY_DIR}/HRTFLoader.cpp) list(APPEND SRC ${CMAKE_CURRENT_BINARY_DIR}/HRTFLoader.cpp)
endif() endif()
# directories # directories
@@ -723,9 +723,9 @@ link_directories()
# install configuration # install configuration
if(WIN32) if(WIN32)
set(BIN_DESTINATION ".") set(BIN_DESTINATION ".")
else() else()
set(BIN_DESTINATION "bin") set(BIN_DESTINATION "bin")
endif() endif()
set(LIB_DESTINATION "lib${LIB_SUFFIX}") set(LIB_DESTINATION "lib${LIB_SUFFIX}")
@@ -737,254 +737,254 @@ target_link_libraries(audaspace ${LIBRARIES})
set_target_properties(audaspace PROPERTIES SOVERSION ${AUDASPACE_VERSION}) set_target_properties(audaspace PROPERTIES SOVERSION ${AUDASPACE_VERSION})
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
install(TARGETS audaspace install(TARGETS audaspace
RUNTIME DESTINATION ${BIN_DESTINATION} RUNTIME DESTINATION ${BIN_DESTINATION}
LIBRARY DESTINATION ${LIB_DESTINATION} LIBRARY DESTINATION ${LIB_DESTINATION}
ARCHIVE DESTINATION ${LIB_DESTINATION} ARCHIVE DESTINATION ${LIB_DESTINATION}
) )
install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/audaspace) install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/audaspace)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Audaspace.h DESTINATION include/audaspace) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Audaspace.h DESTINATION include/audaspace)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/packages/pkgconfig/audaspace.pc.in ${CMAKE_CURRENT_BINARY_DIR}/audaspace.pc @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/packages/pkgconfig/audaspace.pc.in ${CMAKE_CURRENT_BINARY_DIR}/audaspace.pc @ONLY)
if(NOT WIN32 AND NOT APPLE) if(NOT WIN32 AND NOT APPLE)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/audaspace.pc DESTINATION "lib${LIB_SUFFIX}/pkgconfig") install(FILES ${CMAKE_CURRENT_BINARY_DIR}/audaspace.pc DESTINATION "lib${LIB_SUFFIX}/pkgconfig")
endif() endif()
endif() endif()
# plugins # plugins
if(WITH_FFMPEG AND PLUGIN_FFMPEG) if(WITH_FFMPEG AND PLUGIN_FFMPEG)
add_definitions(-DFFMPEG_PLUGIN) add_definitions(-DFFMPEG_PLUGIN)
include_directories(${INCLUDE} ${FFMPEG_INCLUDE_DIRS}) include_directories(${INCLUDE} ${FFMPEG_INCLUDE_DIRS})
add_library(audffmpeg SHARED ${FFMPEG_SRC} ${FFMPEG_HDR} ${HDR}) add_library(audffmpeg SHARED ${FFMPEG_SRC} ${FFMPEG_HDR} ${HDR})
target_link_libraries(audffmpeg audaspace ${FFMPEG_LIBRARIES}) target_link_libraries(audffmpeg audaspace ${FFMPEG_LIBRARIES})
set_target_properties(audffmpeg PROPERTIES SOVERSION ${AUDASPACE_VERSION}) set_target_properties(audffmpeg PROPERTIES SOVERSION ${AUDASPACE_VERSION})
install(TARGETS audffmpeg DESTINATION ${DEFAULT_PLUGIN_PATH}) install(TARGETS audffmpeg DESTINATION ${DEFAULT_PLUGIN_PATH})
endif() endif()
if(WITH_JACK AND PLUGIN_JACK) if(WITH_JACK AND PLUGIN_JACK)
add_definitions(-DJACK_PLUGIN) add_definitions(-DJACK_PLUGIN)
include_directories(${INCLUDE} ${JACK_INCLUDE_DIRS}) include_directories(${INCLUDE} ${JACK_INCLUDE_DIRS})
add_library(audjack SHARED ${JACK_SRC} ${JACK_HDR} ${HDR}) add_library(audjack SHARED ${JACK_SRC} ${JACK_HDR} ${HDR})
if(DYNLOAD_JACK) if(DYNLOAD_JACK)
target_link_libraries(audjack audaspace) target_link_libraries(audjack audaspace)
else() else()
target_link_libraries(audjack audaspace ${JACK_LIBRARIES}) target_link_libraries(audjack audaspace ${JACK_LIBRARIES})
endif() endif()
set_target_properties(audjack PROPERTIES SOVERSION ${AUDASPACE_VERSION}) set_target_properties(audjack PROPERTIES SOVERSION ${AUDASPACE_VERSION})
install(TARGETS audjack DESTINATION ${DEFAULT_PLUGIN_PATH}) install(TARGETS audjack DESTINATION ${DEFAULT_PLUGIN_PATH})
endif() endif()
if(WITH_LIBSNDFILE AND PLUGIN_LIBSNDFILE) if(WITH_LIBSNDFILE AND PLUGIN_LIBSNDFILE)
add_definitions(-DLIBSNDFILE_PLUGIN) add_definitions(-DLIBSNDFILE_PLUGIN)
include_directories(${INCLUDE} ${LIBSNDFILE_INCLUDE_DIRS}) include_directories(${INCLUDE} ${LIBSNDFILE_INCLUDE_DIRS})
add_library(audlibsndfile SHARED ${LIBSNDFILE_SRC} ${LIBSNDFILE_HDR} ${HDR}) add_library(audlibsndfile SHARED ${LIBSNDFILE_SRC} ${LIBSNDFILE_HDR} ${HDR})
set_target_properties(audlibsndfile PROPERTIES SOVERSION ${AUDASPACE_VERSION}) set_target_properties(audlibsndfile PROPERTIES SOVERSION ${AUDASPACE_VERSION})
target_link_libraries(audlibsndfile audaspace ${LIBSNDFILE_LIBRARIES}) target_link_libraries(audlibsndfile audaspace ${LIBSNDFILE_LIBRARIES})
install(TARGETS audlibsndfile DESTINATION ${DEFAULT_PLUGIN_PATH}) install(TARGETS audlibsndfile DESTINATION ${DEFAULT_PLUGIN_PATH})
endif() endif()
if(WITH_OPENAL AND PLUGIN_OPENAL) if(WITH_OPENAL AND PLUGIN_OPENAL)
add_definitions(-DOPENAL_PLUGIN) add_definitions(-DOPENAL_PLUGIN)
include_directories(${INCLUDE} ${OPENAL_INCLUDE_DIR}) include_directories(${INCLUDE} ${OPENAL_INCLUDE_DIR})
add_library(audopenal SHARED ${OPENAL_SRC} ${OPENAL_HDR} ${HDR}) add_library(audopenal SHARED ${OPENAL_SRC} ${OPENAL_HDR} ${HDR})
set_target_properties(audopenal PROPERTIES SOVERSION ${AUDASPACE_VERSION}) set_target_properties(audopenal PROPERTIES SOVERSION ${AUDASPACE_VERSION})
target_link_libraries(audopenal audaspace ${OPENAL_LIBRARY}) target_link_libraries(audopenal audaspace ${OPENAL_LIBRARY})
install(TARGETS audopenal DESTINATION ${DEFAULT_PLUGIN_PATH}) install(TARGETS audopenal DESTINATION ${DEFAULT_PLUGIN_PATH})
endif() endif()
if(WITH_SDL AND PLUGIN_SDL) if(WITH_SDL AND PLUGIN_SDL)
add_definitions(-DSDL_PLUGIN) add_definitions(-DSDL_PLUGIN)
include_directories(${INCLUDE} ${SDL_INCLUDE_DIR}) include_directories(${INCLUDE} ${SDL_INCLUDE_DIR})
add_library(audsdl SHARED ${SDL_SRC} ${SDL_HDR} ${HDR}) add_library(audsdl SHARED ${SDL_SRC} ${SDL_HDR} ${HDR})
set_target_properties(audsdl PROPERTIES SOVERSION ${AUDASPACE_VERSION}) set_target_properties(audsdl PROPERTIES SOVERSION ${AUDASPACE_VERSION})
target_link_libraries(audsdl audaspace ${SDL_LIBRARY}) target_link_libraries(audsdl audaspace ${SDL_LIBRARY})
install(TARGETS audsdl DESTINATION ${DEFAULT_PLUGIN_PATH}) install(TARGETS audsdl DESTINATION ${DEFAULT_PLUGIN_PATH})
endif() endif()
# dlls # dlls
if(WIN32) if(WIN32)
if(DLLS) if(DLLS)
install(FILES ${DLLS} DESTINATION ${BIN_DESTINATION}) install(FILES ${DLLS} DESTINATION ${BIN_DESTINATION})
endif() endif()
endif() endif()
# demos # demos
if(BUILD_DEMOS) if(BUILD_DEMOS)
include_directories(${INCLUDE}) include_directories(${INCLUDE})
set(DEMOS audaplay audaconvert audaremap signalgen randsounds dynamicmusic playbackmanager) set(DEMOS audaplay audaconvert audaremap signalgen randsounds dynamicmusic playbackmanager)
add_executable(audaplay demos/audaplay.cpp) add_executable(audaplay demos/audaplay.cpp)
target_link_libraries(audaplay audaspace) target_link_libraries(audaplay audaspace)
add_executable(audaconvert demos/audaconvert.cpp) add_executable(audaconvert demos/audaconvert.cpp)
target_link_libraries(audaconvert audaspace) target_link_libraries(audaconvert audaspace)
add_executable(audaremap demos/audaremap.cpp) add_executable(audaremap demos/audaremap.cpp)
target_link_libraries(audaremap audaspace) target_link_libraries(audaremap audaspace)
add_executable(signalgen demos/signalgen.cpp) add_executable(signalgen demos/signalgen.cpp)
target_link_libraries(signalgen audaspace) target_link_libraries(signalgen audaspace)
add_executable(randsounds demos/randsounds.cpp) add_executable(randsounds demos/randsounds.cpp)
target_link_libraries(randsounds audaspace) target_link_libraries(randsounds audaspace)
add_executable(dynamicmusic demos/dynamicmusic.cpp) add_executable(dynamicmusic demos/dynamicmusic.cpp)
target_link_libraries(dynamicmusic audaspace) target_link_libraries(dynamicmusic audaspace)
add_executable(playbackmanager demos/playbackmanager.cpp) add_executable(playbackmanager demos/playbackmanager.cpp)
target_link_libraries(playbackmanager audaspace) target_link_libraries(playbackmanager audaspace)
if(WITH_FFTW) if(WITH_FFTW)
list(APPEND DEMOS convolution binaural) list(APPEND DEMOS convolution binaural)
add_executable(convolution demos/convolution.cpp) add_executable(convolution demos/convolution.cpp)
target_link_libraries(convolution audaspace) target_link_libraries(convolution audaspace)
add_executable(binaural demos/binaural.cpp) add_executable(binaural demos/binaural.cpp)
target_link_libraries(binaural audaspace) target_link_libraries(binaural audaspace)
endif() endif()
if(WITH_OPENAL) if(WITH_OPENAL)
list(APPEND DEMOS openaldevices) list(APPEND DEMOS openaldevices)
add_executable(openaldevices demos/openaldevices.cpp) add_executable(openaldevices demos/openaldevices.cpp)
if(PLUGIN_OPENAL) if(PLUGIN_OPENAL)
target_link_libraries(openaldevices audaspace audopenal) target_link_libraries(openaldevices audaspace audopenal)
else() else()
target_link_libraries(openaldevices audaspace) target_link_libraries(openaldevices audaspace)
endif() endif()
endif() endif()
install(TARGETS ${DEMOS} install(TARGETS ${DEMOS}
RUNTIME DESTINATION ${BIN_DESTINATION} RUNTIME DESTINATION ${BIN_DESTINATION}
LIBRARY DESTINATION ${LIB_DESTINATION} LIBRARY DESTINATION ${LIB_DESTINATION}
ARCHIVE DESTINATION ${LIB_DESTINATION} ARCHIVE DESTINATION ${LIB_DESTINATION}
) )
endif() endif()
# bindings # bindings
if(WITH_C) if(WITH_C)
if(SEPARATE_C) if(SEPARATE_C)
add_library(audaspace-c ${LIBRARY_TYPE} ${C_SRC} ${C_HDR}) add_library(audaspace-c ${LIBRARY_TYPE} ${C_SRC} ${C_HDR})
target_link_libraries(audaspace-c audaspace) target_link_libraries(audaspace-c audaspace)
set_target_properties(audaspace-c PROPERTIES SOVERSION ${AUDASPACE_VERSION}) set_target_properties(audaspace-c PROPERTIES SOVERSION ${AUDASPACE_VERSION})
install(TARGETS audaspace-c install(TARGETS audaspace-c
RUNTIME DESTINATION ${BIN_DESTINATION} RUNTIME DESTINATION ${BIN_DESTINATION}
LIBRARY DESTINATION ${LIB_DESTINATION} LIBRARY DESTINATION ${LIB_DESTINATION}
ARCHIVE DESTINATION ${LIB_DESTINATION} ARCHIVE DESTINATION ${LIB_DESTINATION}
) )
endif() endif()
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
install(FILES ${C_HDR} DESTINATION include/audaspace) install(FILES ${C_HDR} DESTINATION include/audaspace)
endif() endif()
endif() endif()
if(WITH_PYTHON) if(WITH_PYTHON)
set(PYTHON_SRC set(PYTHON_SRC
bindings/python/PyAPI.cpp bindings/python/PyAPI.cpp
bindings/python/PyDevice.cpp bindings/python/PyDevice.cpp
bindings/python/PyDynamicMusic.cpp bindings/python/PyDynamicMusic.cpp
bindings/python/PyHandle.cpp bindings/python/PyHandle.cpp
bindings/python/PyPlaybackManager.cpp bindings/python/PyPlaybackManager.cpp
bindings/python/PySequence.cpp bindings/python/PySequence.cpp
bindings/python/PySequenceEntry.cpp bindings/python/PySequenceEntry.cpp
bindings/python/PySound.cpp bindings/python/PySound.cpp
bindings/python/PySource.cpp bindings/python/PySource.cpp
bindings/python/PyThreadPool.cpp bindings/python/PyThreadPool.cpp
) )
set(PYTHON_HDR set(PYTHON_HDR
bindings/python/PyAPI.h bindings/python/PyAPI.h
bindings/python/PyDevice.h bindings/python/PyDevice.h
bindings/python/PyDynamicMusic.h bindings/python/PyDynamicMusic.h
bindings/python/PyHandle.h bindings/python/PyHandle.h
bindings/python/PyPlaybackManager.h bindings/python/PyPlaybackManager.h
bindings/python/PySequence.h bindings/python/PySequence.h
bindings/python/PySequenceEntry.h bindings/python/PySequenceEntry.h
bindings/python/PySound.h bindings/python/PySound.h
bindings/python/PySource.h bindings/python/PySource.h
bindings/python/PyThreadPool.h bindings/python/PyThreadPool.h
) )
if(WITH_FFTW) if(WITH_FFTW)
list(APPEND PYTHON_SRC list(APPEND PYTHON_SRC
bindings/python/PyHRTF.cpp bindings/python/PyHRTF.cpp
bindings/python/PyImpulseResponse.cpp bindings/python/PyImpulseResponse.cpp
) )
list(APPEND PYTHON_HDR list(APPEND PYTHON_HDR
bindings/python/PyHRTF.h bindings/python/PyHRTF.h
bindings/python/PyImpulseResponse.h bindings/python/PyImpulseResponse.h
) )
endif() endif()
add_library(audaspace-py ${LIBRARY_TYPE} ${PYTHON_SRC} ${PYTHON_HDR}) add_library(audaspace-py ${LIBRARY_TYPE} ${PYTHON_SRC} ${PYTHON_HDR})
target_link_libraries(audaspace-py audaspace ${PYTHON_LIBRARIES}) target_link_libraries(audaspace-py audaspace ${PYTHON_LIBRARIES})
set_target_properties(audaspace-py PROPERTIES SOVERSION ${AUDASPACE_VERSION}) set_target_properties(audaspace-py PROPERTIES SOVERSION ${AUDASPACE_VERSION})
if(AUDASPACE_STANDALONE) if(AUDASPACE_STANDALONE)
install(TARGETS audaspace-py install(TARGETS audaspace-py
RUNTIME DESTINATION ${BIN_DESTINATION} RUNTIME DESTINATION ${BIN_DESTINATION}
LIBRARY DESTINATION ${LIB_DESTINATION} LIBRARY DESTINATION ${LIB_DESTINATION}
ARCHIVE DESTINATION ${LIB_DESTINATION} ARCHIVE DESTINATION ${LIB_DESTINATION}
) )
install(FILES ${PYTHON_HDR} DESTINATION include/audaspace/python) install(FILES ${PYTHON_HDR} DESTINATION include/audaspace/python)
endif() endif()
if(WITH_PYTHON_MODULE) if(WITH_PYTHON_MODULE)
set(PYTHON_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bindings/python) set(PYTHON_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bindings/python)
configure_file(${PYTHON_SOURCE_DIRECTORY}/setup.py.in ${CMAKE_CURRENT_BINARY_DIR}/setup.py ESCAPE_QUOTES @ONLY) configure_file(${PYTHON_SOURCE_DIRECTORY}/setup.py.in ${CMAKE_CURRENT_BINARY_DIR}/setup.py ESCAPE_QUOTES @ONLY)
if(APPLE) if(APPLE)
add_custom_command(OUTPUT build COMMAND MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} ${PYTHON_EXECUTABLE} setup.py build DEPENDS ${PYTHON_SRC} ${PYTHON_HDR}) add_custom_command(OUTPUT build COMMAND MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} ${PYTHON_EXECUTABLE} setup.py build DEPENDS ${PYTHON_SRC} ${PYTHON_HDR})
elseif(WIN32) elseif(WIN32)
set(ENV{VS100COMNTOOLS} $ENV{VS120COMNTOOLS}) set(ENV{VS100COMNTOOLS} $ENV{VS120COMNTOOLS})
add_custom_command(OUTPUT build COMMAND ${PYTHON_EXECUTABLE} setup.py build DEPENDS ${PYTHON_SRC} ${PYTHON_HDR}) add_custom_command(OUTPUT build COMMAND ${PYTHON_EXECUTABLE} setup.py build DEPENDS ${PYTHON_SRC} ${PYTHON_HDR})
else() else()
add_custom_command(OUTPUT build COMMAND ${PYTHON_EXECUTABLE} setup.py build DEPENDS ${PYTHON_SRC} ${PYTHON_HDR}) add_custom_command(OUTPUT build COMMAND ${PYTHON_EXECUTABLE} setup.py build DEPENDS ${PYTHON_SRC} ${PYTHON_HDR})
endif() endif()
add_custom_target(pythonmodule ALL DEPENDS build SOURCES ${PYTHON_SOURCE_DIRECTORY}/setup.py.in ${PYTHON_SRC} ${PYTHON_HDR}) add_custom_target(pythonmodule ALL DEPENDS build SOURCES ${PYTHON_SOURCE_DIRECTORY}/setup.py.in ${PYTHON_SRC} ${PYTHON_HDR})
add_dependencies(pythonmodule audaspace) add_dependencies(pythonmodule audaspace)
install(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} setup.py install --root=\$ENV{DESTDIR} --prefix=${CMAKE_INSTALL_PREFIX})") install(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} setup.py install --root=\$ENV{DESTDIR} --prefix=${CMAKE_INSTALL_PREFIX})")
endif() endif()
endif() endif()
# docs # docs
if(WITH_DOCS) if(WITH_DOCS)
find_package(Doxygen ${PACKAGE_OPTION}) find_package(Doxygen ${PACKAGE_OPTION})
if(DOXYGEN_FOUND AND DOXYGEN_DOT_FOUND) if(DOXYGEN_FOUND AND DOXYGEN_DOT_FOUND)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
add_custom_target(audaspace_doc ALL ${DOXYGEN_EXECUTABLE} Doxyfile COMMENT "Building C++ HTML documentation with Doxygen.") add_custom_target(audaspace_doc ALL ${DOXYGEN_EXECUTABLE} Doxyfile COMMENT "Building C++ HTML documentation with Doxygen.")
else() else()
set(WITH_DOCS FALSE CACHE BOOL "Build C++ HTML Documentation with Doxygen" FORCE) set(WITH_DOCS FALSE CACHE BOOL "Build C++ HTML Documentation with Doxygen" FORCE)
message(WARNING "Doxygen (and/or dot) not found, documentation will not be built.") message(WARNING "Doxygen (and/or dot) not found, documentation will not be built.")
endif() endif()
endif() endif()
if(WITH_BINDING_DOCS) if(WITH_BINDING_DOCS)
find_package(Sphinx ${PACKAGE_OPTION}) find_package(Sphinx ${PACKAGE_OPTION})
if(SPHINX_FOUND) if(SPHINX_FOUND)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/bindings/doc/conf.py.in ${CMAKE_CURRENT_BINARY_DIR}/conf.py @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/bindings/doc/conf.py.in ${CMAKE_CURRENT_BINARY_DIR}/conf.py @ONLY)
add_custom_target(bindings_doc ALL COMMAND ${PYTHON_EXECUTABLE} setup.py --build-docs ${SPHINX_EXECUTABLE} -q -b html -c "${CMAKE_CURRENT_BINARY_DIR}" -d "${CMAKE_CURRENT_BINARY_DIR}/_doctrees" "${CMAKE_CURRENT_SOURCE_DIR}/bindings/doc" "${CMAKE_CURRENT_BINARY_DIR}/doc/bindings" DEPENDS pythonmodule COMMENT "Building C/Python HTML documentation with Sphinx.") add_custom_target(bindings_doc ALL COMMAND ${PYTHON_EXECUTABLE} setup.py --build-docs ${SPHINX_EXECUTABLE} -q -b html -c "${CMAKE_CURRENT_BINARY_DIR}" -d "${CMAKE_CURRENT_BINARY_DIR}/_doctrees" "${CMAKE_CURRENT_SOURCE_DIR}/bindings/doc" "${CMAKE_CURRENT_BINARY_DIR}/doc/bindings" DEPENDS pythonmodule COMMENT "Building C/Python HTML documentation with Sphinx.")
else() else()
set(WITH_BINDING_DOCS FALSE CACHE BOOL "Build C/Python HTML Documentation with Sphinx" FORCE) set(WITH_BINDING_DOCS FALSE CACHE BOOL "Build C/Python HTML Documentation with Sphinx" FORCE)
message(WARNING "Sphinx not found, binding documentation will not be built.") message(WARNING "Sphinx not found, binding documentation will not be built.")
endif() endif()
endif() endif()
if(WITH_DOCS OR WITH_BINDING_DOCS) if(WITH_DOCS OR WITH_BINDING_DOCS)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/ DESTINATION ${DOCUMENTATION_INSTALL_PATH}) install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doc/ DESTINATION ${DOCUMENTATION_INSTALL_PATH})
endif() endif()

View File

@@ -25,7 +25,7 @@ set(NUMPY_INCLUDE_DIRS ${PYTHON_NUMPY_INCLUDE_DIRS})
set(SDL_FOUND ${WITH_SDL}) set(SDL_FOUND ${WITH_SDL})
if(WIN32) if(WIN32)
set(DEFAULT_PLUGIN_PATH "plugins" CACHE STRING "Default plugin installation and loading path.") set(DEFAULT_PLUGIN_PATH "plugins" CACHE STRING "Default plugin installation and loading path.")
endif() endif()
mark_as_advanced(BUILD_DEMOS SHARED_LIBRARY WITH_C WITH_DOCS WITH_FFMPEG WITH_FFTW WITH_LIBSNDFILE SEPARATE_C PLUGIN_FFMPEG PLUGIN_JACK PLUGIN_LIBSNDFILE PLUGIN_OPENAL PLUGIN_SDL WITH_PYTHON_MODULE DYNLOAD_JACK WITH_BINDING_DOCS DEFAULT_PLUGIN_PATH) mark_as_advanced(BUILD_DEMOS SHARED_LIBRARY WITH_C WITH_DOCS WITH_FFMPEG WITH_FFTW WITH_LIBSNDFILE SEPARATE_C PLUGIN_FFMPEG PLUGIN_JACK PLUGIN_LIBSNDFILE PLUGIN_OPENAL PLUGIN_SDL WITH_PYTHON_MODULE DYNLOAD_JACK WITH_BINDING_DOCS DEFAULT_PLUGIN_PATH)

View File

@@ -19,7 +19,7 @@
# #
set(INC set(INC
include include
) )
set(INC_SYS set(INC_SYS
@@ -27,9 +27,9 @@ set(INC_SYS
) )
set(SRC set(SRC
binreloc.c binreloc.c
include/binreloc.h include/binreloc.h
) )
set(LIB set(LIB

View File

@@ -19,8 +19,8 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
. .
src src
) )
set(INC_SYS set(INC_SYS
@@ -28,391 +28,391 @@ set(INC_SYS
) )
set(SRC set(SRC
src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp
src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp
src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp
src/BulletCollision/BroadphaseCollision/btDbvt.cpp src/BulletCollision/BroadphaseCollision/btDbvt.cpp
src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp
src/BulletCollision/BroadphaseCollision/btDispatcher.cpp src/BulletCollision/BroadphaseCollision/btDispatcher.cpp
src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp
src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp
src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp
src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp
src/BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp src/BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp
src/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.cpp src/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.cpp src/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp src/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp
src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp
src/BulletCollision/CollisionDispatch/btCollisionObject.cpp src/BulletCollision/CollisionDispatch/btCollisionObject.cpp
src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp
src/BulletCollision/CollisionDispatch/btCollisionWorldImporter.cpp src/BulletCollision/CollisionDispatch/btCollisionWorldImporter.cpp
src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btCompoundCompoundCollisionAlgorithm.cpp src/BulletCollision/CollisionDispatch/btCompoundCompoundCollisionAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp src/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.cpp src/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp
src/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.cpp src/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btGhostObject.cpp src/BulletCollision/CollisionDispatch/btGhostObject.cpp
src/BulletCollision/CollisionDispatch/btHashedSimplePairCache.cpp src/BulletCollision/CollisionDispatch/btHashedSimplePairCache.cpp
src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp
src/BulletCollision/CollisionDispatch/btManifoldResult.cpp src/BulletCollision/CollisionDispatch/btManifoldResult.cpp
src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp
src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp src/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp
src/BulletCollision/CollisionDispatch/btUnionFind.cpp src/BulletCollision/CollisionDispatch/btUnionFind.cpp
src/BulletCollision/CollisionShapes/btBox2dShape.cpp src/BulletCollision/CollisionShapes/btBox2dShape.cpp
src/BulletCollision/CollisionShapes/btBoxShape.cpp src/BulletCollision/CollisionShapes/btBoxShape.cpp
src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp
src/BulletCollision/CollisionShapes/btCapsuleShape.cpp src/BulletCollision/CollisionShapes/btCapsuleShape.cpp
src/BulletCollision/CollisionShapes/btCollisionShape.cpp src/BulletCollision/CollisionShapes/btCollisionShape.cpp
src/BulletCollision/CollisionShapes/btCompoundShape.cpp src/BulletCollision/CollisionShapes/btCompoundShape.cpp
src/BulletCollision/CollisionShapes/btConcaveShape.cpp src/BulletCollision/CollisionShapes/btConcaveShape.cpp
src/BulletCollision/CollisionShapes/btConeShape.cpp src/BulletCollision/CollisionShapes/btConeShape.cpp
src/BulletCollision/CollisionShapes/btConvex2dShape.cpp src/BulletCollision/CollisionShapes/btConvex2dShape.cpp
src/BulletCollision/CollisionShapes/btConvexHullShape.cpp src/BulletCollision/CollisionShapes/btConvexHullShape.cpp
src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp
src/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp src/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp
src/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp src/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp
src/BulletCollision/CollisionShapes/btConvexShape.cpp src/BulletCollision/CollisionShapes/btConvexShape.cpp
src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp
src/BulletCollision/CollisionShapes/btCylinderShape.cpp src/BulletCollision/CollisionShapes/btCylinderShape.cpp
src/BulletCollision/CollisionShapes/btEmptyShape.cpp src/BulletCollision/CollisionShapes/btEmptyShape.cpp
src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp
src/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp src/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp
src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp
src/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp src/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp
src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp
src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp
src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp
src/BulletCollision/CollisionShapes/btShapeHull.cpp src/BulletCollision/CollisionShapes/btShapeHull.cpp
src/BulletCollision/CollisionShapes/btSphereShape.cpp src/BulletCollision/CollisionShapes/btSphereShape.cpp
src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp
src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp
src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp
src/BulletCollision/CollisionShapes/btTriangleBuffer.cpp src/BulletCollision/CollisionShapes/btTriangleBuffer.cpp
src/BulletCollision/CollisionShapes/btTriangleCallback.cpp src/BulletCollision/CollisionShapes/btTriangleCallback.cpp
src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp
src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp
src/BulletCollision/CollisionShapes/btTriangleMesh.cpp src/BulletCollision/CollisionShapes/btTriangleMesh.cpp
src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp
src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp
src/BulletCollision/Gimpact/btContactProcessing.cpp src/BulletCollision/Gimpact/btContactProcessing.cpp
src/BulletCollision/Gimpact/btGImpactBvh.cpp src/BulletCollision/Gimpact/btGImpactBvh.cpp
src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp
src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp
src/BulletCollision/Gimpact/btGImpactShape.cpp src/BulletCollision/Gimpact/btGImpactShape.cpp
src/BulletCollision/Gimpact/btGenericPoolAllocator.cpp src/BulletCollision/Gimpact/btGenericPoolAllocator.cpp
src/BulletCollision/Gimpact/btTriangleShapeEx.cpp src/BulletCollision/Gimpact/btTriangleShapeEx.cpp
src/BulletCollision/Gimpact/gim_box_set.cpp src/BulletCollision/Gimpact/gim_box_set.cpp
src/BulletCollision/Gimpact/gim_contact.cpp src/BulletCollision/Gimpact/gim_contact.cpp
src/BulletCollision/Gimpact/gim_memory.cpp src/BulletCollision/Gimpact/gim_memory.cpp
src/BulletCollision/Gimpact/gim_tri_collision.cpp src/BulletCollision/Gimpact/gim_tri_collision.cpp
src/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp src/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp
src/BulletCollision/NarrowPhaseCollision/btConvexCast.cpp src/BulletCollision/NarrowPhaseCollision/btConvexCast.cpp
src/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp src/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp
src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp
src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp
src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp
src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp
src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp
src/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.cpp src/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.cpp
src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp
src/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp src/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp
src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp
src/BulletDynamics/Character/btKinematicCharacterController.cpp src/BulletDynamics/Character/btKinematicCharacterController.cpp
src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp
src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp
src/BulletDynamics/ConstraintSolver/btFixedConstraint.cpp src/BulletDynamics/ConstraintSolver/btFixedConstraint.cpp
src/BulletDynamics/ConstraintSolver/btGearConstraint.cpp src/BulletDynamics/ConstraintSolver/btGearConstraint.cpp
src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp
src/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp src/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp
src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp
src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp
src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp
src/BulletDynamics/ConstraintSolver/btNNCGConstraintSolver.cpp src/BulletDynamics/ConstraintSolver/btNNCGConstraintSolver.cpp
src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp
src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp
src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp
src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp
src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp
src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp
src/BulletDynamics/Dynamics/Bullet-C-API.cpp src/BulletDynamics/Dynamics/Bullet-C-API.cpp
src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp
src/BulletDynamics/Dynamics/btRigidBody.cpp src/BulletDynamics/Dynamics/btRigidBody.cpp
src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp
src/BulletDynamics/Featherstone/btMultiBody.cpp src/BulletDynamics/Featherstone/btMultiBody.cpp
src/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp src/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp
src/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp src/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp
src/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp src/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp
src/BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.cpp src/BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.cpp
src/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp src/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp
src/BulletDynamics/Featherstone/btMultiBodyPoint2Point.cpp src/BulletDynamics/Featherstone/btMultiBodyPoint2Point.cpp
src/BulletDynamics/MLCPSolvers/btDantzigLCP.cpp src/BulletDynamics/MLCPSolvers/btDantzigLCP.cpp
src/BulletDynamics/MLCPSolvers/btLemkeAlgorithm.cpp src/BulletDynamics/MLCPSolvers/btLemkeAlgorithm.cpp
src/BulletDynamics/MLCPSolvers/btMLCPSolver.cpp src/BulletDynamics/MLCPSolvers/btMLCPSolver.cpp
src/BulletDynamics/Vehicle/btRaycastVehicle.cpp src/BulletDynamics/Vehicle/btRaycastVehicle.cpp
src/BulletDynamics/Vehicle/btWheelInfo.cpp src/BulletDynamics/Vehicle/btWheelInfo.cpp
src/BulletSoftBody/btDefaultSoftBodySolver.cpp src/BulletSoftBody/btDefaultSoftBodySolver.cpp
src/BulletSoftBody/btSoftBody.cpp src/BulletSoftBody/btSoftBody.cpp
src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp
src/BulletSoftBody/btSoftBodyHelpers.cpp src/BulletSoftBody/btSoftBodyHelpers.cpp
src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp
src/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp src/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp
src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp
src/BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp src/BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp
src/LinearMath/btAlignedAllocator.cpp src/LinearMath/btAlignedAllocator.cpp
src/LinearMath/btConvexHull.cpp src/LinearMath/btConvexHull.cpp
src/LinearMath/btConvexHullComputer.cpp src/LinearMath/btConvexHullComputer.cpp
src/LinearMath/btGeometryUtil.cpp src/LinearMath/btGeometryUtil.cpp
src/LinearMath/btPolarDecomposition.cpp src/LinearMath/btPolarDecomposition.cpp
src/LinearMath/btQuickprof.cpp src/LinearMath/btQuickprof.cpp
src/LinearMath/btSerializer.cpp src/LinearMath/btSerializer.cpp
src/LinearMath/btVector3.cpp src/LinearMath/btVector3.cpp
src/BulletCollision/BroadphaseCollision/btAxisSweep3.h src/BulletCollision/BroadphaseCollision/btAxisSweep3.h
src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h
src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h
src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h
src/BulletCollision/BroadphaseCollision/btDbvt.h src/BulletCollision/BroadphaseCollision/btDbvt.h
src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h
src/BulletCollision/BroadphaseCollision/btDispatcher.h src/BulletCollision/BroadphaseCollision/btDispatcher.h
src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h
src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h
src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h
src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h
src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h
src/BulletCollision/CollisionDispatch/SphereTriangleDetector.h src/BulletCollision/CollisionDispatch/SphereTriangleDetector.h
src/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h src/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h
src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.h src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.h
src/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.h src/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.h
src/BulletCollision/CollisionDispatch/btBoxBoxDetector.h src/BulletCollision/CollisionDispatch/btBoxBoxDetector.h
src/BulletCollision/CollisionDispatch/btCollisionConfiguration.h src/BulletCollision/CollisionDispatch/btCollisionConfiguration.h
src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h
src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h
src/BulletCollision/CollisionDispatch/btCollisionObject.h src/BulletCollision/CollisionDispatch/btCollisionObject.h
src/BulletCollision/CollisionDispatch/btCollisionObjectWrapper.h src/BulletCollision/CollisionDispatch/btCollisionObjectWrapper.h
src/BulletCollision/CollisionDispatch/btCollisionWorld.h src/BulletCollision/CollisionDispatch/btCollisionWorld.h
src/BulletCollision/CollisionDispatch/btCollisionWorldImporter.h src/BulletCollision/CollisionDispatch/btCollisionWorldImporter.h
src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.h src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.h
src/BulletCollision/CollisionDispatch/btCompoundCompoundCollisionAlgorithm.h src/BulletCollision/CollisionDispatch/btCompoundCompoundCollisionAlgorithm.h
src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.h src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.h
src/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.h src/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.h
src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h
src/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.h src/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.h
src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h
src/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.h src/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.h
src/BulletCollision/CollisionDispatch/btGhostObject.h src/BulletCollision/CollisionDispatch/btGhostObject.h
src/BulletCollision/CollisionDispatch/btHashedSimplePairCache.h src/BulletCollision/CollisionDispatch/btHashedSimplePairCache.h
src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.h src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.h
src/BulletCollision/CollisionDispatch/btManifoldResult.h src/BulletCollision/CollisionDispatch/btManifoldResult.h
src/BulletCollision/CollisionDispatch/btSimulationIslandManager.h src/BulletCollision/CollisionDispatch/btSimulationIslandManager.h
src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.h src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.h
src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h
src/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.h src/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.h
src/BulletCollision/CollisionDispatch/btUnionFind.h src/BulletCollision/CollisionDispatch/btUnionFind.h
src/BulletCollision/CollisionShapes/btBox2dShape.h src/BulletCollision/CollisionShapes/btBox2dShape.h
src/BulletCollision/CollisionShapes/btBoxShape.h src/BulletCollision/CollisionShapes/btBoxShape.h
src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h
src/BulletCollision/CollisionShapes/btCapsuleShape.h src/BulletCollision/CollisionShapes/btCapsuleShape.h
src/BulletCollision/CollisionShapes/btCollisionMargin.h src/BulletCollision/CollisionShapes/btCollisionMargin.h
src/BulletCollision/CollisionShapes/btCollisionShape.h src/BulletCollision/CollisionShapes/btCollisionShape.h
src/BulletCollision/CollisionShapes/btCompoundShape.h src/BulletCollision/CollisionShapes/btCompoundShape.h
src/BulletCollision/CollisionShapes/btConcaveShape.h src/BulletCollision/CollisionShapes/btConcaveShape.h
src/BulletCollision/CollisionShapes/btConeShape.h src/BulletCollision/CollisionShapes/btConeShape.h
src/BulletCollision/CollisionShapes/btConvex2dShape.h src/BulletCollision/CollisionShapes/btConvex2dShape.h
src/BulletCollision/CollisionShapes/btConvexHullShape.h src/BulletCollision/CollisionShapes/btConvexHullShape.h
src/BulletCollision/CollisionShapes/btConvexInternalShape.h src/BulletCollision/CollisionShapes/btConvexInternalShape.h
src/BulletCollision/CollisionShapes/btConvexPointCloudShape.h src/BulletCollision/CollisionShapes/btConvexPointCloudShape.h
src/BulletCollision/CollisionShapes/btConvexPolyhedron.h src/BulletCollision/CollisionShapes/btConvexPolyhedron.h
src/BulletCollision/CollisionShapes/btConvexShape.h src/BulletCollision/CollisionShapes/btConvexShape.h
src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h
src/BulletCollision/CollisionShapes/btCylinderShape.h src/BulletCollision/CollisionShapes/btCylinderShape.h
src/BulletCollision/CollisionShapes/btEmptyShape.h src/BulletCollision/CollisionShapes/btEmptyShape.h
src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h
src/BulletCollision/CollisionShapes/btMaterial.h src/BulletCollision/CollisionShapes/btMaterial.h
src/BulletCollision/CollisionShapes/btMinkowskiSumShape.h src/BulletCollision/CollisionShapes/btMinkowskiSumShape.h
src/BulletCollision/CollisionShapes/btMultiSphereShape.h src/BulletCollision/CollisionShapes/btMultiSphereShape.h
src/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.h src/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.h
src/BulletCollision/CollisionShapes/btOptimizedBvh.h src/BulletCollision/CollisionShapes/btOptimizedBvh.h
src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h
src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h
src/BulletCollision/CollisionShapes/btShapeHull.h src/BulletCollision/CollisionShapes/btShapeHull.h
src/BulletCollision/CollisionShapes/btSphereShape.h src/BulletCollision/CollisionShapes/btSphereShape.h
src/BulletCollision/CollisionShapes/btStaticPlaneShape.h src/BulletCollision/CollisionShapes/btStaticPlaneShape.h
src/BulletCollision/CollisionShapes/btStridingMeshInterface.h src/BulletCollision/CollisionShapes/btStridingMeshInterface.h
src/BulletCollision/CollisionShapes/btTetrahedronShape.h src/BulletCollision/CollisionShapes/btTetrahedronShape.h
src/BulletCollision/CollisionShapes/btTriangleBuffer.h src/BulletCollision/CollisionShapes/btTriangleBuffer.h
src/BulletCollision/CollisionShapes/btTriangleCallback.h src/BulletCollision/CollisionShapes/btTriangleCallback.h
src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h
src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.h src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.h
src/BulletCollision/CollisionShapes/btTriangleInfoMap.h src/BulletCollision/CollisionShapes/btTriangleInfoMap.h
src/BulletCollision/CollisionShapes/btTriangleMesh.h src/BulletCollision/CollisionShapes/btTriangleMesh.h
src/BulletCollision/CollisionShapes/btTriangleMeshShape.h src/BulletCollision/CollisionShapes/btTriangleMeshShape.h
src/BulletCollision/CollisionShapes/btTriangleShape.h src/BulletCollision/CollisionShapes/btTriangleShape.h
src/BulletCollision/CollisionShapes/btUniformScalingShape.h src/BulletCollision/CollisionShapes/btUniformScalingShape.h
src/BulletCollision/Gimpact/btBoxCollision.h src/BulletCollision/Gimpact/btBoxCollision.h
src/BulletCollision/Gimpact/btClipPolygon.h src/BulletCollision/Gimpact/btClipPolygon.h
src/BulletCollision/Gimpact/btCompoundFromGimpact.h src/BulletCollision/Gimpact/btCompoundFromGimpact.h
src/BulletCollision/Gimpact/btContactProcessing.h src/BulletCollision/Gimpact/btContactProcessing.h
src/BulletCollision/Gimpact/btGImpactBvh.h src/BulletCollision/Gimpact/btGImpactBvh.h
src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h
src/BulletCollision/Gimpact/btGImpactMassUtil.h src/BulletCollision/Gimpact/btGImpactMassUtil.h
src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h
src/BulletCollision/Gimpact/btGImpactShape.h src/BulletCollision/Gimpact/btGImpactShape.h
src/BulletCollision/Gimpact/btGenericPoolAllocator.h src/BulletCollision/Gimpact/btGenericPoolAllocator.h
src/BulletCollision/Gimpact/btGeometryOperations.h src/BulletCollision/Gimpact/btGeometryOperations.h
src/BulletCollision/Gimpact/btQuantization.h src/BulletCollision/Gimpact/btQuantization.h
src/BulletCollision/Gimpact/btTriangleShapeEx.h src/BulletCollision/Gimpact/btTriangleShapeEx.h
src/BulletCollision/Gimpact/gim_array.h src/BulletCollision/Gimpact/gim_array.h
src/BulletCollision/Gimpact/gim_basic_geometry_operations.h src/BulletCollision/Gimpact/gim_basic_geometry_operations.h
src/BulletCollision/Gimpact/gim_bitset.h src/BulletCollision/Gimpact/gim_bitset.h
src/BulletCollision/Gimpact/gim_box_collision.h src/BulletCollision/Gimpact/gim_box_collision.h
src/BulletCollision/Gimpact/gim_box_set.h src/BulletCollision/Gimpact/gim_box_set.h
src/BulletCollision/Gimpact/gim_clip_polygon.h src/BulletCollision/Gimpact/gim_clip_polygon.h
src/BulletCollision/Gimpact/gim_contact.h src/BulletCollision/Gimpact/gim_contact.h
src/BulletCollision/Gimpact/gim_geom_types.h src/BulletCollision/Gimpact/gim_geom_types.h
src/BulletCollision/Gimpact/gim_geometry.h src/BulletCollision/Gimpact/gim_geometry.h
src/BulletCollision/Gimpact/gim_hash_table.h src/BulletCollision/Gimpact/gim_hash_table.h
src/BulletCollision/Gimpact/gim_linear_math.h src/BulletCollision/Gimpact/gim_linear_math.h
src/BulletCollision/Gimpact/gim_math.h src/BulletCollision/Gimpact/gim_math.h
src/BulletCollision/Gimpact/gim_memory.h src/BulletCollision/Gimpact/gim_memory.h
src/BulletCollision/Gimpact/gim_radixsort.h src/BulletCollision/Gimpact/gim_radixsort.h
src/BulletCollision/Gimpact/gim_tri_collision.h src/BulletCollision/Gimpact/gim_tri_collision.h
src/BulletCollision/NarrowPhaseCollision/btComputeGjkEpaPenetration.h src/BulletCollision/NarrowPhaseCollision/btComputeGjkEpaPenetration.h
src/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.h src/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.h
src/BulletCollision/NarrowPhaseCollision/btConvexCast.h src/BulletCollision/NarrowPhaseCollision/btConvexCast.h
src/BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.h src/BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.h
src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h
src/BulletCollision/NarrowPhaseCollision/btGjkCollisionDescription.h src/BulletCollision/NarrowPhaseCollision/btGjkCollisionDescription.h
src/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.h src/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.h
src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h
src/BulletCollision/NarrowPhaseCollision/btGjkEpa3.h src/BulletCollision/NarrowPhaseCollision/btGjkEpa3.h
src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h
src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h
src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h
src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.h src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.h
src/BulletCollision/NarrowPhaseCollision/btMprPenetration.h src/BulletCollision/NarrowPhaseCollision/btMprPenetration.h
src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h
src/BulletCollision/NarrowPhaseCollision/btPointCollector.h src/BulletCollision/NarrowPhaseCollision/btPointCollector.h
src/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.h src/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.h
src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h
src/BulletCollision/NarrowPhaseCollision/btSimplexSolverInterface.h src/BulletCollision/NarrowPhaseCollision/btSimplexSolverInterface.h
src/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h src/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h
src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h
src/BulletDynamics/Character/btCharacterControllerInterface.h src/BulletDynamics/Character/btCharacterControllerInterface.h
src/BulletDynamics/Character/btKinematicCharacterController.h src/BulletDynamics/Character/btKinematicCharacterController.h
src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h
src/BulletDynamics/ConstraintSolver/btConstraintSolver.h src/BulletDynamics/ConstraintSolver/btConstraintSolver.h
src/BulletDynamics/ConstraintSolver/btContactConstraint.h src/BulletDynamics/ConstraintSolver/btContactConstraint.h
src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h
src/BulletDynamics/ConstraintSolver/btFixedConstraint.h src/BulletDynamics/ConstraintSolver/btFixedConstraint.h
src/BulletDynamics/ConstraintSolver/btGearConstraint.h src/BulletDynamics/ConstraintSolver/btGearConstraint.h
src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h
src/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.h src/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.h
src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h
src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h
src/BulletDynamics/ConstraintSolver/btHingeConstraint.h src/BulletDynamics/ConstraintSolver/btHingeConstraint.h
src/BulletDynamics/ConstraintSolver/btJacobianEntry.h src/BulletDynamics/ConstraintSolver/btJacobianEntry.h
src/BulletDynamics/ConstraintSolver/btNNCGConstraintSolver.h src/BulletDynamics/ConstraintSolver/btNNCGConstraintSolver.h
src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h
src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h
src/BulletDynamics/ConstraintSolver/btSliderConstraint.h src/BulletDynamics/ConstraintSolver/btSliderConstraint.h
src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.h src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.h
src/BulletDynamics/ConstraintSolver/btSolverBody.h src/BulletDynamics/ConstraintSolver/btSolverBody.h
src/BulletDynamics/ConstraintSolver/btSolverConstraint.h src/BulletDynamics/ConstraintSolver/btSolverConstraint.h
src/BulletDynamics/ConstraintSolver/btTypedConstraint.h src/BulletDynamics/ConstraintSolver/btTypedConstraint.h
src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h
src/BulletDynamics/Dynamics/btActionInterface.h src/BulletDynamics/Dynamics/btActionInterface.h
src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h
src/BulletDynamics/Dynamics/btDynamicsWorld.h src/BulletDynamics/Dynamics/btDynamicsWorld.h
src/BulletDynamics/Dynamics/btRigidBody.h src/BulletDynamics/Dynamics/btRigidBody.h
src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h
src/BulletDynamics/Featherstone/btMultiBody.h src/BulletDynamics/Featherstone/btMultiBody.h
src/BulletDynamics/Featherstone/btMultiBodyConstraint.h src/BulletDynamics/Featherstone/btMultiBodyConstraint.h
src/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.h src/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.h
src/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.h src/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.h
src/BulletDynamics/Featherstone/btMultiBodyJointFeedback.h src/BulletDynamics/Featherstone/btMultiBodyJointFeedback.h
src/BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.h src/BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.h
src/BulletDynamics/Featherstone/btMultiBodyJointMotor.h src/BulletDynamics/Featherstone/btMultiBodyJointMotor.h
src/BulletDynamics/Featherstone/btMultiBodyLink.h src/BulletDynamics/Featherstone/btMultiBodyLink.h
src/BulletDynamics/Featherstone/btMultiBodyLinkCollider.h src/BulletDynamics/Featherstone/btMultiBodyLinkCollider.h
src/BulletDynamics/Featherstone/btMultiBodyPoint2Point.h src/BulletDynamics/Featherstone/btMultiBodyPoint2Point.h
src/BulletDynamics/Featherstone/btMultiBodySolverConstraint.h src/BulletDynamics/Featherstone/btMultiBodySolverConstraint.h
src/BulletDynamics/MLCPSolvers/btDantzigLCP.h src/BulletDynamics/MLCPSolvers/btDantzigLCP.h
src/BulletDynamics/MLCPSolvers/btDantzigSolver.h src/BulletDynamics/MLCPSolvers/btDantzigSolver.h
src/BulletDynamics/MLCPSolvers/btLemkeAlgorithm.h src/BulletDynamics/MLCPSolvers/btLemkeAlgorithm.h
src/BulletDynamics/MLCPSolvers/btLemkeSolver.h src/BulletDynamics/MLCPSolvers/btLemkeSolver.h
src/BulletDynamics/MLCPSolvers/btMLCPSolver.h src/BulletDynamics/MLCPSolvers/btMLCPSolver.h
src/BulletDynamics/MLCPSolvers/btMLCPSolverInterface.h src/BulletDynamics/MLCPSolvers/btMLCPSolverInterface.h
src/BulletDynamics/MLCPSolvers/btPATHSolver.h src/BulletDynamics/MLCPSolvers/btPATHSolver.h
src/BulletDynamics/MLCPSolvers/btSolveProjectedGaussSeidel.h src/BulletDynamics/MLCPSolvers/btSolveProjectedGaussSeidel.h
src/BulletDynamics/Vehicle/btRaycastVehicle.h src/BulletDynamics/Vehicle/btRaycastVehicle.h
src/BulletDynamics/Vehicle/btVehicleRaycaster.h src/BulletDynamics/Vehicle/btVehicleRaycaster.h
src/BulletDynamics/Vehicle/btWheelInfo.h src/BulletDynamics/Vehicle/btWheelInfo.h
src/BulletSoftBody/btDefaultSoftBodySolver.h src/BulletSoftBody/btDefaultSoftBodySolver.h
src/BulletSoftBody/btSoftBody.h src/BulletSoftBody/btSoftBody.h
src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.h src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.h
src/BulletSoftBody/btSoftBodyData.h src/BulletSoftBody/btSoftBodyData.h
src/BulletSoftBody/btSoftBodyHelpers.h src/BulletSoftBody/btSoftBodyHelpers.h
src/BulletSoftBody/btSoftBodyInternals.h src/BulletSoftBody/btSoftBodyInternals.h
src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h
src/BulletSoftBody/btSoftBodySolverVertexBuffer.h src/BulletSoftBody/btSoftBodySolverVertexBuffer.h
src/BulletSoftBody/btSoftBodySolvers.h src/BulletSoftBody/btSoftBodySolvers.h
src/BulletSoftBody/btSoftRigidCollisionAlgorithm.h src/BulletSoftBody/btSoftRigidCollisionAlgorithm.h
src/BulletSoftBody/btSoftRigidDynamicsWorld.h src/BulletSoftBody/btSoftRigidDynamicsWorld.h
src/BulletSoftBody/btSoftSoftCollisionAlgorithm.h src/BulletSoftBody/btSoftSoftCollisionAlgorithm.h
src/BulletSoftBody/btSparseSDF.h src/BulletSoftBody/btSparseSDF.h
src/LinearMath/btAabbUtil2.h src/LinearMath/btAabbUtil2.h
src/LinearMath/btAlignedAllocator.h src/LinearMath/btAlignedAllocator.h
src/LinearMath/btAlignedObjectArray.h src/LinearMath/btAlignedObjectArray.h
src/LinearMath/btConvexHull.h src/LinearMath/btConvexHull.h
src/LinearMath/btConvexHullComputer.h src/LinearMath/btConvexHullComputer.h
src/LinearMath/btCpuFeatureUtility.h src/LinearMath/btCpuFeatureUtility.h
src/LinearMath/btDefaultMotionState.h src/LinearMath/btDefaultMotionState.h
src/LinearMath/btGeometryUtil.h src/LinearMath/btGeometryUtil.h
src/LinearMath/btGrahamScan2dConvexHull.h src/LinearMath/btGrahamScan2dConvexHull.h
src/LinearMath/btHashMap.h src/LinearMath/btHashMap.h
src/LinearMath/btIDebugDraw.h src/LinearMath/btIDebugDraw.h
src/LinearMath/btList.h src/LinearMath/btList.h
src/LinearMath/btMatrix3x3.h src/LinearMath/btMatrix3x3.h
src/LinearMath/btMatrixX.h src/LinearMath/btMatrixX.h
src/LinearMath/btMinMax.h src/LinearMath/btMinMax.h
src/LinearMath/btMotionState.h src/LinearMath/btMotionState.h
src/LinearMath/btPolarDecomposition.h src/LinearMath/btPolarDecomposition.h
src/LinearMath/btPoolAllocator.h src/LinearMath/btPoolAllocator.h
src/LinearMath/btQuadWord.h src/LinearMath/btQuadWord.h
src/LinearMath/btQuaternion.h src/LinearMath/btQuaternion.h
src/LinearMath/btQuickprof.h src/LinearMath/btQuickprof.h
src/LinearMath/btRandom.h src/LinearMath/btRandom.h
src/LinearMath/btScalar.h src/LinearMath/btScalar.h
src/LinearMath/btSerializer.h src/LinearMath/btSerializer.h
src/LinearMath/btSpatialAlgebra.h src/LinearMath/btSpatialAlgebra.h
src/LinearMath/btStackAlloc.h src/LinearMath/btStackAlloc.h
src/LinearMath/btTransform.h src/LinearMath/btTransform.h
src/LinearMath/btTransformUtil.h src/LinearMath/btTransformUtil.h
src/LinearMath/btVector3.h src/LinearMath/btVector3.h
src/btBulletCollisionCommon.h src/btBulletCollisionCommon.h
src/btBulletDynamicsCommon.h src/btBulletDynamicsCommon.h
src/Bullet-C-Api.h src/Bullet-C-Api.h
) )
set(LIB set(LIB
) )
if(CMAKE_COMPILER_IS_GNUCXX) if(CMAKE_COMPILER_IS_GNUCXX)
# needed for gcc 4.6+ # needed for gcc 4.6+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
endif() endif()
blender_add_lib(extern_bullet "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") blender_add_lib(extern_bullet "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")

View File

@@ -23,291 +23,291 @@
# in that script too # in that script too
set(INC set(INC
. .
include include
internal internal
config config
../gflags/src ../gflags/src
) )
set(INC_SYS set(INC_SYS
${EIGEN3_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIRS}
${GFLAGS_INCLUDE_DIRS} ${GFLAGS_INCLUDE_DIRS}
${GLOG_INCLUDE_DIRS} ${GLOG_INCLUDE_DIRS}
) )
set(SRC set(SRC
internal/ceres/array_utils.cc internal/ceres/array_utils.cc
internal/ceres/blas.cc internal/ceres/blas.cc
internal/ceres/block_evaluate_preparer.cc internal/ceres/block_evaluate_preparer.cc
internal/ceres/block_jacobian_writer.cc internal/ceres/block_jacobian_writer.cc
internal/ceres/block_jacobi_preconditioner.cc internal/ceres/block_jacobi_preconditioner.cc
internal/ceres/block_random_access_dense_matrix.cc internal/ceres/block_random_access_dense_matrix.cc
internal/ceres/block_random_access_diagonal_matrix.cc internal/ceres/block_random_access_diagonal_matrix.cc
internal/ceres/block_random_access_matrix.cc internal/ceres/block_random_access_matrix.cc
internal/ceres/block_random_access_sparse_matrix.cc internal/ceres/block_random_access_sparse_matrix.cc
internal/ceres/block_sparse_matrix.cc internal/ceres/block_sparse_matrix.cc
internal/ceres/block_structure.cc internal/ceres/block_structure.cc
internal/ceres/callbacks.cc internal/ceres/callbacks.cc
internal/ceres/c_api.cc internal/ceres/c_api.cc
internal/ceres/cgnr_solver.cc internal/ceres/cgnr_solver.cc
internal/ceres/compressed_col_sparse_matrix_utils.cc internal/ceres/compressed_col_sparse_matrix_utils.cc
internal/ceres/compressed_row_jacobian_writer.cc internal/ceres/compressed_row_jacobian_writer.cc
internal/ceres/compressed_row_sparse_matrix.cc internal/ceres/compressed_row_sparse_matrix.cc
internal/ceres/conditioned_cost_function.cc internal/ceres/conditioned_cost_function.cc
internal/ceres/conjugate_gradients_solver.cc internal/ceres/conjugate_gradients_solver.cc
internal/ceres/coordinate_descent_minimizer.cc internal/ceres/coordinate_descent_minimizer.cc
internal/ceres/corrector.cc internal/ceres/corrector.cc
internal/ceres/covariance.cc internal/ceres/covariance.cc
internal/ceres/covariance_impl.cc internal/ceres/covariance_impl.cc
internal/ceres/dense_normal_cholesky_solver.cc internal/ceres/dense_normal_cholesky_solver.cc
internal/ceres/dense_qr_solver.cc internal/ceres/dense_qr_solver.cc
internal/ceres/dense_sparse_matrix.cc internal/ceres/dense_sparse_matrix.cc
internal/ceres/detect_structure.cc internal/ceres/detect_structure.cc
internal/ceres/dogleg_strategy.cc internal/ceres/dogleg_strategy.cc
internal/ceres/dynamic_compressed_row_jacobian_writer.cc internal/ceres/dynamic_compressed_row_jacobian_writer.cc
internal/ceres/dynamic_compressed_row_sparse_matrix.cc internal/ceres/dynamic_compressed_row_sparse_matrix.cc
internal/ceres/evaluator.cc internal/ceres/evaluator.cc
internal/ceres/file.cc internal/ceres/file.cc
internal/ceres/generated/partitioned_matrix_view_d_d_d.cc internal/ceres/generated/partitioned_matrix_view_d_d_d.cc
internal/ceres/generated/schur_eliminator_d_d_d.cc internal/ceres/generated/schur_eliminator_d_d_d.cc
internal/ceres/gradient_checker.cc internal/ceres/gradient_checker.cc
internal/ceres/gradient_checking_cost_function.cc internal/ceres/gradient_checking_cost_function.cc
internal/ceres/gradient_problem.cc internal/ceres/gradient_problem.cc
internal/ceres/gradient_problem_solver.cc internal/ceres/gradient_problem_solver.cc
internal/ceres/implicit_schur_complement.cc internal/ceres/implicit_schur_complement.cc
internal/ceres/is_close.cc internal/ceres/is_close.cc
internal/ceres/iterative_schur_complement_solver.cc internal/ceres/iterative_schur_complement_solver.cc
internal/ceres/lapack.cc internal/ceres/lapack.cc
internal/ceres/levenberg_marquardt_strategy.cc internal/ceres/levenberg_marquardt_strategy.cc
internal/ceres/linear_least_squares_problems.cc internal/ceres/linear_least_squares_problems.cc
internal/ceres/linear_operator.cc internal/ceres/linear_operator.cc
internal/ceres/linear_solver.cc internal/ceres/linear_solver.cc
internal/ceres/line_search.cc internal/ceres/line_search.cc
internal/ceres/line_search_direction.cc internal/ceres/line_search_direction.cc
internal/ceres/line_search_minimizer.cc internal/ceres/line_search_minimizer.cc
internal/ceres/line_search_preprocessor.cc internal/ceres/line_search_preprocessor.cc
internal/ceres/local_parameterization.cc internal/ceres/local_parameterization.cc
internal/ceres/loss_function.cc internal/ceres/loss_function.cc
internal/ceres/low_rank_inverse_hessian.cc internal/ceres/low_rank_inverse_hessian.cc
internal/ceres/minimizer.cc internal/ceres/minimizer.cc
internal/ceres/normal_prior.cc internal/ceres/normal_prior.cc
internal/ceres/parameter_block_ordering.cc internal/ceres/parameter_block_ordering.cc
internal/ceres/partitioned_matrix_view.cc internal/ceres/partitioned_matrix_view.cc
internal/ceres/polynomial.cc internal/ceres/polynomial.cc
internal/ceres/preconditioner.cc internal/ceres/preconditioner.cc
internal/ceres/preprocessor.cc internal/ceres/preprocessor.cc
internal/ceres/problem.cc internal/ceres/problem.cc
internal/ceres/problem_impl.cc internal/ceres/problem_impl.cc
internal/ceres/program.cc internal/ceres/program.cc
internal/ceres/reorder_program.cc internal/ceres/reorder_program.cc
internal/ceres/residual_block.cc internal/ceres/residual_block.cc
internal/ceres/residual_block_utils.cc internal/ceres/residual_block_utils.cc
internal/ceres/schur_complement_solver.cc internal/ceres/schur_complement_solver.cc
internal/ceres/schur_eliminator.cc internal/ceres/schur_eliminator.cc
internal/ceres/schur_jacobi_preconditioner.cc internal/ceres/schur_jacobi_preconditioner.cc
internal/ceres/scratch_evaluate_preparer.cc internal/ceres/scratch_evaluate_preparer.cc
internal/ceres/solver.cc internal/ceres/solver.cc
internal/ceres/solver_utils.cc internal/ceres/solver_utils.cc
internal/ceres/sparse_matrix.cc internal/ceres/sparse_matrix.cc
internal/ceres/sparse_normal_cholesky_solver.cc internal/ceres/sparse_normal_cholesky_solver.cc
internal/ceres/split.cc internal/ceres/split.cc
internal/ceres/stringprintf.cc internal/ceres/stringprintf.cc
internal/ceres/triplet_sparse_matrix.cc internal/ceres/triplet_sparse_matrix.cc
internal/ceres/trust_region_minimizer.cc internal/ceres/trust_region_minimizer.cc
internal/ceres/trust_region_preprocessor.cc internal/ceres/trust_region_preprocessor.cc
internal/ceres/trust_region_step_evaluator.cc internal/ceres/trust_region_step_evaluator.cc
internal/ceres/trust_region_strategy.cc internal/ceres/trust_region_strategy.cc
internal/ceres/types.cc internal/ceres/types.cc
internal/ceres/wall_time.cc internal/ceres/wall_time.cc
include/ceres/autodiff_cost_function.h include/ceres/autodiff_cost_function.h
include/ceres/autodiff_local_parameterization.h include/ceres/autodiff_local_parameterization.h
include/ceres/c_api.h include/ceres/c_api.h
include/ceres/ceres.h include/ceres/ceres.h
include/ceres/conditioned_cost_function.h include/ceres/conditioned_cost_function.h
include/ceres/cost_function.h include/ceres/cost_function.h
include/ceres/cost_function_to_functor.h include/ceres/cost_function_to_functor.h
include/ceres/covariance.h include/ceres/covariance.h
include/ceres/crs_matrix.h include/ceres/crs_matrix.h
include/ceres/dynamic_autodiff_cost_function.h include/ceres/dynamic_autodiff_cost_function.h
include/ceres/dynamic_cost_function_to_functor.h include/ceres/dynamic_cost_function_to_functor.h
include/ceres/dynamic_numeric_diff_cost_function.h include/ceres/dynamic_numeric_diff_cost_function.h
include/ceres/fpclassify.h include/ceres/fpclassify.h
include/ceres/gradient_checker.h include/ceres/gradient_checker.h
include/ceres/gradient_problem.h include/ceres/gradient_problem.h
include/ceres/gradient_problem_solver.h include/ceres/gradient_problem_solver.h
include/ceres/internal/autodiff.h include/ceres/internal/autodiff.h
include/ceres/internal/disable_warnings.h include/ceres/internal/disable_warnings.h
include/ceres/internal/eigen.h include/ceres/internal/eigen.h
include/ceres/internal/fixed_array.h include/ceres/internal/fixed_array.h
include/ceres/internal/macros.h include/ceres/internal/macros.h
include/ceres/internal/manual_constructor.h include/ceres/internal/manual_constructor.h
include/ceres/internal/numeric_diff.h include/ceres/internal/numeric_diff.h
include/ceres/internal/port.h include/ceres/internal/port.h
include/ceres/internal/reenable_warnings.h include/ceres/internal/reenable_warnings.h
include/ceres/internal/scoped_ptr.h include/ceres/internal/scoped_ptr.h
include/ceres/internal/variadic_evaluate.h include/ceres/internal/variadic_evaluate.h
include/ceres/iteration_callback.h include/ceres/iteration_callback.h
include/ceres/jet.h include/ceres/jet.h
include/ceres/local_parameterization.h include/ceres/local_parameterization.h
include/ceres/loss_function.h include/ceres/loss_function.h
include/ceres/normal_prior.h include/ceres/normal_prior.h
include/ceres/numeric_diff_cost_function.h include/ceres/numeric_diff_cost_function.h
include/ceres/numeric_diff_options.h include/ceres/numeric_diff_options.h
include/ceres/ordered_groups.h include/ceres/ordered_groups.h
include/ceres/problem.h include/ceres/problem.h
include/ceres/rotation.h include/ceres/rotation.h
include/ceres/sized_cost_function.h include/ceres/sized_cost_function.h
include/ceres/solver.h include/ceres/solver.h
include/ceres/types.h include/ceres/types.h
include/ceres/version.h include/ceres/version.h
internal/ceres/array_utils.h internal/ceres/array_utils.h
internal/ceres/blas.h internal/ceres/blas.h
internal/ceres/block_evaluate_preparer.h internal/ceres/block_evaluate_preparer.h
internal/ceres/block_jacobian_writer.h internal/ceres/block_jacobian_writer.h
internal/ceres/block_jacobi_preconditioner.h internal/ceres/block_jacobi_preconditioner.h
internal/ceres/block_random_access_dense_matrix.h internal/ceres/block_random_access_dense_matrix.h
internal/ceres/block_random_access_diagonal_matrix.h internal/ceres/block_random_access_diagonal_matrix.h
internal/ceres/block_random_access_matrix.h internal/ceres/block_random_access_matrix.h
internal/ceres/block_random_access_sparse_matrix.h internal/ceres/block_random_access_sparse_matrix.h
internal/ceres/block_sparse_matrix.h internal/ceres/block_sparse_matrix.h
internal/ceres/block_structure.h internal/ceres/block_structure.h
internal/ceres/callbacks.h internal/ceres/callbacks.h
internal/ceres/casts.h internal/ceres/casts.h
internal/ceres/cgnr_linear_operator.h internal/ceres/cgnr_linear_operator.h
internal/ceres/cgnr_solver.h internal/ceres/cgnr_solver.h
internal/ceres/collections_port.h internal/ceres/collections_port.h
internal/ceres/compressed_col_sparse_matrix_utils.h internal/ceres/compressed_col_sparse_matrix_utils.h
internal/ceres/compressed_row_jacobian_writer.h internal/ceres/compressed_row_jacobian_writer.h
internal/ceres/compressed_row_sparse_matrix.h internal/ceres/compressed_row_sparse_matrix.h
internal/ceres/conjugate_gradients_solver.h internal/ceres/conjugate_gradients_solver.h
internal/ceres/coordinate_descent_minimizer.h internal/ceres/coordinate_descent_minimizer.h
internal/ceres/corrector.h internal/ceres/corrector.h
internal/ceres/covariance_impl.h internal/ceres/covariance_impl.h
internal/ceres/cxsparse.h internal/ceres/cxsparse.h
internal/ceres/dense_jacobian_writer.h internal/ceres/dense_jacobian_writer.h
internal/ceres/dense_normal_cholesky_solver.h internal/ceres/dense_normal_cholesky_solver.h
internal/ceres/dense_qr_solver.h internal/ceres/dense_qr_solver.h
internal/ceres/dense_sparse_matrix.h internal/ceres/dense_sparse_matrix.h
internal/ceres/detect_structure.h internal/ceres/detect_structure.h
internal/ceres/dogleg_strategy.h internal/ceres/dogleg_strategy.h
internal/ceres/dynamic_compressed_row_finalizer.h internal/ceres/dynamic_compressed_row_finalizer.h
internal/ceres/dynamic_compressed_row_jacobian_writer.h internal/ceres/dynamic_compressed_row_jacobian_writer.h
internal/ceres/dynamic_compressed_row_sparse_matrix.h internal/ceres/dynamic_compressed_row_sparse_matrix.h
internal/ceres/evaluator.h internal/ceres/evaluator.h
internal/ceres/execution_summary.h internal/ceres/execution_summary.h
internal/ceres/file.h internal/ceres/file.h
internal/ceres/gradient_checking_cost_function.h internal/ceres/gradient_checking_cost_function.h
internal/ceres/gradient_problem_evaluator.h internal/ceres/gradient_problem_evaluator.h
internal/ceres/graph_algorithms.h internal/ceres/graph_algorithms.h
internal/ceres/graph.h internal/ceres/graph.h
internal/ceres/householder_vector.h internal/ceres/householder_vector.h
internal/ceres/implicit_schur_complement.h internal/ceres/implicit_schur_complement.h
internal/ceres/integral_types.h internal/ceres/integral_types.h
internal/ceres/is_close.h internal/ceres/is_close.h
internal/ceres/iterative_schur_complement_solver.h internal/ceres/iterative_schur_complement_solver.h
internal/ceres/lapack.h internal/ceres/lapack.h
internal/ceres/levenberg_marquardt_strategy.h internal/ceres/levenberg_marquardt_strategy.h
internal/ceres/linear_least_squares_problems.h internal/ceres/linear_least_squares_problems.h
internal/ceres/linear_operator.h internal/ceres/linear_operator.h
internal/ceres/linear_solver.h internal/ceres/linear_solver.h
internal/ceres/line_search_direction.h internal/ceres/line_search_direction.h
internal/ceres/line_search.h internal/ceres/line_search.h
internal/ceres/line_search_minimizer.h internal/ceres/line_search_minimizer.h
internal/ceres/line_search_preprocessor.h internal/ceres/line_search_preprocessor.h
internal/ceres/low_rank_inverse_hessian.h internal/ceres/low_rank_inverse_hessian.h
internal/ceres/map_util.h internal/ceres/map_util.h
internal/ceres/minimizer.h internal/ceres/minimizer.h
internal/ceres/mutex.h internal/ceres/mutex.h
internal/ceres/parameter_block.h internal/ceres/parameter_block.h
internal/ceres/parameter_block_ordering.h internal/ceres/parameter_block_ordering.h
internal/ceres/partitioned_matrix_view.h internal/ceres/partitioned_matrix_view.h
internal/ceres/partitioned_matrix_view_impl.h internal/ceres/partitioned_matrix_view_impl.h
internal/ceres/polynomial.h internal/ceres/polynomial.h
internal/ceres/preconditioner.h internal/ceres/preconditioner.h
internal/ceres/preprocessor.h internal/ceres/preprocessor.h
internal/ceres/problem_impl.h internal/ceres/problem_impl.h
internal/ceres/program_evaluator.h internal/ceres/program_evaluator.h
internal/ceres/program.h internal/ceres/program.h
internal/ceres/random.h internal/ceres/random.h
internal/ceres/reorder_program.h internal/ceres/reorder_program.h
internal/ceres/residual_block.h internal/ceres/residual_block.h
internal/ceres/residual_block_utils.h internal/ceres/residual_block_utils.h
internal/ceres/schur_complement_solver.h internal/ceres/schur_complement_solver.h
internal/ceres/schur_eliminator.h internal/ceres/schur_eliminator.h
internal/ceres/schur_eliminator_impl.h internal/ceres/schur_eliminator_impl.h
internal/ceres/schur_jacobi_preconditioner.h internal/ceres/schur_jacobi_preconditioner.h
internal/ceres/scratch_evaluate_preparer.h internal/ceres/scratch_evaluate_preparer.h
internal/ceres/small_blas.h internal/ceres/small_blas.h
internal/ceres/solver_utils.h internal/ceres/solver_utils.h
internal/ceres/sparse_matrix.h internal/ceres/sparse_matrix.h
internal/ceres/sparse_normal_cholesky_solver.h internal/ceres/sparse_normal_cholesky_solver.h
internal/ceres/split.h internal/ceres/split.h
internal/ceres/stl_util.h internal/ceres/stl_util.h
internal/ceres/stringprintf.h internal/ceres/stringprintf.h
internal/ceres/suitesparse.h internal/ceres/suitesparse.h
internal/ceres/triplet_sparse_matrix.h internal/ceres/triplet_sparse_matrix.h
internal/ceres/trust_region_minimizer.h internal/ceres/trust_region_minimizer.h
internal/ceres/trust_region_preprocessor.h internal/ceres/trust_region_preprocessor.h
internal/ceres/trust_region_step_evaluator.h internal/ceres/trust_region_step_evaluator.h
internal/ceres/trust_region_strategy.h internal/ceres/trust_region_strategy.h
internal/ceres/visibility_based_preconditioner.h internal/ceres/visibility_based_preconditioner.h
internal/ceres/wall_time.h internal/ceres/wall_time.h
) )
set(LIB set(LIB
) )
if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING)) if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING))
list(APPEND LIB list(APPEND LIB
extern_glog extern_glog
) )
endif() endif()
if(WITH_LIBMV_SCHUR_SPECIALIZATIONS) if(WITH_LIBMV_SCHUR_SPECIALIZATIONS)
list(APPEND SRC list(APPEND SRC
internal/ceres/generated/partitioned_matrix_view_2_2_2.cc internal/ceres/generated/partitioned_matrix_view_2_2_2.cc
internal/ceres/generated/partitioned_matrix_view_2_2_3.cc internal/ceres/generated/partitioned_matrix_view_2_2_3.cc
internal/ceres/generated/partitioned_matrix_view_2_2_4.cc internal/ceres/generated/partitioned_matrix_view_2_2_4.cc
internal/ceres/generated/partitioned_matrix_view_2_2_d.cc internal/ceres/generated/partitioned_matrix_view_2_2_d.cc
internal/ceres/generated/partitioned_matrix_view_2_3_3.cc internal/ceres/generated/partitioned_matrix_view_2_3_3.cc
internal/ceres/generated/partitioned_matrix_view_2_3_4.cc internal/ceres/generated/partitioned_matrix_view_2_3_4.cc
internal/ceres/generated/partitioned_matrix_view_2_3_6.cc internal/ceres/generated/partitioned_matrix_view_2_3_6.cc
internal/ceres/generated/partitioned_matrix_view_2_3_9.cc internal/ceres/generated/partitioned_matrix_view_2_3_9.cc
internal/ceres/generated/partitioned_matrix_view_2_3_d.cc internal/ceres/generated/partitioned_matrix_view_2_3_d.cc
internal/ceres/generated/partitioned_matrix_view_2_4_3.cc internal/ceres/generated/partitioned_matrix_view_2_4_3.cc
internal/ceres/generated/partitioned_matrix_view_2_4_4.cc internal/ceres/generated/partitioned_matrix_view_2_4_4.cc
internal/ceres/generated/partitioned_matrix_view_2_4_8.cc internal/ceres/generated/partitioned_matrix_view_2_4_8.cc
internal/ceres/generated/partitioned_matrix_view_2_4_9.cc internal/ceres/generated/partitioned_matrix_view_2_4_9.cc
internal/ceres/generated/partitioned_matrix_view_2_4_d.cc internal/ceres/generated/partitioned_matrix_view_2_4_d.cc
internal/ceres/generated/partitioned_matrix_view_2_d_d.cc internal/ceres/generated/partitioned_matrix_view_2_d_d.cc
internal/ceres/generated/partitioned_matrix_view_4_4_2.cc internal/ceres/generated/partitioned_matrix_view_4_4_2.cc
internal/ceres/generated/partitioned_matrix_view_4_4_3.cc internal/ceres/generated/partitioned_matrix_view_4_4_3.cc
internal/ceres/generated/partitioned_matrix_view_4_4_4.cc internal/ceres/generated/partitioned_matrix_view_4_4_4.cc
internal/ceres/generated/partitioned_matrix_view_4_4_d.cc internal/ceres/generated/partitioned_matrix_view_4_4_d.cc
internal/ceres/generated/schur_eliminator_2_2_2.cc internal/ceres/generated/schur_eliminator_2_2_2.cc
internal/ceres/generated/schur_eliminator_2_2_3.cc internal/ceres/generated/schur_eliminator_2_2_3.cc
internal/ceres/generated/schur_eliminator_2_2_4.cc internal/ceres/generated/schur_eliminator_2_2_4.cc
internal/ceres/generated/schur_eliminator_2_2_d.cc internal/ceres/generated/schur_eliminator_2_2_d.cc
internal/ceres/generated/schur_eliminator_2_3_3.cc internal/ceres/generated/schur_eliminator_2_3_3.cc
internal/ceres/generated/schur_eliminator_2_3_4.cc internal/ceres/generated/schur_eliminator_2_3_4.cc
internal/ceres/generated/schur_eliminator_2_3_6.cc internal/ceres/generated/schur_eliminator_2_3_6.cc
internal/ceres/generated/schur_eliminator_2_3_9.cc internal/ceres/generated/schur_eliminator_2_3_9.cc
internal/ceres/generated/schur_eliminator_2_3_d.cc internal/ceres/generated/schur_eliminator_2_3_d.cc
internal/ceres/generated/schur_eliminator_2_4_3.cc internal/ceres/generated/schur_eliminator_2_4_3.cc
internal/ceres/generated/schur_eliminator_2_4_4.cc internal/ceres/generated/schur_eliminator_2_4_4.cc
internal/ceres/generated/schur_eliminator_2_4_8.cc internal/ceres/generated/schur_eliminator_2_4_8.cc
internal/ceres/generated/schur_eliminator_2_4_9.cc internal/ceres/generated/schur_eliminator_2_4_9.cc
internal/ceres/generated/schur_eliminator_2_4_d.cc internal/ceres/generated/schur_eliminator_2_4_d.cc
internal/ceres/generated/schur_eliminator_2_d_d.cc internal/ceres/generated/schur_eliminator_2_d_d.cc
internal/ceres/generated/schur_eliminator_4_4_2.cc internal/ceres/generated/schur_eliminator_4_4_2.cc
internal/ceres/generated/schur_eliminator_4_4_3.cc internal/ceres/generated/schur_eliminator_4_4_3.cc
internal/ceres/generated/schur_eliminator_4_4_4.cc internal/ceres/generated/schur_eliminator_4_4_4.cc
internal/ceres/generated/schur_eliminator_4_4_d.cc internal/ceres/generated/schur_eliminator_4_4_d.cc
) )
else() else()
add_definitions(-DCERES_RESTRICT_SCHUR_SPECIALIZATION) add_definitions(-DCERES_RESTRICT_SCHUR_SPECIALIZATION)
endif() endif()
add_definitions(${GFLAGS_DEFINES}) add_definitions(${GFLAGS_DEFINES})
@@ -315,17 +315,17 @@ add_definitions(${GLOG_DEFINES})
add_definitions(${CERES_DEFINES}) add_definitions(${CERES_DEFINES})
add_definitions( add_definitions(
-DCERES_HAVE_PTHREAD -DCERES_HAVE_PTHREAD
-DCERES_NO_SUITESPARSE -DCERES_NO_SUITESPARSE
-DCERES_NO_CXSPARSE -DCERES_NO_CXSPARSE
-DCERES_NO_LAPACK -DCERES_NO_LAPACK
-DCERES_HAVE_RWLOCK -DCERES_HAVE_RWLOCK
) )
if(WITH_OPENMP) if(WITH_OPENMP)
add_definitions( add_definitions(
-DCERES_USE_OPENMP -DCERES_USE_OPENMP
) )
endif() endif()
blender_add_lib(extern_ceres "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") blender_add_lib(extern_ceres "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")

View File

@@ -116,17 +116,17 @@ cat > CMakeLists.txt << EOF
# in that script too # in that script too
set(INC set(INC
. .
include include
internal internal
config config
../gflags/src ../gflags/src
) )
set(INC_SYS set(INC_SYS
\${EIGEN3_INCLUDE_DIRS} \${EIGEN3_INCLUDE_DIRS}
\${GFLAGS_INCLUDE_DIRS} \${GFLAGS_INCLUDE_DIRS}
\${GLOG_INCLUDE_DIRS} \${GLOG_INCLUDE_DIRS}
) )
set(SRC set(SRC
@@ -136,15 +136,15 @@ ${headers}
) )
set(LIB set(LIB
extern_glog extern_glog
) )
if(WITH_LIBMV_SCHUR_SPECIALIZATIONS) if(WITH_LIBMV_SCHUR_SPECIALIZATIONS)
list(APPEND SRC list(APPEND SRC
${generated_sources} ${generated_sources}
) )
else() else()
add_definitions(-DCERES_RESTRICT_SCHUR_SPECIALIZATION) add_definitions(-DCERES_RESTRICT_SCHUR_SPECIALIZATION)
endif() endif()
add_definitions(\${GFLAGS_DEFINES}) add_definitions(\${GFLAGS_DEFINES})
@@ -152,17 +152,17 @@ add_definitions(\${GLOG_DEFINES})
add_definitions(\${CERES_DEFINES}) add_definitions(\${CERES_DEFINES})
add_definitions( add_definitions(
-DCERES_HAVE_PTHREAD -DCERES_HAVE_PTHREAD
-DCERES_NO_SUITESPARSE -DCERES_NO_SUITESPARSE
-DCERES_NO_CXSPARSE -DCERES_NO_CXSPARSE
-DCERES_NO_LAPACK -DCERES_NO_LAPACK
-DCERES_HAVE_RWLOCK -DCERES_HAVE_RWLOCK
) )
if(WITH_OPENMP) if(WITH_OPENMP)
add_definitions( add_definitions(
-DCERES_USE_OPENMP -DCERES_USE_OPENMP
) )
endif() endif()
blender_add_lib(extern_ceres "\${SRC}" "\${INC}" "\${INC_SYS}" "\${LIB}") blender_add_lib(extern_ceres "\${SRC}" "\${INC}" "\${INC_SYS}" "\${LIB}")

View File

@@ -19,8 +19,8 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
. .
include include
) )
set(INC_SYS set(INC_SYS
@@ -28,8 +28,8 @@ set(INC_SYS
) )
set(SRC set(SRC
include/clew.h include/clew.h
src/clew.c src/clew.c
) )
set(LIB set(LIB

View File

@@ -19,8 +19,8 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
. .
include include
) )
set(INC_SYS set(INC_SYS
@@ -28,9 +28,9 @@ set(INC_SYS
) )
set(SRC set(SRC
src/cuew.c src/cuew.c
include/cuew.h include/cuew.h
) )
set(LIB set(LIB

View File

@@ -17,7 +17,7 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
. .
) )
set(INC_SYS set(INC_SYS
@@ -25,15 +25,15 @@ set(INC_SYS
) )
set(SRC set(SRC
intern/curve_fit_cubic.c intern/curve_fit_cubic.c
intern/curve_fit_cubic_refit.c intern/curve_fit_cubic_refit.c
intern/curve_fit_corners_detect.c intern/curve_fit_corners_detect.c
curve_fit_nd.h curve_fit_nd.h
intern/curve_fit_inline.h intern/curve_fit_inline.h
intern/generic_alloc_impl.h intern/generic_alloc_impl.h
intern/generic_heap.c intern/generic_heap.c
intern/generic_heap.h intern/generic_heap.h
) )
set(LIB set(LIB

View File

@@ -1,188 +1,188 @@
remove_strict_flags() remove_strict_flags()
set(SRC set(SRC
src/draco/animation/keyframe_animation.cc src/draco/animation/keyframe_animation.cc
src/draco/animation/keyframe_animation_encoder.cc src/draco/animation/keyframe_animation_encoder.cc
src/draco/animation/keyframe_animation_encoder.h src/draco/animation/keyframe_animation_encoder.h
src/draco/animation/keyframe_animation.h src/draco/animation/keyframe_animation.h
src/draco/attributes/attribute_octahedron_transform.cc src/draco/attributes/attribute_octahedron_transform.cc
src/draco/attributes/attribute_octahedron_transform.h src/draco/attributes/attribute_octahedron_transform.h
src/draco/attributes/attribute_quantization_transform.cc src/draco/attributes/attribute_quantization_transform.cc
src/draco/attributes/attribute_quantization_transform.h src/draco/attributes/attribute_quantization_transform.h
src/draco/attributes/attribute_transform.cc src/draco/attributes/attribute_transform.cc
src/draco/attributes/attribute_transform_data.h src/draco/attributes/attribute_transform_data.h
src/draco/attributes/attribute_transform.h src/draco/attributes/attribute_transform.h
src/draco/attributes/attribute_transform_type.h src/draco/attributes/attribute_transform_type.h
src/draco/attributes/geometry_attribute.cc src/draco/attributes/geometry_attribute.cc
src/draco/attributes/geometry_attribute.h src/draco/attributes/geometry_attribute.h
src/draco/attributes/geometry_indices.h src/draco/attributes/geometry_indices.h
src/draco/attributes/point_attribute.cc src/draco/attributes/point_attribute.cc
src/draco/attributes/point_attribute.h src/draco/attributes/point_attribute.h
src/draco/compression/attributes/attributes_encoder.cc src/draco/compression/attributes/attributes_encoder.cc
src/draco/compression/attributes/attributes_encoder.h src/draco/compression/attributes/attributes_encoder.h
src/draco/compression/attributes/kd_tree_attributes_encoder.cc src/draco/compression/attributes/kd_tree_attributes_encoder.cc
src/draco/compression/attributes/kd_tree_attributes_encoder.h src/draco/compression/attributes/kd_tree_attributes_encoder.h
src/draco/compression/attributes/linear_sequencer.h src/draco/compression/attributes/linear_sequencer.h
src/draco/compression/attributes/points_sequencer.h src/draco/compression/attributes/points_sequencer.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_encoder.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_encoder.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_encoder.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_encoder.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_encoder.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_encoder.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_encoder.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_encoder.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_encoder.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_encoder.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_encoder.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_encoder.h
src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_delta_encoder.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_delta_encoder.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc
src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_interface.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_interface.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoding_transform.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoding_transform.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_factory.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_factory.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_interface.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_interface.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_encoding_transform.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_encoding_transform.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_encoding_transform.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_encoding_transform.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_wrap_encoding_transform.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_wrap_encoding_transform.h
src/draco/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h src/draco/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h
src/draco/compression/attributes/sequential_attribute_encoder.cc src/draco/compression/attributes/sequential_attribute_encoder.cc
src/draco/compression/attributes/sequential_attribute_encoder.h src/draco/compression/attributes/sequential_attribute_encoder.h
src/draco/compression/attributes/sequential_attribute_encoders_controller.cc src/draco/compression/attributes/sequential_attribute_encoders_controller.cc
src/draco/compression/attributes/sequential_attribute_encoders_controller.h src/draco/compression/attributes/sequential_attribute_encoders_controller.h
src/draco/compression/attributes/sequential_integer_attribute_encoder.cc src/draco/compression/attributes/sequential_integer_attribute_encoder.cc
src/draco/compression/attributes/sequential_integer_attribute_encoder.h src/draco/compression/attributes/sequential_integer_attribute_encoder.h
src/draco/compression/attributes/sequential_normal_attribute_encoder.cc src/draco/compression/attributes/sequential_normal_attribute_encoder.cc
src/draco/compression/attributes/sequential_normal_attribute_encoder.h src/draco/compression/attributes/sequential_normal_attribute_encoder.h
src/draco/compression/attributes/sequential_quantization_attribute_encoder.cc src/draco/compression/attributes/sequential_quantization_attribute_encoder.cc
src/draco/compression/attributes/sequential_quantization_attribute_encoder.h src/draco/compression/attributes/sequential_quantization_attribute_encoder.h
src/draco/compression/bit_coders/adaptive_rans_bit_coding_shared.h src/draco/compression/bit_coders/adaptive_rans_bit_coding_shared.h
src/draco/compression/bit_coders/adaptive_rans_bit_encoder.cc src/draco/compression/bit_coders/adaptive_rans_bit_encoder.cc
src/draco/compression/bit_coders/adaptive_rans_bit_encoder.h src/draco/compression/bit_coders/adaptive_rans_bit_encoder.h
src/draco/compression/bit_coders/direct_bit_encoder.cc src/draco/compression/bit_coders/direct_bit_encoder.cc
src/draco/compression/bit_coders/direct_bit_encoder.h src/draco/compression/bit_coders/direct_bit_encoder.h
src/draco/compression/bit_coders/folded_integer_bit_encoder.h src/draco/compression/bit_coders/folded_integer_bit_encoder.h
src/draco/compression/bit_coders/rans_bit_encoder.cc src/draco/compression/bit_coders/rans_bit_encoder.cc
src/draco/compression/bit_coders/rans_bit_encoder.h src/draco/compression/bit_coders/rans_bit_encoder.h
src/draco/compression/bit_coders/symbol_bit_encoder.cc src/draco/compression/bit_coders/symbol_bit_encoder.cc
src/draco/compression/bit_coders/symbol_bit_encoder.h src/draco/compression/bit_coders/symbol_bit_encoder.h
src/draco/compression/config/compression_shared.h src/draco/compression/config/compression_shared.h
src/draco/compression/config/draco_options.h src/draco/compression/config/draco_options.h
src/draco/compression/config/encoder_options.h src/draco/compression/config/encoder_options.h
src/draco/compression/config/encoding_features.h src/draco/compression/config/encoding_features.h
src/draco/compression/encode_base.h src/draco/compression/encode_base.h
src/draco/compression/encode.cc src/draco/compression/encode.cc
src/draco/compression/encode.h src/draco/compression/encode.h
src/draco/compression/entropy/ans.h src/draco/compression/entropy/ans.h
src/draco/compression/entropy/rans_symbol_coding.h src/draco/compression/entropy/rans_symbol_coding.h
src/draco/compression/entropy/rans_symbol_encoder.h src/draco/compression/entropy/rans_symbol_encoder.h
src/draco/compression/entropy/shannon_entropy.cc src/draco/compression/entropy/shannon_entropy.cc
src/draco/compression/entropy/shannon_entropy.h src/draco/compression/entropy/shannon_entropy.h
src/draco/compression/entropy/symbol_encoding.cc src/draco/compression/entropy/symbol_encoding.cc
src/draco/compression/entropy/symbol_encoding.h src/draco/compression/entropy/symbol_encoding.h
src/draco/compression/expert_encode.cc src/draco/compression/expert_encode.cc
src/draco/compression/expert_encode.h src/draco/compression/expert_encode.h
src/draco/compression/mesh/mesh_edgebreaker_encoder.cc src/draco/compression/mesh/mesh_edgebreaker_encoder.cc
src/draco/compression/mesh/mesh_edgebreaker_encoder.h src/draco/compression/mesh/mesh_edgebreaker_encoder.h
src/draco/compression/mesh/mesh_edgebreaker_encoder_impl.cc src/draco/compression/mesh/mesh_edgebreaker_encoder_impl.cc
src/draco/compression/mesh/mesh_edgebreaker_encoder_impl.h src/draco/compression/mesh/mesh_edgebreaker_encoder_impl.h
src/draco/compression/mesh/mesh_edgebreaker_encoder_impl_interface.h src/draco/compression/mesh/mesh_edgebreaker_encoder_impl_interface.h
src/draco/compression/mesh/mesh_edgebreaker_shared.h src/draco/compression/mesh/mesh_edgebreaker_shared.h
src/draco/compression/mesh/mesh_edgebreaker_traversal_encoder.h src/draco/compression/mesh/mesh_edgebreaker_traversal_encoder.h
src/draco/compression/mesh/mesh_edgebreaker_traversal_predictive_encoder.h src/draco/compression/mesh/mesh_edgebreaker_traversal_predictive_encoder.h
src/draco/compression/mesh/mesh_edgebreaker_traversal_valence_encoder.h src/draco/compression/mesh/mesh_edgebreaker_traversal_valence_encoder.h
src/draco/compression/mesh/mesh_encoder.cc src/draco/compression/mesh/mesh_encoder.cc
src/draco/compression/mesh/mesh_encoder.h src/draco/compression/mesh/mesh_encoder.h
src/draco/compression/mesh/mesh_encoder_helpers.h src/draco/compression/mesh/mesh_encoder_helpers.h
src/draco/compression/mesh/mesh_sequential_encoder.cc src/draco/compression/mesh/mesh_sequential_encoder.cc
src/draco/compression/mesh/mesh_sequential_encoder.h src/draco/compression/mesh/mesh_sequential_encoder.h
src/draco/compression/mesh/traverser/depth_first_traverser.h src/draco/compression/mesh/traverser/depth_first_traverser.h
src/draco/compression/mesh/traverser/max_prediction_degree_traverser.h src/draco/compression/mesh/traverser/max_prediction_degree_traverser.h
src/draco/compression/mesh/traverser/mesh_attribute_indices_encoding_observer.h src/draco/compression/mesh/traverser/mesh_attribute_indices_encoding_observer.h
src/draco/compression/mesh/traverser/mesh_traversal_sequencer.h src/draco/compression/mesh/traverser/mesh_traversal_sequencer.h
src/draco/compression/mesh/traverser/traverser_base.h src/draco/compression/mesh/traverser/traverser_base.h
src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.cc src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.cc
src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.h src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.h
src/draco/compression/point_cloud/algorithms/float_points_tree_encoder.cc src/draco/compression/point_cloud/algorithms/float_points_tree_encoder.cc
src/draco/compression/point_cloud/algorithms/float_points_tree_encoder.h src/draco/compression/point_cloud/algorithms/float_points_tree_encoder.h
src/draco/compression/point_cloud/algorithms/point_cloud_compression_method.h src/draco/compression/point_cloud/algorithms/point_cloud_compression_method.h
src/draco/compression/point_cloud/algorithms/point_cloud_types.h src/draco/compression/point_cloud/algorithms/point_cloud_types.h
src/draco/compression/point_cloud/algorithms/quantize_points_3.h src/draco/compression/point_cloud/algorithms/quantize_points_3.h
src/draco/compression/point_cloud/algorithms/queuing_policy.h src/draco/compression/point_cloud/algorithms/queuing_policy.h
src/draco/compression/point_cloud/point_cloud_encoder.cc src/draco/compression/point_cloud/point_cloud_encoder.cc
src/draco/compression/point_cloud/point_cloud_encoder.h src/draco/compression/point_cloud/point_cloud_encoder.h
src/draco/compression/point_cloud/point_cloud_kd_tree_encoder.cc src/draco/compression/point_cloud/point_cloud_kd_tree_encoder.cc
src/draco/compression/point_cloud/point_cloud_kd_tree_encoder.h src/draco/compression/point_cloud/point_cloud_kd_tree_encoder.h
src/draco/compression/point_cloud/point_cloud_sequential_encoder.cc src/draco/compression/point_cloud/point_cloud_sequential_encoder.cc
src/draco/compression/point_cloud/point_cloud_sequential_encoder.h src/draco/compression/point_cloud/point_cloud_sequential_encoder.h
src/draco/core/bit_utils.cc src/draco/core/bit_utils.cc
src/draco/core/bit_utils.h src/draco/core/bit_utils.h
src/draco/core/bounding_box.cc src/draco/core/bounding_box.cc
src/draco/core/bounding_box.h src/draco/core/bounding_box.h
src/draco/core/cycle_timer.cc src/draco/core/cycle_timer.cc
src/draco/core/cycle_timer.h src/draco/core/cycle_timer.h
src/draco/core/data_buffer.cc src/draco/core/data_buffer.cc
src/draco/core/data_buffer.h src/draco/core/data_buffer.h
src/draco/core/divide.cc src/draco/core/divide.cc
src/draco/core/divide.h src/draco/core/divide.h
src/draco/core/draco_index_type.h src/draco/core/draco_index_type.h
src/draco/core/draco_index_type_vector.h src/draco/core/draco_index_type_vector.h
src/draco/core/draco_types.cc src/draco/core/draco_types.cc
src/draco/core/draco_types.h src/draco/core/draco_types.h
src/draco/core/encoder_buffer.cc src/draco/core/encoder_buffer.cc
src/draco/core/encoder_buffer.h src/draco/core/encoder_buffer.h
src/draco/core/hash_utils.cc src/draco/core/hash_utils.cc
src/draco/core/hash_utils.h src/draco/core/hash_utils.h
src/draco/core/macros.h src/draco/core/macros.h
src/draco/core/math_utils.h src/draco/core/math_utils.h
src/draco/core/options.cc src/draco/core/options.cc
src/draco/core/options.h src/draco/core/options.h
src/draco/core/quantization_utils.cc src/draco/core/quantization_utils.cc
src/draco/core/quantization_utils.h src/draco/core/quantization_utils.h
src/draco/core/status.h src/draco/core/status.h
src/draco/core/statusor.h src/draco/core/statusor.h
src/draco/core/varint_encoding.h src/draco/core/varint_encoding.h
src/draco/core/vector_d.h src/draco/core/vector_d.h
src/draco/mesh/corner_table.cc src/draco/mesh/corner_table.cc
src/draco/mesh/corner_table.h src/draco/mesh/corner_table.h
src/draco/mesh/corner_table_iterators.h src/draco/mesh/corner_table_iterators.h
src/draco/mesh/mesh_are_equivalent.cc src/draco/mesh/mesh_are_equivalent.cc
src/draco/mesh/mesh_are_equivalent.h src/draco/mesh/mesh_are_equivalent.h
src/draco/mesh/mesh_attribute_corner_table.cc src/draco/mesh/mesh_attribute_corner_table.cc
src/draco/mesh/mesh_attribute_corner_table.h src/draco/mesh/mesh_attribute_corner_table.h
src/draco/mesh/mesh.cc src/draco/mesh/mesh.cc
src/draco/mesh/mesh_cleanup.cc src/draco/mesh/mesh_cleanup.cc
src/draco/mesh/mesh_cleanup.h src/draco/mesh/mesh_cleanup.h
src/draco/mesh/mesh.h src/draco/mesh/mesh.h
src/draco/mesh/mesh_misc_functions.cc src/draco/mesh/mesh_misc_functions.cc
src/draco/mesh/mesh_misc_functions.h src/draco/mesh/mesh_misc_functions.h
src/draco/mesh/mesh_stripifier.cc src/draco/mesh/mesh_stripifier.cc
src/draco/mesh/mesh_stripifier.h src/draco/mesh/mesh_stripifier.h
src/draco/mesh/triangle_soup_mesh_builder.cc src/draco/mesh/triangle_soup_mesh_builder.cc
src/draco/mesh/triangle_soup_mesh_builder.h src/draco/mesh/triangle_soup_mesh_builder.h
src/draco/mesh/valence_cache.h src/draco/mesh/valence_cache.h
src/draco/metadata/geometry_metadata.cc src/draco/metadata/geometry_metadata.cc
src/draco/metadata/geometry_metadata.h src/draco/metadata/geometry_metadata.h
src/draco/metadata/metadata.cc src/draco/metadata/metadata.cc
src/draco/metadata/metadata_encoder.cc src/draco/metadata/metadata_encoder.cc
src/draco/metadata/metadata_encoder.h src/draco/metadata/metadata_encoder.h
src/draco/metadata/metadata.h src/draco/metadata/metadata.h
src/draco/point_cloud/point_cloud_builder.cc src/draco/point_cloud/point_cloud_builder.cc
src/draco/point_cloud/point_cloud_builder.h src/draco/point_cloud/point_cloud_builder.h
src/draco/point_cloud/point_cloud.cc src/draco/point_cloud/point_cloud.cc
src/draco/point_cloud/point_cloud.h src/draco/point_cloud/point_cloud.h
) )
set(LIB set(LIB
) )
set(INC set(INC
src src
) )
blender_add_lib(dracoenc "${SRC}" "${INC}" "" "${LIB}") blender_add_lib(dracoenc "${SRC}" "${INC}" "" "${LIB}")

View File

@@ -19,35 +19,35 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
src src
src/gflags src/gflags
) )
set(INC_SYS set(INC_SYS
) )
set(SRC set(SRC
src/gflags.cc src/gflags.cc
src/gflags_completions.cc src/gflags_completions.cc
src/gflags_reporting.cc src/gflags_reporting.cc
src/gflags/config.h src/gflags/config.h
src/gflags/gflags_completions.h src/gflags/gflags_completions.h
src/gflags/gflags_declare.h src/gflags/gflags_declare.h
src/gflags/gflags_gflags.h src/gflags/gflags_gflags.h
src/gflags/gflags.h src/gflags/gflags.h
src/mutex.h src/mutex.h
src/util.h src/util.h
) )
set(LIB set(LIB
) )
if(WIN32) if(WIN32)
list(APPEND SRC list(APPEND SRC
src/windows_port.cc src/windows_port.cc
src/windows_port.h src/windows_port.h
) )
endif() endif()
add_definitions(${GFLAGS_DEFINES}) add_definitions(${GFLAGS_DEFINES})

View File

@@ -19,7 +19,7 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
include include
) )
set(INC_SYS set(INC_SYS
@@ -27,19 +27,19 @@ set(INC_SYS
) )
if(UNIX) if(UNIX)
list(APPEND INC_SYS list(APPEND INC_SYS
${X11_X11_INCLUDE_PATH} ${X11_X11_INCLUDE_PATH}
) )
endif() endif()
set(SRC set(SRC
src/glew.c src/glew.c
include/GL/eglew.h include/GL/eglew.h
include/GL/glesew.h include/GL/glesew.h
include/GL/glew.h include/GL/glew.h
include/GL/glxew.h include/GL/glxew.h
include/GL/wglew.h include/GL/wglew.h
) )
set(LIB set(LIB

View File

@@ -19,7 +19,7 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
include include
) )
set(INC_SYS set(INC_SYS
@@ -27,18 +27,18 @@ set(INC_SYS
) )
if(UNIX) if(UNIX)
list(APPEND INC_SYS list(APPEND INC_SYS
${X11_X11_INCLUDE_PATH} ${X11_X11_INCLUDE_PATH}
) )
endif() endif()
set(SRC set(SRC
src/glew.c src/glew.c
include/GL/eglew.h include/GL/eglew.h
include/GL/glew.h include/GL/glew.h
include/GL/glxew.h include/GL/glxew.h
include/GL/wglew.h include/GL/wglew.h
) )
set(LIB set(LIB

View File

@@ -19,81 +19,81 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
src src
../gflags/src ../gflags/src
) )
set(INC_SYS set(INC_SYS
) )
set(SRC set(SRC
src/logging.cc src/logging.cc
src/raw_logging.cc src/raw_logging.cc
src/utilities.cc src/utilities.cc
src/vlog_is_on.cc src/vlog_is_on.cc
src/utilities.h src/utilities.h
src/config.h src/config.h
src/config_freebsd.h src/config_freebsd.h
src/config_haiku.h src/config_haiku.h
src/config_hurd.h src/config_hurd.h
src/config_linux.h src/config_linux.h
src/config_mac.h src/config_mac.h
src/base/commandlineflags.h src/base/commandlineflags.h
src/base/googleinit.h src/base/googleinit.h
src/base/mutex.h src/base/mutex.h
src/stacktrace.h src/stacktrace.h
src/stacktrace_generic-inl.h src/stacktrace_generic-inl.h
src/stacktrace_libunwind-inl.h src/stacktrace_libunwind-inl.h
src/stacktrace_powerpc-inl.h src/stacktrace_powerpc-inl.h
src/stacktrace_x86_64-inl.h src/stacktrace_x86_64-inl.h
src/stacktrace_x86-inl.h src/stacktrace_x86-inl.h
) )
set(LIB set(LIB
) )
if(NOT WITH_SYSTEM_GFLAGS) if(NOT WITH_SYSTEM_GFLAGS)
list(APPEND LIB list(APPEND LIB
extern_gflags extern_gflags
) )
endif() endif()
if(WIN32) if(WIN32)
list(APPEND SRC list(APPEND SRC
src/windows/port.cc src/windows/port.cc
src/windows/glog/raw_logging.h src/windows/glog/raw_logging.h
src/windows/glog/vlog_is_on.h src/windows/glog/vlog_is_on.h
src/windows/glog/logging.h src/windows/glog/logging.h
src/windows/glog/log_severity.h src/windows/glog/log_severity.h
src/windows/port.h src/windows/port.h
src/windows/config.h src/windows/config.h
) )
list(APPEND INC list(APPEND INC
src/windows src/windows
) )
else() else()
list(APPEND INC list(APPEND INC
include include
) )
list(APPEND SRC list(APPEND SRC
src/demangle.cc src/demangle.cc
src/signalhandler.cc src/signalhandler.cc
src/symbolize.cc src/symbolize.cc
src/demangle.h src/demangle.h
src/symbolize.h src/symbolize.h
include/glog/logging.h include/glog/logging.h
include/glog/log_severity.h include/glog/log_severity.h
include/glog/raw_logging.h include/glog/raw_logging.h
include/glog/vlog_is_on.h include/glog/vlog_is_on.h
) )
endif() endif()
add_definitions(${GFLAGS_DEFINES}) add_definitions(${GFLAGS_DEFINES})

View File

@@ -20,14 +20,14 @@
# avoid noisy warnings # avoid noisy warnings
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
remove_cc_flag( remove_cc_flag(
"-Wmissing-declarations" "-Wmissing-declarations"
) )
endif() endif()
set(INC set(INC
. .
include include
) )
set(INC_SYS set(INC_SYS
@@ -35,35 +35,35 @@ set(INC_SYS
) )
set(SRC set(SRC
src/gtest.cc src/gtest.cc
src/gtest-death-test.cc src/gtest-death-test.cc
src/gtest-filepath.cc src/gtest-filepath.cc
src/gtest-port.cc src/gtest-port.cc
src/gtest-printers.cc src/gtest-printers.cc
src/gtest-test-part.cc src/gtest-test-part.cc
src/gtest-typed-test.cc src/gtest-typed-test.cc
src/gtest-internal-inl.h src/gtest-internal-inl.h
include/gtest/gtest-death-test.h include/gtest/gtest-death-test.h
include/gtest/gtest.h include/gtest/gtest.h
include/gtest/gtest-message.h include/gtest/gtest-message.h
include/gtest/gtest-param-test.h include/gtest/gtest-param-test.h
include/gtest/gtest_pred_impl.h include/gtest/gtest_pred_impl.h
include/gtest/gtest-printers.h include/gtest/gtest-printers.h
include/gtest/gtest_prod.h include/gtest/gtest_prod.h
include/gtest/gtest-spi.h include/gtest/gtest-spi.h
include/gtest/gtest-test-part.h include/gtest/gtest-test-part.h
include/gtest/gtest-typed-test.h include/gtest/gtest-typed-test.h
include/gtest/internal/gtest-death-test-internal.h include/gtest/internal/gtest-death-test-internal.h
include/gtest/internal/gtest-filepath.h include/gtest/internal/gtest-filepath.h
include/gtest/internal/gtest-internal.h include/gtest/internal/gtest-internal.h
include/gtest/internal/gtest-linked_ptr.h include/gtest/internal/gtest-linked_ptr.h
include/gtest/internal/gtest-param-util-generated.h include/gtest/internal/gtest-param-util-generated.h
include/gtest/internal/gtest-param-util.h include/gtest/internal/gtest-param-util.h
include/gtest/internal/gtest-port.h include/gtest/internal/gtest-port.h
include/gtest/internal/gtest-string.h include/gtest/internal/gtest-string.h
include/gtest/internal/gtest-tuple.h include/gtest/internal/gtest-tuple.h
include/gtest/internal/gtest-type-util.h include/gtest/internal/gtest-type-util.h
) )
set(LIB set(LIB

View File

@@ -19,7 +19,7 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
. .
) )
set(INC_SYS set(INC_SYS
@@ -27,19 +27,19 @@ set(INC_SYS
) )
set(SRC set(SRC
Alloc.c Alloc.c
LzFind.c LzFind.c
LzmaDec.c LzmaDec.c
LzmaEnc.c LzmaEnc.c
LzmaLib.c LzmaLib.c
Alloc.h Alloc.h
LzFind.h LzFind.h
LzHash.h LzHash.h
LzmaDec.h LzmaDec.h
LzmaEnc.h LzmaEnc.h
LzmaLib.h LzmaLib.h
Types.h Types.h
) )
set(LIB set(LIB

View File

@@ -29,11 +29,11 @@ set(INC_SYS
) )
set(SRC set(SRC
minilzo/minilzo.c minilzo/minilzo.c
minilzo/lzoconf.h minilzo/lzoconf.h
minilzo/lzodefs.h minilzo/lzodefs.h
minilzo/minilzo.h minilzo/minilzo.h
) )
set(LIB set(LIB

View File

@@ -17,14 +17,14 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
. .
) )
set(SRC set(SRC
range_tree.h range_tree.h
intern/generic_alloc_impl.h intern/generic_alloc_impl.h
intern/range_tree.c intern/range_tree.c
) )
set(LIB set(LIB

View File

@@ -19,8 +19,8 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
. .
include include
) )
set(INC_SYS set(INC_SYS
@@ -28,8 +28,8 @@ set(INC_SYS
) )
set(SRC set(SRC
include/sdlew.h include/sdlew.h
src/sdlew.c src/sdlew.c
) )
set(LIB set(LIB

View File

@@ -19,7 +19,7 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
. .
) )
set(INC_SYS set(INC_SYS
@@ -27,9 +27,9 @@ set(INC_SYS
) )
set(SRC set(SRC
wcwidth.c wcwidth.c
wcwidth.h wcwidth.h
) )
set(LIB set(LIB

View File

@@ -19,23 +19,23 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
. .
) )
set(INC_SYS set(INC_SYS
${X11_X11_INCLUDE_PATH} ${X11_X11_INCLUDE_PATH}
) )
set(SRC set(SRC
xdnd.c xdnd.c
xdnd.h xdnd.h
) )
set(LIB set(LIB
) )
add_definitions( add_definitions(
-DHAVE_SYS_TIME_H -DHAVE_SYS_TIME_H
) )
blender_add_lib(extern_xdnd "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") blender_add_lib(extern_xdnd "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")

View File

@@ -33,46 +33,46 @@ add_subdirectory(glew-mx)
add_subdirectory(eigen) add_subdirectory(eigen)
if(WITH_AUDASPACE) if(WITH_AUDASPACE)
add_subdirectory(audaspace) add_subdirectory(audaspace)
endif() endif()
if(WITH_MOD_REMESH) if(WITH_MOD_REMESH)
add_subdirectory(dualcon) add_subdirectory(dualcon)
endif() endif()
if(WITH_MOD_FLUID) if(WITH_MOD_FLUID)
add_subdirectory(elbeem) add_subdirectory(elbeem)
endif() endif()
if(WITH_MOD_SMOKE) if(WITH_MOD_SMOKE)
add_subdirectory(smoke) add_subdirectory(smoke)
endif() endif()
if(WITH_IK_SOLVER) if(WITH_IK_SOLVER)
add_subdirectory(iksolver) add_subdirectory(iksolver)
endif() endif()
if(WITH_IK_ITASC) if(WITH_IK_ITASC)
add_subdirectory(itasc) add_subdirectory(itasc)
endif() endif()
if(WITH_CYCLES) if(WITH_CYCLES)
add_subdirectory(cycles) add_subdirectory(cycles)
endif() endif()
if(WITH_INTERNATIONAL) if(WITH_INTERNATIONAL)
add_subdirectory(locale) add_subdirectory(locale)
endif() endif()
if(WITH_BULLET) if(WITH_BULLET)
add_subdirectory(rigidbody) add_subdirectory(rigidbody)
endif() endif()
# only windows needs utf16 converter # only windows needs utf16 converter
if(WIN32) if(WIN32)
add_subdirectory(utfconv) add_subdirectory(utfconv)
endif() endif()
if(WITH_OPENVDB) if(WITH_OPENVDB)
add_subdirectory(openvdb) add_subdirectory(openvdb)
endif() endif()

View File

@@ -19,70 +19,70 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
extern extern
../guardedalloc ../guardedalloc
) )
set(INC_SYS set(INC_SYS
${PNG_INCLUDE_DIRS} ${PNG_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS}
) )
set(SRC set(SRC
intern/attributes.cpp intern/attributes.cpp
intern/controlparticles.cpp intern/controlparticles.cpp
intern/elbeem.cpp intern/elbeem.cpp
intern/elbeem_control.cpp intern/elbeem_control.cpp
intern/isosurface.cpp intern/isosurface.cpp
intern/mvmcoords.cpp intern/mvmcoords.cpp
intern/ntl_blenderdumper.cpp intern/ntl_blenderdumper.cpp
intern/ntl_bsptree.cpp intern/ntl_bsptree.cpp
intern/ntl_geometrymodel.cpp intern/ntl_geometrymodel.cpp
intern/ntl_geometryobject.cpp intern/ntl_geometryobject.cpp
intern/ntl_lighting.cpp intern/ntl_lighting.cpp
intern/ntl_ray.cpp intern/ntl_ray.cpp
intern/ntl_world.cpp intern/ntl_world.cpp
intern/parametrizer.cpp intern/parametrizer.cpp
intern/particletracer.cpp intern/particletracer.cpp
intern/simulation_object.cpp intern/simulation_object.cpp
intern/solver_adap.cpp intern/solver_adap.cpp
intern/solver_control.cpp intern/solver_control.cpp
intern/solver_init.cpp intern/solver_init.cpp
intern/solver_interface.cpp intern/solver_interface.cpp
intern/solver_main.cpp intern/solver_main.cpp
intern/solver_util.cpp intern/solver_util.cpp
intern/utilities.cpp intern/utilities.cpp
extern/LBM_fluidsim.h extern/LBM_fluidsim.h
extern/elbeem.h extern/elbeem.h
intern/attributes.h intern/attributes.h
intern/controlparticles.h intern/controlparticles.h
intern/elbeem_control.h intern/elbeem_control.h
intern/isosurface.h intern/isosurface.h
intern/loop_tools.h intern/loop_tools.h
intern/mcubes_tables.h intern/mcubes_tables.h
intern/mvmcoords.h intern/mvmcoords.h
intern/ntl_blenderdumper.h intern/ntl_blenderdumper.h
intern/ntl_bsptree.h intern/ntl_bsptree.h
intern/ntl_geometryclass.h intern/ntl_geometryclass.h
intern/ntl_geometrymodel.h intern/ntl_geometrymodel.h
intern/ntl_geometryobject.h intern/ntl_geometryobject.h
intern/ntl_geometryshader.h intern/ntl_geometryshader.h
intern/ntl_lighting.h intern/ntl_lighting.h
intern/ntl_matrices.h intern/ntl_matrices.h
intern/ntl_ray.h intern/ntl_ray.h
intern/ntl_vector3dim.h intern/ntl_vector3dim.h
intern/ntl_world.h intern/ntl_world.h
intern/paraloopend.h intern/paraloopend.h
intern/parametrizer.h intern/parametrizer.h
intern/particletracer.h intern/particletracer.h
intern/simulation_object.h intern/simulation_object.h
intern/solver_class.h intern/solver_class.h
intern/solver_control.h intern/solver_control.h
intern/solver_interface.h intern/solver_interface.h
intern/solver_relax.h intern/solver_relax.h
intern/utilities.h intern/utilities.h
intern/globals.h intern/globals.h
) )
set(LIB set(LIB
@@ -92,31 +92,31 @@ set(LIB
remove_strict_flags() remove_strict_flags()
add_definitions( add_definitions(
-DNOGUI -DNOGUI
-DELBEEM_BLENDER=1 -DELBEEM_BLENDER=1
) )
# not essential but quiet gcc's -Wundef # not essential but quiet gcc's -Wundef
add_definitions( add_definitions(
-DLBM_PRECISION=1 -DLBM_PRECISION=1
-DLBM_INCLUDE_TESTSOLVERS=0 -DLBM_INCLUDE_TESTSOLVERS=0
-DFSGR_STRICT_DEBUG=0 -DFSGR_STRICT_DEBUG=0
-DELBEEM_MPI=0 -DELBEEM_MPI=0
-DNEWDIRVELMOTEST=0 -DNEWDIRVELMOTEST=0
) )
if(WIN32) if(WIN32)
# We need BLI_gzopen on win32 for unicode paths # We need BLI_gzopen on win32 for unicode paths
add_definitions( add_definitions(
-DLBM_GZIP_OVERRIDE_H="${CMAKE_SOURCE_DIR}/source/blender/blenlib/BLI_fileops.h" -DLBM_GZIP_OVERRIDE_H="${CMAKE_SOURCE_DIR}/source/blender/blenlib/BLI_fileops.h"
-D LBM_GZIP_OPEN_FN="\(gzFile\)BLI_gzopen" -D LBM_GZIP_OPEN_FN="\(gzFile\)BLI_gzopen"
) )
endif() endif()
if(WITH_OPENMP) if(WITH_OPENMP)
add_definitions(-DPARALLEL=1) add_definitions(-DPARALLEL=1)
else() else()
add_definitions(-DPARALLEL=0) add_definitions(-DPARALLEL=0)
endif() endif()
blender_add_lib_nolist(bf_intern_elbeem "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") blender_add_lib_nolist(bf_intern_elbeem "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")

View File

@@ -23,334 +23,334 @@ set(INC
) )
set(INC_SYS set(INC_SYS
${EIGEN3_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIRS}
) )
if(NOT WITH_SYSTEM_EIGEN3) if(NOT WITH_SYSTEM_EIGEN3)
set(EIGEN3_HEADERS set(EIGEN3_HEADERS
# until we have another user... # until we have another user...
../../extern/Eigen3/Eigen/src/Cholesky/LDLT.h ../../extern/Eigen3/Eigen/src/Cholesky/LDLT.h
../../extern/Eigen3/Eigen/src/Cholesky/LLT.h ../../extern/Eigen3/Eigen/src/Cholesky/LLT.h
../../extern/Eigen3/Eigen/src/Cholesky/LLT_MKL.h ../../extern/Eigen3/Eigen/src/Cholesky/LLT_MKL.h
../../extern/Eigen3/Eigen/src/CholmodSupport/CholmodSupport.h ../../extern/Eigen3/Eigen/src/CholmodSupport/CholmodSupport.h
../../extern/Eigen3/Eigen/src/Core/Array.h ../../extern/Eigen3/Eigen/src/Core/Array.h
../../extern/Eigen3/Eigen/src/Core/ArrayBase.h ../../extern/Eigen3/Eigen/src/Core/ArrayBase.h
../../extern/Eigen3/Eigen/src/Core/ArrayWrapper.h ../../extern/Eigen3/Eigen/src/Core/ArrayWrapper.h
../../extern/Eigen3/Eigen/src/Core/Assign.h ../../extern/Eigen3/Eigen/src/Core/Assign.h
../../extern/Eigen3/Eigen/src/Core/Assign_MKL.h ../../extern/Eigen3/Eigen/src/Core/Assign_MKL.h
../../extern/Eigen3/Eigen/src/Core/BandMatrix.h ../../extern/Eigen3/Eigen/src/Core/BandMatrix.h
../../extern/Eigen3/Eigen/src/Core/Block.h ../../extern/Eigen3/Eigen/src/Core/Block.h
../../extern/Eigen3/Eigen/src/Core/BooleanRedux.h ../../extern/Eigen3/Eigen/src/Core/BooleanRedux.h
../../extern/Eigen3/Eigen/src/Core/CommaInitializer.h ../../extern/Eigen3/Eigen/src/Core/CommaInitializer.h
../../extern/Eigen3/Eigen/src/Core/CwiseBinaryOp.h ../../extern/Eigen3/Eigen/src/Core/CwiseBinaryOp.h
../../extern/Eigen3/Eigen/src/Core/CwiseNullaryOp.h ../../extern/Eigen3/Eigen/src/Core/CwiseNullaryOp.h
../../extern/Eigen3/Eigen/src/Core/CwiseUnaryOp.h ../../extern/Eigen3/Eigen/src/Core/CwiseUnaryOp.h
../../extern/Eigen3/Eigen/src/Core/CwiseUnaryView.h ../../extern/Eigen3/Eigen/src/Core/CwiseUnaryView.h
../../extern/Eigen3/Eigen/src/Core/DenseBase.h ../../extern/Eigen3/Eigen/src/Core/DenseBase.h
../../extern/Eigen3/Eigen/src/Core/DenseCoeffsBase.h ../../extern/Eigen3/Eigen/src/Core/DenseCoeffsBase.h
../../extern/Eigen3/Eigen/src/Core/DenseStorage.h ../../extern/Eigen3/Eigen/src/Core/DenseStorage.h
../../extern/Eigen3/Eigen/src/Core/Diagonal.h ../../extern/Eigen3/Eigen/src/Core/Diagonal.h
../../extern/Eigen3/Eigen/src/Core/DiagonalMatrix.h ../../extern/Eigen3/Eigen/src/Core/DiagonalMatrix.h
../../extern/Eigen3/Eigen/src/Core/DiagonalProduct.h ../../extern/Eigen3/Eigen/src/Core/DiagonalProduct.h
../../extern/Eigen3/Eigen/src/Core/Dot.h ../../extern/Eigen3/Eigen/src/Core/Dot.h
../../extern/Eigen3/Eigen/src/Core/EigenBase.h ../../extern/Eigen3/Eigen/src/Core/EigenBase.h
../../extern/Eigen3/Eigen/src/Core/Flagged.h ../../extern/Eigen3/Eigen/src/Core/Flagged.h
../../extern/Eigen3/Eigen/src/Core/ForceAlignedAccess.h ../../extern/Eigen3/Eigen/src/Core/ForceAlignedAccess.h
../../extern/Eigen3/Eigen/src/Core/Functors.h ../../extern/Eigen3/Eigen/src/Core/Functors.h
../../extern/Eigen3/Eigen/src/Core/Fuzzy.h ../../extern/Eigen3/Eigen/src/Core/Fuzzy.h
../../extern/Eigen3/Eigen/src/Core/GeneralProduct.h ../../extern/Eigen3/Eigen/src/Core/GeneralProduct.h
../../extern/Eigen3/Eigen/src/Core/GenericPacketMath.h ../../extern/Eigen3/Eigen/src/Core/GenericPacketMath.h
../../extern/Eigen3/Eigen/src/Core/GlobalFunctions.h ../../extern/Eigen3/Eigen/src/Core/GlobalFunctions.h
../../extern/Eigen3/Eigen/src/Core/IO.h ../../extern/Eigen3/Eigen/src/Core/IO.h
../../extern/Eigen3/Eigen/src/Core/Map.h ../../extern/Eigen3/Eigen/src/Core/Map.h
../../extern/Eigen3/Eigen/src/Core/MapBase.h ../../extern/Eigen3/Eigen/src/Core/MapBase.h
../../extern/Eigen3/Eigen/src/Core/MathFunctions.h ../../extern/Eigen3/Eigen/src/Core/MathFunctions.h
../../extern/Eigen3/Eigen/src/Core/Matrix.h ../../extern/Eigen3/Eigen/src/Core/Matrix.h
../../extern/Eigen3/Eigen/src/Core/MatrixBase.h ../../extern/Eigen3/Eigen/src/Core/MatrixBase.h
../../extern/Eigen3/Eigen/src/Core/NestByValue.h ../../extern/Eigen3/Eigen/src/Core/NestByValue.h
../../extern/Eigen3/Eigen/src/Core/NoAlias.h ../../extern/Eigen3/Eigen/src/Core/NoAlias.h
../../extern/Eigen3/Eigen/src/Core/NumTraits.h ../../extern/Eigen3/Eigen/src/Core/NumTraits.h
../../extern/Eigen3/Eigen/src/Core/PermutationMatrix.h ../../extern/Eigen3/Eigen/src/Core/PermutationMatrix.h
../../extern/Eigen3/Eigen/src/Core/PlainObjectBase.h ../../extern/Eigen3/Eigen/src/Core/PlainObjectBase.h
../../extern/Eigen3/Eigen/src/Core/Product.h ../../extern/Eigen3/Eigen/src/Core/Product.h
../../extern/Eigen3/Eigen/src/Core/ProductBase.h ../../extern/Eigen3/Eigen/src/Core/ProductBase.h
../../extern/Eigen3/Eigen/src/Core/Random.h ../../extern/Eigen3/Eigen/src/Core/Random.h
../../extern/Eigen3/Eigen/src/Core/Redux.h ../../extern/Eigen3/Eigen/src/Core/Redux.h
../../extern/Eigen3/Eigen/src/Core/Replicate.h ../../extern/Eigen3/Eigen/src/Core/Replicate.h
../../extern/Eigen3/Eigen/src/Core/ReturnByValue.h ../../extern/Eigen3/Eigen/src/Core/ReturnByValue.h
../../extern/Eigen3/Eigen/src/Core/Reverse.h ../../extern/Eigen3/Eigen/src/Core/Reverse.h
../../extern/Eigen3/Eigen/src/Core/Select.h ../../extern/Eigen3/Eigen/src/Core/Select.h
../../extern/Eigen3/Eigen/src/Core/SelfAdjointView.h ../../extern/Eigen3/Eigen/src/Core/SelfAdjointView.h
../../extern/Eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h ../../extern/Eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h
../../extern/Eigen3/Eigen/src/Core/SolveTriangular.h ../../extern/Eigen3/Eigen/src/Core/SolveTriangular.h
../../extern/Eigen3/Eigen/src/Core/StableNorm.h ../../extern/Eigen3/Eigen/src/Core/StableNorm.h
../../extern/Eigen3/Eigen/src/Core/Stride.h ../../extern/Eigen3/Eigen/src/Core/Stride.h
../../extern/Eigen3/Eigen/src/Core/Swap.h ../../extern/Eigen3/Eigen/src/Core/Swap.h
../../extern/Eigen3/Eigen/src/Core/Transpose.h ../../extern/Eigen3/Eigen/src/Core/Transpose.h
../../extern/Eigen3/Eigen/src/Core/Transpositions.h ../../extern/Eigen3/Eigen/src/Core/Transpositions.h
../../extern/Eigen3/Eigen/src/Core/TriangularMatrix.h ../../extern/Eigen3/Eigen/src/Core/TriangularMatrix.h
../../extern/Eigen3/Eigen/src/Core/VectorBlock.h ../../extern/Eigen3/Eigen/src/Core/VectorBlock.h
../../extern/Eigen3/Eigen/src/Core/VectorwiseOp.h ../../extern/Eigen3/Eigen/src/Core/VectorwiseOp.h
../../extern/Eigen3/Eigen/src/Core/Visitor.h ../../extern/Eigen3/Eigen/src/Core/Visitor.h
../../extern/Eigen3/Eigen/src/Core/arch/AltiVec/Complex.h ../../extern/Eigen3/Eigen/src/Core/arch/AltiVec/Complex.h
../../extern/Eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h ../../extern/Eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h
../../extern/Eigen3/Eigen/src/Core/arch/Default/Settings.h ../../extern/Eigen3/Eigen/src/Core/arch/Default/Settings.h
../../extern/Eigen3/Eigen/src/Core/arch/NEON/Complex.h ../../extern/Eigen3/Eigen/src/Core/arch/NEON/Complex.h
../../extern/Eigen3/Eigen/src/Core/arch/NEON/PacketMath.h ../../extern/Eigen3/Eigen/src/Core/arch/NEON/PacketMath.h
../../extern/Eigen3/Eigen/src/Core/arch/SSE/Complex.h ../../extern/Eigen3/Eigen/src/Core/arch/SSE/Complex.h
../../extern/Eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h ../../extern/Eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h
../../extern/Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h ../../extern/Eigen3/Eigen/src/Core/arch/SSE/PacketMath.h
../../extern/Eigen3/Eigen/src/Core/products/CoeffBasedProduct.h ../../extern/Eigen3/Eigen/src/Core/products/CoeffBasedProduct.h
../../extern/Eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h ../../extern/Eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h
../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h
../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h
../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h
../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixVector.h ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixVector.h
../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixVector_MKL.h ../../extern/Eigen3/Eigen/src/Core/products/GeneralMatrixVector_MKL.h
../../extern/Eigen3/Eigen/src/Core/products/Parallelizer.h ../../extern/Eigen3/Eigen/src/Core/products/Parallelizer.h
../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h
../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h
../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h
../../extern/Eigen3/Eigen/src/Core/products/SelfadjointProduct.h ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointProduct.h
../../extern/Eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h ../../extern/Eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h
../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h
../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixVector.h ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixVector.h
../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixVector_MKL.h ../../extern/Eigen3/Eigen/src/Core/products/TriangularMatrixVector_MKL.h
../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h ../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h
../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h ../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h
../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverVector.h ../../extern/Eigen3/Eigen/src/Core/products/TriangularSolverVector.h
../../extern/Eigen3/Eigen/src/Core/util/BlasUtil.h ../../extern/Eigen3/Eigen/src/Core/util/BlasUtil.h
../../extern/Eigen3/Eigen/src/Core/util/Constants.h ../../extern/Eigen3/Eigen/src/Core/util/Constants.h
../../extern/Eigen3/Eigen/src/Core/util/DisableStupidWarnings.h ../../extern/Eigen3/Eigen/src/Core/util/DisableStupidWarnings.h
../../extern/Eigen3/Eigen/src/Core/util/ForwardDeclarations.h ../../extern/Eigen3/Eigen/src/Core/util/ForwardDeclarations.h
../../extern/Eigen3/Eigen/src/Core/util/Macros.h ../../extern/Eigen3/Eigen/src/Core/util/Macros.h
../../extern/Eigen3/Eigen/src/Core/util/Memory.h ../../extern/Eigen3/Eigen/src/Core/util/Memory.h
../../extern/Eigen3/Eigen/src/Core/util/Meta.h ../../extern/Eigen3/Eigen/src/Core/util/Meta.h
../../extern/Eigen3/Eigen/src/Core/util/MKL_support.h ../../extern/Eigen3/Eigen/src/Core/util/MKL_support.h
../../extern/Eigen3/Eigen/src/Core/util/NonMPL2.h ../../extern/Eigen3/Eigen/src/Core/util/NonMPL2.h
../../extern/Eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h ../../extern/Eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h
../../extern/Eigen3/Eigen/src/Core/util/StaticAssert.h ../../extern/Eigen3/Eigen/src/Core/util/StaticAssert.h
../../extern/Eigen3/Eigen/src/Core/util/XprHelper.h ../../extern/Eigen3/Eigen/src/Core/util/XprHelper.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Block.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Block.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Cwise.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Cwise.h
../../extern/Eigen3/Eigen/src/Eigen2Support/CwiseOperators.h ../../extern/Eigen3/Eigen/src/Eigen2Support/CwiseOperators.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Lazy.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Lazy.h
../../extern/Eigen3/Eigen/src/Eigen2Support/LeastSquares.h ../../extern/Eigen3/Eigen/src/Eigen2Support/LeastSquares.h
../../extern/Eigen3/Eigen/src/Eigen2Support/LU.h ../../extern/Eigen3/Eigen/src/Eigen2Support/LU.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Macros.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Macros.h
../../extern/Eigen3/Eigen/src/Eigen2Support/MathFunctions.h ../../extern/Eigen3/Eigen/src/Eigen2Support/MathFunctions.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Memory.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Memory.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Meta.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Meta.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Minor.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Minor.h
../../extern/Eigen3/Eigen/src/Eigen2Support/QR.h ../../extern/Eigen3/Eigen/src/Eigen2Support/QR.h
../../extern/Eigen3/Eigen/src/Eigen2Support/SVD.h ../../extern/Eigen3/Eigen/src/Eigen2Support/SVD.h
../../extern/Eigen3/Eigen/src/Eigen2Support/TriangularSolver.h ../../extern/Eigen3/Eigen/src/Eigen2Support/TriangularSolver.h
../../extern/Eigen3/Eigen/src/Eigen2Support/VectorBlock.h ../../extern/Eigen3/Eigen/src/Eigen2Support/VectorBlock.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/AlignedBox.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/AlignedBox.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/All.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/All.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/AngleAxis.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/AngleAxis.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Hyperplane.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Hyperplane.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Quaternion.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Quaternion.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Rotation2D.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Rotation2D.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/RotationBase.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/RotationBase.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Scaling.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Scaling.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Transform.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Transform.h
../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Translation.h ../../extern/Eigen3/Eigen/src/Eigen2Support/Geometry/Translation.h
../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h ../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h
../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexSchur.h ../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexSchur.h
../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexSchur_MKL.h ../../extern/Eigen3/Eigen/src/Eigenvalues/ComplexSchur_MKL.h
../../extern/Eigen3/Eigen/src/Eigenvalues/EigenSolver.h ../../extern/Eigen3/Eigen/src/Eigenvalues/EigenSolver.h
../../extern/Eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h ../../extern/Eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
../../extern/Eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h ../../extern/Eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h
../../extern/Eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h ../../extern/Eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
../../extern/Eigen3/Eigen/src/Eigenvalues/RealSchur.h ../../extern/Eigen3/Eigen/src/Eigenvalues/RealSchur.h
../../extern/Eigen3/Eigen/src/Eigenvalues/RealSchur_MKL.h ../../extern/Eigen3/Eigen/src/Eigenvalues/RealSchur_MKL.h
../../extern/Eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h ../../extern/Eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
../../extern/Eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h ../../extern/Eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
../../extern/Eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h ../../extern/Eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h
../../extern/Eigen3/Eigen/src/Geometry/AlignedBox.h ../../extern/Eigen3/Eigen/src/Geometry/AlignedBox.h
../../extern/Eigen3/Eigen/src/Geometry/AngleAxis.h ../../extern/Eigen3/Eigen/src/Geometry/AngleAxis.h
../../extern/Eigen3/Eigen/src/Geometry/EulerAngles.h ../../extern/Eigen3/Eigen/src/Geometry/EulerAngles.h
../../extern/Eigen3/Eigen/src/Geometry/Homogeneous.h ../../extern/Eigen3/Eigen/src/Geometry/Homogeneous.h
../../extern/Eigen3/Eigen/src/Geometry/Hyperplane.h ../../extern/Eigen3/Eigen/src/Geometry/Hyperplane.h
../../extern/Eigen3/Eigen/src/Geometry/OrthoMethods.h ../../extern/Eigen3/Eigen/src/Geometry/OrthoMethods.h
../../extern/Eigen3/Eigen/src/Geometry/ParametrizedLine.h ../../extern/Eigen3/Eigen/src/Geometry/ParametrizedLine.h
../../extern/Eigen3/Eigen/src/Geometry/Quaternion.h ../../extern/Eigen3/Eigen/src/Geometry/Quaternion.h
../../extern/Eigen3/Eigen/src/Geometry/Rotation2D.h ../../extern/Eigen3/Eigen/src/Geometry/Rotation2D.h
../../extern/Eigen3/Eigen/src/Geometry/RotationBase.h ../../extern/Eigen3/Eigen/src/Geometry/RotationBase.h
../../extern/Eigen3/Eigen/src/Geometry/Scaling.h ../../extern/Eigen3/Eigen/src/Geometry/Scaling.h
../../extern/Eigen3/Eigen/src/Geometry/Transform.h ../../extern/Eigen3/Eigen/src/Geometry/Transform.h
../../extern/Eigen3/Eigen/src/Geometry/Translation.h ../../extern/Eigen3/Eigen/src/Geometry/Translation.h
../../extern/Eigen3/Eigen/src/Geometry/Umeyama.h ../../extern/Eigen3/Eigen/src/Geometry/Umeyama.h
../../extern/Eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h ../../extern/Eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h
../../extern/Eigen3/Eigen/src/Householder/BlockHouseholder.h ../../extern/Eigen3/Eigen/src/Householder/BlockHouseholder.h
../../extern/Eigen3/Eigen/src/Householder/Householder.h ../../extern/Eigen3/Eigen/src/Householder/Householder.h
../../extern/Eigen3/Eigen/src/Householder/HouseholderSequence.h ../../extern/Eigen3/Eigen/src/Householder/HouseholderSequence.h
../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h ../../extern/Eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
../../extern/Eigen3/Eigen/src/Jacobi/Jacobi.h ../../extern/Eigen3/Eigen/src/Jacobi/Jacobi.h
../../extern/Eigen3/Eigen/src/LU/Determinant.h ../../extern/Eigen3/Eigen/src/LU/Determinant.h
../../extern/Eigen3/Eigen/src/LU/FullPivLU.h ../../extern/Eigen3/Eigen/src/LU/FullPivLU.h
../../extern/Eigen3/Eigen/src/LU/Inverse.h ../../extern/Eigen3/Eigen/src/LU/Inverse.h
../../extern/Eigen3/Eigen/src/LU/PartialPivLU.h ../../extern/Eigen3/Eigen/src/LU/PartialPivLU.h
../../extern/Eigen3/Eigen/src/LU/PartialPivLU_MKL.h ../../extern/Eigen3/Eigen/src/LU/PartialPivLU_MKL.h
../../extern/Eigen3/Eigen/src/LU/arch/Inverse_SSE.h ../../extern/Eigen3/Eigen/src/LU/arch/Inverse_SSE.h
../../extern/Eigen3/Eigen/src/misc/blas.h ../../extern/Eigen3/Eigen/src/misc/blas.h
../../extern/Eigen3/Eigen/src/misc/Image.h ../../extern/Eigen3/Eigen/src/misc/Image.h
../../extern/Eigen3/Eigen/src/misc/Kernel.h ../../extern/Eigen3/Eigen/src/misc/Kernel.h
../../extern/Eigen3/Eigen/src/misc/Solve.h ../../extern/Eigen3/Eigen/src/misc/Solve.h
../../extern/Eigen3/Eigen/src/misc/SparseSolve.h ../../extern/Eigen3/Eigen/src/misc/SparseSolve.h
../../extern/Eigen3/Eigen/src/OrderingMethods/Amd.h ../../extern/Eigen3/Eigen/src/OrderingMethods/Amd.h
../../extern/Eigen3/Eigen/src/PardisoSupport/PardisoSupport.h ../../extern/Eigen3/Eigen/src/PardisoSupport/PardisoSupport.h
../../extern/Eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h ../../extern/Eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h
../../extern/Eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h ../../extern/Eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h
../../extern/Eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h ../../extern/Eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h
../../extern/Eigen3/Eigen/src/plugins/BlockMethods.h ../../extern/Eigen3/Eigen/src/plugins/BlockMethods.h
../../extern/Eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h ../../extern/Eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h
../../extern/Eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h ../../extern/Eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h
../../extern/Eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h ../../extern/Eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h
../../extern/Eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h ../../extern/Eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h
../../extern/Eigen3/Eigen/src/QR/ColPivHouseholderQR.h ../../extern/Eigen3/Eigen/src/QR/ColPivHouseholderQR.h
../../extern/Eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h ../../extern/Eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h
../../extern/Eigen3/Eigen/src/QR/FullPivHouseholderQR.h ../../extern/Eigen3/Eigen/src/QR/FullPivHouseholderQR.h
../../extern/Eigen3/Eigen/src/QR/HouseholderQR.h ../../extern/Eigen3/Eigen/src/QR/HouseholderQR.h
../../extern/Eigen3/Eigen/src/QR/HouseholderQR_MKL.h ../../extern/Eigen3/Eigen/src/QR/HouseholderQR_MKL.h
../../extern/Eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h ../../extern/Eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h
../../extern/Eigen3/Eigen/src/SparseCore/AmbiVector.h ../../extern/Eigen3/Eigen/src/SparseCore/AmbiVector.h
../../extern/Eigen3/Eigen/src/SparseCore/CompressedStorage.h ../../extern/Eigen3/Eigen/src/SparseCore/CompressedStorage.h
../../extern/Eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h ../../extern/Eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
../../extern/Eigen3/Eigen/src/SparseCore/CoreIterators.h ../../extern/Eigen3/Eigen/src/SparseCore/CoreIterators.h
../../extern/Eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h ../../extern/Eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseAssign.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseAssign.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseBlock.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseBlock.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseDenseProduct.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseDenseProduct.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseDot.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseDot.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseFuzzy.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseFuzzy.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseMatrix.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseMatrix.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseMatrixBase.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseMatrixBase.h
../../extern/Eigen3/Eigen/src/SparseCore/SparsePermutation.h ../../extern/Eigen3/Eigen/src/SparseCore/SparsePermutation.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseProduct.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseProduct.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseRedux.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseRedux.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseTranspose.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseTranspose.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseTriangularView.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseTriangularView.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseUtil.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseUtil.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseVector.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseVector.h
../../extern/Eigen3/Eigen/src/SparseCore/SparseView.h ../../extern/Eigen3/Eigen/src/SparseCore/SparseView.h
../../extern/Eigen3/Eigen/src/SparseCore/TriangularSolver.h ../../extern/Eigen3/Eigen/src/SparseCore/TriangularSolver.h
../../extern/Eigen3/Eigen/src/StlSupport/details.h ../../extern/Eigen3/Eigen/src/StlSupport/details.h
../../extern/Eigen3/Eigen/src/StlSupport/StdDeque.h ../../extern/Eigen3/Eigen/src/StlSupport/StdDeque.h
../../extern/Eigen3/Eigen/src/StlSupport/StdList.h ../../extern/Eigen3/Eigen/src/StlSupport/StdList.h
../../extern/Eigen3/Eigen/src/StlSupport/StdVector.h ../../extern/Eigen3/Eigen/src/StlSupport/StdVector.h
../../extern/Eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h ../../extern/Eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h
../../extern/Eigen3/Eigen/src/SVD/JacobiSVD.h ../../extern/Eigen3/Eigen/src/SVD/JacobiSVD.h
../../extern/Eigen3/Eigen/src/SVD/JacobiSVD_MKL.h ../../extern/Eigen3/Eigen/src/SVD/JacobiSVD_MKL.h
../../extern/Eigen3/Eigen/src/SVD/UpperBidiagonalization.h ../../extern/Eigen3/Eigen/src/SVD/UpperBidiagonalization.h
../../extern/Eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h ../../extern/Eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h
) )
endif() endif()
set(SRC set(SRC
Armature.cpp Armature.cpp
Cache.cpp Cache.cpp
ConstraintSet.cpp ConstraintSet.cpp
ControlledObject.cpp ControlledObject.cpp
CopyPose.cpp CopyPose.cpp
Distance.cpp Distance.cpp
FixedObject.cpp FixedObject.cpp
MovingFrame.cpp MovingFrame.cpp
Scene.cpp Scene.cpp
UncontrolledObject.cpp UncontrolledObject.cpp
WDLSSolver.cpp WDLSSolver.cpp
WSDLSSolver.cpp WSDLSSolver.cpp
WorldObject.cpp WorldObject.cpp
eigen_types.cpp eigen_types.cpp
ublas_types.hpp ublas_types.hpp
kdl/chain.cpp kdl/chain.cpp
kdl/chainfksolverpos_recursive.cpp kdl/chainfksolverpos_recursive.cpp
kdl/chainjnttojacsolver.cpp kdl/chainjnttojacsolver.cpp
kdl/frameacc.cpp kdl/frameacc.cpp
kdl/frames.cpp kdl/frames.cpp
kdl/frames_io.cpp kdl/frames_io.cpp
kdl/framevel.cpp kdl/framevel.cpp
kdl/inertia.cpp kdl/inertia.cpp
kdl/jacobian.cpp kdl/jacobian.cpp
kdl/jntarray.cpp kdl/jntarray.cpp
kdl/jntarrayacc.cpp kdl/jntarrayacc.cpp
kdl/jntarrayvel.cpp kdl/jntarrayvel.cpp
kdl/joint.cpp kdl/joint.cpp
kdl/kinfam_io.cpp kdl/kinfam_io.cpp
kdl/segment.cpp kdl/segment.cpp
kdl/tree.cpp kdl/tree.cpp
kdl/treefksolverpos_recursive.cpp kdl/treefksolverpos_recursive.cpp
kdl/treejnttojacsolver.cpp kdl/treejnttojacsolver.cpp
kdl/utilities/error_stack.cpp kdl/utilities/error_stack.cpp
kdl/utilities/utility.cpp kdl/utilities/utility.cpp
kdl/utilities/utility_io.cpp kdl/utilities/utility_io.cpp
Armature.hpp Armature.hpp
Cache.hpp Cache.hpp
ConstraintSet.hpp ConstraintSet.hpp
ControlledObject.hpp ControlledObject.hpp
CopyPose.hpp CopyPose.hpp
Distance.hpp Distance.hpp
FixedObject.hpp FixedObject.hpp
MovingFrame.hpp MovingFrame.hpp
Object.hpp Object.hpp
Scene.hpp Scene.hpp
Solver.hpp Solver.hpp
UncontrolledObject.hpp UncontrolledObject.hpp
WDLSSolver.hpp WDLSSolver.hpp
WSDLSSolver.hpp WSDLSSolver.hpp
WorldObject.hpp WorldObject.hpp
eigen_types.hpp eigen_types.hpp
kdl/chain.hpp kdl/chain.hpp
kdl/chainfksolver.hpp kdl/chainfksolver.hpp
kdl/chainfksolverpos_recursive.hpp kdl/chainfksolverpos_recursive.hpp
kdl/chainjnttojacsolver.hpp kdl/chainjnttojacsolver.hpp
kdl/frameacc.hpp kdl/frameacc.hpp
kdl/frames.hpp kdl/frames.hpp
kdl/frames_io.hpp kdl/frames_io.hpp
kdl/framevel.hpp kdl/framevel.hpp
kdl/inertia.hpp kdl/inertia.hpp
kdl/jacobian.hpp kdl/jacobian.hpp
kdl/jntarray.hpp kdl/jntarray.hpp
kdl/jntarrayacc.hpp kdl/jntarrayacc.hpp
kdl/jntarrayvel.hpp kdl/jntarrayvel.hpp
kdl/joint.hpp kdl/joint.hpp
kdl/kinfam_io.hpp kdl/kinfam_io.hpp
kdl/segment.hpp kdl/segment.hpp
kdl/tree.hpp kdl/tree.hpp
kdl/treefksolver.hpp kdl/treefksolver.hpp
kdl/treefksolverpos_recursive.hpp kdl/treefksolverpos_recursive.hpp
kdl/treejnttojacsolver.hpp kdl/treejnttojacsolver.hpp
kdl/utilities/error.h kdl/utilities/error.h
kdl/utilities/error_stack.h kdl/utilities/error_stack.h
kdl/utilities/kdl-config.h kdl/utilities/kdl-config.h
kdl/utilities/rall1d.h kdl/utilities/rall1d.h
kdl/utilities/rall2d.h kdl/utilities/rall2d.h
kdl/utilities/svd_eigen_HH.hpp kdl/utilities/svd_eigen_HH.hpp
kdl/utilities/traits.h kdl/utilities/traits.h
kdl/utilities/utility.h kdl/utilities/utility.h
kdl/utilities/utility_io.h kdl/utilities/utility_io.h
kdl/frameacc.inl kdl/frameacc.inl
kdl/frames.inl kdl/frames.inl
kdl/framevel.inl kdl/framevel.inl
${EIGEN3_HEADERS} ${EIGEN3_HEADERS}
) )
set(LIB set(LIB

View File

@@ -23,14 +23,14 @@
# in that script too # in that script too
set(INC set(INC
. .
) )
set(INC_SYS set(INC_SYS
) )
set(SRC set(SRC
libmv-capi.h libmv-capi.h
) )
set(LIB set(LIB
@@ -38,207 +38,207 @@ set(LIB
) )
if(WITH_LIBMV) if(WITH_LIBMV)
add_definitions(${GFLAGS_DEFINES}) add_definitions(${GFLAGS_DEFINES})
add_definitions(${GLOG_DEFINES}) add_definitions(${GLOG_DEFINES})
add_definitions(${CERES_DEFINES}) add_definitions(${CERES_DEFINES})
add_definitions(-DLIBMV_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE}) add_definitions(-DLIBMV_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE})
list(APPEND INC list(APPEND INC
${GFLAGS_INCLUDE_DIRS} ${GFLAGS_INCLUDE_DIRS}
${GLOG_INCLUDE_DIRS} ${GLOG_INCLUDE_DIRS}
../../extern/ceres/include ../../extern/ceres/include
../../extern/ceres/config ../../extern/ceres/config
../guardedalloc ../guardedalloc
) )
list(APPEND INC_SYS list(APPEND INC_SYS
${EIGEN3_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIRS}
${PNG_INCLUDE_DIRS} ${PNG_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS}
) )
list(APPEND LIB list(APPEND LIB
extern_ceres extern_ceres
extern_glog extern_glog
) )
add_definitions( add_definitions(
-DWITH_LIBMV_GUARDED_ALLOC -DWITH_LIBMV_GUARDED_ALLOC
-DLIBMV_NO_FAST_DETECTOR= -DLIBMV_NO_FAST_DETECTOR=
) )
list(APPEND SRC list(APPEND SRC
intern/autotrack.cc intern/autotrack.cc
intern/camera_intrinsics.cc intern/camera_intrinsics.cc
intern/detector.cc intern/detector.cc
intern/frame_accessor.cc intern/frame_accessor.cc
intern/homography.cc intern/homography.cc
intern/image.cc intern/image.cc
intern/logging.cc intern/logging.cc
intern/reconstruction.cc intern/reconstruction.cc
intern/track_region.cc intern/track_region.cc
intern/tracks.cc intern/tracks.cc
intern/tracksN.cc intern/tracksN.cc
libmv/autotrack/autotrack.cc libmv/autotrack/autotrack.cc
libmv/autotrack/predict_tracks.cc libmv/autotrack/predict_tracks.cc
libmv/autotrack/tracks.cc libmv/autotrack/tracks.cc
libmv/base/aligned_malloc.cc libmv/base/aligned_malloc.cc
libmv/image/array_nd.cc libmv/image/array_nd.cc
libmv/image/convolve.cc libmv/image/convolve.cc
libmv/multiview/conditioning.cc libmv/multiview/conditioning.cc
libmv/multiview/euclidean_resection.cc libmv/multiview/euclidean_resection.cc
libmv/multiview/fundamental.cc libmv/multiview/fundamental.cc
libmv/multiview/homography.cc libmv/multiview/homography.cc
libmv/multiview/panography.cc libmv/multiview/panography.cc
libmv/multiview/panography_kernel.cc libmv/multiview/panography_kernel.cc
libmv/multiview/projection.cc libmv/multiview/projection.cc
libmv/multiview/triangulation.cc libmv/multiview/triangulation.cc
libmv/numeric/numeric.cc libmv/numeric/numeric.cc
libmv/numeric/poly.cc libmv/numeric/poly.cc
libmv/simple_pipeline/bundle.cc libmv/simple_pipeline/bundle.cc
libmv/simple_pipeline/camera_intrinsics.cc libmv/simple_pipeline/camera_intrinsics.cc
libmv/simple_pipeline/detect.cc libmv/simple_pipeline/detect.cc
libmv/simple_pipeline/distortion_models.cc libmv/simple_pipeline/distortion_models.cc
libmv/simple_pipeline/initialize_reconstruction.cc libmv/simple_pipeline/initialize_reconstruction.cc
libmv/simple_pipeline/intersect.cc libmv/simple_pipeline/intersect.cc
libmv/simple_pipeline/keyframe_selection.cc libmv/simple_pipeline/keyframe_selection.cc
libmv/simple_pipeline/modal_solver.cc libmv/simple_pipeline/modal_solver.cc
libmv/simple_pipeline/pipeline.cc libmv/simple_pipeline/pipeline.cc
libmv/simple_pipeline/reconstruction.cc libmv/simple_pipeline/reconstruction.cc
libmv/simple_pipeline/reconstruction_scale.cc libmv/simple_pipeline/reconstruction_scale.cc
libmv/simple_pipeline/resect.cc libmv/simple_pipeline/resect.cc
libmv/simple_pipeline/tracks.cc libmv/simple_pipeline/tracks.cc
libmv/tracking/brute_region_tracker.cc libmv/tracking/brute_region_tracker.cc
libmv/tracking/hybrid_region_tracker.cc libmv/tracking/hybrid_region_tracker.cc
libmv/tracking/klt_region_tracker.cc libmv/tracking/klt_region_tracker.cc
libmv/tracking/pyramid_region_tracker.cc libmv/tracking/pyramid_region_tracker.cc
libmv/tracking/retrack_region_tracker.cc libmv/tracking/retrack_region_tracker.cc
libmv/tracking/track_region.cc libmv/tracking/track_region.cc
libmv/tracking/trklt_region_tracker.cc libmv/tracking/trklt_region_tracker.cc
intern/autotrack.h intern/autotrack.h
intern/camera_intrinsics.h intern/camera_intrinsics.h
intern/detector.h intern/detector.h
intern/frame_accessor.h intern/frame_accessor.h
intern/homography.h intern/homography.h
intern/image.h intern/image.h
intern/logging.h intern/logging.h
intern/reconstruction.h intern/reconstruction.h
intern/track_region.h intern/track_region.h
intern/tracks.h intern/tracks.h
intern/tracksN.h intern/tracksN.h
libmv/autotrack/autotrack.h libmv/autotrack/autotrack.h
libmv/autotrack/callbacks.h libmv/autotrack/callbacks.h
libmv/autotrack/frame_accessor.h libmv/autotrack/frame_accessor.h
libmv/autotrack/marker.h libmv/autotrack/marker.h
libmv/autotrack/model.h libmv/autotrack/model.h
libmv/autotrack/predict_tracks.h libmv/autotrack/predict_tracks.h
libmv/autotrack/quad.h libmv/autotrack/quad.h
libmv/autotrack/reconstruction.h libmv/autotrack/reconstruction.h
libmv/autotrack/region.h libmv/autotrack/region.h
libmv/autotrack/tracks.h libmv/autotrack/tracks.h
libmv/base/aligned_malloc.h libmv/base/aligned_malloc.h
libmv/base/id_generator.h libmv/base/id_generator.h
libmv/base/scoped_ptr.h libmv/base/scoped_ptr.h
libmv/base/vector.h libmv/base/vector.h
libmv/base/vector_utils.h libmv/base/vector_utils.h
libmv/image/array_nd.h libmv/image/array_nd.h
libmv/image/convolve.h libmv/image/convolve.h
libmv/image/correlation.h libmv/image/correlation.h
libmv/image/image_converter.h libmv/image/image_converter.h
libmv/image/image_drawing.h libmv/image/image_drawing.h
libmv/image/image.h libmv/image/image.h
libmv/image/sample.h libmv/image/sample.h
libmv/image/tuple.h libmv/image/tuple.h
libmv/logging/logging.h libmv/logging/logging.h
libmv/multiview/conditioning.h libmv/multiview/conditioning.h
libmv/multiview/euclidean_resection.h libmv/multiview/euclidean_resection.h
libmv/multiview/fundamental.h libmv/multiview/fundamental.h
libmv/multiview/homography_error.h libmv/multiview/homography_error.h
libmv/multiview/homography.h libmv/multiview/homography.h
libmv/multiview/homography_parameterization.h libmv/multiview/homography_parameterization.h
libmv/multiview/nviewtriangulation.h libmv/multiview/nviewtriangulation.h
libmv/multiview/panography.h libmv/multiview/panography.h
libmv/multiview/panography_kernel.h libmv/multiview/panography_kernel.h
libmv/multiview/projection.h libmv/multiview/projection.h
libmv/multiview/resection.h libmv/multiview/resection.h
libmv/multiview/triangulation.h libmv/multiview/triangulation.h
libmv/multiview/two_view_kernel.h libmv/multiview/two_view_kernel.h
libmv/numeric/dogleg.h libmv/numeric/dogleg.h
libmv/numeric/function_derivative.h libmv/numeric/function_derivative.h
libmv/numeric/levenberg_marquardt.h libmv/numeric/levenberg_marquardt.h
libmv/numeric/numeric.h libmv/numeric/numeric.h
libmv/numeric/poly.h libmv/numeric/poly.h
libmv/simple_pipeline/bundle.h libmv/simple_pipeline/bundle.h
libmv/simple_pipeline/callbacks.h libmv/simple_pipeline/callbacks.h
libmv/simple_pipeline/camera_intrinsics.h libmv/simple_pipeline/camera_intrinsics.h
libmv/simple_pipeline/camera_intrinsics_impl.h libmv/simple_pipeline/camera_intrinsics_impl.h
libmv/simple_pipeline/detect.h libmv/simple_pipeline/detect.h
libmv/simple_pipeline/distortion_models.h libmv/simple_pipeline/distortion_models.h
libmv/simple_pipeline/initialize_reconstruction.h libmv/simple_pipeline/initialize_reconstruction.h
libmv/simple_pipeline/intersect.h libmv/simple_pipeline/intersect.h
libmv/simple_pipeline/keyframe_selection.h libmv/simple_pipeline/keyframe_selection.h
libmv/simple_pipeline/modal_solver.h libmv/simple_pipeline/modal_solver.h
libmv/simple_pipeline/pipeline.h libmv/simple_pipeline/pipeline.h
libmv/simple_pipeline/reconstruction.h libmv/simple_pipeline/reconstruction.h
libmv/simple_pipeline/reconstruction_scale.h libmv/simple_pipeline/reconstruction_scale.h
libmv/simple_pipeline/resect.h libmv/simple_pipeline/resect.h
libmv/simple_pipeline/tracks.h libmv/simple_pipeline/tracks.h
libmv/tracking/brute_region_tracker.h libmv/tracking/brute_region_tracker.h
libmv/tracking/hybrid_region_tracker.h libmv/tracking/hybrid_region_tracker.h
libmv/tracking/kalman_filter.h libmv/tracking/kalman_filter.h
libmv/tracking/klt_region_tracker.h libmv/tracking/klt_region_tracker.h
libmv/tracking/pyramid_region_tracker.h libmv/tracking/pyramid_region_tracker.h
libmv/tracking/region_tracker.h libmv/tracking/region_tracker.h
libmv/tracking/retrack_region_tracker.h libmv/tracking/retrack_region_tracker.h
libmv/tracking/track_region.h libmv/tracking/track_region.h
libmv/tracking/trklt_region_tracker.h libmv/tracking/trklt_region_tracker.h
third_party/msinttypes/inttypes.h third_party/msinttypes/inttypes.h
third_party/msinttypes/stdint.h third_party/msinttypes/stdint.h
) )
if(WITH_GTESTS) if(WITH_GTESTS)
blender_add_lib(libmv_test_dataset "./libmv/multiview/test_data_sets.cc" "" "" "") blender_add_lib(libmv_test_dataset "./libmv/multiview/test_data_sets.cc" "" "" "")
BLENDER_SRC_GTEST("libmv_predict_tracks" "./libmv/autotrack/predict_tracks_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_predict_tracks" "./libmv/autotrack/predict_tracks_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_tracks" "./libmv/autotrack/tracks_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_tracks" "./libmv/autotrack/tracks_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_scoped_ptr" "./libmv/base/scoped_ptr_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_scoped_ptr" "./libmv/base/scoped_ptr_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_vector" "./libmv/base/vector_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_vector" "./libmv/base/vector_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_array_nd" "./libmv/image/array_nd_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_array_nd" "./libmv/image/array_nd_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_convolve" "./libmv/image/convolve_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_convolve" "./libmv/image/convolve_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_image" "./libmv/image/image_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_image" "./libmv/image/image_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_sample" "./libmv/image/sample_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_sample" "./libmv/image/sample_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_tuple" "./libmv/image/tuple_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_tuple" "./libmv/image/tuple_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_euclidean_resection" "./libmv/multiview/euclidean_resection_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_euclidean_resection" "./libmv/multiview/euclidean_resection_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_fundamental" "./libmv/multiview/fundamental_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_fundamental" "./libmv/multiview/fundamental_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_homography" "./libmv/multiview/homography_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_homography" "./libmv/multiview/homography_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_nviewtriangulation" "./libmv/multiview/nviewtriangulation_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_nviewtriangulation" "./libmv/multiview/nviewtriangulation_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_panography" "./libmv/multiview/panography_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_panography" "./libmv/multiview/panography_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_projection" "./libmv/multiview/projection_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_projection" "./libmv/multiview/projection_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_resection" "./libmv/multiview/resection_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_resection" "./libmv/multiview/resection_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_triangulation" "./libmv/multiview/triangulation_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_triangulation" "./libmv/multiview/triangulation_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_dogleg" "./libmv/numeric/dogleg_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_dogleg" "./libmv/numeric/dogleg_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_function_derivative" "./libmv/numeric/function_derivative_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_function_derivative" "./libmv/numeric/function_derivative_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_levenberg_marquardt" "./libmv/numeric/levenberg_marquardt_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_levenberg_marquardt" "./libmv/numeric/levenberg_marquardt_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_numeric" "./libmv/numeric/numeric_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_numeric" "./libmv/numeric/numeric_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_poly" "./libmv/numeric/poly_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_poly" "./libmv/numeric/poly_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_camera_intrinsics" "./libmv/simple_pipeline/camera_intrinsics_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_camera_intrinsics" "./libmv/simple_pipeline/camera_intrinsics_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_detect" "./libmv/simple_pipeline/detect_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_detect" "./libmv/simple_pipeline/detect_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_intersect" "./libmv/simple_pipeline/intersect_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_intersect" "./libmv/simple_pipeline/intersect_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_keyframe_selection" "./libmv/simple_pipeline/keyframe_selection_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_keyframe_selection" "./libmv/simple_pipeline/keyframe_selection_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_modal_solver" "./libmv/simple_pipeline/modal_solver_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_modal_solver" "./libmv/simple_pipeline/modal_solver_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_resect" "./libmv/simple_pipeline/resect_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_resect" "./libmv/simple_pipeline/resect_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_brute_region_tracker" "./libmv/tracking/brute_region_tracker_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_brute_region_tracker" "./libmv/tracking/brute_region_tracker_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_klt_region_tracker" "./libmv/tracking/klt_region_tracker_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_klt_region_tracker" "./libmv/tracking/klt_region_tracker_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
BLENDER_SRC_GTEST("libmv_pyramid_region_tracker" "./libmv/tracking/pyramid_region_tracker_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres") BLENDER_SRC_GTEST("libmv_pyramid_region_tracker" "./libmv/tracking/pyramid_region_tracker_test.cc" "libmv_test_dataset;bf_intern_libmv;extern_ceres")
endif() endif()
else() else()
list(APPEND SRC list(APPEND SRC
intern/stub.cc intern/stub.cc
) )
endif() endif()
blender_add_lib(bf_intern_libmv "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") blender_add_lib(bf_intern_libmv "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")

View File

@@ -102,14 +102,14 @@ cat > CMakeLists.txt << EOF
# in that script too # in that script too
set(INC set(INC
. .
) )
set(INC_SYS set(INC_SYS
) )
set(SRC set(SRC
libmv-capi.h libmv-capi.h
) )
set(LIB set(LIB
@@ -117,76 +117,76 @@ set(LIB
) )
if(WITH_LIBMV) if(WITH_LIBMV)
add_definitions(\${GFLAGS_DEFINES}) add_definitions(\${GFLAGS_DEFINES})
add_definitions(\${GLOG_DEFINES}) add_definitions(\${GLOG_DEFINES})
add_definitions(\${CERES_DEFINES}) add_definitions(\${CERES_DEFINES})
add_definitions(-DLIBMV_GFLAGS_NAMESPACE=\${GFLAGS_NAMESPACE}) add_definitions(-DLIBMV_GFLAGS_NAMESPACE=\${GFLAGS_NAMESPACE})
list(APPEND INC list(APPEND INC
\${GFLAGS_INCLUDE_DIRS} \${GFLAGS_INCLUDE_DIRS}
\${GLOG_INCLUDE_DIRS} \${GLOG_INCLUDE_DIRS}
../../extern/ceres/include ../../extern/ceres/include
../../extern/ceres/config ../../extern/ceres/config
../guardedalloc ../guardedalloc
) )
list(APPEND INC_SYS list(APPEND INC_SYS
\${EIGEN3_INCLUDE_DIRS} \${EIGEN3_INCLUDE_DIRS}
\${PNG_INCLUDE_DIRS} \${PNG_INCLUDE_DIRS}
\${ZLIB_INCLUDE_DIRS} \${ZLIB_INCLUDE_DIRS}
) )
list(APPEND LIB list(APPEND LIB
extern_ceres extern_ceres
extern_glog extern_glog
) )
add_definitions( add_definitions(
-DWITH_LIBMV_GUARDED_ALLOC -DWITH_LIBMV_GUARDED_ALLOC
-DLIBMV_NO_FAST_DETECTOR= -DLIBMV_NO_FAST_DETECTOR=
) )
list(APPEND SRC list(APPEND SRC
intern/autotrack.cc intern/autotrack.cc
intern/camera_intrinsics.cc intern/camera_intrinsics.cc
intern/detector.cc intern/detector.cc
intern/frame_accessor.cc intern/frame_accessor.cc
intern/homography.cc intern/homography.cc
intern/image.cc intern/image.cc
intern/logging.cc intern/logging.cc
intern/reconstruction.cc intern/reconstruction.cc
intern/track_region.cc intern/track_region.cc
intern/tracks.cc intern/tracks.cc
intern/tracksN.cc intern/tracksN.cc
${sources} ${sources}
${third_sources} ${third_sources}
intern/autotrack.h intern/autotrack.h
intern/camera_intrinsics.h intern/camera_intrinsics.h
intern/detector.h intern/detector.h
intern/frame_accessor.h intern/frame_accessor.h
intern/homography.h intern/homography.h
intern/image.h intern/image.h
intern/logging.h intern/logging.h
intern/reconstruction.h intern/reconstruction.h
intern/track_region.h intern/track_region.h
intern/tracks.h intern/tracks.h
intern/tracksN.h intern/tracksN.h
${headers} ${headers}
${third_headers} ${third_headers}
) )
if(WITH_GTESTS) if(WITH_GTESTS)
blender_add_lib(libmv_test_dataset "./libmv/multiview/test_data_sets.cc" "${INC}" "${INC_SYS}" "") blender_add_lib(libmv_test_dataset "./libmv/multiview/test_data_sets.cc" "${INC}" "${INC_SYS}" "")
${tests} ${tests}
endif() endif()
else() else()
list(APPEND SRC list(APPEND SRC
intern/stub.cc intern/stub.cc
) )
endif() endif()
blender_add_lib(bf_intern_libmv "\${SRC}" "\${INC}" "\${INC_SYS}" "\${LIB}") blender_add_lib(bf_intern_libmv "\${SRC}" "\${INC}" "\${INC_SYS}" "\${LIB}")

View File

@@ -17,7 +17,7 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
include include
) )
set(INC_SYS set(INC_SYS
@@ -25,13 +25,13 @@ set(INC_SYS
) )
set(SRC set(SRC
source/numaapi.c source/numaapi.c
source/numaapi_linux.c source/numaapi_linux.c
source/numaapi_stub.c source/numaapi_stub.c
source/numaapi_win32.c source/numaapi_win32.c
include/numaapi.h include/numaapi.h
source/build_config.h source/build_config.h
) )
set(LIB set(LIB

View File

@@ -19,62 +19,62 @@
# ***** END GPL LICENSE BLOCK ***** # ***** END GPL LICENSE BLOCK *****
set(INC set(INC
intern intern
../memutil ../memutil
) )
set(INC_SYS set(INC_SYS
${BULLET_INCLUDE_DIRS} ${BULLET_INCLUDE_DIRS}
${PNG_INCLUDE_DIRS} ${PNG_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS}
) )
set(SRC set(SRC
intern/EIGENVALUE_HELPER.cpp intern/EIGENVALUE_HELPER.cpp
intern/FLUID_3D.cpp intern/FLUID_3D.cpp
intern/FLUID_3D_SOLVERS.cpp intern/FLUID_3D_SOLVERS.cpp
intern/FLUID_3D_STATIC.cpp intern/FLUID_3D_STATIC.cpp
intern/LU_HELPER.cpp intern/LU_HELPER.cpp
intern/SPHERE.cpp intern/SPHERE.cpp
intern/WTURBULENCE.cpp intern/WTURBULENCE.cpp
intern/smoke_API.cpp intern/smoke_API.cpp
extern/smoke_API.h extern/smoke_API.h
intern/EIGENVALUE_HELPER.h intern/EIGENVALUE_HELPER.h
intern/FFT_NOISE.h intern/FFT_NOISE.h
intern/FLUID_3D.h intern/FLUID_3D.h
intern/IMAGE.h intern/IMAGE.h
intern/INTERPOLATE.h intern/INTERPOLATE.h
intern/LU_HELPER.h intern/LU_HELPER.h
intern/MERSENNETWISTER.h intern/MERSENNETWISTER.h
intern/OBSTACLE.h intern/OBSTACLE.h
intern/SPHERE.h intern/SPHERE.h
intern/VEC3.h intern/VEC3.h
intern/WAVELET_NOISE.h intern/WAVELET_NOISE.h
intern/WTURBULENCE.h intern/WTURBULENCE.h
intern/tnt/jama_eig.h intern/tnt/jama_eig.h
intern/tnt/jama_lu.h intern/tnt/jama_lu.h
intern/tnt/tnt.h intern/tnt/tnt.h
intern/tnt/tnt_array1d.h intern/tnt/tnt_array1d.h
intern/tnt/tnt_array1d_utils.h intern/tnt/tnt_array1d_utils.h
intern/tnt/tnt_array2d.h intern/tnt/tnt_array2d.h
intern/tnt/tnt_array2d_utils.h intern/tnt/tnt_array2d_utils.h
intern/tnt/tnt_array3d.h intern/tnt/tnt_array3d.h
intern/tnt/tnt_array3d_utils.h intern/tnt/tnt_array3d_utils.h
intern/tnt/tnt_cmat.h intern/tnt/tnt_cmat.h
intern/tnt/tnt_fortran_array1d.h intern/tnt/tnt_fortran_array1d.h
intern/tnt/tnt_fortran_array1d_utils.h intern/tnt/tnt_fortran_array1d_utils.h
intern/tnt/tnt_fortran_array2d.h intern/tnt/tnt_fortran_array2d.h
intern/tnt/tnt_fortran_array2d_utils.h intern/tnt/tnt_fortran_array2d_utils.h
intern/tnt/tnt_fortran_array3d.h intern/tnt/tnt_fortran_array3d.h
intern/tnt/tnt_fortran_array3d_utils.h intern/tnt/tnt_fortran_array3d_utils.h
intern/tnt/tnt_i_refvec.h intern/tnt/tnt_i_refvec.h
intern/tnt/tnt_math_utils.h intern/tnt/tnt_math_utils.h
intern/tnt/tnt_sparse_matrix_csr.h intern/tnt/tnt_sparse_matrix_csr.h
intern/tnt/tnt_stopwatch.h intern/tnt/tnt_stopwatch.h
intern/tnt/tnt_subscript.h intern/tnt/tnt_subscript.h
intern/tnt/tnt_vec.h intern/tnt/tnt_vec.h
intern/tnt/tnt_version.h intern/tnt/tnt_version.h
) )
set(LIB set(LIB
@@ -84,16 +84,16 @@ set(LIB
add_definitions(-DDDF_DEBUG=0) add_definitions(-DDDF_DEBUG=0)
if(WITH_OPENMP) if(WITH_OPENMP)
add_definitions(-DPARALLEL=1) add_definitions(-DPARALLEL=1)
else() else()
add_definitions(-DPARALLEL=0) add_definitions(-DPARALLEL=0)
endif() endif()
if(WITH_FFTW3) if(WITH_FFTW3)
add_definitions(-DWITH_FFTW3) add_definitions(-DWITH_FFTW3)
list(APPEND INC_SYS list(APPEND INC_SYS
${FFTW3_INCLUDE_DIRS} ${FFTW3_INCLUDE_DIRS}
) )
endif() endif()
blender_add_lib(bf_intern_smoke "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") blender_add_lib(bf_intern_smoke "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")

View File

@@ -27,10 +27,10 @@ include_directories(${ZLIB_INCLUDE})
#Can manually add the sources using the set command as follows: #Can manually add the sources using the set command as follows:
set(SRC set(SRC
src/BlenderThumb.cpp src/BlenderThumb.cpp
src/BlendThumb.def src/BlendThumb.def
src/BlendThumb.rc src/BlendThumb.rc
src/Dll.cpp src/Dll.cpp
) )
add_library(BlendThumb SHARED ${SRC}) add_library(BlendThumb SHARED ${SRC})

View File

@@ -1,7 +1,7 @@
# Python CTests # Python CTests
if(WITH_BLENDER AND WITH_PYTHON) if(WITH_BLENDER AND WITH_PYTHON)
add_subdirectory(python) add_subdirectory(python)
endif() endif()
# GTest # GTest

View File

@@ -30,19 +30,19 @@ set(TEST_OUT_DIR ${CMAKE_BINARY_DIR}/tests)
# ugh, any better way to do this on testing only? # ugh, any better way to do this on testing only?
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${TEST_OUT_DIR}) execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${TEST_OUT_DIR})
#~ if(NOT IS_DIRECTORY ${TEST_SRC_DIR}) #~ if(NOT IS_DIRECTORY ${TEST_SRC_DIR})
#~ message(FATAL_ERROR "CMake test directory not found!") #~ message(FATAL_ERROR "CMake test directory not found!")
#~ endif() #~ endif()
# all calls to blender use this # all calls to blender use this
if(APPLE) if(APPLE)
if(${CMAKE_GENERATOR} MATCHES "Xcode") if(${CMAKE_GENERATOR} MATCHES "Xcode")
set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup) set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup)
else() else()
set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup --env-system-scripts ${CMAKE_SOURCE_DIR}/release/scripts) set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup --env-system-scripts ${CMAKE_SOURCE_DIR}/release/scripts)
endif() endif()
else() else()
set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup --env-system-scripts ${CMAKE_SOURCE_DIR}/release/scripts) set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup --env-system-scripts ${CMAKE_SOURCE_DIR}/release/scripts)
endif() endif()
# for testing with valgrind prefix: valgrind --track-origins=yes --error-limit=no # for testing with valgrind prefix: valgrind --track-origins=yes --error-limit=no
@@ -53,94 +53,94 @@ endif()
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# GENERAL PYTHON CORRECTNESS TESTS # GENERAL PYTHON CORRECTNESS TESTS
add_test( add_test(
NAME script_load_keymap NAME script_load_keymap
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_keymap_completeness.py --python ${CMAKE_CURRENT_LIST_DIR}/bl_keymap_completeness.py
) )
add_test( add_test(
NAME script_load_addons NAME script_load_addons
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_load_addons.py --python ${CMAKE_CURRENT_LIST_DIR}/bl_load_addons.py
) )
add_test( add_test(
NAME script_load_modules NAME script_load_modules
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_load_py_modules.py --python ${CMAKE_CURRENT_LIST_DIR}/bl_load_py_modules.py
) )
# test running operators doesn't segfault under various conditions # test running operators doesn't segfault under various conditions
if(USE_EXPERIMENTAL_TESTS) if(USE_EXPERIMENTAL_TESTS)
add_test( add_test(
NAME script_run_operators NAME script_run_operators
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_run_operators.py --python ${CMAKE_CURRENT_LIST_DIR}/bl_run_operators.py
) )
endif() endif()
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# PY API TESTS # PY API TESTS
add_test( add_test(
NAME script_pyapi_bpy_path NAME script_pyapi_bpy_path
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_pyapi_bpy_path.py --python ${CMAKE_CURRENT_LIST_DIR}/bl_pyapi_bpy_path.py
) )
add_test( add_test(
NAME script_pyapi_bpy_utils_units NAME script_pyapi_bpy_utils_units
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_pyapi_bpy_utils_units.py --python ${CMAKE_CURRENT_LIST_DIR}/bl_pyapi_bpy_utils_units.py
) )
add_test( add_test(
NAME script_pyapi_mathutils NAME script_pyapi_mathutils
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_pyapi_mathutils.py --python ${CMAKE_CURRENT_LIST_DIR}/bl_pyapi_mathutils.py
) )
add_test( add_test(
NAME script_pyapi_idprop NAME script_pyapi_idprop
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_pyapi_idprop.py --python ${CMAKE_CURRENT_LIST_DIR}/bl_pyapi_idprop.py
) )
add_test( add_test(
NAME script_pyapi_idprop_datablock NAME script_pyapi_idprop_datablock
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_pyapi_idprop_datablock.py --python ${CMAKE_CURRENT_LIST_DIR}/bl_pyapi_idprop_datablock.py
) )
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# MODELING TESTS # MODELING TESTS
add_test( add_test(
NAME bmesh_bevel NAME bmesh_bevel
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/modeling/bevel_regression.blend ${TEST_SRC_DIR}/modeling/bevel_regression.blend
--python-text run_tests --python-text run_tests
) )
add_test( add_test(
NAME bmesh_boolean NAME bmesh_boolean
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/modeling/bool_regression.blend ${TEST_SRC_DIR}/modeling/bool_regression.blend
--python-text run_tests --python-text run_tests
) )
add_test( add_test(
NAME bmesh_split_faces NAME bmesh_split_faces
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/modeling/split_faces_test.blend ${TEST_SRC_DIR}/modeling/split_faces_test.blend
--python-text run_tests --python-text run_tests
) )
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# MODIFIERS TESTS # MODIFIERS TESTS
add_test( add_test(
NAME object_modifier_array NAME object_modifier_array
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/modifier_stack/array_test.blend ${TEST_SRC_DIR}/modifier_stack/array_test.blend
--python-text run_tests --python-text run_tests
) )
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
@@ -150,67 +150,67 @@ add_test(
# disabled until updated & working # disabled until updated & working
if(FALSE) if(FALSE)
add_test( add_test(
NAME import_obj_cube NAME import_obj_cube
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_scene.obj\(filepath='${TEST_SRC_DIR}/io_tests/obj/cube.obj'\) --run={'FINISHED'}&bpy.ops.import_scene.obj\(filepath='${TEST_SRC_DIR}/io_tests/obj/cube.obj'\)
--md5=39cce4bacac2d1b18fc470380279bc15 --md5_method=SCENE --md5=39cce4bacac2d1b18fc470380279bc15 --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_obj_cube.blend --write-blend=${TEST_OUT_DIR}/import_obj_cube.blend
) )
add_test( add_test(
NAME import_obj_nurbs_cyclic NAME import_obj_nurbs_cyclic
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_scene.obj\(filepath='${TEST_SRC_DIR}/io_tests/obj/nurbs_cyclic.obj'\) --run={'FINISHED'}&bpy.ops.import_scene.obj\(filepath='${TEST_SRC_DIR}/io_tests/obj/nurbs_cyclic.obj'\)
--md5=ad3c307e5883224a0492378cd32691ab --md5_method=SCENE --md5=ad3c307e5883224a0492378cd32691ab --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_obj_nurbs_cyclic.blend --write-blend=${TEST_OUT_DIR}/import_obj_nurbs_cyclic.blend
) )
add_test( add_test(
NAME import_obj_makehuman NAME import_obj_makehuman
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_scene.obj\(filepath='${TEST_SRC_DIR}/io_tests/obj/makehuman.obj'\) --run={'FINISHED'}&bpy.ops.import_scene.obj\(filepath='${TEST_SRC_DIR}/io_tests/obj/makehuman.obj'\)
--md5=c9f78b185e58358daa4ecaecfa75464e --md5_method=SCENE --md5=c9f78b185e58358daa4ecaecfa75464e --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_obj_makehuman.blend --write-blend=${TEST_OUT_DIR}/import_obj_makehuman.blend
) )
endif() endif()
# OBJ Export tests # OBJ Export tests
add_test( add_test(
NAME export_obj_cube NAME export_obj_cube
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/all_quads.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/all_quads.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.obj\(filepath='${TEST_OUT_DIR}/export_obj_cube.obj',use_selection=False\) --run={'FINISHED'}&bpy.ops.export_scene.obj\(filepath='${TEST_OUT_DIR}/export_obj_cube.obj',use_selection=False\)
--md5_source=${TEST_OUT_DIR}/export_obj_cube.obj --md5_source=${TEST_OUT_DIR}/export_obj_cube.obj
--md5_source=${TEST_OUT_DIR}/export_obj_cube.mtl --md5_source=${TEST_OUT_DIR}/export_obj_cube.mtl
--md5=95832f81160f07101dc566cb286a9f76 --md5_method=FILE --md5=95832f81160f07101dc566cb286a9f76 --md5_method=FILE
) )
add_test( add_test(
NAME export_obj_nurbs NAME export_obj_nurbs
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/nurbs.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/nurbs.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.obj\(filepath='${TEST_OUT_DIR}/export_obj_nurbs.obj',use_selection=False,use_nurbs=True\) --run={'FINISHED'}&bpy.ops.export_scene.obj\(filepath='${TEST_OUT_DIR}/export_obj_nurbs.obj',use_selection=False,use_nurbs=True\)
--md5_source=${TEST_OUT_DIR}/export_obj_nurbs.obj --md5_source=${TEST_OUT_DIR}/export_obj_nurbs.obj
--md5_source=${TEST_OUT_DIR}/export_obj_nurbs.mtl --md5_source=${TEST_OUT_DIR}/export_obj_nurbs.mtl
--md5=a733ae4fa4a591ea9b0912da3af042de --md5_method=FILE --md5=a733ae4fa4a591ea9b0912da3af042de --md5_method=FILE
) )
# disabled until updated & working # disabled until updated & working
if(FALSE) if(FALSE)
add_test( add_test(
NAME export_obj_all_objects NAME export_obj_all_objects
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_scene/all_objects.blend ${TEST_SRC_DIR}/io_tests/blend_scene/all_objects.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.obj\(filepath='${TEST_OUT_DIR}/export_obj_all_objects.obj',use_selection=False,use_nurbs=True\) --run={'FINISHED'}&bpy.ops.export_scene.obj\(filepath='${TEST_OUT_DIR}/export_obj_all_objects.obj',use_selection=False,use_nurbs=True\)
--md5_source=${TEST_OUT_DIR}/export_obj_all_objects.obj --md5_source=${TEST_OUT_DIR}/export_obj_all_objects.obj
--md5_source=${TEST_OUT_DIR}/export_obj_all_objects.mtl --md5_source=${TEST_OUT_DIR}/export_obj_all_objects.mtl
--md5=04b3ed97cede07a19548fc518ce9f8ca --md5_method=FILE --md5=04b3ed97cede07a19548fc518ce9f8ca --md5_method=FILE
) )
endif() endif()
@@ -218,64 +218,64 @@ endif()
# PLY Import tests # PLY Import tests
add_test( add_test(
NAME import_ply_cube NAME import_ply_cube
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_mesh.ply\(filepath='${TEST_SRC_DIR}/io_tests/ply/cube_ascii.ply'\) --run={'FINISHED'}&bpy.ops.import_mesh.ply\(filepath='${TEST_SRC_DIR}/io_tests/ply/cube_ascii.ply'\)
--md5=527134343c27fc0ea73115b85fbfd3ac --md5_method=SCENE --md5=527134343c27fc0ea73115b85fbfd3ac --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_ply_cube.blend --write-blend=${TEST_OUT_DIR}/import_ply_cube.blend
) )
add_test( add_test(
NAME import_ply_bunny NAME import_ply_bunny
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_mesh.ply\(filepath='${TEST_SRC_DIR}/io_tests/ply/bunny2.ply'\) --run={'FINISHED'}&bpy.ops.import_mesh.ply\(filepath='${TEST_SRC_DIR}/io_tests/ply/bunny2.ply'\)
--md5=6ea5b8533400a17accf928b8fd024eaa --md5_method=SCENE --md5=6ea5b8533400a17accf928b8fd024eaa --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_ply_bunny.blend --write-blend=${TEST_OUT_DIR}/import_ply_bunny.blend
) )
add_test( add_test(
NAME import_ply_small_holes NAME import_ply_small_holes
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_mesh.ply\(filepath='${TEST_SRC_DIR}/io_tests/ply/many_small_holes.ply'\) --run={'FINISHED'}&bpy.ops.import_mesh.ply\(filepath='${TEST_SRC_DIR}/io_tests/ply/many_small_holes.ply'\)
--md5=c3093e26ecae5b6d59fbbcf2a0d0b39f --md5_method=SCENE --md5=c3093e26ecae5b6d59fbbcf2a0d0b39f --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_ply_small_holes.blend --write-blend=${TEST_OUT_DIR}/import_ply_small_holes.blend
) )
# PLY Export # PLY Export
# disabled until updated & working # disabled until updated & working
if(FALSE) if(FALSE)
add_test( add_test(
NAME export_ply_cube_all_data NAME export_ply_cube_all_data
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/cube_all_data.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/cube_all_data.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_mesh.ply\(filepath='${TEST_OUT_DIR}/export_ply_cube_all_data.ply'\) --run={'FINISHED'}&bpy.ops.export_mesh.ply\(filepath='${TEST_OUT_DIR}/export_ply_cube_all_data.ply'\)
--md5_source=${TEST_OUT_DIR}/export_ply_cube_all_data.ply --md5_source=${TEST_OUT_DIR}/export_ply_cube_all_data.ply
--md5=6adc3748ceae8298496f99d0e7e76c15 --md5_method=FILE --md5=6adc3748ceae8298496f99d0e7e76c15 --md5_method=FILE
) )
add_test( add_test(
NAME export_ply_suzanne_all_data NAME export_ply_suzanne_all_data
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/suzanne_all_data.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/suzanne_all_data.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_mesh.ply\(filepath='${TEST_OUT_DIR}/export_ply_suzanne_all_data.ply'\) --run={'FINISHED'}&bpy.ops.export_mesh.ply\(filepath='${TEST_OUT_DIR}/export_ply_suzanne_all_data.ply'\)
--md5_source=${TEST_OUT_DIR}/export_ply_suzanne_all_data.ply --md5_source=${TEST_OUT_DIR}/export_ply_suzanne_all_data.ply
--md5=68ba23f02efd6511bfd093f45f703221 --md5_method=FILE --md5=68ba23f02efd6511bfd093f45f703221 --md5_method=FILE
) )
endif() endif()
add_test( add_test(
NAME export_ply_vertices # lame, add a better one NAME export_ply_vertices # lame, add a better one
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/vertices.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/vertices.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_mesh.ply\(filepath='${TEST_OUT_DIR}/export_ply_vertices.ply'\) --run={'FINISHED'}&bpy.ops.export_mesh.ply\(filepath='${TEST_OUT_DIR}/export_ply_vertices.ply'\)
--md5_source=${TEST_OUT_DIR}/export_ply_vertices.ply --md5_source=${TEST_OUT_DIR}/export_ply_vertices.ply
--md5=37faba0aa2014451b27f951afa92f870 --md5_method=FILE --md5=37faba0aa2014451b27f951afa92f870 --md5_method=FILE
) )
@@ -283,30 +283,30 @@ add_test(
# disabled until updated & working # disabled until updated & working
if(FALSE) if(FALSE)
add_test( add_test(
NAME import_stl_cube NAME import_stl_cube
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_mesh.stl\(filepath='${TEST_SRC_DIR}/io_tests/stl/cube.stl'\) --run={'FINISHED'}&bpy.ops.import_mesh.stl\(filepath='${TEST_SRC_DIR}/io_tests/stl/cube.stl'\)
--md5=8ceb5bb7e1cb5f4342fa1669988c66b4 --md5_method=SCENE --md5=8ceb5bb7e1cb5f4342fa1669988c66b4 --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_stl_cube.blend --write-blend=${TEST_OUT_DIR}/import_stl_cube.blend
) )
add_test( add_test(
NAME import_stl_conrod NAME import_stl_conrod
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_mesh.stl\(filepath='${TEST_SRC_DIR}/io_tests/stl/conrod.stl'\) --run={'FINISHED'}&bpy.ops.import_mesh.stl\(filepath='${TEST_SRC_DIR}/io_tests/stl/conrod.stl'\)
--md5=690a4b8eb9002dcd8631c5a575ea7348 --md5_method=SCENE --md5=690a4b8eb9002dcd8631c5a575ea7348 --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_stl_conrod.blend --write-blend=${TEST_OUT_DIR}/import_stl_conrod.blend
) )
add_test( add_test(
NAME import_stl_knot_max_simplified NAME import_stl_knot_max_simplified
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_mesh.stl\(filepath='${TEST_SRC_DIR}/io_tests/stl/knot_max_simplified.stl'\) --run={'FINISHED'}&bpy.ops.import_mesh.stl\(filepath='${TEST_SRC_DIR}/io_tests/stl/knot_max_simplified.stl'\)
--md5=baf82803f45a84ec4ddbad9cef57dd3e --md5_method=SCENE --md5=baf82803f45a84ec4ddbad9cef57dd3e --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_stl_knot_max_simplified.blend --write-blend=${TEST_OUT_DIR}/import_stl_knot_max_simplified.blend
) )
endif() endif()
@@ -314,33 +314,33 @@ endif()
# disabled until updated & working # disabled until updated & working
if(FALSE) if(FALSE)
add_test( add_test(
NAME export_stl_cube_all_data NAME export_stl_cube_all_data
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/cube_all_data.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/cube_all_data.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_mesh.stl\(filepath='${TEST_OUT_DIR}/export_stl_cube_all_data.stl'\) --run={'FINISHED'}&bpy.ops.export_mesh.stl\(filepath='${TEST_OUT_DIR}/export_stl_cube_all_data.stl'\)
--md5_source=${TEST_OUT_DIR}/export_stl_cube_all_data.stl --md5_source=${TEST_OUT_DIR}/export_stl_cube_all_data.stl
--md5=64cb97c0cabb015e1c3f76369835075a --md5_method=FILE --md5=64cb97c0cabb015e1c3f76369835075a --md5_method=FILE
) )
add_test( add_test(
NAME export_stl_suzanne_all_data NAME export_stl_suzanne_all_data
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/suzanne_all_data.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/suzanne_all_data.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_mesh.stl\(filepath='${TEST_OUT_DIR}/export_stl_suzanne_all_data.stl'\) --run={'FINISHED'}&bpy.ops.export_mesh.stl\(filepath='${TEST_OUT_DIR}/export_stl_suzanne_all_data.stl'\)
--md5_source=${TEST_OUT_DIR}/export_stl_suzanne_all_data.stl --md5_source=${TEST_OUT_DIR}/export_stl_suzanne_all_data.stl
--md5=e9b23c97c139ad64961c635105bb9192 --md5_method=FILE --md5=e9b23c97c139ad64961c635105bb9192 --md5_method=FILE
) )
add_test( add_test(
NAME export_stl_vertices # lame, add a better one NAME export_stl_vertices # lame, add a better one
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/vertices.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/vertices.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_mesh.stl\(filepath='${TEST_OUT_DIR}/export_stl_vertices.stl'\) --run={'FINISHED'}&bpy.ops.export_mesh.stl\(filepath='${TEST_OUT_DIR}/export_stl_vertices.stl'\)
--md5_source=${TEST_OUT_DIR}/export_stl_vertices.stl --md5_source=${TEST_OUT_DIR}/export_stl_vertices.stl
--md5=3fd3c877e573beeebc782532cc005820 --md5_method=FILE --md5=3fd3c877e573beeebc782532cc005820 --md5_method=FILE
) )
endif() endif()
@@ -349,61 +349,61 @@ endif()
# disabled until updated & working # disabled until updated & working
if(FALSE) if(FALSE)
add_test( add_test(
NAME import_x3d_cube NAME import_x3d_cube
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_scene.x3d\(filepath='${TEST_SRC_DIR}/io_tests/x3d/color_cube.x3d'\) --run={'FINISHED'}&bpy.ops.import_scene.x3d\(filepath='${TEST_SRC_DIR}/io_tests/x3d/color_cube.x3d'\)
--md5=3fae9be004199c145941cd3f9f80ad7b --md5_method=SCENE --md5=3fae9be004199c145941cd3f9f80ad7b --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_x3d_cube.blend --write-blend=${TEST_OUT_DIR}/import_x3d_cube.blend
) )
add_test( add_test(
NAME import_x3d_teapot NAME import_x3d_teapot
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_scene.x3d\(filepath='${TEST_SRC_DIR}/io_tests/x3d/teapot.x3d'\) --run={'FINISHED'}&bpy.ops.import_scene.x3d\(filepath='${TEST_SRC_DIR}/io_tests/x3d/teapot.x3d'\)
--md5=8ee196c71947dce4199d55698501691e --md5_method=SCENE --md5=8ee196c71947dce4199d55698501691e --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_x3d_teapot.blend --write-blend=${TEST_OUT_DIR}/import_x3d_teapot.blend
) )
add_test( add_test(
NAME import_x3d_suzanne_material NAME import_x3d_suzanne_material
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_scene.x3d\(filepath='${TEST_SRC_DIR}/io_tests/x3d/suzanne_material.x3d'\) --run={'FINISHED'}&bpy.ops.import_scene.x3d\(filepath='${TEST_SRC_DIR}/io_tests/x3d/suzanne_material.x3d'\)
--md5=3edea1353257d8b5a5f071942f417be6 --md5_method=SCENE --md5=3edea1353257d8b5a5f071942f417be6 --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_x3d_suzanne_material.blend --write-blend=${TEST_OUT_DIR}/import_x3d_suzanne_material.blend
) )
# X3D Export # X3D Export
add_test( add_test(
NAME export_x3d_cube NAME export_x3d_cube
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/all_quads.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/all_quads.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_cube.x3d',use_selection=False\) --run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_cube.x3d',use_selection=False\)
--md5_source=${TEST_OUT_DIR}/export_x3d_cube.x3d --md5_source=${TEST_OUT_DIR}/export_x3d_cube.x3d
--md5=05312d278fe41da33560fdfb9bdb268f --md5_method=FILE --md5=05312d278fe41da33560fdfb9bdb268f --md5_method=FILE
) )
add_test( add_test(
NAME export_x3d_nurbs NAME export_x3d_nurbs
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/nurbs.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/nurbs.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_nurbs.x3d',use_selection=False\) --run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_nurbs.x3d',use_selection=False\)
--md5_source=${TEST_OUT_DIR}/export_x3d_nurbs.x3d --md5_source=${TEST_OUT_DIR}/export_x3d_nurbs.x3d
--md5=4286d4a2aa507ef78b22ddcbdcc88481 --md5_method=FILE --md5=4286d4a2aa507ef78b22ddcbdcc88481 --md5_method=FILE
) )
add_test( add_test(
NAME export_x3d_all_objects NAME export_x3d_all_objects
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_scene/all_objects.blend ${TEST_SRC_DIR}/io_tests/blend_scene/all_objects.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_all_objects.x3d',use_selection=False\) --run={'FINISHED'}&bpy.ops.export_scene.x3d\(filepath='${TEST_OUT_DIR}/export_x3d_all_objects.x3d',use_selection=False\)
--md5_source=${TEST_OUT_DIR}/export_x3d_all_objects.x3d --md5_source=${TEST_OUT_DIR}/export_x3d_all_objects.x3d
--md5=f5f9fa4c5619a0eeab66685aafd2f7f0 --md5_method=FILE --md5=f5f9fa4c5619a0eeab66685aafd2f7f0 --md5_method=FILE
) )
endif() endif()
@@ -413,30 +413,30 @@ endif()
# disabled until updated & working # disabled until updated & working
if(FALSE) if(FALSE)
add_test( add_test(
NAME import_3ds_cube NAME import_3ds_cube
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_scene.autodesk_3ds\(filepath='${TEST_SRC_DIR}/io_tests/3ds/cube.3ds'\) --run={'FINISHED'}&bpy.ops.import_scene.autodesk_3ds\(filepath='${TEST_SRC_DIR}/io_tests/3ds/cube.3ds'\)
--md5=cb5a45c35a343c3f5beca2a918472951 --md5_method=SCENE --md5=cb5a45c35a343c3f5beca2a918472951 --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_3ds_cube.blend --write-blend=${TEST_OUT_DIR}/import_3ds_cube.blend
) )
add_test( add_test(
NAME import_3ds_hierarchy_lara NAME import_3ds_hierarchy_lara
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_scene.autodesk_3ds\(filepath='${TEST_SRC_DIR}/io_tests/3ds/hierarchy_lara.3ds'\) --run={'FINISHED'}&bpy.ops.import_scene.autodesk_3ds\(filepath='${TEST_SRC_DIR}/io_tests/3ds/hierarchy_lara.3ds'\)
--md5=766c873d9fdb5f190e43796cfbae63b6 --md5_method=SCENE --md5=766c873d9fdb5f190e43796cfbae63b6 --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_3ds_hierarchy_lara.blend --write-blend=${TEST_OUT_DIR}/import_3ds_hierarchy_lara.blend
) )
add_test( add_test(
NAME import_3ds_hierarchy_greek_trireme NAME import_3ds_hierarchy_greek_trireme
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.import_scene.autodesk_3ds\(filepath='${TEST_SRC_DIR}/io_tests/3ds/hierarchy_greek_trireme.3ds'\) --run={'FINISHED'}&bpy.ops.import_scene.autodesk_3ds\(filepath='${TEST_SRC_DIR}/io_tests/3ds/hierarchy_greek_trireme.3ds'\)
--md5=b62ee30101e8999cb91ef4f8a8760056 --md5_method=SCENE --md5=b62ee30101e8999cb91ef4f8a8760056 --md5_method=SCENE
--write-blend=${TEST_OUT_DIR}/import_3ds_hierarchy_greek_trireme.blend --write-blend=${TEST_OUT_DIR}/import_3ds_hierarchy_greek_trireme.blend
) )
endif() endif()
@@ -444,33 +444,33 @@ endif()
# disabled until updated & working # disabled until updated & working
if(FALSE) if(FALSE)
add_test( add_test(
NAME export_3ds_cube NAME export_3ds_cube
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/all_quads.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/all_quads.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.autodesk_3ds\(filepath='${TEST_OUT_DIR}/export_3ds_cube.3ds',use_selection=False\) --run={'FINISHED'}&bpy.ops.export_scene.autodesk_3ds\(filepath='${TEST_OUT_DIR}/export_3ds_cube.3ds',use_selection=False\)
--md5_source=${TEST_OUT_DIR}/export_3ds_cube.3ds --md5_source=${TEST_OUT_DIR}/export_3ds_cube.3ds
--md5=a31f5071b6c6dc7445b9099cdc7f63b3 --md5_method=FILE --md5=a31f5071b6c6dc7445b9099cdc7f63b3 --md5_method=FILE
) )
add_test( add_test(
NAME export_3ds_nurbs NAME export_3ds_nurbs
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/nurbs.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/nurbs.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.autodesk_3ds\(filepath='${TEST_OUT_DIR}/export_3ds_nurbs.3ds',use_selection=False\) --run={'FINISHED'}&bpy.ops.export_scene.autodesk_3ds\(filepath='${TEST_OUT_DIR}/export_3ds_nurbs.3ds',use_selection=False\)
--md5_source=${TEST_OUT_DIR}/export_3ds_nurbs.3ds --md5_source=${TEST_OUT_DIR}/export_3ds_nurbs.3ds
--md5=5bdd21be3c80d814fbc83cb25edb08c2 --md5_method=FILE --md5=5bdd21be3c80d814fbc83cb25edb08c2 --md5_method=FILE
) )
add_test( add_test(
NAME export_3ds_all_objects NAME export_3ds_all_objects
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_scene/all_objects.blend ${TEST_SRC_DIR}/io_tests/blend_scene/all_objects.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.autodesk_3ds\(filepath='${TEST_OUT_DIR}/export_3ds_all_objects.3ds',use_selection=False\) --run={'FINISHED'}&bpy.ops.export_scene.autodesk_3ds\(filepath='${TEST_OUT_DIR}/export_3ds_all_objects.3ds',use_selection=False\)
--md5_source=${TEST_OUT_DIR}/export_3ds_all_objects.3ds --md5_source=${TEST_OUT_DIR}/export_3ds_all_objects.3ds
--md5=68447761ab0ca38e1e22e7c177ed48a8 --md5_method=FILE --md5=68447761ab0ca38e1e22e7c177ed48a8 --md5_method=FILE
) )
endif() endif()
@@ -481,160 +481,160 @@ endif()
# disabled until updated & working # disabled until updated & working
if(FALSE) if(FALSE)
add_test( add_test(
NAME export_fbx_cube NAME export_fbx_cube
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/all_quads.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/all_quads.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_cube.fbx',use_selection=False,use_metadata=False\) --run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_cube.fbx',use_selection=False,use_metadata=False\)
--md5_source=${TEST_OUT_DIR}/export_fbx_cube.fbx --md5_source=${TEST_OUT_DIR}/export_fbx_cube.fbx
--md5=59a35577462f95f9a0b4e6035226ce9b --md5_method=FILE --md5=59a35577462f95f9a0b4e6035226ce9b --md5_method=FILE
) )
add_test( add_test(
NAME export_fbx_nurbs NAME export_fbx_nurbs
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_geometry/nurbs.blend ${TEST_SRC_DIR}/io_tests/blend_geometry/nurbs.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_nurbs.fbx',use_selection=False,use_metadata=False\) --run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_nurbs.fbx',use_selection=False,use_metadata=False\)
--md5_source=${TEST_OUT_DIR}/export_fbx_nurbs.fbx --md5_source=${TEST_OUT_DIR}/export_fbx_nurbs.fbx
--md5=d31875f18f613fa0c3b16e978f87f6f8 --md5_method=FILE --md5=d31875f18f613fa0c3b16e978f87f6f8 --md5_method=FILE
) )
add_test( add_test(
NAME export_fbx_all_objects NAME export_fbx_all_objects
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
${TEST_SRC_DIR}/io_tests/blend_scene/all_objects.blend ${TEST_SRC_DIR}/io_tests/blend_scene/all_objects.blend
--python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py -- --python ${CMAKE_CURRENT_LIST_DIR}/bl_test.py --
--run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_all_objects.fbx',use_selection=False,use_metadata=False\) --run={'FINISHED'}&bpy.ops.export_scene.fbx\(filepath='${TEST_OUT_DIR}/export_fbx_all_objects.fbx',use_selection=False,use_metadata=False\)
--md5_source=${TEST_OUT_DIR}/export_fbx_all_objects.fbx --md5_source=${TEST_OUT_DIR}/export_fbx_all_objects.fbx
--md5=b35eb2a9d0e73762ecae2278c25a38ac --md5_method=FILE --md5=b35eb2a9d0e73762ecae2278c25a38ac --md5_method=FILE
) )
endif() endif()
# Run Python script outside Blender. # Run Python script outside Blender.
function(add_python_test testname testscript) function(add_python_test testname testscript)
if(MSVC) if(MSVC)
add_test( add_test(
NAME ${testname} NAME ${testname}
COMMAND COMMAND
"$<TARGET_FILE_DIR:blender>/${BLENDER_VERSION_MAJOR}.${BLENDER_VERSION_MINOR}/python/bin/python$<$<CONFIG:Debug>:_d>" "$<TARGET_FILE_DIR:blender>/${BLENDER_VERSION_MAJOR}.${BLENDER_VERSION_MINOR}/python/bin/python$<$<CONFIG:Debug>:_d>"
${testscript} ${ARGN} ${testscript} ${ARGN}
) )
else() else()
add_test( add_test(
NAME ${testname} NAME ${testname}
COMMAND ${testscript} ${ARGN} COMMAND ${testscript} ${ARGN}
) )
endif() endif()
endfunction() endfunction()
if(OPENIMAGEIO_IDIFF AND EXISTS "${TEST_SRC_DIR}/render/ctests/shader") if(OPENIMAGEIO_IDIFF AND EXISTS "${TEST_SRC_DIR}/render/ctests/shader")
macro(add_cycles_render_test subject) macro(add_cycles_render_test subject)
if(WITH_CYCLES) if(WITH_CYCLES)
add_python_test( add_python_test(
cycles_${subject} cycles_${subject}
${CMAKE_CURRENT_LIST_DIR}/cycles_render_tests.py ${CMAKE_CURRENT_LIST_DIR}/cycles_render_tests.py
-blender "$<TARGET_FILE:blender>" -blender "$<TARGET_FILE:blender>"
-testdir "${TEST_SRC_DIR}/render/ctests/${subject}" -testdir "${TEST_SRC_DIR}/render/ctests/${subject}"
-idiff "${OPENIMAGEIO_IDIFF}" -idiff "${OPENIMAGEIO_IDIFF}"
-outdir "${TEST_OUT_DIR}/cycles" -outdir "${TEST_OUT_DIR}/cycles"
) )
endif() endif()
if(WITH_OPENGL_RENDER_TESTS AND (NOT ${subject} MATCHES "bake")) if(WITH_OPENGL_RENDER_TESTS AND (NOT ${subject} MATCHES "bake"))
add_python_test( add_python_test(
eevee_${subject}_test eevee_${subject}_test
${CMAKE_CURRENT_LIST_DIR}/eevee_render_tests.py ${CMAKE_CURRENT_LIST_DIR}/eevee_render_tests.py
-blender "$<TARGET_FILE:blender>" -blender "$<TARGET_FILE:blender>"
-testdir "${TEST_SRC_DIR}/render/ctests/${subject}" -testdir "${TEST_SRC_DIR}/render/ctests/${subject}"
-idiff "${OPENIMAGEIO_IDIFF}" -idiff "${OPENIMAGEIO_IDIFF}"
-outdir "${TEST_OUT_DIR}/eevee" -outdir "${TEST_OUT_DIR}/eevee"
) )
endif() endif()
endmacro() endmacro()
add_cycles_render_test(bake) add_cycles_render_test(bake)
add_cycles_render_test(bsdf) add_cycles_render_test(bsdf)
add_cycles_render_test(denoise) add_cycles_render_test(denoise)
add_cycles_render_test(denoise_animation) add_cycles_render_test(denoise_animation)
add_cycles_render_test(displacement) add_cycles_render_test(displacement)
add_cycles_render_test(hair) add_cycles_render_test(hair)
add_cycles_render_test(image_data_types) add_cycles_render_test(image_data_types)
add_cycles_render_test(image_mapping) add_cycles_render_test(image_mapping)
add_cycles_render_test(image_texture_limit) add_cycles_render_test(image_texture_limit)
add_cycles_render_test(integrator) add_cycles_render_test(integrator)
add_cycles_render_test(light) add_cycles_render_test(light)
add_cycles_render_test(mesh) add_cycles_render_test(mesh)
add_cycles_render_test(motion_blur) add_cycles_render_test(motion_blur)
add_cycles_render_test(render_layer) add_cycles_render_test(render_layer)
add_cycles_render_test(reports) add_cycles_render_test(reports)
add_cycles_render_test(shader) add_cycles_render_test(shader)
add_cycles_render_test(shadow_catcher) add_cycles_render_test(shadow_catcher)
add_cycles_render_test(sss) add_cycles_render_test(sss)
add_cycles_render_test(volume) add_cycles_render_test(volume)
elseif(WITH_CYCLES) elseif(WITH_CYCLES)
MESSAGE(STATUS "Disabling Cycles tests because tests folder does not exist") MESSAGE(STATUS "Disabling Cycles tests because tests folder does not exist")
endif() endif()
if(WITH_OPENGL_DRAW_TESTS) if(WITH_OPENGL_DRAW_TESTS)
if(OPENIMAGEIO_IDIFF AND EXISTS "${TEST_SRC_DIR}/opengl") if(OPENIMAGEIO_IDIFF AND EXISTS "${TEST_SRC_DIR}/opengl")
# Use all subdirectories of opengl folder. # Use all subdirectories of opengl folder.
file(GLOB children RELATIVE ${TEST_SRC_DIR}/opengl ${TEST_SRC_DIR}/opengl/*) file(GLOB children RELATIVE ${TEST_SRC_DIR}/opengl ${TEST_SRC_DIR}/opengl/*)
foreach(child ${children}) foreach(child ${children})
# Resolve symlinks, useful to test production files with linked libraries. # Resolve symlinks, useful to test production files with linked libraries.
get_filename_component(child_path ${TEST_SRC_DIR}/opengl/${child} REALPATH) get_filename_component(child_path ${TEST_SRC_DIR}/opengl/${child} REALPATH)
if(IS_DIRECTORY ${child_path}) if(IS_DIRECTORY ${child_path})
file(GLOB_RECURSE blends "${child_path}/*.blend") file(GLOB_RECURSE blends "${child_path}/*.blend")
if(blends) if(blends)
add_python_test( add_python_test(
opengl_draw_${child} opengl_draw_${child}
${CMAKE_CURRENT_LIST_DIR}/opengl_draw_tests.py ${CMAKE_CURRENT_LIST_DIR}/opengl_draw_tests.py
-blender "$<TARGET_FILE:blender>" -blender "$<TARGET_FILE:blender>"
-testdir "${child_path}" -testdir "${child_path}"
-idiff "${OPENIMAGEIO_IDIFF}" -idiff "${OPENIMAGEIO_IDIFF}"
-outdir "${TEST_OUT_DIR}/opengl_draw" -outdir "${TEST_OUT_DIR}/opengl_draw"
) )
endif() endif()
endif() endif()
endforeach() endforeach()
else() else()
MESSAGE(STATUS "Disabling OpenGL tests because tests folder does not exist") MESSAGE(STATUS "Disabling OpenGL tests because tests folder does not exist")
endif() endif()
endif() endif()
if(WITH_ALEMBIC) if(WITH_ALEMBIC)
find_package_wrapper(Alembic) find_package_wrapper(Alembic)
if(NOT ALEMBIC_FOUND) if(NOT ALEMBIC_FOUND)
message(FATAL_ERROR "Alembic is enabled but cannot be found") message(FATAL_ERROR "Alembic is enabled but cannot be found")
endif() endif()
get_filename_component(real_include_dir ${ALEMBIC_INCLUDE_DIR} REALPATH) get_filename_component(real_include_dir ${ALEMBIC_INCLUDE_DIR} REALPATH)
get_filename_component(ALEMBIC_ROOT_DIR ${real_include_dir} DIRECTORY) get_filename_component(ALEMBIC_ROOT_DIR ${real_include_dir} DIRECTORY)
add_python_test( add_python_test(
alembic_tests alembic_tests
${CMAKE_CURRENT_LIST_DIR}/alembic_tests.py ${CMAKE_CURRENT_LIST_DIR}/alembic_tests.py
--blender "$<TARGET_FILE:blender>" --blender "$<TARGET_FILE:blender>"
--testdir "${TEST_SRC_DIR}/alembic" --testdir "${TEST_SRC_DIR}/alembic"
--alembic-root "${ALEMBIC_ROOT_DIR}" --alembic-root "${ALEMBIC_ROOT_DIR}"
) )
add_test( add_test(
NAME script_alembic_import NAME script_alembic_import
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS}
--python ${CMAKE_CURRENT_LIST_DIR}/bl_alembic_import_test.py --python ${CMAKE_CURRENT_LIST_DIR}/bl_alembic_import_test.py
-- --
--testdir "${TEST_SRC_DIR}/alembic" --testdir "${TEST_SRC_DIR}/alembic"
--with-legacy-depsgraph=${WITH_LEGACY_DEPSGRAPH} --with-legacy-depsgraph=${WITH_LEGACY_DEPSGRAPH}
) )
endif() endif()
if(WITH_CODEC_FFMPEG) if(WITH_CODEC_FFMPEG)
add_python_test( add_python_test(
ffmpeg ffmpeg
${CMAKE_CURRENT_LIST_DIR}/ffmpeg_tests.py ${CMAKE_CURRENT_LIST_DIR}/ffmpeg_tests.py
--blender "$<TARGET_FILE:blender>" --blender "$<TARGET_FILE:blender>"
--testdir "${TEST_DATA_SRC_DIR}/ffmpeg" --testdir "${TEST_DATA_SRC_DIR}/ffmpeg"
) )
endif() endif()
add_subdirectory(collada) add_subdirectory(collada)

View File

@@ -29,19 +29,19 @@ set(TEST_OUT_DIR ${CMAKE_BINARY_DIR}/tests)
# ugh, any better way to do this on testing only? # ugh, any better way to do this on testing only?
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${TEST_OUT_DIR}) execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${TEST_OUT_DIR})
#~ if(NOT IS_DIRECTORY ${TEST_SRC_DIR}) #~ if(NOT IS_DIRECTORY ${TEST_SRC_DIR})
#~ message(FATAL_ERROR "CMake test directory not found!") #~ message(FATAL_ERROR "CMake test directory not found!")
#~ endif() #~ endif()
# all calls to blender use this # all calls to blender use this
if(APPLE) if(APPLE)
if(${CMAKE_GENERATOR} MATCHES "Xcode") if(${CMAKE_GENERATOR} MATCHES "Xcode")
set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup) set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup)
else() else()
set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup --env-system-scripts ${CMAKE_SOURCE_DIR}/release/scripts) set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup --env-system-scripts ${CMAKE_SOURCE_DIR}/release/scripts)
endif() endif()
else() else()
set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup --env-system-scripts ${CMAKE_SOURCE_DIR}/release/scripts) set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup --env-system-scripts ${CMAKE_SOURCE_DIR}/release/scripts)
endif() endif()
# for testing with valgrind prefix: valgrind --track-origins=yes --error-limit=no # for testing with valgrind prefix: valgrind --track-origins=yes --error-limit=no
@@ -51,12 +51,12 @@ endif()
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# GENERAL PYTHON CORRECTNESS TESTS # GENERAL PYTHON CORRECTNESS TESTS
macro (COLLADA_TEST module test_name blend_file) macro (COLLADA_TEST module test_name blend_file)
add_test( add_test(
NAME collada_${module}_${test_name} NAME collada_${module}_${test_name}
COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} ${TEST_SRC_DIR}/collada/${module}/${blend_file} COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} ${TEST_SRC_DIR}/collada/${module}/${blend_file}
--python ${CMAKE_CURRENT_LIST_DIR}/${module}/test_${module}_${test_name}.py -- --python ${CMAKE_CURRENT_LIST_DIR}/${module}/test_${module}_${test_name}.py --
--testdir ${TEST_SRC_DIR}/collada/${module} --testdir ${TEST_SRC_DIR}/collada/${module}
) )
endmacro() endmacro()
# Tests are disabled because they only work on Windows # Tests are disabled because they only work on Windows

View File

@@ -25,19 +25,19 @@ set(TEST_OUT_DIR ${CMAKE_BINARY_DIR}/tests)
# ugh, any better way to do this on testing only? # ugh, any better way to do this on testing only?
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${TEST_OUT_DIR}) execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${TEST_OUT_DIR})
#~ if(NOT IS_DIRECTORY ${TEST_SRC_DIR}) #~ if(NOT IS_DIRECTORY ${TEST_SRC_DIR})
#~ message(FATAL_ERROR "CMake test directory not found!") #~ message(FATAL_ERROR "CMake test directory not found!")
#~ endif() #~ endif()
# all calls to blender use this # all calls to blender use this
if(APPLE) if(APPLE)
if(${CMAKE_GENERATOR} MATCHES "Xcode") if(${CMAKE_GENERATOR} MATCHES "Xcode")
set(TEST_BLENDER_EXE ${EXECUTABLE_OUTPUT_PATH}/Debug/blender.app/Contents/MacOS/blender) set(TEST_BLENDER_EXE ${EXECUTABLE_OUTPUT_PATH}/Debug/blender.app/Contents/MacOS/blender)
else() else()
set(TEST_BLENDER_EXE ${EXECUTABLE_OUTPUT_PATH}/blender.app/Contents/MacOS/blender) set(TEST_BLENDER_EXE ${EXECUTABLE_OUTPUT_PATH}/blender.app/Contents/MacOS/blender)
endif() endif()
else() else()
set(TEST_BLENDER_EXE ${EXECUTABLE_OUTPUT_PATH}/blender) set(TEST_BLENDER_EXE ${EXECUTABLE_OUTPUT_PATH}/blender)
endif() endif()
# for testing with valgrind prefix: valgrind --track-origins=yes --error-limit=no # for testing with valgrind prefix: valgrind --track-origins=yes --error-limit=no
@@ -47,14 +47,14 @@ set(TEST_BLENDER_EXE ${TEST_BLENDER_EXE} --background -noaudio --factory-startup
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
macro(VIEW_LAYER_TEST test_name) macro(VIEW_LAYER_TEST test_name)
# Adds ${CMAKE_CURRENT_LIST_DIR} to sys.path so that the tests can import # Adds ${CMAKE_CURRENT_LIST_DIR} to sys.path so that the tests can import
# things from view_layer_common.py # things from view_layer_common.py
add_test(view_layer_${test_name} ${TEST_BLENDER_EXE} add_test(view_layer_${test_name} ${TEST_BLENDER_EXE}
--python-expr "import sys; sys.path.append('${CMAKE_CURRENT_LIST_DIR}')" --python-expr "import sys; sys.path.append('${CMAKE_CURRENT_LIST_DIR}')"
--python-exit-code 1 --python-exit-code 1
--python ${CMAKE_CURRENT_LIST_DIR}/test_${test_name}.py -- --python ${CMAKE_CURRENT_LIST_DIR}/test_${test_name}.py --
--testdir="${TEST_SRC_DIR}/layers" --testdir="${TEST_SRC_DIR}/layers"
) )
endmacro() endmacro()
VIEW_LAYER_TEST(active_collection) VIEW_LAYER_TEST(active_collection)