Compare commits
16 Commits
geometry-t
...
soc-2020-x
Author | SHA1 | Date | |
---|---|---|---|
20e84b0dc1 | |||
0cb02bf631 | |||
9f2a0a76c0 | |||
9f5fc3842e | |||
771debfd58 | |||
c1f798d12e | |||
896a51c67e | |||
306058f7ad | |||
97a4a8d0fb | |||
4a7c203e9e | |||
1388f394d7 | |||
8e397f56a4 | |||
5190beb5e9 | |||
87b98cdf38 | |||
33e6ec8838 | |||
cb8423838f |
823
cmake-build-debug/CMakeCache.txt
Normal file
823
cmake-build-debug/CMakeCache.txt
Normal file
@@ -0,0 +1,823 @@
|
||||
# This is the CMakeCache file.
|
||||
# For build in directory: e:/code/blender-git/blender/cmake-build-debug
|
||||
# It was generated by CMake: C:/Program Files/JetBrains/CLion 2020.1.1/bin/cmake/win/bin/cmake.exe
|
||||
# You can edit this file to change values found and used by cmake.
|
||||
# If you do not want to change any of the values, simply exit the editor.
|
||||
# If you do want to change a value, simply edit, save, and exit the editor.
|
||||
# The syntax for the file is as follows:
|
||||
# KEY:TYPE=VALUE
|
||||
# KEY is the name of a variable in the cache.
|
||||
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
|
||||
# VALUE is the current value for the KEY.
|
||||
|
||||
########################
|
||||
# EXTERNAL cache entries
|
||||
########################
|
||||
|
||||
//Use instead of the current date for reproducible builds (empty
|
||||
// string disables this option)
|
||||
BUILDINFO_OVERRIDE_DATE:STRING=
|
||||
|
||||
//Use instead of the current time for reproducible builds (empty
|
||||
// string disables this option)
|
||||
BUILDINFO_OVERRIDE_TIME:STRING=
|
||||
|
||||
//Value Computed by CMake
|
||||
Blender_BINARY_DIR:STATIC=E:/code/blender-git/blender/cmake-build-debug
|
||||
|
||||
//Value Computed by CMake
|
||||
Blender_SOURCE_DIR:STATIC=E:/code/blender-git/blender
|
||||
|
||||
//Choose the type of build, options are: None Debug Release RelWithDebInfo
|
||||
// MinSizeRel ...
|
||||
CMAKE_BUILD_TYPE:STRING=Debug
|
||||
|
||||
//Id string of the compiler for the CodeBlocks IDE. Automatically
|
||||
// detected when left empty
|
||||
CMAKE_CODEBLOCKS_COMPILER_ID:STRING=
|
||||
|
||||
//The CodeBlocks executable
|
||||
CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND
|
||||
|
||||
//Additional command line arguments when CodeBlocks invokes make.
|
||||
// Enter e.g. -j<some_number> to get parallel builds
|
||||
CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=
|
||||
|
||||
//Enable/Disable color output during build.
|
||||
CMAKE_COLOR_MAKEFILE:BOOL=ON
|
||||
|
||||
//CXX compiler
|
||||
CMAKE_CXX_COMPILER:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/cl.exe
|
||||
|
||||
//Flags used by the CXX compiler during all build types.
|
||||
CMAKE_CXX_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3 /GR /EHsc
|
||||
|
||||
//Flags used by the CXX compiler during DEBUG builds.
|
||||
CMAKE_CXX_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1
|
||||
|
||||
//Flags used by the CXX compiler during MINSIZEREL builds.
|
||||
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG
|
||||
|
||||
CMAKE_CXX_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG
|
||||
|
||||
//Flags used by the CXX compiler during RELWITHDEBINFO builds.
|
||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG
|
||||
|
||||
//Libraries linked by default with all C++ applications.
|
||||
CMAKE_CXX_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
|
||||
|
||||
//C compiler
|
||||
CMAKE_C_COMPILER:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/cl.exe
|
||||
|
||||
//Flags used by the C compiler during all build types.
|
||||
CMAKE_C_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3
|
||||
|
||||
//Flags used by the C compiler during DEBUG builds.
|
||||
CMAKE_C_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1
|
||||
|
||||
//Flags used by the C compiler during MINSIZEREL builds.
|
||||
CMAKE_C_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG
|
||||
|
||||
CMAKE_C_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG
|
||||
|
||||
//Flags used by the C compiler during RELWITHDEBINFO builds.
|
||||
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG
|
||||
|
||||
//Libraries linked by default with all C applications.
|
||||
CMAKE_C_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
|
||||
|
||||
//Flags used by the linker during all build types.
|
||||
CMAKE_EXE_LINKER_FLAGS:STRING=/machine:X86
|
||||
|
||||
//Flags used by the linker during DEBUG builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
|
||||
|
||||
//Flags used by the linker during MINSIZEREL builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
|
||||
|
||||
//Flags used by the linker during RELEASE builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
|
||||
|
||||
//Flags used by the linker during RELWITHDEBINFO builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
|
||||
|
||||
//default install path
|
||||
CMAKE_INSTALL_PREFIX:PATH=E:/code/blender-git/blender/cmake-build-debug/bin/${BUILD_TYPE}
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_LINKER:FILEPATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/link.exe
|
||||
|
||||
//Program used to build from makefiles.
|
||||
CMAKE_MAKE_PROGRAM:STRING=nmake
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// all build types.
|
||||
CMAKE_MODULE_LINKER_FLAGS:STRING=/machine:X86
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// DEBUG builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// MINSIZEREL builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// RELEASE builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// RELWITHDEBINFO builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_MT:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x86/mt.exe
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_DESCRIPTION:STATIC=
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_NAME:STATIC=Blender
|
||||
|
||||
//RC compiler
|
||||
CMAKE_RC_COMPILER:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x86/rc.exe
|
||||
|
||||
//Flags for Windows Resource Compiler during all build types.
|
||||
CMAKE_RC_FLAGS:STRING=-DWIN32
|
||||
|
||||
//Flags for Windows Resource Compiler during DEBUG builds.
|
||||
CMAKE_RC_FLAGS_DEBUG:STRING=-D_DEBUG
|
||||
|
||||
//Flags for Windows Resource Compiler during MINSIZEREL builds.
|
||||
CMAKE_RC_FLAGS_MINSIZEREL:STRING=
|
||||
|
||||
//Flags for Windows Resource Compiler during RELEASE builds.
|
||||
CMAKE_RC_FLAGS_RELEASE:STRING=
|
||||
|
||||
//Flags for Windows Resource Compiler during RELWITHDEBINFO builds.
|
||||
CMAKE_RC_FLAGS_RELWITHDEBINFO:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during all build types.
|
||||
CMAKE_SHARED_LINKER_FLAGS:STRING=/machine:X86
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during DEBUG builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during MINSIZEREL builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during RELEASE builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during RELWITHDEBINFO builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
|
||||
|
||||
//If set, runtime paths are not added when installing shared libraries,
|
||||
// but are added when building.
|
||||
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
|
||||
|
||||
//If set, runtime paths are not added when using shared libraries.
|
||||
CMAKE_SKIP_RPATH:BOOL=NO
|
||||
|
||||
//Flags used by the linker during the creation of static libraries
|
||||
// during all build types.
|
||||
CMAKE_STATIC_LINKER_FLAGS:STRING=/machine:X86
|
||||
|
||||
//Flags used by the linker during the creation of static libraries
|
||||
// during DEBUG builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of static libraries
|
||||
// during MINSIZEREL builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of static libraries
|
||||
// during RELEASE builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of static libraries
|
||||
// during RELWITHDEBINFO builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
|
||||
|
||||
//If this value is on, makefiles will be generated without the
|
||||
// .SILENT directive, and all commands will be echoed to the console
|
||||
// during the make. This is useful for debugging only. With Visual
|
||||
// Studio IDE projects all commands are done without /nologo.
|
||||
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
|
||||
|
||||
//Use instead of the standard packagename (empty string disables
|
||||
// this option)
|
||||
CPACK_OVERRIDE_PACKAGENAME:STRING=
|
||||
|
||||
//CUDA architectures to build binaries for
|
||||
CYCLES_CUDA_BINARIES_ARCH:STRING=sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_70;sm_75;compute_75
|
||||
|
||||
//Git command line client
|
||||
GIT_EXECUTABLE:FILEPATH=C:/Program Files/Git/cmd/git.exe
|
||||
|
||||
//Link with LLVM static libraries
|
||||
LLVM_STATIC:BOOL=OFF
|
||||
|
||||
//Path to a file.
|
||||
MSVC_REDIST_DIR:PATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Redist/MSVC/14.25.28508
|
||||
|
||||
//Run given CMake script after installation process
|
||||
POSTINSTALL_SCRIPT:BOOL=OFF
|
||||
|
||||
//Python executable to run unit tests
|
||||
TEST_PYTHON_EXE:PATH=
|
||||
|
||||
//Path to a file.
|
||||
WINDOWS_KITS_DIR:PATH=C:/Program Files (x86)/Windows Kits/10
|
||||
|
||||
//Include the files needed for debugging python scripts with visual
|
||||
// studio 2017+.
|
||||
WINDOWS_PYTHON_DEBUG:BOOL=OFF
|
||||
|
||||
//Organize the visual studio projects according to source folder
|
||||
// structure.
|
||||
WINDOWS_USE_VISUAL_STUDIO_PROJECT_FOLDERS:BOOL=ON
|
||||
|
||||
//Organize the source files in filters matching the source folders.
|
||||
WINDOWS_USE_VISUAL_STUDIO_SOURCE_FOLDERS:BOOL=ON
|
||||
|
||||
//Enable Alembic Support
|
||||
WITH_ALEMBIC:BOOL=ON
|
||||
|
||||
//Call abort() when raising an assertion through BLI_assert()
|
||||
WITH_ASSERT_ABORT:BOOL=ON
|
||||
|
||||
//Build with blenders audio library (only disable if you know what
|
||||
// you're doing!)
|
||||
WITH_AUDASPACE:BOOL=ON
|
||||
|
||||
//Build blender (disable to build only the blender player)
|
||||
WITH_BLENDER:BOOL=ON
|
||||
|
||||
//Enable features depending on boost
|
||||
WITH_BOOST:BOOL=ON
|
||||
|
||||
//Include extra build details (only disable for development & faster
|
||||
// builds)
|
||||
WITH_BUILDINFO:BOOL=ON
|
||||
|
||||
//Enable Bullet (Physics Engine)
|
||||
WITH_BULLET:BOOL=ON
|
||||
|
||||
//Enable Blenders own AVI file support (raw/jpeg)
|
||||
WITH_CODEC_AVI:BOOL=ON
|
||||
|
||||
//Enable FFMPeg Support (http://ffmpeg.org)
|
||||
WITH_CODEC_FFMPEG:BOOL=ON
|
||||
|
||||
//Enable libsndfile Support (http://www.mega-nerd.com/libsndfile)
|
||||
WITH_CODEC_SNDFILE:BOOL=ON
|
||||
|
||||
//Enable the tile based nodal compositor
|
||||
WITH_COMPOSITOR:BOOL=ON
|
||||
|
||||
//Enable SIMD instruction if they're detected on the host machine
|
||||
WITH_CPU_SSE:BOOL=ON
|
||||
|
||||
//Dynamically load CUDA libraries at runtime
|
||||
WITH_CUDA_DYNLOAD:BOOL=ON
|
||||
|
||||
//Enable GuardedAlloc for C++ memory allocation tracking (only
|
||||
// enable for development)
|
||||
WITH_CXX_GUARDEDALLOC:BOOL=OFF
|
||||
|
||||
//Enable Cycles Render Engine
|
||||
WITH_CYCLES:BOOL=ON
|
||||
|
||||
//Build cubins with nvrtc based compiler instead of nvcc
|
||||
WITH_CYCLES_CUBIN_COMPILER:BOOL=OFF
|
||||
|
||||
//Build Cycles CUDA binaries
|
||||
WITH_CYCLES_CUDA_BINARIES:BOOL=OFF
|
||||
|
||||
//Build cubins one after another (useful on machines with limited
|
||||
// RAM)
|
||||
WITH_CYCLES_CUDA_BUILD_SERIAL:BOOL=OFF
|
||||
|
||||
//Build Cycles with extra debug capabilities
|
||||
WITH_CYCLES_DEBUG:BOOL=OFF
|
||||
|
||||
//Enable Cycles CUDA compute support
|
||||
WITH_CYCLES_DEVICE_CUDA:BOOL=ON
|
||||
|
||||
//Enable Cycles OpenCL compute support
|
||||
WITH_CYCLES_DEVICE_OPENCL:BOOL=ON
|
||||
|
||||
//Enable Cycles OptiX support
|
||||
WITH_CYCLES_DEVICE_OPTIX:BOOL=OFF
|
||||
|
||||
//Build Cycles with Embree support
|
||||
WITH_CYCLES_EMBREE:BOOL=ON
|
||||
|
||||
//Build Cycles kernels with address sanitizer when WITH_COMPILER_ASAN
|
||||
// is on, even if it's very slow
|
||||
WITH_CYCLES_KERNEL_ASAN:BOOL=OFF
|
||||
|
||||
//Build Cycles with logging support
|
||||
WITH_CYCLES_LOGGING:BOOL=ON
|
||||
|
||||
//Build Cycles with native kernel only (which fits current CPU,
|
||||
// use for development only)
|
||||
WITH_CYCLES_NATIVE_ONLY:BOOL=OFF
|
||||
|
||||
//Enable Cycles compute over network support (EXPERIMENTAL and
|
||||
// unfinished)
|
||||
WITH_CYCLES_NETWORK:BOOL=OFF
|
||||
|
||||
//Build Cycles with OSL support
|
||||
WITH_CYCLES_OSL:BOOL=ON
|
||||
|
||||
//Build Cycles standalone application
|
||||
WITH_CYCLES_STANDALONE:BOOL=OFF
|
||||
|
||||
//Build Cycles standalone with GUI
|
||||
WITH_CYCLES_STANDALONE_GUI:BOOL=OFF
|
||||
|
||||
//Enable Draco mesh compression Python module (used for glTF)
|
||||
WITH_DRACO:BOOL=ON
|
||||
|
||||
//Enable FFTW3 support (Used for smoke, ocean sim, and audio effects)
|
||||
WITH_FFTW3:BOOL=ON
|
||||
|
||||
//Enable Freestyle (advanced edges rendering)
|
||||
WITH_FREESTYLE:BOOL=ON
|
||||
|
||||
//Enable debugging output for the GHOST library
|
||||
WITH_GHOST_DEBUG:BOOL=OFF
|
||||
|
||||
//Enable building Blender against SDL for windowing rather than
|
||||
// the native APIs
|
||||
WITH_GHOST_SDL:BOOL=OFF
|
||||
|
||||
//Switches to experimental copy of GLEW that has support for OpenGL
|
||||
// ES. (temporary option for development purposes)
|
||||
WITH_GLEW_ES:BOOL=OFF
|
||||
|
||||
//Link with the ANGLE library, an OpenGL ES 2.0 implementation
|
||||
// based on Direct3D, instead of the system OpenGL library.
|
||||
WITH_GL_ANGLE:BOOL=OFF
|
||||
|
||||
//Use the EGL OpenGL system library instead of the platform specific
|
||||
// OpenGL system library (CGL, glX, or WGL)
|
||||
WITH_GL_EGL:BOOL=OFF
|
||||
|
||||
//Support using OpenGL ES 2.0. (through either EGL or the AGL/WGL/XGL
|
||||
// 'es20' profile)
|
||||
WITH_GL_PROFILE_ES20:BOOL=OFF
|
||||
|
||||
//Enable GTest unit testing
|
||||
WITH_GTESTS:BOOL=OFF
|
||||
|
||||
//Build without graphical support (renderfarm, server mode only)
|
||||
WITH_HEADLESS:BOOL=OFF
|
||||
|
||||
//Enable ITASC IK solver (only disable for development & for incompatible
|
||||
// C++ compilers)
|
||||
WITH_IK_ITASC:BOOL=ON
|
||||
|
||||
//Enable Legacy IK solver (only disable for development)
|
||||
WITH_IK_SOLVER:BOOL=ON
|
||||
|
||||
//Enable CINEON and DPX Image Support
|
||||
WITH_IMAGE_CINEON:BOOL=ON
|
||||
|
||||
//Enable DDS Image Support
|
||||
WITH_IMAGE_DDS:BOOL=ON
|
||||
|
||||
//Enable HDR Image Support
|
||||
WITH_IMAGE_HDR:BOOL=ON
|
||||
|
||||
//Enable OpenEXR Support (http://www.openexr.com)
|
||||
WITH_IMAGE_OPENEXR:BOOL=ON
|
||||
|
||||
//Enable OpenJpeg Support (http://www.openjpeg.org)
|
||||
WITH_IMAGE_OPENJPEG:BOOL=ON
|
||||
|
||||
//Enable LibTIFF Support
|
||||
WITH_IMAGE_TIFF:BOOL=ON
|
||||
|
||||
//Enable Input Method Editor (IME) for complex Asian character
|
||||
// input
|
||||
WITH_INPUT_IME:BOOL=ON
|
||||
|
||||
//Enable NDOF input devices (SpaceNavigator and friends)
|
||||
WITH_INPUT_NDOF:BOOL=ON
|
||||
|
||||
//Enable I18N (International fonts and text)
|
||||
WITH_INTERNATIONAL:BOOL=ON
|
||||
|
||||
//Enable Libmv structure from motion library
|
||||
WITH_LIBMV:BOOL=ON
|
||||
|
||||
//Enable fixed-size schur specializations.
|
||||
WITH_LIBMV_SCHUR_SPECIALIZATIONS:BOOL=ON
|
||||
|
||||
WITH_LLVM:BOOL=ON
|
||||
|
||||
//Enable best LZMA compression, (used for pointcache)
|
||||
WITH_LZMA:BOOL=ON
|
||||
|
||||
//Enable fast LZO compression (used for pointcache)
|
||||
WITH_LZO:BOOL=ON
|
||||
|
||||
//Enable malloc replacement (http://www.canonware.com/jemalloc)
|
||||
WITH_MEM_JEMALLOC:BOOL=ON
|
||||
|
||||
//Enable extended valgrind support for better reporting
|
||||
WITH_MEM_VALGRIND:BOOL=OFF
|
||||
|
||||
//Enable Mantaflow Fluid Simulation Framework
|
||||
WITH_MOD_FLUID:BOOL=ON
|
||||
|
||||
//Enable Ocean Modifier
|
||||
WITH_MOD_OCEANSIM:BOOL=ON
|
||||
|
||||
//Enable Remesh Modifier
|
||||
WITH_MOD_REMESH:BOOL=ON
|
||||
|
||||
//Enable OpenAL Support (http://www.openal.org)
|
||||
WITH_OPENAL:BOOL=ON
|
||||
|
||||
//Enable OpenCollada Support (http://www.opencollada.org)
|
||||
WITH_OPENCOLLADA:BOOL=ON
|
||||
|
||||
//Enable OpenColorIO color management
|
||||
WITH_OPENCOLORIO:BOOL=ON
|
||||
|
||||
//When off limits visibility of the opengl headers to just bf_gpu
|
||||
// and gawain (temporary option for development purposes)
|
||||
WITH_OPENGL:BOOL=ON
|
||||
|
||||
//Enable OpenGL UI drawing related unit testing (Experimental)
|
||||
WITH_OPENGL_DRAW_TESTS:BOOL=OFF
|
||||
|
||||
//Enable OpenGL render related unit testing (Experimental)
|
||||
WITH_OPENGL_RENDER_TESTS:BOOL=OFF
|
||||
|
||||
//Enable the OpenImageDenoise compositing node
|
||||
WITH_OPENIMAGEDENOISE:BOOL=ON
|
||||
|
||||
//Enable OpenImageIO Support (http://www.openimageio.org)
|
||||
WITH_OPENIMAGEIO:BOOL=ON
|
||||
|
||||
//Enable OpenMP (has to be supported by the compiler)
|
||||
WITH_OPENMP:BOOL=ON
|
||||
|
||||
//Enable OpenSubdiv for surface subdivision
|
||||
WITH_OPENSUBDIV:BOOL=ON
|
||||
|
||||
//Enable features relying on OpenVDB
|
||||
WITH_OPENVDB:BOOL=ON
|
||||
|
||||
//Assume OpenVDB library has been compiled with version 3 ABI compatibility
|
||||
WITH_OPENVDB_3_ABI_COMPATIBLE:BOOL=OFF
|
||||
|
||||
//Enable blosc compression for OpenVDB, only enable if OpenVDB
|
||||
// was built with blosc support
|
||||
WITH_OPENVDB_BLOSC:BOOL=ON
|
||||
|
||||
//Enable Embedded Python API (only disable for development)
|
||||
WITH_PYTHON:BOOL=ON
|
||||
|
||||
//Copy system python into the blender install folder
|
||||
WITH_PYTHON_INSTALL:BOOL=ON
|
||||
|
||||
//Copy system numpy into the blender install folder
|
||||
WITH_PYTHON_INSTALL_NUMPY:BOOL=ON
|
||||
|
||||
//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).
|
||||
WITH_PYTHON_MODULE:BOOL=OFF
|
||||
|
||||
//Enable internal API error checking to track invalid data to prevent
|
||||
// crash on access (at the expense of some efficiency, only enable
|
||||
// for development).
|
||||
WITH_PYTHON_SAFETY:BOOL=OFF
|
||||
|
||||
//Disables execution of scripts within blend files by default
|
||||
WITH_PYTHON_SECURITY:BOOL=ON
|
||||
|
||||
//Build with quadriflow remesher support
|
||||
WITH_QUADRIFLOW:BOOL=ON
|
||||
|
||||
//Enable SDL for sound and joystick support
|
||||
WITH_SDL:BOOL=ON
|
||||
|
||||
//Build with external audaspace library installed on the system
|
||||
// (only enable if you know what you're doing!)
|
||||
WITH_SYSTEM_AUDASPACE:BOOL=OFF
|
||||
|
||||
//Use the systems bullet library (currently unsupported due to
|
||||
// missing features in upstream!)
|
||||
WITH_SYSTEM_BULLET:BOOL=OFF
|
||||
|
||||
//Use system-wide Gflags instead of a bundled one
|
||||
WITH_SYSTEM_GFLAGS:BOOL=OFF
|
||||
|
||||
//Use system-wide Glog instead of a bundled one
|
||||
WITH_SYSTEM_GLOG:BOOL=OFF
|
||||
|
||||
//Enable features depending on TBB (OpenVDB, OpenImageDenoise,
|
||||
// sculpt multithreading)
|
||||
WITH_TBB:BOOL=ON
|
||||
|
||||
//Enable the TBB malloc replacement
|
||||
WITH_TBB_MALLOC_PROXY:BOOL=ON
|
||||
|
||||
//Enable Universal Scene Description (USD) Support
|
||||
WITH_USD:BOOL=ON
|
||||
|
||||
//Bundle the C runtime for install free distribution.
|
||||
WITH_WINDOWS_BUNDLE_CRT:BOOL=ON
|
||||
|
||||
//Use find_package to locate libraries
|
||||
WITH_WINDOWS_FIND_MODULES:BOOL=OFF
|
||||
|
||||
//Generate a pdb file for client side stacktraces
|
||||
WITH_WINDOWS_PDB:BOOL=ON
|
||||
|
||||
//Use sccache to speed up builds (Ninja builder only)
|
||||
WITH_WINDOWS_SCCACHE:BOOL=OFF
|
||||
|
||||
//Use a stripped PDB file
|
||||
WITH_WINDOWS_STRIPPED_PDB:BOOL=ON
|
||||
|
||||
//Enable VR features through the OpenXR specification
|
||||
WITH_XR_OPENXR:BOOL=ON
|
||||
|
||||
|
||||
########################
|
||||
# INTERNAL cache entries
|
||||
########################
|
||||
|
||||
//ADVANCED property for variable: BUILDINFO_OVERRIDE_DATE
|
||||
BUILDINFO_OVERRIDE_DATE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: BUILDINFO_OVERRIDE_TIME
|
||||
BUILDINFO_OVERRIDE_TIME-ADVANCED:INTERNAL=1
|
||||
//This is the directory where this CMakeCache.txt was created
|
||||
CMAKE_CACHEFILE_DIR:INTERNAL=e:/code/blender-git/blender/cmake-build-debug
|
||||
//Major version of cmake used to create the current loaded cache
|
||||
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
|
||||
//Minor version of cmake used to create the current loaded cache
|
||||
CMAKE_CACHE_MINOR_VERSION:INTERNAL=16
|
||||
//Patch version of cmake used to create the current loaded cache
|
||||
CMAKE_CACHE_PATCH_VERSION:INTERNAL=5
|
||||
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
|
||||
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
|
||||
//Path to CMake executable.
|
||||
CMAKE_COMMAND:INTERNAL=C:/Program Files/JetBrains/CLion 2020.1.1/bin/cmake/win/bin/cmake.exe
|
||||
//Path to cpack program executable.
|
||||
CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files/JetBrains/CLion 2020.1.1/bin/cmake/win/bin/cpack.exe
|
||||
//Path to ctest program executable.
|
||||
CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files/JetBrains/CLion 2020.1.1/bin/cmake/win/bin/ctest.exe
|
||||
//ADVANCED property for variable: CMAKE_CXX_COMPILER
|
||||
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS
|
||||
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
|
||||
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
|
||||
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES
|
||||
CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_COMPILER
|
||||
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS
|
||||
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
|
||||
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
|
||||
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES
|
||||
CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1
|
||||
//Executable file format
|
||||
CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
|
||||
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
|
||||
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
|
||||
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//Name of external makefile project generator.
|
||||
CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks
|
||||
//CXX compiler system include directories
|
||||
CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\ATLMFC\include;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt
|
||||
//C compiler system include directories
|
||||
CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\ATLMFC\include;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt
|
||||
//Name of generator.
|
||||
CMAKE_GENERATOR:INTERNAL=NMake Makefiles
|
||||
//Generator instance identifier.
|
||||
CMAKE_GENERATOR_INSTANCE:INTERNAL=
|
||||
//Name of generator platform.
|
||||
CMAKE_GENERATOR_PLATFORM:INTERNAL=
|
||||
//Name of generator toolset.
|
||||
CMAKE_GENERATOR_TOOLSET:INTERNAL=
|
||||
//Source directory with the top level CMakeLists.txt file for this
|
||||
// project
|
||||
CMAKE_HOME_DIRECTORY:INTERNAL=E:/code/blender-git/blender
|
||||
//ADVANCED property for variable: CMAKE_LINKER
|
||||
CMAKE_LINKER-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
|
||||
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
|
||||
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
|
||||
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MT
|
||||
CMAKE_MT-ADVANCED:INTERNAL=1
|
||||
//number of local generators
|
||||
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
|
||||
//Platform information initialized
|
||||
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_RC_COMPILER
|
||||
CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1
|
||||
CMAKE_RC_COMPILER_WORKS:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_RC_FLAGS
|
||||
CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_RC_FLAGS_DEBUG
|
||||
CMAKE_RC_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_RC_FLAGS_MINSIZEREL
|
||||
CMAKE_RC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_RC_FLAGS_RELEASE
|
||||
CMAKE_RC_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_RC_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_RC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//Path to CMake installation.
|
||||
CMAKE_ROOT:INTERNAL=C:/Program Files/JetBrains/CLion 2020.1.1/bin/cmake/win/share/cmake-3.16
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
|
||||
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
|
||||
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
|
||||
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SKIP_RPATH
|
||||
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
|
||||
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
|
||||
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
|
||||
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CPACK_OVERRIDE_PACKAGENAME
|
||||
CPACK_OVERRIDE_PACKAGENAME-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CYCLES_CUDA_BINARIES_ARCH
|
||||
CYCLES_CUDA_BINARIES_ARCH-ADVANCED:INTERNAL=1
|
||||
EXECUTABLE_OUTPUT_PATH:INTERNAL=E:/code/blender-git/blender/cmake-build-debug/bin
|
||||
//Details about finding Git
|
||||
FIND_PACKAGE_MESSAGE_DETAILS_Git:INTERNAL=[C:/Program Files/Git/cmd/git.exe][v2.26.0.windows.1()]
|
||||
//ADVANCED property for variable: GIT_EXECUTABLE
|
||||
GIT_EXECUTABLE-ADVANCED:INTERNAL=1
|
||||
LIBRARY_OUTPUT_PATH:INTERNAL=E:/code/blender-git/blender/cmake-build-debug/lib
|
||||
//ADVANCED property for variable: LLVM_STATIC
|
||||
LLVM_STATIC-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MSVC_REDIST_DIR
|
||||
MSVC_REDIST_DIR-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: POSTINSTALL_SCRIPT
|
||||
POSTINSTALL_SCRIPT-ADVANCED:INTERNAL=1
|
||||
//Test SUPPORT_SSE2_BUILD
|
||||
SUPPORT_SSE2_BUILD:INTERNAL=1
|
||||
//Result of TRY_COMPILE
|
||||
SUPPORT_SSE2_BUILD_COMPILED:INTERNAL=TRUE
|
||||
//Result of TRY_RUN
|
||||
SUPPORT_SSE2_BUILD_EXITCODE:INTERNAL=0
|
||||
//Test SUPPORT_SSE_BUILD
|
||||
SUPPORT_SSE_BUILD:INTERNAL=1
|
||||
//Result of TRY_COMPILE
|
||||
SUPPORT_SSE_BUILD_COMPILED:INTERNAL=TRUE
|
||||
//Result of TRY_RUN
|
||||
SUPPORT_SSE_BUILD_EXITCODE:INTERNAL=0
|
||||
TESTS_OUTPUT_DIR:INTERNAL=E:/code/blender-git/blender/cmake-build-debug/bin/tests/$<CONFIG>/
|
||||
//ADVANCED property for variable: TEST_PYTHON_EXE
|
||||
TEST_PYTHON_EXE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WINDOWS_KITS_DIR
|
||||
WINDOWS_KITS_DIR-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WINDOWS_PYTHON_DEBUG
|
||||
WINDOWS_PYTHON_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WINDOWS_USE_VISUAL_STUDIO_PROJECT_FOLDERS
|
||||
WINDOWS_USE_VISUAL_STUDIO_PROJECT_FOLDERS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WINDOWS_USE_VISUAL_STUDIO_SOURCE_FOLDERS
|
||||
WINDOWS_USE_VISUAL_STUDIO_SOURCE_FOLDERS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_ASSERT_ABORT
|
||||
WITH_ASSERT_ABORT-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_AUDASPACE
|
||||
WITH_AUDASPACE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_BLENDER
|
||||
WITH_BLENDER-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CPU_SSE
|
||||
WITH_CPU_SSE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CUDA_DYNLOAD
|
||||
WITH_CUDA_DYNLOAD-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CXX_GUARDEDALLOC
|
||||
WITH_CXX_GUARDEDALLOC-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CYCLES_CUBIN_COMPILER
|
||||
WITH_CYCLES_CUBIN_COMPILER-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CYCLES_CUDA_BUILD_SERIAL
|
||||
WITH_CYCLES_CUDA_BUILD_SERIAL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CYCLES_DEBUG
|
||||
WITH_CYCLES_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CYCLES_DEVICE_CUDA
|
||||
WITH_CYCLES_DEVICE_CUDA-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CYCLES_DEVICE_OPENCL
|
||||
WITH_CYCLES_DEVICE_OPENCL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CYCLES_KERNEL_ASAN
|
||||
WITH_CYCLES_KERNEL_ASAN-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CYCLES_LOGGING
|
||||
WITH_CYCLES_LOGGING-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CYCLES_NATIVE_ONLY
|
||||
WITH_CYCLES_NATIVE_ONLY-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_CYCLES_NETWORK
|
||||
WITH_CYCLES_NETWORK-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_GHOST_DEBUG
|
||||
WITH_GHOST_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_GHOST_SDL
|
||||
WITH_GHOST_SDL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_GLEW_ES
|
||||
WITH_GLEW_ES-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_GL_ANGLE
|
||||
WITH_GL_ANGLE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_GL_EGL
|
||||
WITH_GL_EGL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_GL_PROFILE_ES20
|
||||
WITH_GL_PROFILE_ES20-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_HEADLESS
|
||||
WITH_HEADLESS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_LIBMV_SCHUR_SPECIALIZATIONS
|
||||
WITH_LIBMV_SCHUR_SPECIALIZATIONS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_MEM_JEMALLOC
|
||||
WITH_MEM_JEMALLOC-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_MEM_VALGRIND
|
||||
WITH_MEM_VALGRIND-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_OPENGL
|
||||
WITH_OPENGL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_OPENVDB_3_ABI_COMPATIBLE
|
||||
WITH_OPENVDB_3_ABI_COMPATIBLE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_PYTHON
|
||||
WITH_PYTHON-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_PYTHON_SAFETY
|
||||
WITH_PYTHON_SAFETY-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_PYTHON_SECURITY
|
||||
WITH_PYTHON_SECURITY-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_SYSTEM_AUDASPACE
|
||||
WITH_SYSTEM_AUDASPACE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_SYSTEM_BULLET
|
||||
WITH_SYSTEM_BULLET-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_SYSTEM_GFLAGS
|
||||
WITH_SYSTEM_GFLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_SYSTEM_GLOG
|
||||
WITH_SYSTEM_GLOG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_WINDOWS_BUNDLE_CRT
|
||||
WITH_WINDOWS_BUNDLE_CRT-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_WINDOWS_FIND_MODULES
|
||||
WITH_WINDOWS_FIND_MODULES-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_WINDOWS_PDB
|
||||
WITH_WINDOWS_PDB-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_WINDOWS_SCCACHE
|
||||
WITH_WINDOWS_SCCACHE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: WITH_WINDOWS_STRIPPED_PDB
|
||||
WITH_WINDOWS_STRIPPED_PDB-ADVANCED:INTERNAL=1
|
||||
|
76
cmake-build-debug/CMakeFiles/3.16.5/CMakeCCompiler.cmake
Normal file
76
cmake-build-debug/CMakeFiles/3.16.5/CMakeCCompiler.cmake
Normal file
@@ -0,0 +1,76 @@
|
||||
set(CMAKE_C_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/cl.exe")
|
||||
set(CMAKE_C_COMPILER_ARG1 "")
|
||||
set(CMAKE_C_COMPILER_ID "MSVC")
|
||||
set(CMAKE_C_COMPILER_VERSION "19.25.28614.0")
|
||||
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
|
||||
set(CMAKE_C_COMPILER_WRAPPER "")
|
||||
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "90")
|
||||
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_std_99;c_std_11;c_function_prototypes;c_variadic_macros")
|
||||
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
|
||||
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_variadic_macros")
|
||||
set(CMAKE_C11_COMPILE_FEATURES "c_std_11")
|
||||
|
||||
set(CMAKE_C_PLATFORM_ID "Windows")
|
||||
set(CMAKE_C_SIMULATE_ID "")
|
||||
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
|
||||
set(CMAKE_C_SIMULATE_VERSION "")
|
||||
set(CMAKE_C_COMPILER_ARCHITECTURE_ID X86)
|
||||
set(MSVC_C_ARCHITECTURE_ID X86)
|
||||
|
||||
set(CMAKE_AR "")
|
||||
set(CMAKE_C_COMPILER_AR "")
|
||||
set(CMAKE_RANLIB "")
|
||||
set(CMAKE_C_COMPILER_RANLIB "")
|
||||
set(CMAKE_LINKER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/link.exe")
|
||||
set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x86/mt.exe")
|
||||
set(CMAKE_COMPILER_IS_GNUCC )
|
||||
set(CMAKE_C_COMPILER_LOADED 1)
|
||||
set(CMAKE_C_COMPILER_WORKS TRUE)
|
||||
set(CMAKE_C_ABI_COMPILED TRUE)
|
||||
set(CMAKE_COMPILER_IS_MINGW )
|
||||
set(CMAKE_COMPILER_IS_CYGWIN )
|
||||
if(CMAKE_COMPILER_IS_CYGWIN)
|
||||
set(CYGWIN 1)
|
||||
set(UNIX 1)
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_COMPILER_ENV_VAR "CC")
|
||||
|
||||
if(CMAKE_COMPILER_IS_MINGW)
|
||||
set(MINGW 1)
|
||||
endif()
|
||||
set(CMAKE_C_COMPILER_ID_RUN 1)
|
||||
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
|
||||
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
||||
set(CMAKE_C_LINKER_PREFERENCE 10)
|
||||
|
||||
# Save compiler ABI information.
|
||||
set(CMAKE_C_SIZEOF_DATA_PTR "4")
|
||||
set(CMAKE_C_COMPILER_ABI "")
|
||||
set(CMAKE_C_LIBRARY_ARCHITECTURE "")
|
||||
|
||||
if(CMAKE_C_SIZEOF_DATA_PTR)
|
||||
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ABI)
|
||||
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_LIBRARY_ARCHITECTURE)
|
||||
set(CMAKE_LIBRARY_ARCHITECTURE "")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
|
||||
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
|
||||
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "")
|
||||
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "")
|
||||
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "")
|
||||
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
|
88
cmake-build-debug/CMakeFiles/3.16.5/CMakeCXXCompiler.cmake
Normal file
88
cmake-build-debug/CMakeFiles/3.16.5/CMakeCXXCompiler.cmake
Normal file
@@ -0,0 +1,88 @@
|
||||
set(CMAKE_CXX_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/cl.exe")
|
||||
set(CMAKE_CXX_COMPILER_ARG1 "")
|
||||
set(CMAKE_CXX_COMPILER_ID "MSVC")
|
||||
set(CMAKE_CXX_COMPILER_VERSION "19.25.28614.0")
|
||||
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
|
||||
set(CMAKE_CXX_COMPILER_WRAPPER "")
|
||||
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
|
||||
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20")
|
||||
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
|
||||
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
|
||||
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
|
||||
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
|
||||
set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
|
||||
|
||||
set(CMAKE_CXX_PLATFORM_ID "Windows")
|
||||
set(CMAKE_CXX_SIMULATE_ID "")
|
||||
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
|
||||
set(CMAKE_CXX_SIMULATE_VERSION "")
|
||||
set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID X86)
|
||||
set(MSVC_CXX_ARCHITECTURE_ID X86)
|
||||
|
||||
set(CMAKE_AR "")
|
||||
set(CMAKE_CXX_COMPILER_AR "")
|
||||
set(CMAKE_RANLIB "")
|
||||
set(CMAKE_CXX_COMPILER_RANLIB "")
|
||||
set(CMAKE_LINKER "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/link.exe")
|
||||
set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x86/mt.exe")
|
||||
set(CMAKE_COMPILER_IS_GNUCXX )
|
||||
set(CMAKE_CXX_COMPILER_LOADED 1)
|
||||
set(CMAKE_CXX_COMPILER_WORKS TRUE)
|
||||
set(CMAKE_CXX_ABI_COMPILED TRUE)
|
||||
set(CMAKE_COMPILER_IS_MINGW )
|
||||
set(CMAKE_COMPILER_IS_CYGWIN )
|
||||
if(CMAKE_COMPILER_IS_CYGWIN)
|
||||
set(CYGWIN 1)
|
||||
set(UNIX 1)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
|
||||
|
||||
if(CMAKE_COMPILER_IS_MINGW)
|
||||
set(MINGW 1)
|
||||
endif()
|
||||
set(CMAKE_CXX_COMPILER_ID_RUN 1)
|
||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
|
||||
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
||||
|
||||
foreach (lang C OBJC OBJCXX)
|
||||
if (CMAKE_${lang}_COMPILER_ID_RUN)
|
||||
foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
|
||||
list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
|
||||
endforeach()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
set(CMAKE_CXX_LINKER_PREFERENCE 30)
|
||||
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
|
||||
|
||||
# Save compiler ABI information.
|
||||
set(CMAKE_CXX_SIZEOF_DATA_PTR "4")
|
||||
set(CMAKE_CXX_COMPILER_ABI "")
|
||||
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
|
||||
|
||||
if(CMAKE_CXX_SIZEOF_DATA_PTR)
|
||||
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ABI)
|
||||
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
|
||||
set(CMAKE_LIBRARY_ARCHITECTURE "")
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
|
||||
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
|
||||
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "")
|
||||
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
|
||||
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
|
||||
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
|
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
set(CMAKE_RC_COMPILER "C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x86/rc.exe")
|
||||
set(CMAKE_RC_COMPILER_ARG1 "")
|
||||
set(CMAKE_RC_COMPILER_LOADED 1)
|
||||
set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC)
|
||||
set(CMAKE_RC_OUTPUT_EXTENSION .res)
|
||||
set(CMAKE_RC_COMPILER_ENV_VAR "RC")
|
15
cmake-build-debug/CMakeFiles/3.16.5/CMakeSystem.cmake
Normal file
15
cmake-build-debug/CMakeFiles/3.16.5/CMakeSystem.cmake
Normal file
@@ -0,0 +1,15 @@
|
||||
set(CMAKE_HOST_SYSTEM "Windows-10.0.18363")
|
||||
set(CMAKE_HOST_SYSTEM_NAME "Windows")
|
||||
set(CMAKE_HOST_SYSTEM_VERSION "10.0.18363")
|
||||
set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64")
|
||||
|
||||
|
||||
|
||||
set(CMAKE_SYSTEM "Windows-10.0.18363")
|
||||
set(CMAKE_SYSTEM_NAME "Windows")
|
||||
set(CMAKE_SYSTEM_VERSION "10.0.18363")
|
||||
set(CMAKE_SYSTEM_PROCESSOR "AMD64")
|
||||
|
||||
set(CMAKE_CROSSCOMPILING "FALSE")
|
||||
|
||||
set(CMAKE_SYSTEM_LOADED 1)
|
@@ -0,0 +1,671 @@
|
||||
#ifdef __cplusplus
|
||||
# error "A C++ compiler has been selected for C."
|
||||
#endif
|
||||
|
||||
#if defined(__18CXX)
|
||||
# define ID_VOID_MAIN
|
||||
#endif
|
||||
#if defined(__CLASSIC_C__)
|
||||
/* cv-qualifiers did not exist in K&R C */
|
||||
# define const
|
||||
# define volatile
|
||||
#endif
|
||||
|
||||
|
||||
/* Version number components: V=Version, R=Revision, P=Patch
|
||||
Version date components: YYYY=Year, MM=Month, DD=Day */
|
||||
|
||||
#if defined(__INTEL_COMPILER) || defined(__ICC)
|
||||
# define COMPILER_ID "Intel"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# if defined(__GNUC__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
# endif
|
||||
/* __INTEL_COMPILER = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
|
||||
# if defined(__INTEL_COMPILER_UPDATE)
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
|
||||
# else
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
|
||||
# endif
|
||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
||||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
|
||||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
|
||||
# endif
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
# if defined(__GNUC__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
# elif defined(__GNUG__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
||||
# endif
|
||||
# if defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__PATHCC__)
|
||||
# define COMPILER_ID "PathScale"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
|
||||
# if defined(__PATHCC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
|
||||
# define COMPILER_ID "Embarcadero"
|
||||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
|
||||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
|
||||
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
# define COMPILER_ID "Borland"
|
||||
/* __BORLANDC__ = 0xVRR */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
|
||||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
|
||||
|
||||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
|
||||
# define COMPILER_ID "Watcom"
|
||||
/* __WATCOMC__ = VVRR */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
||||
# if (__WATCOMC__ % 10) > 0
|
||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# define COMPILER_ID "OpenWatcom"
|
||||
/* __WATCOMC__ = VVRP + 1100 */
|
||||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
||||
# if (__WATCOMC__ % 10) > 0
|
||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__SUNPRO_C)
|
||||
# define COMPILER_ID "SunPro"
|
||||
# if __SUNPRO_C >= 0x5100
|
||||
/* __SUNPRO_C = 0xVRRP */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
|
||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
|
||||
# else
|
||||
/* __SUNPRO_CC = 0xVRP */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
|
||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
|
||||
# endif
|
||||
|
||||
#elif defined(__HP_cc)
|
||||
# define COMPILER_ID "HP"
|
||||
/* __HP_cc = VVRRPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
|
||||
|
||||
#elif defined(__DECC)
|
||||
# define COMPILER_ID "Compaq"
|
||||
/* __DECC_VER = VVRRTPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
|
||||
|
||||
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
|
||||
# define COMPILER_ID "zOS"
|
||||
/* __IBMC__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
||||
|
||||
#elif defined(__ibmxl__) && defined(__clang__)
|
||||
# define COMPILER_ID "XLClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
|
||||
|
||||
|
||||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
|
||||
# define COMPILER_ID "XL"
|
||||
/* __IBMC__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
||||
|
||||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
|
||||
# define COMPILER_ID "VisualAge"
|
||||
/* __IBMC__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
||||
|
||||
#elif defined(__PGI)
|
||||
# define COMPILER_ID "PGI"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
|
||||
# if defined(__PGIC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
# define COMPILER_ID "Cray"
|
||||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
|
||||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
|
||||
|
||||
#elif defined(__TI_COMPILER_VERSION__)
|
||||
# define COMPILER_ID "TI"
|
||||
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
|
||||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
|
||||
|
||||
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
|
||||
# define COMPILER_ID "Fujitsu"
|
||||
|
||||
#elif defined(__ghs__)
|
||||
# define COMPILER_ID "GHS"
|
||||
/* __GHS_VERSION_NUMBER = VVVVRP */
|
||||
# ifdef __GHS_VERSION_NUMBER
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__TINYC__)
|
||||
# define COMPILER_ID "TinyCC"
|
||||
|
||||
#elif defined(__BCC__)
|
||||
# define COMPILER_ID "Bruce"
|
||||
|
||||
#elif defined(__SCO_VERSION__)
|
||||
# define COMPILER_ID "SCO"
|
||||
|
||||
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
|
||||
# define COMPILER_ID "ARMCC"
|
||||
#if __ARMCC_VERSION >= 1000000
|
||||
/* __ARMCC_VERSION = VRRPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
||||
#else
|
||||
/* __ARMCC_VERSION = VRPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
||||
#endif
|
||||
|
||||
|
||||
#elif defined(__clang__) && defined(__apple_build_version__)
|
||||
# define COMPILER_ID "AppleClang"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
|
||||
|
||||
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
|
||||
# define COMPILER_ID "ARMClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
|
||||
|
||||
#elif defined(__clang__)
|
||||
# define COMPILER_ID "Clang"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
|
||||
#elif defined(__GNUC__)
|
||||
# define COMPILER_ID "GNU"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
|
||||
# if defined(__GNUC_MINOR__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
# define COMPILER_ID "MSVC"
|
||||
/* _MSC_VER = VVRR */
|
||||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# if defined(_MSC_FULL_VER)
|
||||
# if _MSC_VER >= 1400
|
||||
/* _MSC_FULL_VER = VVRRPPPPP */
|
||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
|
||||
# else
|
||||
/* _MSC_FULL_VER = VVRRPPPP */
|
||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
|
||||
# endif
|
||||
# endif
|
||||
# if defined(_MSC_BUILD)
|
||||
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
|
||||
# endif
|
||||
|
||||
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
|
||||
# define COMPILER_ID "ADSP"
|
||||
#if defined(__VISUALDSPVERSION__)
|
||||
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
|
||||
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
|
||||
#endif
|
||||
|
||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
||||
# define COMPILER_ID "IAR"
|
||||
# if defined(__VER__) && defined(__ICCARM__)
|
||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
|
||||
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__))
|
||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
|
||||
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
||||
# endif
|
||||
|
||||
#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
|
||||
# define COMPILER_ID "SDCC"
|
||||
# if defined(__SDCC_VERSION_MAJOR)
|
||||
# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
|
||||
# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
|
||||
# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
|
||||
# else
|
||||
/* SDCC = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
|
||||
# endif
|
||||
|
||||
|
||||
/* These compilers are either not known or too old to define an
|
||||
identification macro. Try to identify the platform and guess that
|
||||
it is the native compiler. */
|
||||
#elif defined(__hpux) || defined(__hpua)
|
||||
# define COMPILER_ID "HP"
|
||||
|
||||
#else /* unknown compiler */
|
||||
# define COMPILER_ID ""
|
||||
#endif
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
getting matched. Store it in a pointer rather than an array
|
||||
because some compilers will just produce instructions to fill the
|
||||
array rather than assigning a pointer to a static array. */
|
||||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
|
||||
#ifdef SIMULATE_ID
|
||||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
||||
#endif
|
||||
|
||||
#ifdef __QNXNTO__
|
||||
char const* qnxnto = "INFO" ":" "qnxnto[]";
|
||||
#endif
|
||||
|
||||
#if defined(__CRAYXE) || defined(__CRAYXC)
|
||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
||||
#endif
|
||||
|
||||
#define STRINGIFY_HELPER(X) #X
|
||||
#define STRINGIFY(X) STRINGIFY_HELPER(X)
|
||||
|
||||
/* Identify known platforms by name. */
|
||||
#if defined(__linux) || defined(__linux__) || defined(linux)
|
||||
# define PLATFORM_ID "Linux"
|
||||
|
||||
#elif defined(__CYGWIN__)
|
||||
# define PLATFORM_ID "Cygwin"
|
||||
|
||||
#elif defined(__MINGW32__)
|
||||
# define PLATFORM_ID "MinGW"
|
||||
|
||||
#elif defined(__APPLE__)
|
||||
# define PLATFORM_ID "Darwin"
|
||||
|
||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
||||
# define PLATFORM_ID "Windows"
|
||||
|
||||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
|
||||
# define PLATFORM_ID "FreeBSD"
|
||||
|
||||
#elif defined(__NetBSD__) || defined(__NetBSD)
|
||||
# define PLATFORM_ID "NetBSD"
|
||||
|
||||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
|
||||
# define PLATFORM_ID "OpenBSD"
|
||||
|
||||
#elif defined(__sun) || defined(sun)
|
||||
# define PLATFORM_ID "SunOS"
|
||||
|
||||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
|
||||
# define PLATFORM_ID "AIX"
|
||||
|
||||
#elif defined(__hpux) || defined(__hpux__)
|
||||
# define PLATFORM_ID "HP-UX"
|
||||
|
||||
#elif defined(__HAIKU__)
|
||||
# define PLATFORM_ID "Haiku"
|
||||
|
||||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
|
||||
# define PLATFORM_ID "BeOS"
|
||||
|
||||
#elif defined(__QNX__) || defined(__QNXNTO__)
|
||||
# define PLATFORM_ID "QNX"
|
||||
|
||||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
|
||||
# define PLATFORM_ID "Tru64"
|
||||
|
||||
#elif defined(__riscos) || defined(__riscos__)
|
||||
# define PLATFORM_ID "RISCos"
|
||||
|
||||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
|
||||
# define PLATFORM_ID "SINIX"
|
||||
|
||||
#elif defined(__UNIX_SV__)
|
||||
# define PLATFORM_ID "UNIX_SV"
|
||||
|
||||
#elif defined(__bsdos__)
|
||||
# define PLATFORM_ID "BSDOS"
|
||||
|
||||
#elif defined(_MPRAS) || defined(MPRAS)
|
||||
# define PLATFORM_ID "MP-RAS"
|
||||
|
||||
#elif defined(__osf) || defined(__osf__)
|
||||
# define PLATFORM_ID "OSF1"
|
||||
|
||||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
|
||||
# define PLATFORM_ID "SCO_SV"
|
||||
|
||||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
|
||||
# define PLATFORM_ID "ULTRIX"
|
||||
|
||||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
|
||||
# define PLATFORM_ID "Xenix"
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# if defined(__LINUX__)
|
||||
# define PLATFORM_ID "Linux"
|
||||
|
||||
# elif defined(__DOS__)
|
||||
# define PLATFORM_ID "DOS"
|
||||
|
||||
# elif defined(__OS2__)
|
||||
# define PLATFORM_ID "OS2"
|
||||
|
||||
# elif defined(__WINDOWS__)
|
||||
# define PLATFORM_ID "Windows3x"
|
||||
|
||||
# else /* unknown platform */
|
||||
# define PLATFORM_ID
|
||||
# endif
|
||||
|
||||
#elif defined(__INTEGRITY)
|
||||
# if defined(INT_178B)
|
||||
# define PLATFORM_ID "Integrity178"
|
||||
|
||||
# else /* regular Integrity */
|
||||
# define PLATFORM_ID "Integrity"
|
||||
# endif
|
||||
|
||||
#else /* unknown platform */
|
||||
# define PLATFORM_ID
|
||||
|
||||
#endif
|
||||
|
||||
/* For windows compilers MSVC and Intel we can determine
|
||||
the architecture of the compiler being used. This is because
|
||||
the compilers do not have flags that can change the architecture,
|
||||
but rather depend on which compiler is being used
|
||||
*/
|
||||
#if defined(_WIN32) && defined(_MSC_VER)
|
||||
# if defined(_M_IA64)
|
||||
# define ARCHITECTURE_ID "IA64"
|
||||
|
||||
# elif defined(_M_X64) || defined(_M_AMD64)
|
||||
# define ARCHITECTURE_ID "x64"
|
||||
|
||||
# elif defined(_M_IX86)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# elif defined(_M_ARM64)
|
||||
# define ARCHITECTURE_ID "ARM64"
|
||||
|
||||
# elif defined(_M_ARM)
|
||||
# if _M_ARM == 4
|
||||
# define ARCHITECTURE_ID "ARMV4I"
|
||||
# elif _M_ARM == 5
|
||||
# define ARCHITECTURE_ID "ARMV5I"
|
||||
# else
|
||||
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
|
||||
# endif
|
||||
|
||||
# elif defined(_M_MIPS)
|
||||
# define ARCHITECTURE_ID "MIPS"
|
||||
|
||||
# elif defined(_M_SH)
|
||||
# define ARCHITECTURE_ID "SHx"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# if defined(_M_I86)
|
||||
# define ARCHITECTURE_ID "I86"
|
||||
|
||||
# elif defined(_M_IX86)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
||||
# if defined(__ICCARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__ICCRX__)
|
||||
# define ARCHITECTURE_ID "RX"
|
||||
|
||||
# elif defined(__ICCRH850__)
|
||||
# define ARCHITECTURE_ID "RH850"
|
||||
|
||||
# elif defined(__ICCRL78__)
|
||||
# define ARCHITECTURE_ID "RL78"
|
||||
|
||||
# elif defined(__ICCRISCV__)
|
||||
# define ARCHITECTURE_ID "RISCV"
|
||||
|
||||
# elif defined(__ICCAVR__)
|
||||
# define ARCHITECTURE_ID "AVR"
|
||||
|
||||
# elif defined(__ICC430__)
|
||||
# define ARCHITECTURE_ID "MSP430"
|
||||
|
||||
# elif defined(__ICCV850__)
|
||||
# define ARCHITECTURE_ID "V850"
|
||||
|
||||
# elif defined(__ICC8051__)
|
||||
# define ARCHITECTURE_ID "8051"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__ghs__)
|
||||
# if defined(__PPC64__)
|
||||
# define ARCHITECTURE_ID "PPC64"
|
||||
|
||||
# elif defined(__ppc__)
|
||||
# define ARCHITECTURE_ID "PPC"
|
||||
|
||||
# elif defined(__ARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__x86_64__)
|
||||
# define ARCHITECTURE_ID "x64"
|
||||
|
||||
# elif defined(__i386__)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
#else
|
||||
# define ARCHITECTURE_ID
|
||||
#endif
|
||||
|
||||
/* Convert integer to decimal digit literals. */
|
||||
#define DEC(n) \
|
||||
('0' + (((n) / 10000000)%10)), \
|
||||
('0' + (((n) / 1000000)%10)), \
|
||||
('0' + (((n) / 100000)%10)), \
|
||||
('0' + (((n) / 10000)%10)), \
|
||||
('0' + (((n) / 1000)%10)), \
|
||||
('0' + (((n) / 100)%10)), \
|
||||
('0' + (((n) / 10)%10)), \
|
||||
('0' + ((n) % 10))
|
||||
|
||||
/* Convert integer to hex digit literals. */
|
||||
#define HEX(n) \
|
||||
('0' + ((n)>>28 & 0xF)), \
|
||||
('0' + ((n)>>24 & 0xF)), \
|
||||
('0' + ((n)>>20 & 0xF)), \
|
||||
('0' + ((n)>>16 & 0xF)), \
|
||||
('0' + ((n)>>12 & 0xF)), \
|
||||
('0' + ((n)>>8 & 0xF)), \
|
||||
('0' + ((n)>>4 & 0xF)), \
|
||||
('0' + ((n) & 0xF))
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#ifdef COMPILER_VERSION_MAJOR
|
||||
char const info_version[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
|
||||
COMPILER_VERSION_MAJOR,
|
||||
# ifdef COMPILER_VERSION_MINOR
|
||||
'.', COMPILER_VERSION_MINOR,
|
||||
# ifdef COMPILER_VERSION_PATCH
|
||||
'.', COMPILER_VERSION_PATCH,
|
||||
# ifdef COMPILER_VERSION_TWEAK
|
||||
'.', COMPILER_VERSION_TWEAK,
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct a string literal encoding the internal version number. */
|
||||
#ifdef COMPILER_VERSION_INTERNAL
|
||||
char const info_version_internal[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
|
||||
'i','n','t','e','r','n','a','l','[',
|
||||
COMPILER_VERSION_INTERNAL,']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
char const info_simulate_version[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
|
||||
SIMULATE_VERSION_MAJOR,
|
||||
# ifdef SIMULATE_VERSION_MINOR
|
||||
'.', SIMULATE_VERSION_MINOR,
|
||||
# ifdef SIMULATE_VERSION_PATCH
|
||||
'.', SIMULATE_VERSION_PATCH,
|
||||
# ifdef SIMULATE_VERSION_TWEAK
|
||||
'.', SIMULATE_VERSION_TWEAK,
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
getting matched. Store it in a pointer rather than an array
|
||||
because some compilers will just produce instructions to fill the
|
||||
array rather than assigning a pointer to a static array. */
|
||||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
|
||||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
|
||||
|
||||
|
||||
|
||||
|
||||
#if !defined(__STDC__)
|
||||
# if (defined(_MSC_VER) && !defined(__clang__)) \
|
||||
|| (defined(__ibmxl__) || defined(__IBMC__))
|
||||
# define C_DIALECT "90"
|
||||
# else
|
||||
# define C_DIALECT
|
||||
# endif
|
||||
#elif __STDC_VERSION__ >= 201000L
|
||||
# define C_DIALECT "11"
|
||||
#elif __STDC_VERSION__ >= 199901L
|
||||
# define C_DIALECT "99"
|
||||
#else
|
||||
# define C_DIALECT "90"
|
||||
#endif
|
||||
const char* info_language_dialect_default =
|
||||
"INFO" ":" "dialect_default[" C_DIALECT "]";
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef ID_VOID_MAIN
|
||||
void main() {}
|
||||
#else
|
||||
# if defined(__CLASSIC_C__)
|
||||
int main(argc, argv) int argc; char *argv[];
|
||||
# else
|
||||
int main(int argc, char* argv[])
|
||||
# endif
|
||||
{
|
||||
int require = 0;
|
||||
require += info_compiler[argc];
|
||||
require += info_platform[argc];
|
||||
require += info_arch[argc];
|
||||
#ifdef COMPILER_VERSION_MAJOR
|
||||
require += info_version[argc];
|
||||
#endif
|
||||
#ifdef COMPILER_VERSION_INTERNAL
|
||||
require += info_version_internal[argc];
|
||||
#endif
|
||||
#ifdef SIMULATE_ID
|
||||
require += info_simulate[argc];
|
||||
#endif
|
||||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
require += info_simulate_version[argc];
|
||||
#endif
|
||||
#if defined(__CRAYXE) || defined(__CRAYXC)
|
||||
require += info_cray[argc];
|
||||
#endif
|
||||
require += info_language_dialect_default[argc];
|
||||
(void)argv;
|
||||
return require;
|
||||
}
|
||||
#endif
|
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,660 @@
|
||||
/* This source file must have a .cpp extension so that all C++ compilers
|
||||
recognize the extension without flags. Borland does not know .cxx for
|
||||
example. */
|
||||
#ifndef __cplusplus
|
||||
# error "A C compiler has been selected for C++."
|
||||
#endif
|
||||
|
||||
|
||||
/* Version number components: V=Version, R=Revision, P=Patch
|
||||
Version date components: YYYY=Year, MM=Month, DD=Day */
|
||||
|
||||
#if defined(__COMO__)
|
||||
# define COMPILER_ID "Comeau"
|
||||
/* __COMO_VERSION__ = VRR */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
|
||||
|
||||
#elif defined(__INTEL_COMPILER) || defined(__ICC)
|
||||
# define COMPILER_ID "Intel"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# if defined(__GNUC__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
# endif
|
||||
/* __INTEL_COMPILER = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
|
||||
# if defined(__INTEL_COMPILER_UPDATE)
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
|
||||
# else
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
|
||||
# endif
|
||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
||||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
|
||||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
|
||||
# endif
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
# if defined(__GNUC__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
# elif defined(__GNUG__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
||||
# endif
|
||||
# if defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__PATHCC__)
|
||||
# define COMPILER_ID "PathScale"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
|
||||
# if defined(__PATHCC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
|
||||
# define COMPILER_ID "Embarcadero"
|
||||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
|
||||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
|
||||
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
# define COMPILER_ID "Borland"
|
||||
/* __BORLANDC__ = 0xVRR */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
|
||||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
|
||||
|
||||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
|
||||
# define COMPILER_ID "Watcom"
|
||||
/* __WATCOMC__ = VVRR */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
||||
# if (__WATCOMC__ % 10) > 0
|
||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# define COMPILER_ID "OpenWatcom"
|
||||
/* __WATCOMC__ = VVRP + 1100 */
|
||||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
||||
# if (__WATCOMC__ % 10) > 0
|
||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__SUNPRO_CC)
|
||||
# define COMPILER_ID "SunPro"
|
||||
# if __SUNPRO_CC >= 0x5100
|
||||
/* __SUNPRO_CC = 0xVRRP */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
|
||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
|
||||
# else
|
||||
/* __SUNPRO_CC = 0xVRP */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
|
||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
|
||||
# endif
|
||||
|
||||
#elif defined(__HP_aCC)
|
||||
# define COMPILER_ID "HP"
|
||||
/* __HP_aCC = VVRRPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
|
||||
|
||||
#elif defined(__DECCXX)
|
||||
# define COMPILER_ID "Compaq"
|
||||
/* __DECCXX_VER = VVRRTPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
|
||||
|
||||
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
|
||||
# define COMPILER_ID "zOS"
|
||||
/* __IBMCPP__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
||||
|
||||
#elif defined(__ibmxl__) && defined(__clang__)
|
||||
# define COMPILER_ID "XLClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
|
||||
|
||||
|
||||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
|
||||
# define COMPILER_ID "XL"
|
||||
/* __IBMCPP__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
||||
|
||||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
|
||||
# define COMPILER_ID "VisualAge"
|
||||
/* __IBMCPP__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
||||
|
||||
#elif defined(__PGI)
|
||||
# define COMPILER_ID "PGI"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
|
||||
# if defined(__PGIC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
# define COMPILER_ID "Cray"
|
||||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
|
||||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
|
||||
|
||||
#elif defined(__TI_COMPILER_VERSION__)
|
||||
# define COMPILER_ID "TI"
|
||||
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
|
||||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
|
||||
|
||||
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
|
||||
# define COMPILER_ID "Fujitsu"
|
||||
|
||||
#elif defined(__ghs__)
|
||||
# define COMPILER_ID "GHS"
|
||||
/* __GHS_VERSION_NUMBER = VVVVRP */
|
||||
# ifdef __GHS_VERSION_NUMBER
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__SCO_VERSION__)
|
||||
# define COMPILER_ID "SCO"
|
||||
|
||||
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
|
||||
# define COMPILER_ID "ARMCC"
|
||||
#if __ARMCC_VERSION >= 1000000
|
||||
/* __ARMCC_VERSION = VRRPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
||||
#else
|
||||
/* __ARMCC_VERSION = VRPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
||||
#endif
|
||||
|
||||
|
||||
#elif defined(__clang__) && defined(__apple_build_version__)
|
||||
# define COMPILER_ID "AppleClang"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
|
||||
|
||||
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
|
||||
# define COMPILER_ID "ARMClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
|
||||
|
||||
#elif defined(__clang__)
|
||||
# define COMPILER_ID "Clang"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
|
||||
#elif defined(__GNUC__) || defined(__GNUG__)
|
||||
# define COMPILER_ID "GNU"
|
||||
# if defined(__GNUC__)
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
|
||||
# else
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
|
||||
# endif
|
||||
# if defined(__GNUC_MINOR__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
# define COMPILER_ID "MSVC"
|
||||
/* _MSC_VER = VVRR */
|
||||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# if defined(_MSC_FULL_VER)
|
||||
# if _MSC_VER >= 1400
|
||||
/* _MSC_FULL_VER = VVRRPPPPP */
|
||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
|
||||
# else
|
||||
/* _MSC_FULL_VER = VVRRPPPP */
|
||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
|
||||
# endif
|
||||
# endif
|
||||
# if defined(_MSC_BUILD)
|
||||
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
|
||||
# endif
|
||||
|
||||
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
|
||||
# define COMPILER_ID "ADSP"
|
||||
#if defined(__VISUALDSPVERSION__)
|
||||
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
|
||||
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
|
||||
#endif
|
||||
|
||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
||||
# define COMPILER_ID "IAR"
|
||||
# if defined(__VER__) && defined(__ICCARM__)
|
||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
|
||||
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__))
|
||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
|
||||
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
||||
# endif
|
||||
|
||||
|
||||
/* These compilers are either not known or too old to define an
|
||||
identification macro. Try to identify the platform and guess that
|
||||
it is the native compiler. */
|
||||
#elif defined(__hpux) || defined(__hpua)
|
||||
# define COMPILER_ID "HP"
|
||||
|
||||
#else /* unknown compiler */
|
||||
# define COMPILER_ID ""
|
||||
#endif
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
getting matched. Store it in a pointer rather than an array
|
||||
because some compilers will just produce instructions to fill the
|
||||
array rather than assigning a pointer to a static array. */
|
||||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
|
||||
#ifdef SIMULATE_ID
|
||||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
||||
#endif
|
||||
|
||||
#ifdef __QNXNTO__
|
||||
char const* qnxnto = "INFO" ":" "qnxnto[]";
|
||||
#endif
|
||||
|
||||
#if defined(__CRAYXE) || defined(__CRAYXC)
|
||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
||||
#endif
|
||||
|
||||
#define STRINGIFY_HELPER(X) #X
|
||||
#define STRINGIFY(X) STRINGIFY_HELPER(X)
|
||||
|
||||
/* Identify known platforms by name. */
|
||||
#if defined(__linux) || defined(__linux__) || defined(linux)
|
||||
# define PLATFORM_ID "Linux"
|
||||
|
||||
#elif defined(__CYGWIN__)
|
||||
# define PLATFORM_ID "Cygwin"
|
||||
|
||||
#elif defined(__MINGW32__)
|
||||
# define PLATFORM_ID "MinGW"
|
||||
|
||||
#elif defined(__APPLE__)
|
||||
# define PLATFORM_ID "Darwin"
|
||||
|
||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
||||
# define PLATFORM_ID "Windows"
|
||||
|
||||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
|
||||
# define PLATFORM_ID "FreeBSD"
|
||||
|
||||
#elif defined(__NetBSD__) || defined(__NetBSD)
|
||||
# define PLATFORM_ID "NetBSD"
|
||||
|
||||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
|
||||
# define PLATFORM_ID "OpenBSD"
|
||||
|
||||
#elif defined(__sun) || defined(sun)
|
||||
# define PLATFORM_ID "SunOS"
|
||||
|
||||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
|
||||
# define PLATFORM_ID "AIX"
|
||||
|
||||
#elif defined(__hpux) || defined(__hpux__)
|
||||
# define PLATFORM_ID "HP-UX"
|
||||
|
||||
#elif defined(__HAIKU__)
|
||||
# define PLATFORM_ID "Haiku"
|
||||
|
||||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
|
||||
# define PLATFORM_ID "BeOS"
|
||||
|
||||
#elif defined(__QNX__) || defined(__QNXNTO__)
|
||||
# define PLATFORM_ID "QNX"
|
||||
|
||||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
|
||||
# define PLATFORM_ID "Tru64"
|
||||
|
||||
#elif defined(__riscos) || defined(__riscos__)
|
||||
# define PLATFORM_ID "RISCos"
|
||||
|
||||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
|
||||
# define PLATFORM_ID "SINIX"
|
||||
|
||||
#elif defined(__UNIX_SV__)
|
||||
# define PLATFORM_ID "UNIX_SV"
|
||||
|
||||
#elif defined(__bsdos__)
|
||||
# define PLATFORM_ID "BSDOS"
|
||||
|
||||
#elif defined(_MPRAS) || defined(MPRAS)
|
||||
# define PLATFORM_ID "MP-RAS"
|
||||
|
||||
#elif defined(__osf) || defined(__osf__)
|
||||
# define PLATFORM_ID "OSF1"
|
||||
|
||||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
|
||||
# define PLATFORM_ID "SCO_SV"
|
||||
|
||||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
|
||||
# define PLATFORM_ID "ULTRIX"
|
||||
|
||||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
|
||||
# define PLATFORM_ID "Xenix"
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# if defined(__LINUX__)
|
||||
# define PLATFORM_ID "Linux"
|
||||
|
||||
# elif defined(__DOS__)
|
||||
# define PLATFORM_ID "DOS"
|
||||
|
||||
# elif defined(__OS2__)
|
||||
# define PLATFORM_ID "OS2"
|
||||
|
||||
# elif defined(__WINDOWS__)
|
||||
# define PLATFORM_ID "Windows3x"
|
||||
|
||||
# else /* unknown platform */
|
||||
# define PLATFORM_ID
|
||||
# endif
|
||||
|
||||
#elif defined(__INTEGRITY)
|
||||
# if defined(INT_178B)
|
||||
# define PLATFORM_ID "Integrity178"
|
||||
|
||||
# else /* regular Integrity */
|
||||
# define PLATFORM_ID "Integrity"
|
||||
# endif
|
||||
|
||||
#else /* unknown platform */
|
||||
# define PLATFORM_ID
|
||||
|
||||
#endif
|
||||
|
||||
/* For windows compilers MSVC and Intel we can determine
|
||||
the architecture of the compiler being used. This is because
|
||||
the compilers do not have flags that can change the architecture,
|
||||
but rather depend on which compiler is being used
|
||||
*/
|
||||
#if defined(_WIN32) && defined(_MSC_VER)
|
||||
# if defined(_M_IA64)
|
||||
# define ARCHITECTURE_ID "IA64"
|
||||
|
||||
# elif defined(_M_X64) || defined(_M_AMD64)
|
||||
# define ARCHITECTURE_ID "x64"
|
||||
|
||||
# elif defined(_M_IX86)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# elif defined(_M_ARM64)
|
||||
# define ARCHITECTURE_ID "ARM64"
|
||||
|
||||
# elif defined(_M_ARM)
|
||||
# if _M_ARM == 4
|
||||
# define ARCHITECTURE_ID "ARMV4I"
|
||||
# elif _M_ARM == 5
|
||||
# define ARCHITECTURE_ID "ARMV5I"
|
||||
# else
|
||||
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
|
||||
# endif
|
||||
|
||||
# elif defined(_M_MIPS)
|
||||
# define ARCHITECTURE_ID "MIPS"
|
||||
|
||||
# elif defined(_M_SH)
|
||||
# define ARCHITECTURE_ID "SHx"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# if defined(_M_I86)
|
||||
# define ARCHITECTURE_ID "I86"
|
||||
|
||||
# elif defined(_M_IX86)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
||||
# if defined(__ICCARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__ICCRX__)
|
||||
# define ARCHITECTURE_ID "RX"
|
||||
|
||||
# elif defined(__ICCRH850__)
|
||||
# define ARCHITECTURE_ID "RH850"
|
||||
|
||||
# elif defined(__ICCRL78__)
|
||||
# define ARCHITECTURE_ID "RL78"
|
||||
|
||||
# elif defined(__ICCRISCV__)
|
||||
# define ARCHITECTURE_ID "RISCV"
|
||||
|
||||
# elif defined(__ICCAVR__)
|
||||
# define ARCHITECTURE_ID "AVR"
|
||||
|
||||
# elif defined(__ICC430__)
|
||||
# define ARCHITECTURE_ID "MSP430"
|
||||
|
||||
# elif defined(__ICCV850__)
|
||||
# define ARCHITECTURE_ID "V850"
|
||||
|
||||
# elif defined(__ICC8051__)
|
||||
# define ARCHITECTURE_ID "8051"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__ghs__)
|
||||
# if defined(__PPC64__)
|
||||
# define ARCHITECTURE_ID "PPC64"
|
||||
|
||||
# elif defined(__ppc__)
|
||||
# define ARCHITECTURE_ID "PPC"
|
||||
|
||||
# elif defined(__ARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__x86_64__)
|
||||
# define ARCHITECTURE_ID "x64"
|
||||
|
||||
# elif defined(__i386__)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
#else
|
||||
# define ARCHITECTURE_ID
|
||||
#endif
|
||||
|
||||
/* Convert integer to decimal digit literals. */
|
||||
#define DEC(n) \
|
||||
('0' + (((n) / 10000000)%10)), \
|
||||
('0' + (((n) / 1000000)%10)), \
|
||||
('0' + (((n) / 100000)%10)), \
|
||||
('0' + (((n) / 10000)%10)), \
|
||||
('0' + (((n) / 1000)%10)), \
|
||||
('0' + (((n) / 100)%10)), \
|
||||
('0' + (((n) / 10)%10)), \
|
||||
('0' + ((n) % 10))
|
||||
|
||||
/* Convert integer to hex digit literals. */
|
||||
#define HEX(n) \
|
||||
('0' + ((n)>>28 & 0xF)), \
|
||||
('0' + ((n)>>24 & 0xF)), \
|
||||
('0' + ((n)>>20 & 0xF)), \
|
||||
('0' + ((n)>>16 & 0xF)), \
|
||||
('0' + ((n)>>12 & 0xF)), \
|
||||
('0' + ((n)>>8 & 0xF)), \
|
||||
('0' + ((n)>>4 & 0xF)), \
|
||||
('0' + ((n) & 0xF))
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#ifdef COMPILER_VERSION_MAJOR
|
||||
char const info_version[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
|
||||
COMPILER_VERSION_MAJOR,
|
||||
# ifdef COMPILER_VERSION_MINOR
|
||||
'.', COMPILER_VERSION_MINOR,
|
||||
# ifdef COMPILER_VERSION_PATCH
|
||||
'.', COMPILER_VERSION_PATCH,
|
||||
# ifdef COMPILER_VERSION_TWEAK
|
||||
'.', COMPILER_VERSION_TWEAK,
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct a string literal encoding the internal version number. */
|
||||
#ifdef COMPILER_VERSION_INTERNAL
|
||||
char const info_version_internal[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
|
||||
'i','n','t','e','r','n','a','l','[',
|
||||
COMPILER_VERSION_INTERNAL,']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
char const info_simulate_version[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
|
||||
SIMULATE_VERSION_MAJOR,
|
||||
# ifdef SIMULATE_VERSION_MINOR
|
||||
'.', SIMULATE_VERSION_MINOR,
|
||||
# ifdef SIMULATE_VERSION_PATCH
|
||||
'.', SIMULATE_VERSION_PATCH,
|
||||
# ifdef SIMULATE_VERSION_TWEAK
|
||||
'.', SIMULATE_VERSION_TWEAK,
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
getting matched. Store it in a pointer rather than an array
|
||||
because some compilers will just produce instructions to fill the
|
||||
array rather than assigning a pointer to a static array. */
|
||||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
|
||||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
|
||||
|
||||
|
||||
|
||||
|
||||
#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
|
||||
# if defined(__INTEL_CXX11_MODE__)
|
||||
# if defined(__cpp_aggregate_nsdmi)
|
||||
# define CXX_STD 201402L
|
||||
# else
|
||||
# define CXX_STD 201103L
|
||||
# endif
|
||||
# else
|
||||
# define CXX_STD 199711L
|
||||
# endif
|
||||
#elif defined(_MSC_VER) && defined(_MSVC_LANG)
|
||||
# define CXX_STD _MSVC_LANG
|
||||
#else
|
||||
# define CXX_STD __cplusplus
|
||||
#endif
|
||||
|
||||
const char* info_language_dialect_default = "INFO" ":" "dialect_default["
|
||||
#if CXX_STD > 201703L
|
||||
"20"
|
||||
#elif CXX_STD >= 201703L
|
||||
"17"
|
||||
#elif CXX_STD >= 201402L
|
||||
"14"
|
||||
#elif CXX_STD >= 201103L
|
||||
"11"
|
||||
#else
|
||||
"98"
|
||||
#endif
|
||||
"]";
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int require = 0;
|
||||
require += info_compiler[argc];
|
||||
require += info_platform[argc];
|
||||
#ifdef COMPILER_VERSION_MAJOR
|
||||
require += info_version[argc];
|
||||
#endif
|
||||
#ifdef COMPILER_VERSION_INTERNAL
|
||||
require += info_version_internal[argc];
|
||||
#endif
|
||||
#ifdef SIMULATE_ID
|
||||
require += info_simulate[argc];
|
||||
#endif
|
||||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
require += info_simulate_version[argc];
|
||||
#endif
|
||||
#if defined(__CRAYXE) || defined(__CRAYXC)
|
||||
require += info_cray[argc];
|
||||
#endif
|
||||
require += info_language_dialect_default[argc];
|
||||
(void)argv;
|
||||
return require;
|
||||
}
|
Binary file not shown.
Binary file not shown.
137
cmake-build-debug/CMakeFiles/CMakeOutput.log
Normal file
137
cmake-build-debug/CMakeFiles/CMakeOutput.log
Normal file
@@ -0,0 +1,137 @@
|
||||
The system is: Windows - 10.0.18363 - AMD64
|
||||
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
|
||||
Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/cl.exe
|
||||
Build flags:
|
||||
Id flags:
|
||||
|
||||
The output was:
|
||||
0
|
||||
Microsoft (R) C/C++ Optimizing Compiler Version 19.25.28614 for x86
|
||||
Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
|
||||
CMakeCCompilerId.c
|
||||
Microsoft (R) Incremental Linker Version 14.25.28614.0
|
||||
Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
|
||||
/out:CMakeCCompilerId.exe
|
||||
CMakeCCompilerId.obj
|
||||
|
||||
|
||||
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.exe"
|
||||
|
||||
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.obj"
|
||||
|
||||
The C compiler identification is MSVC, found in "E:/code/blender-git/blender/cmake-build-debug/CMakeFiles/3.16.5/CompilerIdC/CMakeCCompilerId.exe"
|
||||
|
||||
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
|
||||
Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/cl.exe
|
||||
Build flags:
|
||||
Id flags:
|
||||
|
||||
The output was:
|
||||
0
|
||||
Microsoft (R) C/C++ Optimizing Compiler Version 19.25.28614 for x86
|
||||
Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
|
||||
CMakeCXXCompilerId.cpp
|
||||
Microsoft (R) Incremental Linker Version 14.25.28614.0
|
||||
Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
|
||||
/out:CMakeCXXCompilerId.exe
|
||||
CMakeCXXCompilerId.obj
|
||||
|
||||
|
||||
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.exe"
|
||||
|
||||
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "CMakeCXXCompilerId.obj"
|
||||
|
||||
The CXX compiler identification is MSVC, found in "E:/code/blender-git/blender/cmake-build-debug/CMakeFiles/3.16.5/CompilerIdCXX/CMakeCXXCompilerId.exe"
|
||||
|
||||
Determining if the C compiler works passed with the following output:
|
||||
Change Dir: E:/code/blender-git/blender/cmake-build-debug/CMakeFiles/CMakeTmp
|
||||
|
||||
Run Build Command(s):nmake /nologo cmTC_657d4\fast && "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\bin\HostX86\x86\nmake.exe" -f CMakeFiles\cmTC_657d4.dir\build.make /nologo -L CMakeFiles\cmTC_657d4.dir\build
|
||||
|
||||
Building C object CMakeFiles/cmTC_657d4.dir/testCCompiler.c.obj
|
||||
|
||||
C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\bin\Hostx86\x86\cl.exe @C:\Users\peter\AppData\Local\Temp\nm8154.tmp
|
||||
|
||||
testCCompiler.c
|
||||
|
||||
Linking C executable cmTC_657d4.exe
|
||||
|
||||
"C:\Program Files\JetBrains\CLion 2020.1.1\bin\cmake\win\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_657d4.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x86\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x86\mt.exe --manifests -- C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\bin\Hostx86\x86\link.exe /nologo @CMakeFiles\cmTC_657d4.dir\objects1.rsp @C:\Users\peter\AppData\Local\Temp\nm82AD.tmp
|
||||
|
||||
|
||||
|
||||
|
||||
Detecting C compiler ABI info compiled with the following output:
|
||||
Change Dir: E:/code/blender-git/blender/cmake-build-debug/CMakeFiles/CMakeTmp
|
||||
|
||||
Run Build Command(s):nmake /nologo cmTC_63ba1\fast && "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\bin\HostX86\x86\nmake.exe" -f CMakeFiles\cmTC_63ba1.dir\build.make /nologo -L CMakeFiles\cmTC_63ba1.dir\build
|
||||
|
||||
Building C object CMakeFiles/cmTC_63ba1.dir/CMakeCCompilerABI.c.obj
|
||||
|
||||
C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\bin\Hostx86\x86\cl.exe @C:\Users\peter\AppData\Local\Temp\nm84CF.tmp
|
||||
|
||||
CMakeCCompilerABI.c
|
||||
|
||||
Linking C executable cmTC_63ba1.exe
|
||||
|
||||
"C:\Program Files\JetBrains\CLion 2020.1.1\bin\cmake\win\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_63ba1.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x86\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x86\mt.exe --manifests -- C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\bin\Hostx86\x86\link.exe /nologo @CMakeFiles\cmTC_63ba1.dir\objects1.rsp @C:\Users\peter\AppData\Local\Temp\nm851E.tmp
|
||||
|
||||
|
||||
|
||||
|
||||
Determining if the CXX compiler works passed with the following output:
|
||||
Change Dir: E:/code/blender-git/blender/cmake-build-debug/CMakeFiles/CMakeTmp
|
||||
|
||||
Run Build Command(s):nmake /nologo cmTC_ad8ea\fast && "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\bin\HostX86\x86\nmake.exe" -f CMakeFiles\cmTC_ad8ea.dir\build.make /nologo -L CMakeFiles\cmTC_ad8ea.dir\build
|
||||
|
||||
Building CXX object CMakeFiles/cmTC_ad8ea.dir/testCXXCompiler.cxx.obj
|
||||
|
||||
C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\bin\Hostx86\x86\cl.exe @C:\Users\peter\AppData\Local\Temp\nm8730.tmp
|
||||
|
||||
testCXXCompiler.cxx
|
||||
|
||||
Linking CXX executable cmTC_ad8ea.exe
|
||||
|
||||
"C:\Program Files\JetBrains\CLion 2020.1.1\bin\cmake\win\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_ad8ea.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x86\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x86\mt.exe --manifests -- C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\bin\Hostx86\x86\link.exe /nologo @CMakeFiles\cmTC_ad8ea.dir\objects1.rsp @C:\Users\peter\AppData\Local\Temp\nm879F.tmp
|
||||
|
||||
|
||||
|
||||
|
||||
Detecting CXX compiler ABI info compiled with the following output:
|
||||
Change Dir: E:/code/blender-git/blender/cmake-build-debug/CMakeFiles/CMakeTmp
|
||||
|
||||
Run Build Command(s):nmake /nologo cmTC_0b66f\fast && "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\bin\HostX86\x86\nmake.exe" -f CMakeFiles\cmTC_0b66f.dir\build.make /nologo -L CMakeFiles\cmTC_0b66f.dir\build
|
||||
|
||||
Building CXX object CMakeFiles/cmTC_0b66f.dir/CMakeCXXCompilerABI.cpp.obj
|
||||
|
||||
C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\bin\Hostx86\x86\cl.exe @C:\Users\peter\AppData\Local\Temp\nm8953.tmp
|
||||
|
||||
CMakeCXXCompilerABI.cpp
|
||||
|
||||
Linking CXX executable cmTC_0b66f.exe
|
||||
|
||||
"C:\Program Files\JetBrains\CLion 2020.1.1\bin\cmake\win\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_0b66f.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x86\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100183~1.0\x86\mt.exe --manifests -- C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\bin\Hostx86\x86\link.exe /nologo @CMakeFiles\cmTC_0b66f.dir\objects1.rsp @C:\Users\peter\AppData\Local\Temp\nm89B2.tmp
|
||||
|
||||
|
||||
|
||||
|
||||
Performing C SOURCE FILE Test SUPPORT_SSE_BUILD succeeded with the following compile output:
|
||||
Change Dir: E:/code/blender-git/blender/cmake-build-debug/CMakeFiles/CMakeTmp
|
||||
|
||||
Run Build Command(s):nmake /nologo cmTC_dfa41\fast && "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\bin\HostX86\x86\nmake.exe" -f CMakeFiles\cmTC_dfa41.dir\build.make /nologo -L CMakeFiles\cmTC_dfa41.dir\build
|
||||
|
||||
Building C object CMakeFiles/cmTC_dfa41.dir/src.c.obj
|
||||
|
||||
C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\MSVC\1425~1.286\bin\Hostx86\x86\cl.exe @C:\Users\peter\AppData\Local\Temp\nm8B95.tmp
|
||||
|
||||
cl : Command line warning D9025 : overriding '/arch:SSE' with '/arch:SSE2'
|
||||
|
||||
src.c
|
||||
|
||||
E:\code\blender-git\blender\cmake-build-debug\CMakeFiles\CMakeTmp\src.c(3): warning C4101: 'v': unreferenced local variable
|
||||
|
||||
Linking C executable cmTC_dfa41.exe
|
4
cmake-build-debug/CMakeFiles/clion-environment.txt
Normal file
4
cmake-build-debug/CMakeFiles/clion-environment.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
ToolSet: 16.0 (local)@C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
|
||||
Options:
|
||||
|
||||
Options:
|
32
cmake-build-debug/CMakeFiles/clion-log.txt
Normal file
32
cmake-build-debug/CMakeFiles/clion-log.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
"C:\Program Files\JetBrains\CLion 2020.1.1\bin\cmake\win\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - NMake Makefiles" E:\code\blender-git\blender
|
||||
-- The C compiler identification is MSVC 19.25.28614.0
|
||||
-- The CXX compiler identification is MSVC 19.25.28614.0
|
||||
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/cl.exe
|
||||
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/cl.exe -- works
|
||||
-- Detecting C compiler ABI info
|
||||
-- Detecting C compiler ABI info - done
|
||||
-- Detecting C compile features
|
||||
-- Detecting C compile features - done
|
||||
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/cl.exe
|
||||
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx86/x86/cl.exe -- works
|
||||
-- Detecting CXX compiler ABI info
|
||||
-- Detecting CXX compiler ABI info - done
|
||||
-- Detecting CXX compile features
|
||||
-- Detecting CXX compile features - done
|
||||
-- Performing Test SUPPORT_SSE_BUILD
|
||||
-- Performing Test SUPPORT_SSE_BUILD - Success
|
||||
-- SSE Support: detected.
|
||||
-- Performing Test SUPPORT_SSE2_BUILD
|
||||
-- Performing Test SUPPORT_SSE2_BUILD - Success
|
||||
-- SSE2 Support: detected.
|
||||
-- Found Git: C:/Program Files/Git/cmd/git.exe (found version "2.26.0.windows.1")
|
||||
CMake Error at build_files/cmake/platform/platform_win32.cmake:219 (message):
|
||||
32 bit compiler detected, blender no longer provides pre-build libraries
|
||||
for 32 bit windows, please set the LIBDIR cmake variable to your own
|
||||
library folder
|
||||
Call Stack (most recent call first):
|
||||
CMakeLists.txt:832 (include)
|
||||
|
||||
|
||||
-- Configuring incomplete, errors occurred!
|
||||
See also "E:/code/blender-git/blender/cmake-build-debug/CMakeFiles/CMakeOutput.log".
|
1
cmake-build-debug/CMakeFiles/cmake.check_cache
Normal file
1
cmake-build-debug/CMakeFiles/cmake.check_cache
Normal file
@@ -0,0 +1 @@
|
||||
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
|
54
cmake-build-debug/blender.crt.manifest
Normal file
54
cmake-build-debug/blender.crt.manifest
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<assemblyIdentity type="win32" name="Blender.CRT" version="1.0.0.0" />
|
||||
<file name="msvcp140.dll" hash="8106f2dd4665aec0d1c652e29378ef46ea4e5801" hashalg="SHA1" />
|
||||
<file name="msvcp140_1.dll" hash="6ba029a7c545d64c044aaad93a3dd00702bdf44e" hashalg="SHA1" />
|
||||
<file name="msvcp140_2.dll" hash="40be57a54102ea5af3d3173c8815bdf35761e5f5" hashalg="SHA1" />
|
||||
<file name="msvcp140_codecvt_ids.dll" hash="d34e3f579507f23c6b3378da44e666b85fff6e3b" hashalg="SHA1" />
|
||||
<file name="vcruntime140.dll" hash="20a2e66fd577293b33ba1c9d01ef04582deaf3a5" hashalg="SHA1" />
|
||||
<file name="concrt140.dll" hash="70bcb3c04ddf9a07f4fa65e94fc6997e58606699" hashalg="SHA1" />
|
||||
<file name="API-MS-Win-core-xstate-l2-1-0.dll" hash="28f0ff95c64faa31eafdc4e5e95cd7dbeb54ca22" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-console-l1-1-0.dll" hash="2d2e5e097ba5d92e6977cbb23afcc60b2e1d1c8c" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-console-l1-2-0.dll" hash="b5e00a0516b6c8c6f6a51ea40fae1beba3dd49ba" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-datetime-l1-1-0.dll" hash="8e0fcc170f5d66beea796b38cd544a045375204b" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-debug-l1-1-0.dll" hash="505b7e21e237d7f8c454bdfb37b19932ae6980d3" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-errorhandling-l1-1-0.dll" hash="1cb405eb7339ef121df51f5eba44e0b0177a76d3" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-file-l1-1-0.dll" hash="e0fa94d72626531aa971c3f1385f03ded6bde6a0" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-file-l1-2-0.dll" hash="c4643779a0f0f377323503f2db8d2e4d74c738ca" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-file-l2-1-0.dll" hash="1aadbbd43eff2df7bab51c6f3bda2eb2623b281a" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-handle-l1-1-0.dll" hash="8b3a44beceb81727071337a9c9e7d0f3b1370455" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-heap-l1-1-0.dll" hash="deb18c79ab7def1f7ce1b22f90d21b3f6c5d8ef3" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-interlocked-l1-1-0.dll" hash="2acb3bdfb7209323d586866e276e152d540d5ae3" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-libraryloader-l1-1-0.dll" hash="f6fbe3fe91884d3aa19ce93156423da55bdd6ced" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-localization-l1-2-0.dll" hash="7833ac2c20263c8be42f67151f9234eb8e4a5515" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-memory-l1-1-0.dll" hash="fa1609389caea2192f37017a23ec66e0c7f21d65" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-namedpipe-l1-1-0.dll" hash="52c9bf4137e466124eab9aa639671795d05125f1" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-processenvironment-l1-1-0.dll" hash="05727b747b29845e025d2efde0e43ee36927439e" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-processthreads-l1-1-0.dll" hash="2fdf383c24a697a0cc29231dab4d0a77207a29f1" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-processthreads-l1-1-1.dll" hash="83a8fcc777c7e8c42fa4c59ee627baf6cbed1969" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-profile-l1-1-0.dll" hash="f6e3da76e7de8a0d5f2e254b080ba973c92ba817" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-rtlsupport-l1-1-0.dll" hash="14c89f2ade657eb9249b95f9290fb4284908c9c6" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-string-l1-1-0.dll" hash="4a902cf7e4500c736ab4830e762cc1e18bb224ec" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-synch-l1-1-0.dll" hash="6e8a961767f5ac308d569fd57e84b56b145c6c53" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-synch-l1-2-0.dll" hash="5a60eebe67ed90f3171970f8339e1404ca1bb311" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-sysinfo-l1-1-0.dll" hash="4c83bd868c963c3afa29d92f75d185ad612c9b11" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-timezone-l1-1-0.dll" hash="2f0fe3eb94fa90577846d49c03c4fd08ef9d3fb2" hashalg="SHA1" />
|
||||
<file name="api-ms-win-core-util-l1-1-0.dll" hash="c063a309aeff016f0a7d728c44fe169ce6da12c5" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-conio-l1-1-0.dll" hash="e025b0afc3b9a8046f83e5df718bac4ad05c9c2c" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-convert-l1-1-0.dll" hash="8ada489b9ff33530a3fb7161cc07b5b11dfb8909" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-environment-l1-1-0.dll" hash="4051c6eb37a4c0dba47b58301e63df76bff347dd" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-filesystem-l1-1-0.dll" hash="5516de099c49e0e6d1224286c3dc9b4d7985e913" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-heap-l1-1-0.dll" hash="cdb6d8bd1fbd1c71d85437cff55ddeb76139dbe7" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-locale-l1-1-0.dll" hash="f35b3157818d4a5af3486b5e2e70bb510ac05eff" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-math-l1-1-0.dll" hash="935b00c88c2065f98746e2b4353d4369216f1812" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-multibyte-l1-1-0.dll" hash="18fee669be0aa8a1839a75a167980f3f246c93a4" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-private-l1-1-0.dll" hash="bcfb984771542970488bd6132dfa2746267b7fbc" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-process-l1-1-0.dll" hash="ba58c577311e39ff7e92a6be0dd6b80abfee6edc" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-runtime-l1-1-0.dll" hash="40cf36e07b738aa8bba58bc5587643326ff412a9" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-stdio-l1-1-0.dll" hash="6913bf1624599e55680a0292e22c89cab559db81" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-string-l1-1-0.dll" hash="5899230b0d7ad96121c3be0df99235ddd8a47dc6" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-time-l1-1-0.dll" hash="8396e1e02dace6ae4dde33b3e432a3581bc38f5d" hashalg="SHA1" />
|
||||
<file name="api-ms-win-crt-utility-l1-1-0.dll" hash="5da1d02b764917b38fdc34f4b41fb9a599105dd9" hashalg="SHA1" />
|
||||
<file name="ucrtbase.dll" hash="918bc19f55e656f6d6b1e4713604483eb997ea15" hashalg="SHA1" />
|
||||
<file name="vcomp140.dll" hash="eda3a7cd19d4bb362be37ec06290c1309962d4d4" hashalg="SHA1" />
|
||||
</assembly>
|
37
cmake-build-debug/blender.exe.manifest
Normal file
37
cmake-build-debug/blender.exe.manifest
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- Windows 10 -->
|
||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
||||
<!-- Windows 8.1 -->
|
||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
||||
<!-- Windows 8 -->
|
||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
||||
<!-- Windows 7 -->
|
||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
||||
<!-- Windows Vista -->
|
||||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||
</application>
|
||||
</compatibility>
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="*"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency><dependentAssembly><assemblyIdentity type="win32" name="blender.crt" version="1.0.0.0" /></dependentAssembly></dependency>
|
||||
</assembly>
|
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
#ifndef __BKE_BLENDER_VERSION_H__
|
||||
#define __BKE_BLENDER_VERSION_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** \file
|
||||
* \ingroup bke
|
||||
*/
|
||||
|
||||
/**
|
||||
* The lines below use regex from scripts to extract their values,
|
||||
* Keep this in mind when modifying this file and keep this comment above the defines.
|
||||
*
|
||||
* \note Use #STRINGIFY() rather than defining with quotes.
|
||||
*/
|
||||
|
||||
/* Blender major and minor version. */
|
||||
#define BLENDER_VERSION 291
|
||||
/* Blender patch version for bugfix releases. */
|
||||
#define BLENDER_VERSION_PATCH 0
|
||||
/** Blender release cycle stage: alpha/beta/rc/release. */
|
||||
#define BLENDER_VERSION_CYCLE alpha
|
||||
|
||||
/* Blender file format version. */
|
||||
#define BLENDER_FILE_VERSION BLENDER_VERSION
|
||||
#define BLENDER_FILE_SUBVERSION 0
|
||||
|
||||
/* Minimum Blender version that supports reading file written with the current
|
||||
* version. Older Blender versions will test this and show a warning if the file
|
||||
* was written with too new a version. */
|
||||
#define BLENDER_FILE_MIN_VERSION 280
|
||||
#define BLENDER_FILE_MIN_SUBVERSION 0
|
||||
|
||||
/** User readable version string. */
|
||||
const char *BKE_blender_version_string(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __BKE_BLENDER_VERSION_H__ */
|
37
cmake-build-debug/tests.exe.manifest
Normal file
37
cmake-build-debug/tests.exe.manifest
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- Windows 10 -->
|
||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
||||
<!-- Windows 8.1 -->
|
||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
||||
<!-- Windows 8 -->
|
||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
||||
<!-- Windows 7 -->
|
||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
||||
<!-- Windows Vista -->
|
||||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||
</application>
|
||||
</compatibility>
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="*"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
|
||||
</assembly>
|
@@ -1059,6 +1059,7 @@ int GHOST_XrSessionIsRunning(const GHOST_XrContextHandle xr_context);
|
||||
*/
|
||||
int GHOST_XrSessionNeedsUpsideDownDrawing(const GHOST_XrContextHandle xr_context);
|
||||
|
||||
GHOST_XrPose GHOST_XrGetSpacePose(const GHOST_XrContextHandle xr_contexthandle, GHOST_XrSpace space);
|
||||
/* events */
|
||||
/**
|
||||
* Invoke handling of all OpenXR events for \a xr_context. Should be called on every main-loop
|
||||
|
@@ -39,6 +39,8 @@ class GHOST_IXrContext {
|
||||
virtual void setDrawViewFunc(GHOST_XrDrawViewFn draw_view_fn) = 0;
|
||||
|
||||
virtual bool needsUpsideDownDrawing() const = 0;
|
||||
|
||||
virtual GHOST_XrPose getSpacePose(GHOST_XrSpace space) const = 0;
|
||||
};
|
||||
|
||||
#endif // __GHOST_IXRCONTEXT_H__
|
||||
|
@@ -17,29 +17,32 @@
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/** \file
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_TYPES_H__
|
||||
#define __GHOST_TYPES_H__
|
||||
# define __GHOST_TYPES_H__
|
||||
|
||||
#ifdef WITH_CXX_GUARDEDALLOC
|
||||
# include "MEM_guardedalloc.h"
|
||||
#endif
|
||||
# ifdef WITH_CXX_GUARDEDALLOC
|
||||
# include "MEM_guardedalloc.h"
|
||||
# endif
|
||||
|
||||
#if defined(WITH_CXX_GUARDEDALLOC) && defined(__cplusplus)
|
||||
# define GHOST_DECLARE_HANDLE(name) \
|
||||
typedef struct name##__ { \
|
||||
int unused; \
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS(#name) \
|
||||
} * name
|
||||
#else
|
||||
# define GHOST_DECLARE_HANDLE(name) \
|
||||
typedef struct name##__ { \
|
||||
int unused; \
|
||||
} * name
|
||||
#endif
|
||||
# if defined(WITH_CXX_GUARDEDALLOC) && defined(__cplusplus)
|
||||
# define GHOST_DECLARE_HANDLE(name) \
|
||||
typedef struct name##__ { \
|
||||
int unused; \
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS(#name) \
|
||||
} * name
|
||||
# else
|
||||
# define GHOST_DECLARE_HANDLE(name) \
|
||||
typedef struct name##__ { \
|
||||
int unused; \
|
||||
} * name
|
||||
# endif
|
||||
|
||||
/**
|
||||
* Creates a "handle" for a C++ GHOST object.
|
||||
@@ -57,6 +60,9 @@ GHOST_DECLARE_HANDLE(GHOST_EventConsumerHandle);
|
||||
GHOST_DECLARE_HANDLE(GHOST_ContextHandle);
|
||||
GHOST_DECLARE_HANDLE(GHOST_XrContextHandle);
|
||||
|
||||
GHOST_DECLARE_HANDLE(GHOST_XrActionSetHandle);
|
||||
GHOST_DECLARE_HANDLE(GHOST_XrActionHandle);
|
||||
|
||||
typedef char GHOST_TInt8;
|
||||
typedef unsigned char GHOST_TUns8;
|
||||
typedef short GHOST_TInt16;
|
||||
@@ -79,13 +85,13 @@ typedef enum GHOST_DialogOptions {
|
||||
GHOST_DialogError = (1 << 1),
|
||||
} GHOST_DialogOptions;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# ifdef _MSC_VER
|
||||
typedef __int64 GHOST_TInt64;
|
||||
typedef unsigned __int64 GHOST_TUns64;
|
||||
#else
|
||||
# else
|
||||
typedef long long GHOST_TInt64;
|
||||
typedef unsigned long long GHOST_TUns64;
|
||||
#endif
|
||||
# endif
|
||||
|
||||
typedef void *GHOST_TUserDataPtr;
|
||||
|
||||
@@ -157,9 +163,9 @@ typedef enum { GHOST_kWindowOrderTop = 0, GHOST_kWindowOrderBottom } GHOST_TWind
|
||||
typedef enum {
|
||||
GHOST_kDrawingContextTypeNone = 0,
|
||||
GHOST_kDrawingContextTypeOpenGL,
|
||||
#ifdef WIN32
|
||||
# ifdef WIN32
|
||||
GHOST_kDrawingContextTypeD3D,
|
||||
#endif
|
||||
# endif
|
||||
} GHOST_TDrawingContextType;
|
||||
|
||||
typedef enum {
|
||||
@@ -183,10 +189,10 @@ typedef enum {
|
||||
GHOST_kEventWheel, /// Mouse wheel event
|
||||
GHOST_kEventTrackpad, /// Trackpad event
|
||||
|
||||
#ifdef WITH_INPUT_NDOF
|
||||
# ifdef WITH_INPUT_NDOF
|
||||
GHOST_kEventNDOFMotion, /// N degree of freedom device motion event
|
||||
GHOST_kEventNDOFButton, /// N degree of freedom device button event
|
||||
#endif
|
||||
# endif
|
||||
|
||||
GHOST_kEventKeyDown,
|
||||
GHOST_kEventKeyUp,
|
||||
@@ -519,7 +525,7 @@ typedef enum {
|
||||
GHOST_kFinished
|
||||
} GHOST_TProgress;
|
||||
|
||||
#ifdef WITH_INPUT_NDOF
|
||||
# ifdef WITH_INPUT_NDOF
|
||||
typedef struct {
|
||||
/** N-degree of freedom device data v3 [GSoC 2010] */
|
||||
// Each component normally ranges from -1 to +1, but can exceed that.
|
||||
@@ -539,7 +545,7 @@ typedef struct {
|
||||
GHOST_TButtonAction action;
|
||||
short button;
|
||||
} GHOST_TEventNDOFButtonData;
|
||||
#endif // WITH_INPUT_NDOF
|
||||
# endif // WITH_INPUT_NDOF
|
||||
|
||||
typedef struct {
|
||||
/** The key code. */
|
||||
@@ -574,29 +580,29 @@ typedef struct {
|
||||
GHOST_TUns32 frequency;
|
||||
} GHOST_DisplaySetting;
|
||||
|
||||
#ifdef _WIN32
|
||||
# ifdef _WIN32
|
||||
typedef void *GHOST_TEmbedderWindowID;
|
||||
#endif // _WIN32
|
||||
# endif // _WIN32
|
||||
|
||||
#ifndef _WIN32
|
||||
# ifndef _WIN32
|
||||
// I can't use "Window" from "<X11/Xlib.h>" because it conflits with Window defined in winlay.h
|
||||
typedef int GHOST_TEmbedderWindowID;
|
||||
#endif // _WIN32
|
||||
# endif // _WIN32
|
||||
|
||||
/**
|
||||
* A timer task callback routine.
|
||||
* \param task The timer task object.
|
||||
* \param time The current time.
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
# ifdef __cplusplus
|
||||
class GHOST_ITimerTask;
|
||||
typedef void (*GHOST_TimerProcPtr)(GHOST_ITimerTask *task, GHOST_TUns64 time);
|
||||
#else
|
||||
# else
|
||||
struct GHOST_TimerTaskHandle__;
|
||||
typedef void (*GHOST_TimerProcPtr)(struct GHOST_TimerTaskHandle__ *task, GHOST_TUns64 time);
|
||||
#endif
|
||||
# endif
|
||||
|
||||
#ifdef WITH_XR_OPENXR
|
||||
# ifdef WITH_XR_OPENXR
|
||||
|
||||
struct GHOST_XrDrawViewInfo;
|
||||
struct GHOST_XrError;
|
||||
@@ -610,9 +616,9 @@ struct GHOST_XrError;
|
||||
typedef enum GHOST_TXrGraphicsBinding {
|
||||
GHOST_kXrGraphicsUnknown = 0,
|
||||
GHOST_kXrGraphicsOpenGL,
|
||||
# ifdef WIN32
|
||||
# ifdef WIN32
|
||||
GHOST_kXrGraphicsD3D11,
|
||||
# endif
|
||||
# endif
|
||||
/* For later */
|
||||
// GHOST_kXrGraphicsVulkan,
|
||||
} GHOST_TXrGraphicsBinding;
|
||||
@@ -668,6 +674,10 @@ typedef struct GHOST_XrDrawViewInfo {
|
||||
|
||||
/** Set if the buffer should be submitted with a srgb transfer applied. */
|
||||
char expects_srgb_buffer;
|
||||
|
||||
GHOST_XrPose world_pose;
|
||||
float world_scale;
|
||||
|
||||
} GHOST_XrDrawViewInfo;
|
||||
|
||||
typedef struct GHOST_XrError {
|
||||
@@ -676,6 +686,37 @@ typedef struct GHOST_XrError {
|
||||
void *customdata;
|
||||
} GHOST_XrError;
|
||||
|
||||
#endif
|
||||
/* Nanoseconds */
|
||||
typedef int64_t GHOST_XrTime;
|
||||
|
||||
typedef struct GHOST_XrActionStateBoolean {
|
||||
bool currentState;
|
||||
GHOST_XrTime lastChangeTime;
|
||||
bool changedSinceSync;
|
||||
bool isActive;
|
||||
} GHOST_XrActionStateBool;
|
||||
|
||||
typedef struct GHOST_XrActionStateFloat {
|
||||
float currentState;
|
||||
GHOST_XrTime lastChangeTime;
|
||||
bool changedSinceSync;
|
||||
bool isActive;
|
||||
} GHOST_XrActionStateFloat;
|
||||
|
||||
typedef struct GHOST_XrActionStateVector2f {
|
||||
float currentX;
|
||||
float currentY;
|
||||
GHOST_XrTime lastChangeTime;
|
||||
bool changedSinceSync;
|
||||
bool isActive;
|
||||
} GHOST_XrActionStateVector2f;
|
||||
|
||||
typedef enum GHOST_XrSpace {
|
||||
GHOST_SPACE_VIEW,
|
||||
GHOST_SPACE_LEFT_HAND,
|
||||
GHOST_SPACE_RIGHT_HAND,
|
||||
} GHOST_XrSpace;
|
||||
|
||||
# endif
|
||||
|
||||
#endif // __GHOST_TYPES_H__
|
||||
|
@@ -967,4 +967,12 @@ int GHOST_XrSessionNeedsUpsideDownDrawing(const GHOST_XrContextHandle xr_context
|
||||
return 0; /* Only reached if exception is thrown. */
|
||||
}
|
||||
|
||||
GHOST_XrPose GHOST_XrGetSpacePose(const GHOST_XrContextHandle xr_contexthandle, GHOST_XrSpace space)
|
||||
{
|
||||
GHOST_IXrContext *xr_context = (GHOST_IXrContext *)xr_contexthandle;
|
||||
GHOST_XR_CAPI_CALL_RET(xr_context->getSpacePose(space), xr_context);
|
||||
|
||||
return GHOST_XrPose{};
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -527,6 +527,12 @@ bool GHOST_XrContext::needsUpsideDownDrawing() const
|
||||
return m_session->needsUpsideDownDrawing();
|
||||
}
|
||||
|
||||
GHOST_XrPose GHOST_XrContext::getSpacePose(GHOST_XrSpace space) const
|
||||
{
|
||||
assert(m_session);
|
||||
return m_session->getSpacePose(space);
|
||||
}
|
||||
|
||||
/** \} */ /* Public Accessors and Mutators */
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
@@ -81,6 +81,8 @@ class GHOST_XrContext : public GHOST_IXrContext {
|
||||
void setDrawViewFunc(GHOST_XrDrawViewFn draw_view_fn) override;
|
||||
bool needsUpsideDownDrawing() const override;
|
||||
|
||||
GHOST_XrPose getSpacePose(GHOST_XrSpace space) const override;
|
||||
|
||||
void handleSessionStateChange(const XrEventDataSessionStateChanged *lifecycle);
|
||||
|
||||
GHOST_TXrOpenXRRuntimeID getOpenXRRuntimeID() const;
|
||||
|
@@ -22,8 +22,11 @@
|
||||
#include <cassert>
|
||||
#include <chrono>
|
||||
#include <cstdio>
|
||||
#include <inttypes.h>
|
||||
#include <iterator>
|
||||
#include <list>
|
||||
#include <sstream>
|
||||
#include <tuple>
|
||||
|
||||
#include "GHOST_C-api.h"
|
||||
|
||||
@@ -35,6 +38,37 @@
|
||||
|
||||
#include "GHOST_XrSession.h"
|
||||
|
||||
struct GHOST_XrActionCreateInfo {
|
||||
std::string name;
|
||||
std::string localizedName;
|
||||
XrActionType actionType;
|
||||
};
|
||||
|
||||
struct GHOST_XrSubactionInfo {
|
||||
std::string path;
|
||||
std::string name;
|
||||
};
|
||||
|
||||
struct GHOST_XrSubactionsCreateInfo {
|
||||
std::string parentName;
|
||||
std::string localizedParentName;
|
||||
XrActionType actionType;
|
||||
std::vector<GHOST_XrSubactionInfo> subactions;
|
||||
};
|
||||
|
||||
struct OpenXRActionData {
|
||||
/* Has the lifecycle of the session gone past attaching action sets? */
|
||||
bool attached;
|
||||
|
||||
GHOST_XrActionSetMap actionSetMap;
|
||||
GHOST_XrInteractionMap interactionMap;
|
||||
|
||||
XrSpace handSpaces[2];
|
||||
XrPosef handPoses[2];
|
||||
|
||||
XrPosef viewPose;
|
||||
};
|
||||
|
||||
struct OpenXRSessionData {
|
||||
XrSystemId system_id = XR_NULL_SYSTEM_ID;
|
||||
XrSession session = XR_NULL_HANDLE;
|
||||
@@ -46,12 +80,332 @@ struct OpenXRSessionData {
|
||||
XrSpace view_space;
|
||||
std::vector<XrView> views;
|
||||
std::vector<GHOST_XrSwapchain> swapchains;
|
||||
|
||||
OpenXRActionData actionData;
|
||||
};
|
||||
|
||||
GHOST_XrAction::GHOST_XrAction(XrSession xrSession,
|
||||
XrInstance xrInstance,
|
||||
XrAction handle,
|
||||
XrPath subpath)
|
||||
: xrSession(xrSession), xrInstance(xrInstance), handle(handle), subPath(subpath)
|
||||
{
|
||||
}
|
||||
|
||||
GHOST_XrActionSet::~GHOST_XrActionSet()
|
||||
{
|
||||
xrDestroyActionSet(handle);
|
||||
}
|
||||
|
||||
XrPath stringToPath(XrInstance xrInstance, const std::string &path)
|
||||
{
|
||||
XrPath xrPath;
|
||||
CHECK_XR(xrStringToPath(xrInstance, path.c_str(), &xrPath), "Failed to convert string to path.");
|
||||
return xrPath;
|
||||
}
|
||||
|
||||
void GHOST_XrSession::suggestBinding(XrAction handle,
|
||||
const std::string &profile,
|
||||
const std::string &binding)
|
||||
{
|
||||
assert(!m_oxr->actionData.attached);
|
||||
|
||||
XrPath profilePath = stringToPath(m_context->getInstance(), profile);
|
||||
XrPath bindingPath = stringToPath(m_context->getInstance(), binding);
|
||||
|
||||
m_oxr->actionData.interactionMap[profilePath].push_back(
|
||||
XrActionSuggestedBinding{handle, bindingPath});
|
||||
}
|
||||
|
||||
/* Once action sets are attached, action sets and bindings are necessarily immutable. */
|
||||
/* Loading additional actions requires recreating the session. */
|
||||
void GHOST_XrSession::bindAndAttachActions()
|
||||
{
|
||||
OpenXRActionData &actionData = m_oxr->actionData;
|
||||
assert(!actionData.attached);
|
||||
|
||||
GHOST_XrActionSetMap &actionSetMap = actionData.actionSetMap;
|
||||
GHOST_XrInteractionMap &interactionMap = actionData.interactionMap;
|
||||
|
||||
for (GHOST_XrInteractionMap::iterator it = interactionMap.begin(); it != interactionMap.end();
|
||||
it++) {
|
||||
XrInteractionProfileSuggestedBinding suggestedBindings = {
|
||||
XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING};
|
||||
suggestedBindings.interactionProfile = it->first;
|
||||
suggestedBindings.countSuggestedBindings = it->second.size();
|
||||
suggestedBindings.suggestedBindings = it->second.data();
|
||||
|
||||
CHECK_XR(xrSuggestInteractionProfileBindings(m_context->getInstance(), &suggestedBindings),
|
||||
"Failed to suggest profile bindings.");
|
||||
}
|
||||
|
||||
/* Push all action sets in the action set hashmap to a vector. */
|
||||
std::vector<XrActionSet> actionSets;
|
||||
for (GHOST_XrActionSetMap::iterator it = actionSetMap.begin(); it != actionSetMap.end(); it++) {
|
||||
actionSets.push_back(it->second.handle);
|
||||
}
|
||||
|
||||
/* Attach the aforementioned action sets to the XrSession. */
|
||||
XrSessionActionSetsAttachInfo attachInfo = {XR_TYPE_SESSION_ACTION_SETS_ATTACH_INFO};
|
||||
attachInfo.countActionSets = actionSets.size();
|
||||
attachInfo.actionSets = actionSets.data();
|
||||
|
||||
CHECK_XR(xrAttachSessionActionSets(m_oxr->session, &attachInfo), "Failed to attach action sets.");
|
||||
|
||||
actionData.attached = true;
|
||||
}
|
||||
|
||||
GHOST_XrAction &GHOST_XrActionSet::createAction(GHOST_XrActionCreateInfo info)
|
||||
{
|
||||
XrActionCreateInfo actionInfo = {XR_TYPE_ACTION_CREATE_INFO};
|
||||
actionInfo.actionType = info.actionType;
|
||||
|
||||
strncpy(actionInfo.actionName, info.name.c_str(), XR_MAX_ACTION_NAME_SIZE);
|
||||
strncpy(actionInfo.localizedActionName,
|
||||
info.localizedName.c_str(),
|
||||
XR_MAX_LOCALIZED_ACTION_NAME_SIZE);
|
||||
|
||||
XrAction action;
|
||||
CHECK_XR(xrCreateAction(handle, &actionInfo, &action), "Action creation failed.");
|
||||
|
||||
actionMap.emplace(std::piecewise_construct,
|
||||
std::forward_as_tuple(info.name),
|
||||
std::forward_as_tuple(xrSession, xrInstance, action, XR_NULL_PATH));
|
||||
|
||||
return actionMap.at(info.name);
|
||||
}
|
||||
|
||||
GHOST_XrAction &GHOST_XrActionSet::createSubactions(GHOST_XrSubactionsCreateInfo info)
|
||||
{
|
||||
XrActionCreateInfo actionInfo = {XR_TYPE_ACTION_CREATE_INFO};
|
||||
actionInfo.actionType = info.actionType;
|
||||
actionInfo.countSubactionPaths = info.subactions.size();
|
||||
|
||||
strncpy(actionInfo.actionName, info.parentName.c_str(), XR_MAX_ACTION_NAME_SIZE);
|
||||
strncpy(actionInfo.localizedActionName,
|
||||
info.localizedParentName.c_str(),
|
||||
XR_MAX_LOCALIZED_ACTION_NAME_SIZE);
|
||||
|
||||
/* Create a vector of XrPath handles out of the subaction path strings */
|
||||
std::vector<XrPath> subactionPaths;
|
||||
for (int i = 0; i < info.subactions.size(); i++) {
|
||||
XrPath path = stringToPath(xrInstance, info.subactions[i].path.c_str());
|
||||
subactionPaths.push_back(path);
|
||||
}
|
||||
|
||||
actionInfo.subactionPaths = subactionPaths.data();
|
||||
|
||||
XrAction action;
|
||||
CHECK_XR(xrCreateAction(handle, &actionInfo, &action), "Subactions creation failed.");
|
||||
|
||||
/* Create the parent action GHOST_XrAction (same handle, no subpath). */
|
||||
actionMap.emplace(std::piecewise_construct,
|
||||
std::forward_as_tuple(info.parentName),
|
||||
std::forward_as_tuple(xrSession, xrInstance, action, XR_NULL_PATH));
|
||||
|
||||
/* Create a GHOST_XrAction object for each subaction path (duplicate XrAction handle). */
|
||||
for (int i = 0; i < info.subactions.size(); i++) {
|
||||
actionMap.emplace(std::piecewise_construct,
|
||||
std::forward_as_tuple(info.subactions[i].name),
|
||||
std::forward_as_tuple(xrSession, xrInstance, action, subactionPaths[i]));
|
||||
}
|
||||
|
||||
return actionMap.at(info.parentName);
|
||||
}
|
||||
|
||||
GHOST_XrActionSet::GHOST_XrActionSet(XrSession xrSession,
|
||||
XrInstance xrInstance,
|
||||
XrActionSet handle)
|
||||
: xrSession(xrSession), xrInstance(xrInstance), handle(handle)
|
||||
{
|
||||
}
|
||||
|
||||
GHOST_XrActionSet &GHOST_XrSession::createActionSet(const std::string &name,
|
||||
const std::string &localizedName)
|
||||
{
|
||||
XrInstance xrInstance = m_context->getInstance();
|
||||
XrSession xrSession = m_oxr->session;
|
||||
|
||||
XrActionSetCreateInfo actionSetInfo = {XR_TYPE_ACTION_SET_CREATE_INFO};
|
||||
actionSetInfo.priority = 0;
|
||||
|
||||
strncpy(actionSetInfo.actionSetName, name.c_str(), XR_MAX_ACTION_SET_NAME_SIZE);
|
||||
strncpy(actionSetInfo.localizedActionSetName,
|
||||
localizedName.c_str(),
|
||||
XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE);
|
||||
|
||||
XrActionSet set;
|
||||
|
||||
CHECK_XR(xrCreateActionSet(xrInstance, &actionSetInfo, &set), "Action set creation failed.");
|
||||
|
||||
GHOST_XrActionSetMap &setMap = m_oxr->actionData.actionSetMap;
|
||||
|
||||
setMap.emplace(std::piecewise_construct,
|
||||
std::forward_as_tuple(name),
|
||||
std::forward_as_tuple(xrSession, xrInstance, set));
|
||||
|
||||
return setMap.at(name);
|
||||
}
|
||||
|
||||
// void GHOST_XrSession::applyVibration(const std::string &setID,
|
||||
// const std::string &actionID,
|
||||
// int64_t duration,
|
||||
// float amplitude,
|
||||
// float frequency)
|
||||
//{
|
||||
// GHOST_XrAction action = get_action(setID, actionID);
|
||||
//
|
||||
// XrHapticVibration vibration = {0};
|
||||
// vibration.type = XR_TYPE_HAPTIC_VIBRATION;
|
||||
// vibration.amplitude = amplitude;
|
||||
// vibration.duration = duration;
|
||||
// vibration.frequency = frequency;
|
||||
//
|
||||
// if (action.subpath != XR_NULL_PATH) {
|
||||
// CHECK_XR(xrApplyHapticFeedback(
|
||||
// action.handle, 1, &action.subpath, (const XrHapticBaseHeader *)&vibration),
|
||||
// "Application of haptic feedback failed.");
|
||||
// }
|
||||
//
|
||||
// else {
|
||||
// CHECK_XR(xrApplyHapticFeedback(action.handle, 0, NULL, (const XrHapticBaseHeader
|
||||
// *)&vibration),
|
||||
// "Application of haptic feedback failed.");
|
||||
// }
|
||||
//}
|
||||
|
||||
GHOST_XrActionSet &GHOST_XrSession::getActionSet(const std::string &setID)
|
||||
{
|
||||
return m_oxr->actionData.actionSetMap.at(setID);
|
||||
}
|
||||
|
||||
GHOST_XrAction &GHOST_XrActionSet::getAction(const std::string &actionID)
|
||||
{
|
||||
return actionMap.at(actionID);
|
||||
}
|
||||
|
||||
bool GHOST_XrAction::isPoseActive()
|
||||
{
|
||||
XrActionStatePose state;
|
||||
|
||||
XrActionStateGetInfo getActionStateInfo{XR_TYPE_ACTION_STATE_GET_INFO};
|
||||
getActionStateInfo.action = handle;
|
||||
getActionStateInfo.subactionPath = subPath;
|
||||
CHECK_XR(xrGetActionStatePose(xrSession, &getActionStateInfo, &state),
|
||||
"Failed to read action state.");
|
||||
|
||||
return state.isActive;
|
||||
}
|
||||
|
||||
GHOST_XrActionStateBoolean GHOST_XrAction::getActionStateBoolean()
|
||||
{
|
||||
XrActionStateBoolean state;
|
||||
|
||||
XrActionStateGetInfo getActionStateInfo{XR_TYPE_ACTION_STATE_GET_INFO};
|
||||
getActionStateInfo.action = handle;
|
||||
getActionStateInfo.subactionPath = subPath;
|
||||
CHECK_XR(xrGetActionStateBoolean(xrSession, &getActionStateInfo, &state),
|
||||
"Failed to read action state.");
|
||||
|
||||
return GHOST_XrActionStateBoolean{(bool)state.currentState,
|
||||
state.lastChangeTime,
|
||||
(bool)state.changedSinceLastSync,
|
||||
(bool)state.isActive};
|
||||
}
|
||||
|
||||
GHOST_XrActionStateFloat GHOST_XrAction::getActionStateFloat()
|
||||
{
|
||||
XrActionStateFloat state;
|
||||
|
||||
XrActionStateGetInfo getActionStateInfo{XR_TYPE_ACTION_STATE_GET_INFO};
|
||||
getActionStateInfo.action = handle;
|
||||
getActionStateInfo.subactionPath = subPath;
|
||||
CHECK_XR(xrGetActionStateFloat(xrSession, &getActionStateInfo, &state),
|
||||
"Failed to read action state.");
|
||||
|
||||
return GHOST_XrActionStateFloat{state.currentState,
|
||||
state.lastChangeTime,
|
||||
(bool)state.changedSinceLastSync,
|
||||
(bool)state.isActive};
|
||||
}
|
||||
|
||||
GHOST_XrActionStateVector2f GHOST_XrAction::getActionStateVector2f()
|
||||
{
|
||||
XrActionStateVector2f state;
|
||||
|
||||
XrActionStateGetInfo getActionStateInfo{XR_TYPE_ACTION_STATE_GET_INFO};
|
||||
getActionStateInfo.action = handle;
|
||||
getActionStateInfo.subactionPath = subPath;
|
||||
CHECK_XR(xrGetActionStateVector2f(xrSession, &getActionStateInfo, &state),
|
||||
"Failed to read action state.");
|
||||
|
||||
return GHOST_XrActionStateVector2f{state.currentState.x,
|
||||
state.currentState.y,
|
||||
state.lastChangeTime,
|
||||
(bool)state.changedSinceLastSync,
|
||||
(bool)state.isActive};
|
||||
}
|
||||
|
||||
XrSpace GHOST_XrSession::createSpace(GHOST_XrAction &action, XrPosef poseInSpace)
|
||||
{
|
||||
XrActionSpaceCreateInfo actionSpaceInfo{XR_TYPE_ACTION_SPACE_CREATE_INFO};
|
||||
|
||||
actionSpaceInfo.action = action.handle;
|
||||
actionSpaceInfo.subactionPath = action.subPath;
|
||||
actionSpaceInfo.poseInActionSpace = poseInSpace;
|
||||
|
||||
XrSpace xrSpace;
|
||||
|
||||
CHECK_XR(xrCreateActionSpace(m_oxr->session, &actionSpaceInfo, &xrSpace),
|
||||
"Creation of action space failed.");
|
||||
|
||||
return xrSpace;
|
||||
}
|
||||
void GHOST_XrSession::initXrActionsDefault()
|
||||
{
|
||||
/* Create default action set. */
|
||||
GHOST_XrActionSet &set = createActionSet("default_action_set", "Default Action Set");
|
||||
|
||||
/* Create hand poses. */
|
||||
std::vector<GHOST_XrSubactionInfo> subactions;
|
||||
subactions.push_back(GHOST_XrSubactionInfo{"/user/hand/left", "hand_pose_left"});
|
||||
subactions.push_back(GHOST_XrSubactionInfo{"/user/hand/right", "hand_pose_right"});
|
||||
GHOST_XrSubactionsCreateInfo createInfo = {
|
||||
"hand_pose", "Hand Pose", XR_ACTION_TYPE_POSE_INPUT, subactions};
|
||||
|
||||
GHOST_XrAction &pose_action = set.createSubactions(createInfo);
|
||||
|
||||
suggestBinding(pose_action.handle,
|
||||
"/interaction_profiles/oculus/touch_controller",
|
||||
"/user/hand/left/input/grip/pose");
|
||||
|
||||
suggestBinding(pose_action.handle,
|
||||
"/interaction_profiles/oculus/touch_controller",
|
||||
"/user/hand/right/input/grip/pose");
|
||||
|
||||
/* Create hand spaces. */
|
||||
XrPosef poseInSpace = {};
|
||||
poseInSpace.orientation.w = 1.f;
|
||||
|
||||
m_oxr->actionData.handSpaces[0] = createSpace(set.getAction("hand_pose_left"), poseInSpace);
|
||||
m_oxr->actionData.handSpaces[1] = createSpace(set.getAction("hand_pose_right"), poseInSpace);
|
||||
|
||||
/* Create haptic actions. */
|
||||
// subactions.clear();
|
||||
// subactions.push_back(Ghost_XrSubactionInfo{"/user/hand/left", "haptic_left"});
|
||||
// subactions.push_back(Ghost_XrSubactionInfo{"/user/hand/right", "haptic_right"});
|
||||
// GHOST_XrSubactionsCreateInfo createInfo = {
|
||||
// "haptic_action", "Haptic Action", XR_OUTPUT_ACTION_TYPE_VIBRATION, subactions};
|
||||
// createAction("default_action_set", &createInfo);
|
||||
|
||||
/* TODO: Figure out when this can be done (e.g. so python addons can suggest bindings */
|
||||
bindAndAttachActions();
|
||||
}
|
||||
|
||||
struct GHOST_XrDrawInfo {
|
||||
XrFrameState frame_state;
|
||||
|
||||
/** Time at frame start to benchmark frame render durations. */
|
||||
/* Time at frame start to benchmark frame render durations. */
|
||||
std::chrono::high_resolution_clock::time_point frame_begin_time;
|
||||
/* Time previous frames took for rendering (in ms). */
|
||||
std::list<double> last_frame_times;
|
||||
@@ -119,28 +473,6 @@ static void create_reference_spaces(OpenXRSessionData *oxr, const GHOST_XrPose *
|
||||
create_info.poseInReferenceSpace.orientation.w = 1.0f;
|
||||
|
||||
create_info.referenceSpaceType = XR_REFERENCE_SPACE_TYPE_LOCAL;
|
||||
#if 0
|
||||
/* TODO
|
||||
*
|
||||
* Proper reference space set up is not supported yet. We simply hand OpenXR
|
||||
* the global space as reference space and apply its pose onto the active
|
||||
* camera matrix to get a basic viewing experience going. If there's no active
|
||||
* camera with stick to the world origin.
|
||||
*
|
||||
* Once we have proper reference space set up (i.e. a way to define origin, up-
|
||||
* direction and an initial view rotation perpendicular to the up-direction),
|
||||
* we can hand OpenXR a proper reference pose/space.
|
||||
*/
|
||||
create_info.poseInReferenceSpace.position.x = base_pose->position[0];
|
||||
create_info.poseInReferenceSpace.position.y = base_pose->position[1];
|
||||
create_info.poseInReferenceSpace.position.z = base_pose->position[2];
|
||||
create_info.poseInReferenceSpace.orientation.x = base_pose->orientation_quat[1];
|
||||
create_info.poseInReferenceSpace.orientation.y = base_pose->orientation_quat[2];
|
||||
create_info.poseInReferenceSpace.orientation.z = base_pose->orientation_quat[3];
|
||||
create_info.poseInReferenceSpace.orientation.w = base_pose->orientation_quat[0];
|
||||
#else
|
||||
(void)base_pose;
|
||||
#endif
|
||||
|
||||
CHECK_XR(xrCreateReferenceSpace(oxr->session, &create_info, &oxr->reference_space),
|
||||
"Failed to create reference space.");
|
||||
@@ -196,6 +528,8 @@ void GHOST_XrSession::start(const GHOST_XrSessionBeginInfo *begin_info)
|
||||
|
||||
prepareDrawing();
|
||||
create_reference_spaces(m_oxr.get(), &begin_info->base_pose);
|
||||
|
||||
initXrActionsDefault();
|
||||
}
|
||||
|
||||
void GHOST_XrSession::requestEnd()
|
||||
@@ -275,13 +609,73 @@ void GHOST_XrSession::prepareDrawing()
|
||||
m_draw_info = std::unique_ptr<GHOST_XrDrawInfo>(new GHOST_XrDrawInfo());
|
||||
}
|
||||
|
||||
XrPosef GHOST_XrSession::locateSpace(GHOST_XrSpace space, GHOST_XrTime time)
|
||||
{
|
||||
XrSpace xrSpace;
|
||||
|
||||
switch (space) {
|
||||
case GHOST_SPACE_VIEW:
|
||||
xrSpace = m_oxr->view_space;
|
||||
break;
|
||||
case GHOST_SPACE_LEFT_HAND:
|
||||
xrSpace = m_oxr->actionData.handSpaces[0];
|
||||
break;
|
||||
case GHOST_SPACE_RIGHT_HAND:
|
||||
xrSpace = m_oxr->actionData.handSpaces[1];
|
||||
break;
|
||||
default:
|
||||
throw GHOST_XrException("Invalid GHOST_XrSpace passed to locateSpace.");
|
||||
}
|
||||
|
||||
XrSpaceLocation spaceLocation = {XR_TYPE_SPACE_LOCATION};
|
||||
CHECK_XR(xrLocateSpace(xrSpace, m_oxr->reference_space, time, &spaceLocation),
|
||||
"Failed to locate space.");
|
||||
return spaceLocation.pose;
|
||||
}
|
||||
|
||||
static void copy_openxr_pose_to_ghost_pose(const XrPosef &oxr_pose, GHOST_XrPose &r_ghost_pose)
|
||||
{
|
||||
/* Set and convert to Blender coodinate space. */
|
||||
r_ghost_pose.position[0] = oxr_pose.position.x;
|
||||
r_ghost_pose.position[1] = oxr_pose.position.y;
|
||||
r_ghost_pose.position[2] = oxr_pose.position.z;
|
||||
r_ghost_pose.orientation_quat[0] = oxr_pose.orientation.w;
|
||||
r_ghost_pose.orientation_quat[1] = oxr_pose.orientation.x;
|
||||
r_ghost_pose.orientation_quat[2] = oxr_pose.orientation.y;
|
||||
r_ghost_pose.orientation_quat[3] = oxr_pose.orientation.z;
|
||||
}
|
||||
|
||||
GHOST_XrPose GHOST_XrSession::getSpacePose(GHOST_XrSpace space)
|
||||
{
|
||||
XrPosef xrPose;
|
||||
|
||||
switch (space) {
|
||||
case GHOST_SPACE_VIEW:
|
||||
xrPose = m_oxr->actionData.viewPose;
|
||||
break;
|
||||
case GHOST_SPACE_LEFT_HAND:
|
||||
xrPose = m_oxr->actionData.handPoses[0];
|
||||
break;
|
||||
case GHOST_SPACE_RIGHT_HAND:
|
||||
xrPose = m_oxr->actionData.handPoses[1];
|
||||
break;
|
||||
default:
|
||||
throw GHOST_XrException("Invalid GHOST_XrSpace passed to getSpacePose.");
|
||||
break;
|
||||
}
|
||||
|
||||
GHOST_XrPose ghostPose;
|
||||
copy_openxr_pose_to_ghost_pose(xrPose, ghostPose);
|
||||
|
||||
return ghostPose;
|
||||
}
|
||||
|
||||
void GHOST_XrSession::beginFrameDrawing()
|
||||
{
|
||||
XrFrameWaitInfo wait_info = {XR_TYPE_FRAME_WAIT_INFO};
|
||||
XrFrameBeginInfo begin_info = {XR_TYPE_FRAME_BEGIN_INFO};
|
||||
XrFrameState frame_state = {XR_TYPE_FRAME_STATE};
|
||||
|
||||
/* TODO Blocking call. Drawing should run on a separate thread to avoid interferences. */
|
||||
CHECK_XR(xrWaitFrame(m_oxr->session, &wait_info, &frame_state),
|
||||
"Failed to synchronize frame rates between Blender and the device.");
|
||||
|
||||
@@ -293,6 +687,32 @@ void GHOST_XrSession::beginFrameDrawing()
|
||||
if (m_context->isDebugTimeMode()) {
|
||||
m_draw_info->frame_begin_time = std::chrono::high_resolution_clock::now();
|
||||
}
|
||||
|
||||
//TODO: MOVE ELSEWHERE (SYNCING ACTIONS)
|
||||
GHOST_XrActionSetMap &actionSetMap = m_oxr->actionData.actionSetMap;
|
||||
|
||||
std::vector<XrActiveActionSet> activeSets;
|
||||
|
||||
for (GHOST_XrActionSetMap::iterator it = actionSetMap.begin(); it != actionSetMap.end(); it++) {
|
||||
XrActiveActionSet activeActionSet{it->second.handle, XR_NULL_PATH};
|
||||
activeSets.push_back(activeActionSet);
|
||||
}
|
||||
|
||||
XrActionsSyncInfo syncInfo{XR_TYPE_ACTIONS_SYNC_INFO};
|
||||
syncInfo.countActiveActionSets = activeSets.size();
|
||||
syncInfo.activeActionSets = activeSets.data();
|
||||
|
||||
CHECK_XR(xrSyncActions(m_oxr->session, &syncInfo), "Failed to sync actions.");
|
||||
|
||||
// TODO: Temporary controller state query, should go elsewhere
|
||||
updateActions(frame_state.predictedDisplayTime);
|
||||
}
|
||||
|
||||
void GHOST_XrSession::updateActions(XrTime displayTime)
|
||||
{
|
||||
m_oxr->actionData.viewPose = locateSpace(GHOST_SPACE_VIEW, displayTime);
|
||||
m_oxr->actionData.handPoses[0] = locateSpace(GHOST_SPACE_LEFT_HAND, displayTime);
|
||||
m_oxr->actionData.handPoses[1] = locateSpace(GHOST_SPACE_RIGHT_HAND, displayTime);
|
||||
}
|
||||
|
||||
static void print_debug_timings(GHOST_XrDrawInfo *draw_info)
|
||||
@@ -352,18 +772,6 @@ void GHOST_XrSession::draw(void *draw_customdata)
|
||||
endFrameDrawing(&layers);
|
||||
}
|
||||
|
||||
static void copy_openxr_pose_to_ghost_pose(const XrPosef &oxr_pose, GHOST_XrPose &r_ghost_pose)
|
||||
{
|
||||
/* Set and convert to Blender coodinate space. */
|
||||
r_ghost_pose.position[0] = oxr_pose.position.x;
|
||||
r_ghost_pose.position[1] = oxr_pose.position.y;
|
||||
r_ghost_pose.position[2] = oxr_pose.position.z;
|
||||
r_ghost_pose.orientation_quat[0] = oxr_pose.orientation.w;
|
||||
r_ghost_pose.orientation_quat[1] = oxr_pose.orientation.x;
|
||||
r_ghost_pose.orientation_quat[2] = oxr_pose.orientation.y;
|
||||
r_ghost_pose.orientation_quat[3] = oxr_pose.orientation.z;
|
||||
}
|
||||
|
||||
static void ghost_xr_draw_view_info_from_view(const XrView &view, GHOST_XrDrawViewInfo &r_info)
|
||||
{
|
||||
/* Set and convert to Blender coodinate space. */
|
||||
|
@@ -23,13 +23,65 @@
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
#include "GHOST_Xr_intern.h"
|
||||
|
||||
class GHOST_XrContext;
|
||||
class GHOST_XrSwapchain;
|
||||
struct GHOST_XrDrawInfo;
|
||||
struct OpenXRSessionData;
|
||||
struct GHOST_XrActionCreateInfo;
|
||||
struct GHOST_XrSubactionInfo;
|
||||
struct GHOST_XrSubactionsCreateInfo;
|
||||
struct GHOST_XrSpaceCreateInfo;
|
||||
|
||||
struct GHOST_XrSpaceLocation;
|
||||
|
||||
class GHOST_XrAction {
|
||||
private:
|
||||
XrSession xrSession;
|
||||
XrInstance xrInstance;
|
||||
|
||||
public:
|
||||
GHOST_XrAction(const GHOST_XrAction&) = delete;
|
||||
void operator=(const GHOST_XrAction&) = delete;
|
||||
|
||||
XrAction handle;
|
||||
XrPath subPath;
|
||||
GHOST_XrAction(XrSession xrSession, XrInstance xrInstance, XrAction handle, XrPath subPath);
|
||||
|
||||
GHOST_XrActionStateBoolean getActionStateBoolean();
|
||||
GHOST_XrActionStateFloat getActionStateFloat();
|
||||
GHOST_XrActionStateVector2f getActionStateVector2f();
|
||||
bool isPoseActive();
|
||||
};
|
||||
|
||||
using GHOST_XrActionMap = std::map<std::string, GHOST_XrAction>;
|
||||
|
||||
class GHOST_XrActionSet {
|
||||
private:
|
||||
GHOST_XrActionMap actionMap;
|
||||
XrSession xrSession;
|
||||
XrInstance xrInstance;
|
||||
|
||||
public:
|
||||
GHOST_XrActionSet(const GHOST_XrActionSet&) = delete;
|
||||
void operator=(const GHOST_XrActionSet&) = delete;
|
||||
|
||||
XrActionSet handle;
|
||||
|
||||
GHOST_XrAction &getAction(const std::string &actionID);
|
||||
GHOST_XrAction &createSubactions(GHOST_XrSubactionsCreateInfo info);
|
||||
GHOST_XrAction &createAction(GHOST_XrActionCreateInfo info);
|
||||
|
||||
GHOST_XrActionSet(XrSession xrSession, XrInstance xrInstance, XrActionSet handle);
|
||||
~GHOST_XrActionSet();
|
||||
};
|
||||
|
||||
using GHOST_XrActionSetMap = std::map<std::string, GHOST_XrActionSet>;
|
||||
using GHOST_XrInteractionMap = std::map<XrPath, std::vector<XrActionSuggestedBinding>>;
|
||||
|
||||
class GHOST_XrSession {
|
||||
public:
|
||||
@@ -41,6 +93,15 @@ class GHOST_XrSession {
|
||||
GHOST_XrSession(GHOST_XrContext *xr_context);
|
||||
~GHOST_XrSession();
|
||||
|
||||
GHOST_XrActionSet &createActionSet(const std::string &name, const std::string &localizedName);
|
||||
GHOST_XrActionSet &getActionSet(const std::string &setID);
|
||||
|
||||
GHOST_XrPose getSpacePose(GHOST_XrSpace space);
|
||||
|
||||
void initXrActionsDefault();
|
||||
void suggestBinding(XrAction handle, const std::string &profile, const std::string &binding);
|
||||
void bindAndAttachActions();
|
||||
|
||||
void start(const GHOST_XrSessionBeginInfo *begin_info);
|
||||
void requestEnd();
|
||||
|
||||
@@ -57,7 +118,6 @@ class GHOST_XrSession {
|
||||
/** Pointer back to context managing this session. Would be nice to avoid, but needed to access
|
||||
* custom callbacks set before session start. */
|
||||
class GHOST_XrContext *m_context;
|
||||
|
||||
std::unique_ptr<OpenXRSessionData> m_oxr; /* Could use stack, but PImpl is preferable. */
|
||||
|
||||
/** Active Ghost graphic context. Owned by Blender, not GHOST. */
|
||||
@@ -71,6 +131,8 @@ class GHOST_XrSession {
|
||||
void beginSession();
|
||||
void endSession();
|
||||
|
||||
void init_xr_action_default();
|
||||
|
||||
void bindGraphicsContext();
|
||||
|
||||
void prepareDrawing();
|
||||
@@ -83,6 +145,10 @@ class GHOST_XrSession {
|
||||
void *draw_customdata);
|
||||
void beginFrameDrawing();
|
||||
void endFrameDrawing(std::vector<XrCompositionLayerBaseHeader *> *layers);
|
||||
|
||||
XrPosef locateSpace(GHOST_XrSpace space, GHOST_XrTime time);
|
||||
XrSpace createSpace(GHOST_XrAction &action, XrPosef poseInSpace);
|
||||
void updateActions(XrTime displayTime);
|
||||
};
|
||||
|
||||
#endif /* GHOST_XRSESSION_H__ */
|
||||
|
Submodule release/datafiles/locale updated: 4af22e0492...1cc27d5282
Submodule release/scripts/addons updated: 25b00a0a52...5d33d1a1c2
Submodule release/scripts/addons_contrib updated: f2f4a8b3bf...9468c406fb
@@ -38,6 +38,7 @@ struct PointerRNA;
|
||||
* For handling jobs (which may in turn cause other handlers to be called).
|
||||
*/
|
||||
typedef enum {
|
||||
// BKE_CB_EVT_XR_SESSION_PRE,
|
||||
BKE_CB_EVT_FRAME_CHANGE_PRE,
|
||||
BKE_CB_EVT_FRAME_CHANGE_POST,
|
||||
BKE_CB_EVT_RENDER_PRE,
|
||||
|
@@ -1544,6 +1544,8 @@ static void draw_frustum_bound_sphere_calc(const BoundBox *bbox,
|
||||
|
||||
/* just use median point */
|
||||
mid_v3_v3v3(bsphere->center, farpoint, nearpoint);
|
||||
|
||||
mul_m4_v3(viewinv, farpoint);
|
||||
bsphere->radius = len_v3v3(bsphere->center, farpoint);
|
||||
}
|
||||
else if (projmat[2][0] == 0.0f && projmat[2][1] == 0.0f) {
|
||||
|
88
source/blender/makesrna/intern/rna_xr_actions.c
Normal file
88
source/blender/makesrna/intern/rna_xr_actions.c
Normal file
@@ -0,0 +1,88 @@
|
||||
///*
|
||||
// * 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.
|
||||
// */
|
||||
//
|
||||
///** \file
|
||||
// * \ingroup RNA
|
||||
// */
|
||||
//
|
||||
//#include "DNA_view3d_types.h"
|
||||
//#include "DNA_xr_types.h"
|
||||
//
|
||||
//#include "RNA_define.h"
|
||||
//#include "RNA_enum_types.h"
|
||||
//
|
||||
//#include "WM_types.h"
|
||||
//
|
||||
//#include "rna_internal.h"
|
||||
//
|
||||
//#ifdef RNA_RUNTIME
|
||||
//
|
||||
//# include "BLI_math.h"
|
||||
//
|
||||
//# include "WM_api.h"
|
||||
//
|
||||
//#else /* RNA_RUNTIME */
|
||||
//
|
||||
//static void rna_def_xr_action_set(BlenderRNA *brna)
|
||||
//{
|
||||
// StructRNA *srna;
|
||||
// PropertyRNA *prop;
|
||||
// PropertyRNA *parm;
|
||||
//
|
||||
// srna = RNA_def_struct(brna, "XrActionSet", NULL);
|
||||
// RNA_def_struct_ui_text(srna, "XrActionSet", "Xr Action Set");
|
||||
//
|
||||
// //Static function to create an action set (should be part of the session struct)
|
||||
// //TODO: merge with session struct and rna_xr.
|
||||
//
|
||||
// func = RNA_def_function(srna, "create_set", "rna_XrAction_create_set");
|
||||
// RNA_def_function_ui_description(func, "Create an action set.");
|
||||
// RNA_def_function_flag(func, FUNC_NO_SELF);
|
||||
// parm = RNA_def_string(func, "action_set_name", NULL, 0, "", "Name of the action set.");
|
||||
// RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
||||
// parm = RNA_def_pointer(func, "action_set", "ActionSet", "", "Created GHOST_OpenXr Action Set.");
|
||||
// RNA_def_function_return(func, parm);
|
||||
//
|
||||
// //Function to create an action.
|
||||
// func = RNA_def_function(srna, "create_action", "rna_XrAction_create_action");
|
||||
// RNA_def_function_ui_description(func, "Create an action.");
|
||||
// parm = RNA_def_string(func, "action_name", NULL, 0, "", "Name of the action.");
|
||||
// RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
|
||||
// parm = RNA_def_pointer(func, "action", "Action", "", "Created GHOST_OpenXr Action.");
|
||||
// RNA_def_function_return(func, parm);
|
||||
//}
|
||||
//
|
||||
//static void rna_def_xr_action(BlenderRNA *brna) {
|
||||
// StructRNA *srna;
|
||||
// PropertyRNA *prop;
|
||||
//
|
||||
// srna = RNA_def_struct(brna, "XrAction", NULL);
|
||||
// RNA_def_struct_ui_text(srna, "XrAction", "Xr Action");
|
||||
//
|
||||
// func = RNA_def_function(srna, "create_set", "rna_XrAction_create_set");
|
||||
// RNA_def_function_ui_description(func, "Create an action set.");
|
||||
//
|
||||
// //TODO: How do we map bindings to 'operators'?
|
||||
// //TODO: Probably need a way of mapping callbacks and operators.
|
||||
//}
|
||||
//
|
||||
//
|
||||
//void RNA_def_xr_actions(BlenderRNA *brna)
|
||||
//{
|
||||
// rna_def_xr_action_set(brna);
|
||||
//}
|
||||
//
|
||||
//#endif /* RNA_RUNTIME */
|
@@ -40,6 +40,8 @@
|
||||
#include "wm_surface.h"
|
||||
#include "wm_xr_intern.h"
|
||||
|
||||
#include "BLI_math_rotation.h"
|
||||
|
||||
typedef struct {
|
||||
wmWindowManager *wm;
|
||||
} wmXrErrorHandlerData;
|
||||
@@ -105,6 +107,12 @@ bool wm_xr_init(wmWindowManager *wm)
|
||||
if (!wm->xr.runtime) {
|
||||
wm->xr.runtime = wm_xr_runtime_data_create();
|
||||
wm->xr.runtime->context = context;
|
||||
|
||||
unit_qt(wm->xr.runtime->session_state.world_pose.orientation_quat);
|
||||
wm->xr.runtime->session_state.world_pose.position[0] = 0.f;
|
||||
wm->xr.runtime->session_state.world_pose.position[1] = 0.f;
|
||||
wm->xr.runtime->session_state.world_pose.position[2] = 0.f;
|
||||
wm->xr.runtime->session_state.world_scale = 1.f;
|
||||
}
|
||||
}
|
||||
BLI_assert(wm->xr.runtime && wm->xr.runtime->context);
|
||||
|
@@ -30,6 +30,9 @@
|
||||
|
||||
#include "GHOST_C-api.h"
|
||||
|
||||
#include "GPU_immediate.h"
|
||||
#include "GPU_immediate_util.h"
|
||||
#include "GPU_matrix.h"
|
||||
#include "GPU_viewport.h"
|
||||
|
||||
#include "WM_api.h"
|
||||
@@ -37,7 +40,7 @@
|
||||
#include "wm_surface.h"
|
||||
#include "wm_xr_intern.h"
|
||||
|
||||
void wm_xr_pose_to_viewmat(const GHOST_XrPose *pose, float r_viewmat[4][4])
|
||||
void wm_xr_pose_to_viewmat(float r_viewmat[4][4], const GHOST_XrPose *pose)
|
||||
{
|
||||
float iquat[4];
|
||||
invert_qt_qt_normalized(iquat, pose->orientation_quat);
|
||||
@@ -48,6 +51,7 @@ void wm_xr_pose_to_viewmat(const GHOST_XrPose *pose, float r_viewmat[4][4])
|
||||
static void wm_xr_draw_matrices_create(const wmXrDrawData *draw_data,
|
||||
const GHOST_XrDrawViewInfo *draw_view,
|
||||
const XrSessionSettings *session_settings,
|
||||
float scale,
|
||||
float r_view_mat[4][4],
|
||||
float r_proj_mat[4][4])
|
||||
{
|
||||
@@ -65,15 +69,15 @@ static void wm_xr_draw_matrices_create(const wmXrDrawData *draw_data,
|
||||
draw_view->fov.angle_right,
|
||||
draw_view->fov.angle_up,
|
||||
draw_view->fov.angle_down,
|
||||
session_settings->clip_start,
|
||||
session_settings->clip_end);
|
||||
session_settings->clip_start * scale,
|
||||
session_settings->clip_end * scale);
|
||||
|
||||
float eye_mat[4][4];
|
||||
float base_mat[4][4];
|
||||
|
||||
wm_xr_pose_to_viewmat(&eye_pose, eye_mat);
|
||||
wm_xr_pose_to_viewmat(eye_mat, &eye_pose);
|
||||
/* Calculate the base pose matrix (in world space!). */
|
||||
wm_xr_pose_to_viewmat(&draw_data->base_pose, base_mat);
|
||||
wm_xr_pose_to_viewmat(base_mat, &draw_data->base_pose);
|
||||
|
||||
mul_m4_m4m4(r_view_mat, eye_mat, base_mat);
|
||||
}
|
||||
@@ -95,12 +99,41 @@ static void wm_xr_draw_viewport_buffers_to_active_framebuffer(
|
||||
GPU_viewport_draw_to_screen_ex(surface_data->viewport, 0, &rect, draw_view->expects_srgb_buffer);
|
||||
}
|
||||
|
||||
void apply_world_transform(float viewmat[4][4], GHOST_XrPose world_pose, float scale)
|
||||
{
|
||||
float world[4][4];
|
||||
float scalev[3] = {scale, scale, scale};
|
||||
|
||||
loc_quat_size_to_mat4(world, world_pose.position, world_pose.orientation_quat, scalev);
|
||||
|
||||
mul_m4_m4m4(viewmat, viewmat, world);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Draw a viewport for a single eye.
|
||||
*
|
||||
* This is the main viewport drawing function for VR sessions. It's assigned to Ghost-XR as a
|
||||
* callback (see GHOST_XrDrawViewFunc()) and executed for each view (read: eye).
|
||||
*/
|
||||
|
||||
void wm_xr_session_controller_transform_update(GHOST_XrPose *dst_pose,
|
||||
const GHOST_XrPose *base_pose,
|
||||
const GHOST_XrPose *pose)
|
||||
{
|
||||
copy_v3_v3(dst_pose->position, base_pose->position);
|
||||
dst_pose->position[0] = base_pose->position[0] + pose->position[0];
|
||||
dst_pose->position[1] = base_pose->position[1] - pose->position[2];
|
||||
dst_pose->position[2] = base_pose->position[2] + pose->position[1];
|
||||
|
||||
mul_qt_qtqt(dst_pose->orientation_quat, base_pose->orientation_quat, pose->orientation_quat);
|
||||
|
||||
float invBaseRotation[4];
|
||||
copy_qt_qt(invBaseRotation, base_pose->orientation_quat);
|
||||
invert_qt(invBaseRotation);
|
||||
|
||||
mul_qt_qtqt(dst_pose->orientation_quat, dst_pose->orientation_quat, invBaseRotation);
|
||||
}
|
||||
|
||||
void wm_xr_draw_view(const GHOST_XrDrawViewInfo *draw_view, void *customdata)
|
||||
{
|
||||
wmXrDrawData *draw_data = customdata;
|
||||
@@ -116,8 +149,12 @@ void wm_xr_draw_view(const GHOST_XrDrawViewInfo *draw_view, void *customdata)
|
||||
BLI_assert(WM_xr_session_is_ready(xr_data));
|
||||
|
||||
wm_xr_session_draw_data_update(session_state, settings, draw_view, draw_data);
|
||||
wm_xr_draw_matrices_create(draw_data, draw_view, settings, viewmat, winmat);
|
||||
wm_xr_session_state_update(settings, draw_data, draw_view, session_state);
|
||||
wm_xr_draw_matrices_create(
|
||||
draw_data, draw_view, settings, session_state->world_scale, viewmat, winmat);
|
||||
|
||||
apply_world_transform(viewmat, session_state->world_pose, session_state->world_scale);
|
||||
|
||||
wm_xr_session_state_update(settings, draw_data, draw_view, session_state, viewmat);
|
||||
|
||||
if (!wm_xr_session_surface_offscreen_ensure(surface_data, draw_view)) {
|
||||
return;
|
||||
@@ -138,8 +175,8 @@ void wm_xr_draw_view(const GHOST_XrDrawViewInfo *draw_view, void *customdata)
|
||||
display_flags,
|
||||
viewmat,
|
||||
winmat,
|
||||
settings->clip_start,
|
||||
settings->clip_end,
|
||||
settings->clip_start * session_state->world_scale,
|
||||
settings->clip_end * session_state->world_scale,
|
||||
false,
|
||||
true,
|
||||
true,
|
||||
@@ -148,6 +185,20 @@ void wm_xr_draw_view(const GHOST_XrDrawViewInfo *draw_view, void *customdata)
|
||||
surface_data->offscreen,
|
||||
surface_data->viewport);
|
||||
|
||||
GHOST_XrPose leftPoseStatic = GHOST_XrGetSpacePose(xr_data->runtime->context, GHOST_SPACE_LEFT_HAND);
|
||||
GHOST_XrPose rightPoseStatic = GHOST_XrGetSpacePose(xr_data->runtime->context, GHOST_SPACE_RIGHT_HAND);
|
||||
|
||||
GHOST_XrPose leftPose;
|
||||
GHOST_XrPose rightPose;
|
||||
|
||||
wm_xr_session_controller_transform_update(&leftPose,
|
||||
&draw_data->base_pose,
|
||||
&leftPoseStatic);
|
||||
|
||||
wm_xr_session_controller_transform_update(&rightPose,
|
||||
&draw_data->base_pose,
|
||||
&rightPoseStatic);
|
||||
|
||||
/* The draw-manager uses both GPUOffscreen and GPUViewport to manage frame and texture buffers. A
|
||||
* call to GPU_viewport_draw_to_screen() is still needed to get the final result from the
|
||||
* viewport buffers composited together and potentially color managed for display on screen.
|
||||
@@ -157,6 +208,40 @@ void wm_xr_draw_view(const GHOST_XrDrawViewInfo *draw_view, void *customdata)
|
||||
* to be submitted to the OpenXR swap-chain. So do not un-bind the off-screen yet! */
|
||||
|
||||
GPU_offscreen_bind(surface_data->offscreen, false);
|
||||
|
||||
wm_xr_draw_viewport_buffers_to_active_framebuffer(xr_data->runtime, surface_data, draw_view);
|
||||
|
||||
GPU_matrix_push_projection();
|
||||
GPU_matrix_push();
|
||||
GPU_matrix_projection_set(winmat);
|
||||
GPU_matrix_set(viewmat);
|
||||
|
||||
GPU_blend(true);
|
||||
|
||||
uint pos = GPU_vertformat_attr_add(immVertexFormat(), "pos", GPU_COMP_F32, 3, GPU_FETCH_FLOAT);
|
||||
immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR);
|
||||
immUniformColor4fv((const float[4]){1, 1, 1, 0.5f});
|
||||
|
||||
immBegin(GPU_PRIM_LINES, 2);
|
||||
|
||||
immVertex3f(pos, leftPose.position[0], leftPose.position[1], leftPose.position[2]);
|
||||
immVertex3f(
|
||||
pos, leftPose.position[0] + 5.0f, leftPose.position[1] + 5.0f, leftPose.position[2] + 5.0f);
|
||||
|
||||
immEnd();
|
||||
|
||||
immBegin(GPU_PRIM_LINES, 2);
|
||||
|
||||
immVertex3f(pos, rightPose.position[0], rightPose.position[1], rightPose.position[2]);
|
||||
immVertex3f(pos,
|
||||
rightPose.position[0] + 5.0f,
|
||||
rightPose.position[1] + 5.0f,
|
||||
rightPose.position[2] + 5.0f);
|
||||
|
||||
immEnd();
|
||||
|
||||
immUnbindProgram();
|
||||
GPU_blend(false);
|
||||
|
||||
GPU_matrix_pop();
|
||||
GPU_matrix_pop_projection();
|
||||
}
|
||||
|
@@ -45,6 +45,9 @@ typedef struct wmXrSessionState {
|
||||
|
||||
bool force_reset_to_base_pose;
|
||||
bool is_view_data_set;
|
||||
GHOST_XrPose world_pose;
|
||||
float world_scale;
|
||||
|
||||
} wmXrSessionState;
|
||||
|
||||
typedef struct wmXrRuntimeData {
|
||||
@@ -81,10 +84,13 @@ void wm_xr_session_draw_data_update(const wmXrSessionState *state,
|
||||
const XrSessionSettings *settings,
|
||||
const GHOST_XrDrawViewInfo *draw_view,
|
||||
wmXrDrawData *draw_data);
|
||||
|
||||
void wm_xr_session_state_update(const XrSessionSettings *settings,
|
||||
const wmXrDrawData *draw_data,
|
||||
const GHOST_XrDrawViewInfo *draw_view,
|
||||
wmXrSessionState *state);
|
||||
wmXrSessionState *state,
|
||||
float viewmat[4][4]);
|
||||
|
||||
bool wm_xr_session_surface_offscreen_ensure(wmXrSurfaceData *surface_data,
|
||||
const GHOST_XrDrawViewInfo *draw_view);
|
||||
void *wm_xr_session_gpu_binding_context_create(void);
|
||||
@@ -92,5 +98,8 @@ void wm_xr_session_gpu_binding_context_destroy(GHOST_ContextHandle context);
|
||||
|
||||
void wm_xr_pose_to_viewmat(const GHOST_XrPose *pose, float r_viewmat[4][4]);
|
||||
void wm_xr_draw_view(const GHOST_XrDrawViewInfo *draw_view, void *customdata);
|
||||
void wm_xr_session_controller_transform_update(GHOST_XrPose *dst_pose,
|
||||
const GHOST_XrPose *base_pose,
|
||||
const GHOST_XrPose *pose);
|
||||
|
||||
#endif
|
||||
|
@@ -136,6 +136,12 @@ static void wm_xr_session_base_pose_calc(const Scene *scene,
|
||||
tmp_eul[0] = M_PI_2;
|
||||
tmp_eul[1] = 0;
|
||||
eul_to_quat(r_base_pose->orientation_quat, tmp_eul);
|
||||
|
||||
/* TODO: copied code from ubisoft guys, temporary fix. */
|
||||
tmp_eul[0] = M_PI_2;
|
||||
tmp_eul[1] = 0;
|
||||
tmp_eul[2] = 0;
|
||||
eul_to_quat(r_base_pose->orientation_quat, tmp_eul);
|
||||
}
|
||||
else {
|
||||
copy_v3_fl(r_base_pose->position, 0.0f);
|
||||
@@ -245,7 +251,8 @@ void wm_xr_session_draw_data_update(const wmXrSessionState *state,
|
||||
void wm_xr_session_state_update(const XrSessionSettings *settings,
|
||||
const wmXrDrawData *draw_data,
|
||||
const GHOST_XrDrawViewInfo *draw_view,
|
||||
wmXrSessionState *state)
|
||||
wmXrSessionState *state,
|
||||
float viewmat[4][4])
|
||||
{
|
||||
GHOST_XrPose viewer_pose;
|
||||
const bool use_position_tracking = settings->flag & XR_SESSION_USE_POSITION_TRACKING;
|
||||
@@ -267,7 +274,10 @@ void wm_xr_session_state_update(const XrSessionSettings *settings,
|
||||
|
||||
copy_v3_v3(state->viewer_pose.position, viewer_pose.position);
|
||||
copy_qt_qt(state->viewer_pose.orientation_quat, viewer_pose.orientation_quat);
|
||||
wm_xr_pose_to_viewmat(&viewer_pose, state->viewer_viewmat);
|
||||
|
||||
/* Viewmat transform. */
|
||||
memcpy(state->viewer_viewmat, viewmat, 16 * sizeof(float));
|
||||
|
||||
/* No idea why, but multiplying by two seems to make it match the VR view more. */
|
||||
state->focal_len = 2.0f *
|
||||
fov_to_focallength(draw_view->fov.angle_right - draw_view->fov.angle_left,
|
||||
@@ -278,10 +288,31 @@ void wm_xr_session_state_update(const XrSessionSettings *settings,
|
||||
state->prev_base_pose_type = settings->base_pose_type;
|
||||
state->prev_base_pose_object = settings->base_pose_object;
|
||||
state->is_view_data_set = true;
|
||||
|
||||
/* Assume this was already done through wm_xr_session_draw_data_update(). */
|
||||
state->force_reset_to_base_pose = false;
|
||||
}
|
||||
|
||||
bool WM_xr_session_state_world_matrix_get(const wmXrData *xr,
|
||||
float world_matrix[4][4])
|
||||
{
|
||||
if (!WM_xr_session_is_ready(xr)) {
|
||||
unit_m4(world_matrix);
|
||||
return false;
|
||||
}
|
||||
|
||||
float scale[3] = {xr->runtime->session_state.world_scale,
|
||||
xr->runtime->session_state.world_scale,
|
||||
xr->runtime->session_state.world_scale};
|
||||
|
||||
loc_quat_size_to_mat4(world_matrix,
|
||||
xr->runtime->session_state.world_pose.position,
|
||||
xr->runtime->session_state.world_pose.orientation_quat,
|
||||
scale);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
wmXrSessionState *WM_xr_session_state_handle_get(const wmXrData *xr)
|
||||
{
|
||||
return xr->runtime ? &xr->runtime->session_state : NULL;
|
||||
|
Submodule source/tools updated: 6a252de776...5cf2fc3e5d
Reference in New Issue
Block a user