blender/extern/Eigen3/Eigen
Ray Molenkamp 81060ff6b2 Windows: Add support for building with clang.
This commit contains the minimum to make clang build/work with blender, asan and ninja build support is forthcoming

Things to note:

1) Builds and runs, and is able to pass all tests (except for the freestyle_stroke_material.blend test which was broken at that time for all platforms by the looks of it)

2) It's slightly faster than msvc when using cycles. (time in seconds, on an i7-3370)

victor_cpu
	msvc:3099.51
	clang:2796.43

pavillon_barcelona_cpu
	msvc:1872.05
	clang:1827.72

koro_cpu
	msvc:1097.58
	clang:1006.51

fishy_cat_cpu
	msvc:815.37
	clang:722.2

classroom_cpu
	msvc:1705.39
	clang:1575.43

bmw27_cpu
	msvc:552.38
	clang:561.53

barbershop_interior_cpu
	msvc:2134.93
	clang:1922.33

3) clang on windows uses a drop in replacement for the Microsoft cl.exe (takes some of the Microsoft parameters, but not all, and takes some of the clang parameters but not all) and uses ms headers + libraries + linker, so you still need visual studio installed and will use our existing vc14 svn libs.

4) X64 only currently, X86 builds but crashes on startup.

5) Tested with llvm/clang 6.0.0

6) Requires visual studio integration, available at https://github.com/LazyDodo/llvm-vs2017-integration

7) The Microsoft compiler spawns a few copies of cl in parallel to get faster build times, clang doesn't, so the build time is 3-4x slower than with msvc.

8) No openmp support yet. Have not looked at this much, the binary distribution of clang doesn't seem to include it on windows.

9) No ASAN support yet, some of the sanitizers can be made to work, but it was decided to leave support out of this commit.

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D3304
2018-05-28 14:34:47 -06:00
..
src Windows: Add support for building with clang. 2018-05-28 14:34:47 -06:00
Array remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
Cholesky Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
CholmodSupport Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
Core Update Eigen to version 3.2.7 2015-12-10 12:37:46 +01:00
Dense remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
Eigen remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
Eigen2Support Update Eigen to version 3.2.1 2014-03-21 16:04:53 +06:00
Eigenvalues Update Eigen to version 3.2.1 2014-03-21 16:04:53 +06:00
Geometry Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
Householder Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
IterativeLinearSolvers Update Eigen to version 3.2.1 2014-03-21 16:04:53 +06:00
Jacobi Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
LeastSquares Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
LU Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
MetisSupport Update Eigen to version 3.2.1 2014-03-21 16:04:53 +06:00
OrderingMethods Update Eigen to version 3.2.1 2014-03-21 16:04:53 +06:00
PardisoSupport Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
PaStiXSupport Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
QR Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
QtAlignedMalloc remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
Sparse Update Eigen to version 3.2.1 2014-03-21 16:04:53 +06:00
SparseCholesky Update Eigen to version 3.2.1 2014-03-21 16:04:53 +06:00
SparseCore Update Eigen to version 3.2.7 2015-12-10 12:37:46 +01:00
SparseLU Update Eigen to version 3.2.1 2014-03-21 16:04:53 +06:00
SparseQR Update Eigen to version 3.2.1 2014-03-21 16:04:53 +06:00
SPQRSupport Update Eigen to version 3.2.1 2014-03-21 16:04:53 +06:00
StdDeque Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
StdList Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
StdVector Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
SuperLUSupport Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
SVD Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00
UmfPackSupport Update to stable Eigen 3.1.1 2012-10-15 16:29:23 +00:00