
The OpenXR-SDK contains utilities for using the OpenXR standard (https://www.khronos.org/openxr/). Namely C-headers and a so called "loader" to manage runtime linking to OpenXR platforms ("runtimes") installed on the user's system. The WITH_XR_OPENXR build option is disabled by default for now, as there is no code using it yet. On macOS it will remain disabled for now, it's untested and there's no OpenXR runtime in sight for it. Some points on the OpenXR-SDK dependency: * The repository is located at https://github.com/KhronosGroup/OpenXR-SDK (Apache 2). * Notes on updating the dependency: https://wiki.blender.org/wiki/Source/OpenXR_SDK_Dependency * It contains a bunch of generated files, for which the sources are in a separate repository (https://github.com/KhronosGroup/OpenXR-SDK-Source). * We could use that other repo by default, but I'd rather go with the simpler solution and allow people to opt in if they want advanced dev features. * We currently use the OpenXR loader lib from it and the headers. * To use the injected OpenXR API-layers from the SDK (e.g. API validation layers), the SDK needs to be compiled from this other repository. The extra "XR_" prefix in the build option is to avoid mix-ups of OpenXR with OpenEXR. Most of this comes from the 2019 GSoC project, "Core Support of Virtual Reality Headsets through OpenXR" (https://wiki.blender.org/wiki/User:Severin/GSoC-2019/). Differential Revision: https://developer.blender.org/D6188 Reviewed by: Campbell Barton, Sergey Sharybin, Bastien Montagne, Ray Molenkamp
165 lines
4.6 KiB
CMake
165 lines
4.6 KiB
CMake
# ***** BEGIN GPL LICENSE BLOCK *****
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License
|
|
# as published by the Free Software Foundation; either version 2
|
|
# of the License, or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software Foundation,
|
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
#
|
|
# ***** END GPL LICENSE BLOCK *****
|
|
|
|
####################################################################################################
|
|
#
|
|
# This is a build system used by platform maintainers to build library dependencies on
|
|
# Windows, macOS and Linux.
|
|
#
|
|
# For users building Blender, we recommend using the precompiled libraries from lib/ on
|
|
# Windows and macOS, and install_deps.sh on Linux.
|
|
#
|
|
# WINDOWS USAGE:
|
|
# Don't call this cmake file yourself, use build_deps.cmd
|
|
# build_deps 2013 x64 / build_deps 2013 x86
|
|
# build_deps 2015 x64 / build_deps 2015 x86
|
|
#
|
|
# MAC OS X USAGE:
|
|
# Install with homebrew: brew install cmake autoconf automake libtool yasm nasm
|
|
# Run "make deps" from main Blender directory
|
|
#
|
|
# LINUX USAGE:
|
|
# Install compiler cmake autoconf automake libtool yasm nasm tcl
|
|
# Run "make deps" from main Blender directory
|
|
#
|
|
####################################################################################################
|
|
|
|
project("BlenderDependencies")
|
|
cmake_minimum_required(VERSION 3.5)
|
|
|
|
include(ExternalProject)
|
|
include(cmake/check_software.cmake)
|
|
include(cmake/options.cmake)
|
|
include(cmake/versions.cmake)
|
|
|
|
if(ENABLE_MINGW64)
|
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
|
include(cmake/setup_mingw64.cmake)
|
|
else()
|
|
include(cmake/setup_mingw32.cmake)
|
|
endif()
|
|
else()
|
|
set(mingw_LIBDIR ${LIBDIR})
|
|
endif()
|
|
|
|
include(cmake/zlib.cmake)
|
|
include(cmake/openal.cmake)
|
|
include(cmake/png.cmake)
|
|
include(cmake/jpeg.cmake)
|
|
include(cmake/boost.cmake)
|
|
include(cmake/blosc.cmake)
|
|
include(cmake/pthreads.cmake)
|
|
include(cmake/openexr.cmake)
|
|
include(cmake/freetype.cmake)
|
|
include(cmake/freeglut.cmake)
|
|
include(cmake/glew.cmake)
|
|
include(cmake/alembic.cmake)
|
|
include(cmake/glfw.cmake)
|
|
include(cmake/clew.cmake)
|
|
include(cmake/cuew.cmake)
|
|
include(cmake/opensubdiv.cmake)
|
|
include(cmake/sdl.cmake)
|
|
include(cmake/opencollada.cmake)
|
|
include(cmake/opencolorio.cmake)
|
|
include(cmake/llvm.cmake)
|
|
include(cmake/clang.cmake)
|
|
if(APPLE)
|
|
include(cmake/openmp.cmake)
|
|
endif()
|
|
include(cmake/openimageio.cmake)
|
|
include(cmake/tiff.cmake)
|
|
include(cmake/flexbison.cmake)
|
|
include(cmake/osl.cmake)
|
|
include(cmake/tbb.cmake)
|
|
include(cmake/openvdb.cmake)
|
|
include(cmake/python.cmake)
|
|
include(cmake/python_site_packages.cmake)
|
|
include(cmake/package_python.cmake)
|
|
include(cmake/numpy.cmake)
|
|
include(cmake/usd.cmake)
|
|
if(UNIX)
|
|
# Rely on PugiXML compiled with OpenImageIO
|
|
else()
|
|
include(cmake/pugixml.cmake)
|
|
endif()
|
|
include(cmake/openimagedenoise.cmake)
|
|
include(cmake/embree.cmake)
|
|
include(cmake/xr_openxr.cmake)
|
|
|
|
if(WITH_WEBP)
|
|
include(cmake/webp.cmake)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
# HMD branch deps
|
|
include(cmake/hidapi.cmake)
|
|
# OCIO deps
|
|
include(cmake/tinyxml.cmake)
|
|
include(cmake/yamlcpp.cmake)
|
|
# LCMS is an OCIO dep, but only if you build the apps, leaving it here for convenience
|
|
# include(cmake/lcms.cmake)
|
|
|
|
endif()
|
|
|
|
if(NOT WIN32 OR ENABLE_MINGW64)
|
|
include(cmake/openjpeg.cmake)
|
|
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
|
if(WIN32)
|
|
include(cmake/zlib_mingw.cmake)
|
|
endif()
|
|
include(cmake/lame.cmake)
|
|
include(cmake/ogg.cmake)
|
|
include(cmake/vorbis.cmake)
|
|
include(cmake/theora.cmake)
|
|
include(cmake/opus.cmake)
|
|
include(cmake/vpx.cmake)
|
|
include(cmake/x264.cmake)
|
|
include(cmake/xvidcore.cmake)
|
|
include(cmake/faad.cmake)
|
|
include(cmake/ffmpeg.cmake)
|
|
include(cmake/fftw.cmake)
|
|
include(cmake/sndfile.cmake)
|
|
if(WIN32)
|
|
include(cmake/iconv.cmake)
|
|
endif()
|
|
if(UNIX)
|
|
include(cmake/flac.cmake)
|
|
include(cmake/xml2.cmake)
|
|
if(NOT APPLE)
|
|
include(cmake/spnav.cmake)
|
|
include(cmake/jemalloc.cmake)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
if(UNIX)
|
|
include(cmake/bzip2.cmake)
|
|
include(cmake/ffi.cmake)
|
|
include(cmake/lzma.cmake)
|
|
include(cmake/ssl.cmake)
|
|
include(cmake/sqlite.cmake)
|
|
endif()
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
include(cmake/libglu.cmake)
|
|
include(cmake/mesa.cmake)
|
|
endif()
|
|
|
|
include(cmake/harvest.cmake)
|