Compare commits
562 Commits
tmp-pointc
...
soc-2020-x
Author | SHA1 | Date | |
---|---|---|---|
20e84b0dc1 | |||
0cb02bf631 | |||
9f2a0a76c0 | |||
9f5fc3842e | |||
771debfd58 | |||
c1f798d12e | |||
896a51c67e | |||
306058f7ad | |||
97a4a8d0fb | |||
4a7c203e9e | |||
1388f394d7 | |||
f3e8326453 | |||
59c14c1a62 | |||
8c375113b5 | |||
44928a2a8f | |||
848cbe889b | |||
9132fd8825 | |||
f45f8a7a89 | |||
![]() |
820ca419e0 | ||
d3944940f9 | |||
![]() |
4089b07aa0 | ||
8dc2fbd7b6 | |||
27d50d6f67 | |||
168653ed1d | |||
ff1d599172 | |||
b1bfcf9f6b | |||
2d38ff67d3 | |||
d7a28b3d1a | |||
da741013a1 | |||
55401fbb3d | |||
008ccacdfc | |||
2e33c5ca15 | |||
49c1359b55 | |||
27b643d27a | |||
9cac158e96 | |||
19175f4757 | |||
3eff2b44db | |||
4251a87bf6 | |||
742ad5acbc | |||
2bc017ece1 | |||
5893a1562f | |||
24d035b383 | |||
1f48e67002 | |||
422e5e372e | |||
0ab66dd63f | |||
69ec7ab873 | |||
ff0112bcb2 | |||
dc3baf2c78 | |||
929c94ee20 | |||
2181028292 | |||
699cefefd0 | |||
486c7b87fb | |||
5f6fb5bb41 | |||
7e8d493730 | |||
c09f61a915 | |||
5f46a0fbce | |||
81ce8481b2 | |||
8c10e56331 | |||
ebda95953c | |||
3274ce0a8e | |||
f62c7c546a | |||
![]() |
4e6975ffd6 | ||
03acbc7b71 | |||
54a2fcc0f3 | |||
6e5278c3da | |||
83f01db7a9 | |||
66df8fff32 | |||
b9c7c904ed | |||
f0687d4665 | |||
1804a6d040 | |||
2d89cd7dd5 | |||
99d0b3b793 | |||
7becd283cc | |||
ade7603379 | |||
e2e87efea2 | |||
e749643793 | |||
e4ee9de638 | |||
18d2db22ff | |||
45d61bdc03 | |||
56d0a554a8 | |||
f84342d7e1 | |||
959529d4b8 | |||
18caaff149 | |||
84f7de432c | |||
9c807325dd | |||
91150c9ef5 | |||
659db0592d | |||
4cad74e589 | |||
3e82500509 | |||
7a07683060 | |||
a3c6304a27 | |||
1e76441dd6 | |||
dcad6c9db8 | |||
ac6fbf6ba8 | |||
012ed9ca9f | |||
![]() |
0f075c25c4 | ||
![]() |
55c6cc46b5 | ||
7dfc2f5137 | |||
a0bc3596f0 | |||
cd3be9c46d | |||
c3f6227f30 | |||
e5e97d0fe0 | |||
d8919d12f7 | |||
814ca40c63 | |||
fcf91bbf0d | |||
9c1da81a4c | |||
cf243e0980 | |||
5d88f8eba2 | |||
556252f1fe | |||
80539723b9 | |||
67c33caeec | |||
b274d18aec | |||
cbeb2e55ed | |||
dcf7a05077 | |||
8fbed7f7f5 | |||
9ff7820f62 | |||
bc0b75ea37 | |||
5e232d7a0b | |||
6a689b5047 | |||
47b82fc02f | |||
26bc8f4935 | |||
b99358315e | |||
76d489fe23 | |||
9d412a92f5 | |||
2a52c2d001 | |||
82c38a7df0 | |||
75e16c22d7 | |||
f0c4566ce3 | |||
ec80f1d376 | |||
19de9d1a9e | |||
050de1fb8e | |||
3b9e16a4f7 | |||
c8e45c3fe9 | |||
d738e47b0d | |||
34125ce507 | |||
e296c9e24e | |||
8a60e920f4 | |||
290b372aac | |||
da32c17631 | |||
617e67529c | |||
e7dd89b50b | |||
1675969152 | |||
a2a29327d9 | |||
289aac723a | |||
ed19781a2a | |||
6ad75949b9 | |||
ace832bf7c | |||
221604cdd6 | |||
0006526952 | |||
7eebebebc7 | |||
4f3233dd53 | |||
a0b0a47d81 | |||
e8869d9c71 | |||
2584a2a4e7 | |||
e893430a63 | |||
729da8bfac | |||
e54289cdf3 | |||
1ae8855f8e | |||
7fd68db841 | |||
960ce1e394 | |||
2e376cfcc8 | |||
a5b2aa96e4 | |||
9a53d4a882 | |||
bd4b29d63d | |||
c7ee66e517 | |||
6f5d01779a | |||
38e65331a8 | |||
a83bb170b0 | |||
d64e171c4b | |||
4c5e1f1c25 | |||
79312962de | |||
81a0027f13 | |||
f8a0a5a350 | |||
71506698de | |||
565d7f75cc | |||
7beef1fd33 | |||
d7cb67454d | |||
9ce2c5bf50 | |||
b18c376946 | |||
0b04f0e4e6 | |||
bfeb94eccc | |||
418753b6a6 | |||
382b9007f8 | |||
f31fa3eb97 | |||
ea4a00e93b | |||
93e6ed9b45 | |||
d906116eba | |||
041904ceb8 | |||
40a9524637 | |||
87fb12d16e | |||
6d42ffe03c | |||
9b867f2e90 | |||
3bcec7c142 | |||
d62250a3e0 | |||
9e7ee39385 | |||
344be1fcfa | |||
ba9c88ce18 | |||
2c2082cc62 | |||
e76f64a532 | |||
c9cc5ad1c0 | |||
65e1d43f0b | |||
04195b1e74 | |||
2ebf263f5c | |||
9386dd66ff | |||
94afe7671c | |||
54237994d8 | |||
487eaeed7e | |||
025dc31d28 | |||
18cca0e704 | |||
9e23dbd060 | |||
15655aa1dd | |||
cc7d5e1fe6 | |||
c276ef61d4 | |||
b296b68ff2 | |||
9905db5557 | |||
7c3eaffbbd | |||
97b597cd04 | |||
8b7802db85 | |||
56803e2754 | |||
7b4a21077a | |||
d3cecc5007 | |||
13afc81f6d | |||
a77175c9b6 | |||
076d033e10 | |||
f0e370a650 | |||
7ceb6ffe57 | |||
f2907b06f4 | |||
5414ccbd4c | |||
28b1c70895 | |||
850234c1b1 | |||
9482cc6865 | |||
fd7e31b3e5 | |||
6cecdf2ade | |||
13abacaaf3 | |||
14326619a1 | |||
1e999c7bdb | |||
04d46bdb83 | |||
89f4191a53 | |||
0ae2a1d12a | |||
d52e45c89e | |||
a8d058dbf4 | |||
790d3804d0 | |||
4ca8f25fa8 | |||
82db64ed80 | |||
537c57136f | |||
eeaa4379aa | |||
ddd4fec386 | |||
2308668bac | |||
273f50a333 | |||
d7c4e96493 | |||
9a117fcdae | |||
704d581aea | |||
c64b12c0b8 | |||
50ff450202 | |||
74fcb4d4c2 | |||
f495b583be | |||
ec17b45034 | |||
236ca8fbe8 | |||
b53c46d760 | |||
141deeefff | |||
22b8ac80d2 | |||
3886392430 | |||
13fa4b9898 | |||
1a5945e2c3 | |||
2bd2db120e | |||
2a186af2b3 | |||
0e9999a93e | |||
ba99b12287 | |||
698af2e774 | |||
0b50ea51cc | |||
f359672c35 | |||
c049fe7979 | |||
9cbf43801b | |||
5ccb0f46dd | |||
954aa441bf | |||
149bb0c26d | |||
87c0a38a39 | |||
766edbdf1f | |||
67857b5d9f | |||
cf123da640 | |||
4619562e2f | |||
ad586e7eeb | |||
50cb693f1d | |||
ad6cfcef01 | |||
706b690ec6 | |||
6f3c37a3ff | |||
c9975d19b5 | |||
8d35dceb14 | |||
c8b24af1b2 | |||
ee98dc8d0f | |||
37ad90c35f | |||
4ae24c0b57 | |||
be1969d2a4 | |||
b64ae920e4 | |||
65aba4fc7a | |||
634585aa68 | |||
6596891121 | |||
bfeff73252 | |||
60b80ce142 | |||
79440c37ac | |||
fa21ba0179 | |||
d998258fa6 | |||
ef17e7e51b | |||
85157e74b3 | |||
ad602a3f03 | |||
c8653e516d | |||
8a5da947dc | |||
944df0c784 | |||
62e53788aa | |||
67002402bd | |||
8438ef4d8e | |||
19afb0ea67 | |||
797820fc20 | |||
ce4c2b8f0b | |||
4b31f4ace7 | |||
e5cd770e9f | |||
06e84fef88 | |||
a51048a5d3 | |||
4d6ac72264 | |||
e77644982c | |||
e0400d0a1c | |||
0a5ef40c2c | |||
750899fd31 | |||
921c95ab5e | |||
72fc70879c | |||
6f3ba033f8 | |||
0e280b96ca | |||
![]() |
5a1a4f4dd2 | ||
![]() |
62a0e1d54f | ||
![]() |
a4e3943a08 | ||
1fb9b6b1a1 | |||
![]() |
0c0a9dabc7 | ||
4950022e7d | |||
980dd43bd4 | |||
47b6c33258 | |||
![]() |
8f658ec27c | ||
ef52a9f791 | |||
077a2f7bbb | |||
![]() |
5c28955d3a | ||
a197b81090 | |||
b5194520e3 | |||
83cb4f5f8f | |||
7fc9666c89 | |||
59e48d8fe4 | |||
cfa788cf9a | |||
607d745a79 | |||
878d191bae | |||
46b126a2c8 | |||
69afdf6970 | |||
4aa2a5481c | |||
a39da2cbca | |||
7aabd74222 | |||
b453e9e3a4 | |||
f8cc01595d | |||
8369adabc0 | |||
6c7e62ef9b | |||
17ebbdf1c1 | |||
c2b0c64843 | |||
696c23f284 | |||
cd6250c220 | |||
d42530824e | |||
6b6e2e742f | |||
727e569ac3 | |||
3fe5c0e5df | |||
5904953d22 | |||
269c184ac9 | |||
6b6970d43f | |||
bafe22e8ce | |||
6778ef4dcc | |||
1c0fa3aff6 | |||
494a6a0bf2 | |||
629726177a | |||
0bfec04cd5 | |||
ece6d8b25a | |||
b277a75a3b | |||
8c916a3aec | |||
fdc3f56234 | |||
c46663ad66 | |||
b31d3d1202 | |||
2bc1fd7e91 | |||
b88dd3b8e7 | |||
50fe187443 | |||
731d9f0bfa | |||
ed870f87b9 | |||
d40c39fca0 | |||
![]() |
52543be9a6 | ||
a9644c812f | |||
a5ded0720c | |||
bb63ce9839 | |||
62a819202e | |||
![]() |
7d85495ab9 | ||
4432209849 | |||
7484e45297 | |||
ccc2a7996b | |||
ed184050b6 | |||
4f4af0cbe1 | |||
9016a29f19 | |||
230f7d79ce | |||
cbf2278266 | |||
ac5f011e9c | |||
33ad95b677 | |||
579b180053 | |||
8cbbdedaf4 | |||
![]() |
686ab4c940 | ||
6fbfa522e6 | |||
e4daac84b6 | |||
eb5cd628bd | |||
b219ae4498 | |||
615af4e239 | |||
9db4e44961 | |||
![]() |
78e40ad21f | ||
6247ec7827 | |||
3884d78e49 | |||
5063820c9b | |||
8c90910dcc | |||
ccd2af43b3 | |||
52a7c724b5 | |||
71d0f6f896 | |||
b8601b64c7 | |||
c08d847488 | |||
fe49e4139c | |||
9eaa48f520 | |||
fd67b521b9 | |||
63db971a00 | |||
1dd381828f | |||
c48ccb38cb | |||
4e73ba2cab | |||
f24ccedc18 | |||
016253a648 | |||
fd08d6f391 | |||
d99b343b31 | |||
d9228c557b | |||
4c28b1c74e | |||
59975b0adf | |||
8dfc31f61f | |||
264b1e1e15 | |||
5993c53a6d | |||
c14e6cdd56 | |||
1f2edba1fb | |||
d19b3019d9 | |||
a6bd7777c2 | |||
35f1b3e43b | |||
faeaf53255 | |||
e2305690eb | |||
2d9eee15c5 | |||
0ef57d3fc0 | |||
122d0c8f4b | |||
dcf6e12a60 | |||
7e66616b7e | |||
6d160f199c | |||
99b424334d | |||
5b4a862f83 | |||
2840782d84 | |||
02c09773ea | |||
acad0d75b1 | |||
3d536f69f6 | |||
aa8279648e | |||
25582aef61 | |||
69d14c0ddb | |||
8b0df381d9 | |||
d8a6eec1a3 | |||
893eb30730 | |||
0cdc75ccd2 | |||
e3f8768d8a | |||
2679236047 | |||
3ef59121a4 | |||
![]() |
9582797d4b | ||
bf2bb6db26 | |||
0e3d34e48f | |||
0fcd23a388 | |||
c5f61fbf48 | |||
5910dbdbf7 | |||
0a40c671b0 | |||
83e204702d | |||
618f31312c | |||
89a7a1c156 | |||
608d9b5aa1 | |||
b13bbb22e4 | |||
02a3720000 | |||
93f21ebb13 | |||
e7c1a32a78 | |||
a138bf57c9 | |||
![]() |
09a483a3aa | ||
671c6d8afd | |||
07d70a76df | |||
5099cbeec9 | |||
436d38bb54 | |||
3481f6eaf2 | |||
71ac137662 | |||
8084b7e6e2 | |||
ab19abe223 | |||
bc85081156 | |||
56b8adb9e2 | |||
1494ad20b9 | |||
76bf050853 | |||
aa547ce88b | |||
f64710a518 | |||
4249d6f58e | |||
ada173ebfd | |||
72df7c23c4 | |||
c7aa0f9d74 | |||
279cc34343 | |||
83955d6769 | |||
99fda4d31e | |||
9b6088cb9d | |||
9363c4de06 | |||
66b48ad8fb | |||
f3ea6a5b28 | |||
3d8f8085fb | |||
b882f89fe3 | |||
2ddb3dc617 | |||
56aa5b0d8c | |||
065a00ee3e | |||
d4ce777aed | |||
d897228682 | |||
f6f93b5b12 | |||
7e0bf7a0f1 | |||
35bfe1702c | |||
![]() |
4a9d903e2b | ||
![]() |
9715ad5aca | ||
ad4928a171 | |||
75520894c7 | |||
2811de6e5c | |||
5b099a25d7 | |||
123e29c274 | |||
54abab53bf | |||
a3d90337b8 | |||
d11a2dfe71 | |||
75a09ba2ed | |||
974e36d7d0 | |||
058514aa0a | |||
d4d810f817 | |||
37a8c6d809 | |||
47885abbe6 | |||
cd8f3c9ee7 | |||
2c1edcf3ef | |||
24c846b2b4 | |||
987d14a3b2 | |||
8e16873086 | |||
5dcf60e053 | |||
f1104c2828 | |||
eb54624a9a | |||
5057b28a2f | |||
ba100c883c | |||
a082e49671 | |||
cda6da4957 | |||
ae4098e234 | |||
36e836d0e9 | |||
19d17b217a | |||
57ec1f37e9 | |||
e06a346458 | |||
10cacbbb15 | |||
613d314251 | |||
b3c34011c0 | |||
efc6f6e1ae | |||
5a11c8ba24 | |||
87f8949f0e | |||
8e397f56a4 | |||
5190beb5e9 | |||
87b98cdf38 | |||
33e6ec8838 | |||
cb8423838f |
@@ -23,12 +23,14 @@ Checks: >
|
||||
-readability-static-accessed-through-instance,
|
||||
-readability-redundant-declaration,
|
||||
-readability-qualified-auto,
|
||||
-readability-use-anyofallof,
|
||||
|
||||
bugprone-*,
|
||||
-bugprone-narrowing-conversions,
|
||||
-bugprone-unhandled-self-assignment,
|
||||
-bugprone-branch-clone,
|
||||
-bugprone-macro-parentheses,
|
||||
-bugprone-reserved-identifier,
|
||||
|
||||
-bugprone-sizeof-expression,
|
||||
-bugprone-integer-division,
|
||||
|
@@ -41,7 +41,7 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
# Prever LEGACY OpenGL to eb compatible with all the existing releases and
|
||||
# platforms which don't hare GLVND yet. Only do it if preference was not set
|
||||
@@ -367,7 +367,7 @@ option(WITH_CYCLES_CUDA_BINARIES "Build Cycles CUDA binaries" OFF)
|
||||
option(WITH_CYCLES_CUBIN_COMPILER "Build cubins with nvrtc based compiler instead of nvcc" OFF)
|
||||
option(WITH_CYCLES_CUDA_BUILD_SERIAL "Build cubins one after another (useful on machines with limited RAM)" OFF)
|
||||
mark_as_advanced(WITH_CYCLES_CUDA_BUILD_SERIAL)
|
||||
set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 CACHE STRING "CUDA architectures to build binaries for")
|
||||
set(CYCLES_CUDA_BINARIES_ARCH sm_30 sm_35 sm_37 sm_50 sm_52 sm_60 sm_61 sm_70 sm_75 compute_75 CACHE STRING "CUDA architectures to build binaries for")
|
||||
mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)
|
||||
unset(PLATFORM_DEFAULT)
|
||||
option(WITH_CYCLES_LOGGING "Build Cycles with logging support" ON)
|
||||
@@ -900,7 +900,7 @@ if(MSVC)
|
||||
# endianess-detection and auto-setting is counterproductive
|
||||
# so we just set endianness according CMAKE_OSX_ARCHITECTURES
|
||||
|
||||
elseif(CMAKE_OSX_ARCHITECTURES MATCHES i386 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
|
||||
elseif(CMAKE_OSX_ARCHITECTURES MATCHES i386 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64 OR CMAKE_OSX_ARCHITECTURES MATCHES arm64)
|
||||
add_definitions(-D__LITTLE_ENDIAN__)
|
||||
elseif(CMAKE_OSX_ARCHITECTURES MATCHES ppc OR CMAKE_OSX_ARCHITECTURES MATCHES ppc64)
|
||||
add_definitions(-D__BIG_ENDIAN__)
|
||||
@@ -1628,10 +1628,6 @@ endif()
|
||||
#-----------------------------------------------------------------------------
|
||||
# Libraries
|
||||
|
||||
if(WITH_GTESTS)
|
||||
include(GTestTesting)
|
||||
endif()
|
||||
|
||||
if(WITH_BLENDER)
|
||||
add_subdirectory(intern)
|
||||
add_subdirectory(extern)
|
||||
|
@@ -94,9 +94,11 @@ if(UNIX)
|
||||
else()
|
||||
include(cmake/pugixml.cmake)
|
||||
endif()
|
||||
include(cmake/ispc.cmake)
|
||||
include(cmake/openimagedenoise.cmake)
|
||||
include(cmake/embree.cmake)
|
||||
if((NOT APPLE) OR ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
||||
include(cmake/ispc.cmake)
|
||||
include(cmake/openimagedenoise.cmake)
|
||||
include(cmake/embree.cmake)
|
||||
endif()
|
||||
if(NOT APPLE)
|
||||
include(cmake/xr_openxr.cmake)
|
||||
endif()
|
||||
|
@@ -30,6 +30,11 @@ else()
|
||||
set(CLANG_GENERATOR "Unix Makefiles")
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(CLANG_EXTRA_ARGS ${CLANG_EXTRA_ARGS}
|
||||
-DLIBXML2_LIBRARY=${LIBDIR}/xml2/lib/libxml2.a
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_clang
|
||||
URL ${CLANG_URI}
|
||||
|
@@ -42,7 +42,7 @@ if(BUILD_MODE STREQUAL Release)
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/glew/include/ ${HARVEST_TARGET}/opengl/include/ &&
|
||||
# tiff
|
||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiff.lib ${HARVEST_TARGET}/tiff/lib/libtiff.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/ &&
|
||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/
|
||||
DEPENDS
|
||||
)
|
||||
endif()
|
||||
@@ -132,8 +132,12 @@ harvest(openimageio/bin openimageio/bin "maketx")
|
||||
harvest(openimageio/bin openimageio/bin "oiiotool")
|
||||
harvest(openimageio/include openimageio/include "*")
|
||||
harvest(openimageio/lib openimageio/lib "*.a")
|
||||
harvest(openimagedenoise/include openimagedenoise/include "*")
|
||||
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
||||
if((NOT APPLE) OR ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
||||
harvest(openimagedenoise/include openimagedenoise/include "*")
|
||||
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
||||
harvest(embree/include embree/include "*.h")
|
||||
harvest(embree/lib embree/lib "*.a")
|
||||
endif()
|
||||
harvest(openjpeg/include/openjpeg-2.3 openjpeg/include "*.h")
|
||||
harvest(openjpeg/lib openjpeg/lib "*.a")
|
||||
harvest(opensubdiv/include opensubdiv/include "*.h")
|
||||
@@ -168,8 +172,6 @@ harvest(vpx/lib ffmpeg/lib "*.a")
|
||||
harvest(webp/lib ffmpeg/lib "*.a")
|
||||
harvest(x264/lib ffmpeg/lib "*.a")
|
||||
harvest(xvidcore/lib ffmpeg/lib "*.a")
|
||||
harvest(embree/include embree/include "*.h")
|
||||
harvest(embree/lib embree/lib "*.a")
|
||||
harvest(usd/include usd/include "*.h")
|
||||
harvest(usd/lib/usd usd/lib/usd "*")
|
||||
harvest(usd/plugin usd/plugin "*")
|
||||
|
@@ -16,11 +16,17 @@
|
||||
#
|
||||
# ***** END GPL LICENSE BLOCK *****
|
||||
|
||||
if(APPLE AND "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
set(LLVM_TARGETS AArch64)
|
||||
else()
|
||||
set(LLVM_TARGETS X86)
|
||||
endif()
|
||||
|
||||
set(LLVM_EXTRA_ARGS
|
||||
-DLLVM_USE_CRT_RELEASE=MD
|
||||
-DLLVM_USE_CRT_DEBUG=MDd
|
||||
-DLLVM_INCLUDE_TESTS=OFF
|
||||
-DLLVM_TARGETS_TO_BUILD=X86
|
||||
-DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS}
|
||||
-DLLVM_INCLUDE_EXAMPLES=OFF
|
||||
-DLLVM_ENABLE_TERMINFO=OFF
|
||||
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
|
||||
|
@@ -38,6 +38,7 @@ ExternalProject_Add(external_numpy
|
||||
PREFIX ${BUILD_DIR}/numpy
|
||||
PATCH_COMMAND ${NUMPY_PATCH}
|
||||
CONFIGURE_COMMAND ""
|
||||
PATCH_COMMAND COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/numpy/src/external_numpy < ${PATCH_DIR}/numpy.diff
|
||||
LOG_BUILD 1
|
||||
BUILD_COMMAND ${PYTHON_BINARY} ${BUILD_DIR}/numpy/src/external_numpy/setup.py build ${NUMPY_BUILD_OPTION} install --old-and-unmanageable
|
||||
INSTALL_COMMAND ""
|
||||
|
@@ -30,6 +30,13 @@ set(OPENCOLORIO_EXTRA_ARGS
|
||||
-DOCIO_STATIC_JNIGLUE=OFF
|
||||
)
|
||||
|
||||
if(APPLE AND NOT("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
${OPENCOLORIO_EXTRA_ARGS}
|
||||
-DOCIO_USE_SSE=OFF
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(OCIO_PATCH opencolorio_win.diff)
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
|
@@ -22,6 +22,7 @@ ExternalProject_Add(external_openmp
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH MD5=${OPENMP_HASH}
|
||||
PREFIX ${BUILD_DIR}/openmp
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openmp/src/external_openmp < ${PATCH_DIR}/openmp.diff
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openmp ${DEFAULT_CMAKE_FLAGS}
|
||||
INSTALL_COMMAND cd ${BUILD_DIR}/openmp/src/external_openmp-build && install_name_tool -id @executable_path/../Resources/lib/libomp.dylib runtime/src/libomp.dylib && make install
|
||||
INSTALL_DIR ${LIBDIR}/openmp
|
||||
|
@@ -117,16 +117,28 @@ else()
|
||||
COMMAND xcodebuild -version -sdk macosx SDKVersion
|
||||
OUTPUT_VARIABLE MACOSX_SDK_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
set(OSX_ARCHITECTURES x86_64)
|
||||
set(OSX_DEPLOYMENT_TARGET 10.13)
|
||||
if(NOT CMAKE_OSX_ARCHITECTURES)
|
||||
execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
message(STATUS "Detected native architecture ${ARCHITECTURE}.")
|
||||
set(CMAKE_OSX_ARCHITECTURES "${ARCHITECTURE}")
|
||||
endif()
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
||||
set(OSX_DEPLOYMENT_TARGET 10.13)
|
||||
else()
|
||||
set(OSX_DEPLOYMENT_TARGET 11.00)
|
||||
endif()
|
||||
set(OSX_SYSROOT ${XCODE_DEV_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk)
|
||||
|
||||
set(PLATFORM_CFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET}")
|
||||
set(PLATFORM_CXXFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -std=c++11 -stdlib=libc++")
|
||||
set(PLATFORM_LDFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET}")
|
||||
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin17.0.0) # OS X 10.13
|
||||
set(PLATFORM_CFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||
set(PLATFORM_CXXFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -std=c++11 -stdlib=libc++ -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||
set(PLATFORM_LDFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
||||
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin17.0.0) # OS X 10.13
|
||||
else()
|
||||
set(PLATFORM_BUILD_TARGET --build=aarch64-apple-darwin20.0.0) # macOS 11.00
|
||||
endif()
|
||||
set(PLATFORM_CMAKE_FLAGS
|
||||
-DCMAKE_OSX_ARCHITECTURES:STRING=${OSX_ARCHITECTURES}
|
||||
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${OSX_DEPLOYMENT_TARGET}
|
||||
-DCMAKE_OSX_SYSROOT:PATH=${OSX_SYSROOT}
|
||||
)
|
||||
|
@@ -22,6 +22,10 @@ set(PNG_EXTRA_ARGS
|
||||
-DPNG_STATIC=ON
|
||||
)
|
||||
|
||||
if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64"))
|
||||
set(PNG_EXTRA_ARGS ${PNG_EXTRA_ARGS} -DPNG_HARDWARE_OPTIMIZATIONS=ON -DPNG_ARM_NEON=on -DCMAKE_SYSTEM_PROCESSOR="aarch64")
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_png
|
||||
URL ${PNG_URI}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
|
@@ -69,12 +69,17 @@ else()
|
||||
export ac_cv_header_libintl_h=no &&
|
||||
export ac_cv_lib_intl_textdomain=no
|
||||
)
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
set(PYTHON_FUNC_CONFIGS ${PYTHON_FUNC_CONFIGS} && export PYTHON_DECIMAL_WITH_MACHINE=ansi64)
|
||||
endif()
|
||||
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && ${PYTHON_FUNC_CONFIGS})
|
||||
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python.exe)
|
||||
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_macos.diff)
|
||||
else()
|
||||
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python)
|
||||
endif()
|
||||
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_linux.diff)
|
||||
endif()
|
||||
|
||||
set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl")
|
||||
set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include -I${LIBDIR}/zlib/include")
|
||||
@@ -84,7 +89,6 @@ else()
|
||||
export CPPFLAGS=${PYTHON_CFLAGS} &&
|
||||
export LDFLAGS=${PYTHON_LDFLAGS} &&
|
||||
export PKG_CONFIG_PATH=${LIBDIR}/ffi/lib/pkgconfig)
|
||||
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_linux.diff)
|
||||
|
||||
ExternalProject_Add(external_python
|
||||
URL ${PYTHON_URI}
|
||||
|
@@ -51,7 +51,7 @@ ExternalProject_Add(external_sqlite
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH SHA1=${SQLITE_HASH}
|
||||
PREFIX ${BUILD_DIR}/sqlite
|
||||
PATCH_COMMAND ${SQLITE_PATCH_CMD}
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/sqlite/src/external_sqlite < ${PATCH_DIR}/sqlite.diff
|
||||
CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS}
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make -j${MAKE_THREADS}
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make install
|
||||
|
@@ -20,7 +20,7 @@ set(SSL_CONFIGURE_COMMAND ./Configure)
|
||||
set(SSL_PATCH_CMD echo .)
|
||||
|
||||
if(APPLE)
|
||||
set(SSL_OS_COMPILER "blender-darwin-x86_64")
|
||||
set(SSL_OS_COMPILER "blender-darwin-${CMAKE_OSX_ARCHITECTURES}")
|
||||
else()
|
||||
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128)
|
||||
|
@@ -12,4 +12,9 @@ my %targets = (
|
||||
inherit_from => [ "darwin64-x86_64-cc" ],
|
||||
cflags => add("-fPIC"),
|
||||
},
|
||||
"blender-darwin-arm64" => {
|
||||
inherit_from => [ "darwin-common" ],
|
||||
cxxflags => add("-fPIC -arch arm64"),
|
||||
cflags => add("-fPIC -arch arm64"),
|
||||
},
|
||||
);
|
||||
|
@@ -27,6 +27,7 @@ ExternalProject_Add(external_theora
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH SHA256=${THEORA_HASH}
|
||||
PREFIX ${BUILD_DIR}/theora
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/theora/src/external_theora < ${PATCH_DIR}/theora.diff
|
||||
CONFIGURE_COMMAND ${THEORA_CONFIGURE_ENV} && cd ${BUILD_DIR}/theora/src/external_theora/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/theora
|
||||
--disable-shared
|
||||
--enable-static
|
||||
|
@@ -24,7 +24,11 @@ if(WIN32)
|
||||
endif()
|
||||
else()
|
||||
if(APPLE)
|
||||
set(VPX_EXTRA_FLAGS --target=x86_64-darwin13-gcc)
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
set(VPX_EXTRA_FLAGS --target=generic-gnu)
|
||||
else()
|
||||
set(VPX_EXTRA_FLAGS --target=x86_64-darwin17-gcc)
|
||||
endif()
|
||||
else()
|
||||
set(VPX_EXTRA_FLAGS --target=generic-gnu)
|
||||
endif()
|
||||
|
@@ -22,9 +22,14 @@ endif()
|
||||
|
||||
|
||||
if(APPLE)
|
||||
set(X264_CONFIGURE_ENV
|
||||
export AS=${LIBDIR}/nasm/bin/nasm
|
||||
)
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
set(X264_EXTRA_ARGS ${X264_EXTRA_ARGS} "--disable-asm")
|
||||
set(X264_CONFIGURE_ENV echo .)
|
||||
else()
|
||||
set(X264_CONFIGURE_ENV
|
||||
export AS=${LIBDIR}/nasm/bin/nasm
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
set(X264_CONFIGURE_ENV echo .)
|
||||
endif()
|
||||
|
@@ -91,3 +91,41 @@ diff -Naur external_blosc.orig/blosc/blosc.c external_blosc/blosc/blosc.c
|
||||
|
||||
|
||||
/* Some useful units */
|
||||
diff --git a/blosc/shuffle.c b/blosc/shuffle.c
|
||||
index 84b5095..23053b4 100644
|
||||
--- a/blosc/shuffle.c
|
||||
+++ b/blosc/shuffle.c
|
||||
@@ -490,12 +490,12 @@ void unshuffle(size_t bytesoftype, size_t blocksize,
|
||||
#else /* no __SSE2__ available */
|
||||
|
||||
void shuffle(size_t bytesoftype, size_t blocksize,
|
||||
- uint8_t* _src, uint8_t* _dest) {
|
||||
+ const uint8_t* _src, uint8_t* _dest) {
|
||||
_shuffle(bytesoftype, blocksize, _src, _dest);
|
||||
}
|
||||
|
||||
void unshuffle(size_t bytesoftype, size_t blocksize,
|
||||
- uint8_t* _src, uint8_t* _dest) {
|
||||
+ const uint8_t* _src, uint8_t* _dest) {
|
||||
_unshuffle(bytesoftype, blocksize, _src, _dest);
|
||||
}
|
||||
--- a/cmake/FindSSE.cmake
|
||||
+++ b/cmake/FindSSE.cmake
|
||||
@@ -49,6 +49,17 @@
|
||||
set(AVX_FOUND false CACHE BOOL "AVX available on host")
|
||||
ENDIF (AVX_TRUE)
|
||||
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||
+ execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
+ message(STATUS "Detected architecture ${ARCHITECTURE}")
|
||||
+ IF("${ARCHITECTURE}" STREQUAL "arm64")
|
||||
+ set(SSE2_FOUND false CACHE BOOL "SSE2 available on host")
|
||||
+ set(SSE3_FOUND false CACHE BOOL "SSE3 available on host")
|
||||
+ set(SSSE3_FOUND false CACHE BOOL "SSSE3 available on host")
|
||||
+ set(SSE4_1_FOUND false CACHE BOOL "SSE4.1 available on host")
|
||||
+ set(AVX_FOUND false CACHE BOOL "AVX available on host")
|
||||
+ return()
|
||||
+ ENDIF()
|
||||
+
|
||||
EXEC_PROGRAM("/usr/sbin/sysctl -n machdep.cpu.features" OUTPUT_VARIABLE
|
||||
CPUINFO)
|
||||
|
27
build_files/build_environment/patches/numpy.diff
Normal file
27
build_files/build_environment/patches/numpy.diff
Normal file
@@ -0,0 +1,27 @@
|
||||
diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py
|
||||
index ba2b1f4..b10f7df 100644
|
||||
--- a/numpy/distutils/system_info.py
|
||||
+++ b/numpy/distutils/system_info.py
|
||||
@@ -2164,8 +2164,8 @@ class accelerate_info(system_info):
|
||||
'accelerate' in libraries):
|
||||
if intel:
|
||||
args.extend(['-msse3'])
|
||||
- else:
|
||||
- args.extend(['-faltivec'])
|
||||
+# else:
|
||||
+# args.extend(['-faltivec'])
|
||||
args.extend([
|
||||
'-I/System/Library/Frameworks/vecLib.framework/Headers'])
|
||||
link_args.extend(['-Wl,-framework', '-Wl,Accelerate'])
|
||||
@@ -2174,8 +2174,8 @@ class accelerate_info(system_info):
|
||||
'veclib' in libraries):
|
||||
if intel:
|
||||
args.extend(['-msse3'])
|
||||
- else:
|
||||
- args.extend(['-faltivec'])
|
||||
+# else:
|
||||
+# args.extend(['-faltivec'])
|
||||
args.extend([
|
||||
'-I/System/Library/Frameworks/vecLib.framework/Headers'])
|
||||
link_args.extend(['-Wl,-framework', '-Wl,vecLib'])
|
||||
|
@@ -86,3 +86,47 @@ index 1f9a3ee..d151e9a 100644
|
||||
return isnan( value );
|
||||
#else
|
||||
return std::isnan(value);
|
||||
|
||||
|
||||
diff --git a/DAEValidator/library/src/Dae.cpp b/DAEValidator/library/src/Dae.cpp
|
||||
index 9256ee1..241ad67 100644
|
||||
--- a/DAEValidator/library/src/Dae.cpp
|
||||
+++ b/DAEValidator/library/src/Dae.cpp
|
||||
@@ -304,7 +304,7 @@ namespace opencollada
|
||||
if (auto root_node = root())
|
||||
{
|
||||
const auto & nodes = root_node.selectNodes("//*[@id]");
|
||||
- for (const auto & node : nodes)
|
||||
+ for (const auto node : nodes)
|
||||
{
|
||||
string id = node.attribute("id").value();
|
||||
mIdCache.insert(id);
|
||||
@@ -312,4 +312,4 @@ namespace opencollada
|
||||
}
|
||||
}
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/DAEValidator/library/src/DaeValidator.cpp b/DAEValidator/library/src/DaeValidator.cpp
|
||||
index 715d903..24423ce 100644
|
||||
--- a/DAEValidator/library/src/DaeValidator.cpp
|
||||
+++ b/DAEValidator/library/src/DaeValidator.cpp
|
||||
@@ -162,7 +162,7 @@ namespace opencollada
|
||||
|
||||
// Find xsi:schemaLocation attributes in dae and try to validate against specified xsd documents
|
||||
const auto & elements = dae.root().selectNodes("//*[@xsi:schemaLocation]");
|
||||
- for (const auto & element : elements)
|
||||
+ for (const auto element : elements)
|
||||
{
|
||||
if (auto schemaLocation = element.attribute("schemaLocation"))
|
||||
{
|
||||
@@ -274,7 +274,7 @@ namespace opencollada
|
||||
int result = 0;
|
||||
map<string, size_t> ids;
|
||||
const auto & nodes = dae.root().selectNodes("//*[@id]");
|
||||
- for (const auto & node : nodes)
|
||||
+ for (const auto node : nodes)
|
||||
{
|
||||
string id = node.attribute("id").value();
|
||||
size_t line = node.line();
|
||||
|
23
build_files/build_environment/patches/openmp.diff
Normal file
23
build_files/build_environment/patches/openmp.diff
Normal file
@@ -0,0 +1,23 @@
|
||||
diff --git a/runtime/src/z_Linux_asm.S b/runtime/src/z_Linux_asm.S
|
||||
index 0d8885e..42aa5ad 100644
|
||||
--- a/runtime/src/z_Linux_asm.S
|
||||
+++ b/runtime/src/z_Linux_asm.S
|
||||
@@ -1540,10 +1540,12 @@ __kmp_unnamed_critical_addr:
|
||||
.comm .gomp_critical_user_,32,8
|
||||
.data
|
||||
.align 8
|
||||
- .global __kmp_unnamed_critical_addr
|
||||
-__kmp_unnamed_critical_addr:
|
||||
+ .global ___kmp_unnamed_critical_addr
|
||||
+___kmp_unnamed_critical_addr:
|
||||
.8byte .gomp_critical_user_
|
||||
- .size __kmp_unnamed_critical_addr,8
|
||||
+# if !(KMP_OS_DARWIN)
|
||||
+ .size ___kmp_unnamed_critical_addr,8
|
||||
+# endif
|
||||
#endif /* KMP_ARCH_PPC64 || KMP_ARCH_AARCH64 */
|
||||
|
||||
#if KMP_OS_LINUX
|
||||
|
||||
|
||||
|
289
build_files/build_environment/patches/python_macos.diff
Normal file
289
build_files/build_environment/patches/python_macos.diff
Normal file
@@ -0,0 +1,289 @@
|
||||
diff -ru a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
|
||||
--- a/Doc/library/ctypes.rst 2020-03-10 07:11:12.000000000 +0100
|
||||
+++ b/Doc/library/ctypes.rst 2020-07-14 08:10:10.000000000 +0200
|
||||
@@ -1551,6 +1551,13 @@
|
||||
value usable as argument (integer, string, ctypes instance). This allows
|
||||
defining adapters that can adapt custom objects as function parameters.
|
||||
|
||||
+ .. attribute:: variadic
|
||||
+
|
||||
+ Assign a boolean to specify that the function takes a variable number of
|
||||
+ arguments. This does not matter on most platforms, but for Apple arm64
|
||||
+ platforms variadic functions have a different calling convention than
|
||||
+ normal functions.
|
||||
+
|
||||
.. attribute:: errcheck
|
||||
|
||||
Assign a Python function or another callable to this attribute. The
|
||||
diff -ru a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
|
||||
--- a/Modules/_ctypes/_ctypes.c 2020-03-10 07:11:12.000000000 +0100
|
||||
+++ b/Modules/_ctypes/_ctypes.c 2020-07-14 08:14:41.000000000 +0200
|
||||
@@ -3175,6 +3175,35 @@
|
||||
}
|
||||
|
||||
static int
|
||||
+PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
|
||||
+{
|
||||
+ StgDictObject *dict = PyObject_stgdict((PyObject *)self);
|
||||
+ assert(dict);
|
||||
+ int r = PyObject_IsTrue(ob);
|
||||
+ if (r == 1) {
|
||||
+ dict->flags |= FUNCFLAG_VARIADIC;
|
||||
+ return 0;
|
||||
+ } else if (r == 0) {
|
||||
+ dict->flags &= ~FUNCFLAG_VARIADIC;
|
||||
+ return 0;
|
||||
+ } else {
|
||||
+ return -1;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static PyObject *
|
||||
+PyCFuncPtr_get_variadic(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
|
||||
+{
|
||||
+ StgDictObject *dict = PyObject_stgdict((PyObject *)self);
|
||||
+ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */
|
||||
+ if (dict->flags & FUNCFLAG_VARIADIC)
|
||||
+ Py_RETURN_TRUE;
|
||||
+ else
|
||||
+ Py_RETURN_FALSE;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+static int
|
||||
PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
|
||||
{
|
||||
PyObject *converters;
|
||||
@@ -5632,6 +5661,7 @@
|
||||
PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO));
|
||||
PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR));
|
||||
PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI));
|
||||
+ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC));
|
||||
PyModule_AddStringConstant(m, "__version__", "1.1.0");
|
||||
|
||||
PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove));
|
||||
diff -ru a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
|
||||
--- a/Modules/_ctypes/callproc.c 2020-03-10 07:11:12.000000000 +0100
|
||||
+++ b/Modules/_ctypes/callproc.c 2020-07-14 08:18:33.000000000 +0200
|
||||
@@ -767,7 +767,8 @@
|
||||
ffi_type **atypes,
|
||||
ffi_type *restype,
|
||||
void *resmem,
|
||||
- int argcount)
|
||||
+ int argcount,
|
||||
+ int argtypecount)
|
||||
{
|
||||
PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */
|
||||
PyObject *error_object = NULL;
|
||||
@@ -793,15 +794,38 @@
|
||||
if ((flags & FUNCFLAG_CDECL) == 0)
|
||||
cc = FFI_STDCALL;
|
||||
#endif
|
||||
- if (FFI_OK != ffi_prep_cif(&cif,
|
||||
- cc,
|
||||
- argcount,
|
||||
- restype,
|
||||
- atypes)) {
|
||||
- PyErr_SetString(PyExc_RuntimeError,
|
||||
- "ffi_prep_cif failed");
|
||||
- return -1;
|
||||
- }
|
||||
+#if HAVE_FFI_PREP_CIF_VAR
|
||||
+ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but
|
||||
+ * lots of existing code will not. If there's at least one arg and more
|
||||
+ * args are passed than are defined in the prototype, then it must be a
|
||||
+ * variadic function. */
|
||||
+ if ((flags & FUNCFLAG_VARIADIC) ||
|
||||
+ (argtypecount != 0 && argcount > argtypecount))
|
||||
+ {
|
||||
+ if (FFI_OK != ffi_prep_cif_var(&cif,
|
||||
+ cc,
|
||||
+ argtypecount,
|
||||
+ argcount,
|
||||
+ restype,
|
||||
+ atypes)) {
|
||||
+ PyErr_SetString(PyExc_RuntimeError,
|
||||
+ "ffi_prep_cif_var failed");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ } else {
|
||||
+#endif
|
||||
+ if (FFI_OK != ffi_prep_cif(&cif,
|
||||
+ cc,
|
||||
+ argcount,
|
||||
+ restype,
|
||||
+ atypes)) {
|
||||
+ PyErr_SetString(PyExc_RuntimeError,
|
||||
+ "ffi_prep_cif failed");
|
||||
+ return -1;
|
||||
+ }
|
||||
+#if HAVE_FFI_PREP_CIF_VAR
|
||||
+ }
|
||||
+#endif
|
||||
|
||||
if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) {
|
||||
error_object = _ctypes_get_errobj(&space);
|
||||
@@ -1185,9 +1209,8 @@
|
||||
|
||||
if (-1 == _call_function_pointer(flags, pProc, avalues, atypes,
|
||||
rtype, resbuf,
|
||||
- Py_SAFE_DOWNCAST(argcount,
|
||||
- Py_ssize_t,
|
||||
- int)))
|
||||
+ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int),
|
||||
+ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int)))
|
||||
goto cleanup;
|
||||
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
diff -ru a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h
|
||||
--- a/Modules/_ctypes/ctypes.h 2020-03-10 07:11:12.000000000 +0100
|
||||
+++ b/Modules/_ctypes/ctypes.h 2020-07-14 08:30:53.000000000 +0200
|
||||
@@ -285,6 +285,7 @@
|
||||
#define FUNCFLAG_PYTHONAPI 0x4
|
||||
#define FUNCFLAG_USE_ERRNO 0x8
|
||||
#define FUNCFLAG_USE_LASTERROR 0x10
|
||||
+#define FUNCFLAG_VARIADIC 0x20
|
||||
|
||||
#define TYPEFLAG_ISPOINTER 0x100
|
||||
#define TYPEFLAG_HASPOINTER 0x200
|
||||
diff -ru a/configure b/configure
|
||||
--- a/configure 2020-03-10 07:11:12.000000000 +0100
|
||||
+++ b/configure 2020-07-14 08:03:27.000000000 +0200
|
||||
@@ -3374,7 +3374,7 @@
|
||||
# has no effect, don't bother defining them
|
||||
Darwin/[6789].*)
|
||||
define_xopen_source=no;;
|
||||
- Darwin/1[0-9].*)
|
||||
+ Darwin/[12][0-9].*)
|
||||
define_xopen_source=no;;
|
||||
# On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
|
||||
# used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
|
||||
@@ -9251,6 +9251,9 @@
|
||||
ppc)
|
||||
MACOSX_DEFAULT_ARCH="ppc64"
|
||||
;;
|
||||
+ arm64)
|
||||
+ MACOSX_DEFAULT_ARCH="arm64"
|
||||
+ ;;
|
||||
*)
|
||||
as_fn_error $? "Unexpected output of 'arch' on OSX" "$LINENO" 5
|
||||
;;
|
||||
diff -ru a/configure.ac b/configure.ac
|
||||
--- a/configure.ac 2020-03-10 07:11:12.000000000 +0100
|
||||
+++ b/configure.ac 2020-07-14 08:03:27.000000000 +0200
|
||||
@@ -2456,6 +2456,9 @@
|
||||
ppc)
|
||||
MACOSX_DEFAULT_ARCH="ppc64"
|
||||
;;
|
||||
+ arm64)
|
||||
+ MACOSX_DEFAULT_ARCH="arm64"
|
||||
+ ;;
|
||||
*)
|
||||
AC_MSG_ERROR([Unexpected output of 'arch' on OSX])
|
||||
;;
|
||||
diff -ru a/setup.py b/setup.py
|
||||
--- a/setup.py 2020-03-10 07:11:12.000000000 +0100
|
||||
+++ b/setup.py 2020-07-14 08:28:12.000000000 +0200
|
||||
@@ -141,6 +141,13 @@
|
||||
os.unlink(tmpfile)
|
||||
|
||||
return MACOS_SDK_ROOT
|
||||
+
|
||||
+def is_macosx_at_least(vers):
|
||||
+ if host_platform == 'darwin':
|
||||
+ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
|
||||
+ if dep_target:
|
||||
+ return tuple(map(int, dep_target.split('.'))) >= vers
|
||||
+ return False
|
||||
|
||||
def is_macosx_sdk_path(path):
|
||||
"""
|
||||
@@ -150,6 +157,13 @@
|
||||
or path.startswith('/System/')
|
||||
or path.startswith('/Library/') )
|
||||
|
||||
+def grep_headers_for(function, headers):
|
||||
+ for header in headers:
|
||||
+ with open(header, 'r') as f:
|
||||
+ if function in f.read():
|
||||
+ return True
|
||||
+ return False
|
||||
+
|
||||
def find_file(filename, std_dirs, paths):
|
||||
"""Searches for the directory where a given file is located,
|
||||
and returns a possibly-empty list of additional directories, or None
|
||||
@@ -1972,7 +1986,11 @@
|
||||
return True
|
||||
|
||||
def detect_ctypes(self, inc_dirs, lib_dirs):
|
||||
- self.use_system_libffi = False
|
||||
+ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)):
|
||||
+ self.use_system_libffi = True
|
||||
+ else:
|
||||
+ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS")
|
||||
+
|
||||
include_dirs = []
|
||||
extra_compile_args = []
|
||||
extra_link_args = []
|
||||
@@ -2016,32 +2034,48 @@
|
||||
ext_test = Extension('_ctypes_test',
|
||||
sources=['_ctypes/_ctypes_test.c'],
|
||||
libraries=['m'])
|
||||
+ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR")
|
||||
+ ffi_lib = None
|
||||
+
|
||||
self.extensions.extend([ext, ext_test])
|
||||
|
||||
if host_platform == 'darwin':
|
||||
- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"):
|
||||
+ if not self.use_system_libffi:
|
||||
return
|
||||
- # OS X 10.5 comes with libffi.dylib; the include files are
|
||||
- # in /usr/include/ffi
|
||||
- inc_dirs.append('/usr/include/ffi')
|
||||
-
|
||||
- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")]
|
||||
- if not ffi_inc or ffi_inc[0] == '':
|
||||
- ffi_inc = find_file('ffi.h', [], inc_dirs)
|
||||
- if ffi_inc is not None:
|
||||
- ffi_h = ffi_inc[0] + '/ffi.h'
|
||||
+ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi")
|
||||
+ if os.path.exists(ffi_in_sdk):
|
||||
+ ffi_inc = ffi_in_sdk
|
||||
+ ffi_lib = 'ffi'
|
||||
+ else:
|
||||
+ # OS X 10.5 comes with libffi.dylib; the include files are
|
||||
+ # in /usr/include/ffi
|
||||
+ ffi_inc_dirs.append('/usr/include/ffi')
|
||||
+
|
||||
+ if not ffi_inc:
|
||||
+ found = find_file('ffi.h', [], ffi_inc_dirs)
|
||||
+ if found:
|
||||
+ ffi_inc = found[0]
|
||||
+ if ffi_inc:
|
||||
+ ffi_h = ffi_inc + '/ffi.h'
|
||||
if not os.path.exists(ffi_h):
|
||||
ffi_inc = None
|
||||
print('Header file {} does not exist'.format(ffi_h))
|
||||
- ffi_lib = None
|
||||
- if ffi_inc is not None:
|
||||
+ if ffi_lib is None and ffi_inc:
|
||||
for lib_name in ('ffi', 'ffi_pic'):
|
||||
if (self.compiler.find_library_file(lib_dirs, lib_name)):
|
||||
ffi_lib = lib_name
|
||||
break
|
||||
|
||||
if ffi_inc and ffi_lib:
|
||||
- ext.include_dirs.extend(ffi_inc)
|
||||
+ ffi_headers = glob(os.path.join(ffi_inc, '*.h'))
|
||||
+ if grep_headers_for('ffi_closure_alloc', ffi_headers):
|
||||
+ try:
|
||||
+ sources.remove('_ctypes/malloc_closure.c')
|
||||
+ except ValueError:
|
||||
+ pass
|
||||
+ if grep_headers_for('ffi_prep_cif_var', ffi_headers):
|
||||
+ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1")
|
||||
+ ext.include_dirs.append(ffi_inc)
|
||||
ext.libraries.append(ffi_lib)
|
||||
self.use_system_libffi = True
|
||||
|
14
build_files/build_environment/patches/sqlite.diff
Normal file
14
build_files/build_environment/patches/sqlite.diff
Normal file
@@ -0,0 +1,14 @@
|
||||
Only in external_sqlite_orig: config.log
|
||||
diff -ru external_sqlite_orig/config.sub external_sqlite/config.sub
|
||||
--- external_sqlite_orig/config.sub 2020-07-10 14:06:42.000000000 +0200
|
||||
+++ external_sqlite/config.sub 2020-07-10 14:10:24.000000000 +0200
|
||||
@@ -314,6 +314,7 @@
|
||||
# Recognize the basic CPU types with company name.
|
||||
580-* \
|
||||
| a29k-* \
|
||||
+ | aarch64-* \
|
||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
||||
Only in external_sqlite: mksourceid
|
||||
Only in external_sqlite: sqlite3session.h
|
18
build_files/build_environment/patches/theora.diff
Normal file
18
build_files/build_environment/patches/theora.diff
Normal file
@@ -0,0 +1,18 @@
|
||||
--- config.sub
|
||||
+++ config.sub
|
||||
@@ -226,6 +226,7 @@
|
||||
# Some are omitted here because they have special meanings below.
|
||||
1750a | 580 \
|
||||
| a29k \
|
||||
+ | aarch64 \
|
||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
|
||||
@@ -286,6 +287,7 @@
|
||||
# Recognize the basic CPU types with company name.
|
||||
580-* \
|
||||
| a29k-* \
|
||||
+ | aarch64-* \
|
||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
@@ -97,3 +97,36 @@ diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros
|
||||
endforeach()
|
||||
foreach(lib ${PXR_OBJECT_LIBS})
|
||||
set(objects "${objects};\$<TARGET_OBJECTS:${lib}>")
|
||||
|
||||
diff --git a/pxr/base/arch/align.h b/pxr/base/arch/align.h
|
||||
index f3cabf4..ebc8a69 100644
|
||||
--- a/pxr/base/arch/align.h
|
||||
+++ b/pxr/base/arch/align.h
|
||||
@@ -77,7 +77,11 @@ ArchAlignMemory(void *base)
|
||||
/// The size of a CPU cache line on the current processor architecture in bytes.
|
||||
///
|
||||
/// \hideinitializer
|
||||
+#if defined(ARCH_OS_DARWIN) && defined(ARCH_CPU_ARM)
|
||||
+#define ARCH_CACHE_LINE_SIZE 128
|
||||
+#else
|
||||
#define ARCH_CACHE_LINE_SIZE 64
|
||||
+#endif
|
||||
|
||||
///@}
|
||||
|
||||
diff --git a/pxr/base/arch/math.h b/pxr/base/arch/math.h
|
||||
index 3e66c37..64a052c 100644
|
||||
--- a/pxr/base/arch/math.h
|
||||
+++ b/pxr/base/arch/math.h
|
||||
@@ -42,7 +42,7 @@ PXR_NAMESPACE_OPEN_SCOPE
|
||||
/// \addtogroup group_arch_Math
|
||||
///@{
|
||||
|
||||
-#if defined (ARCH_CPU_INTEL) || defined(doxygen)
|
||||
+#if defined (ARCH_CPU_INTEL) || defined(ARCH_CPU_ARM) || defined(doxygen)
|
||||
|
||||
/// This is the smallest value e such that 1+e^2 == 1, using floats.
|
||||
/// True for all IEEE754 chipsets.
|
||||
|
||||
|
||||
|
||||
|
@@ -37,6 +37,11 @@ macro(BLENDER_SRC_GTEST_EX)
|
||||
if(WIN32)
|
||||
set(MANIFEST "${CMAKE_BINARY_DIR}/tests.exe.manifest")
|
||||
endif()
|
||||
|
||||
add_definitions(-DBLENDER_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE})
|
||||
add_definitions(${GFLAGS_DEFINES})
|
||||
add_definitions(${GLOG_DEFINES})
|
||||
|
||||
add_executable(${TARGET_NAME} ${ARG_SRC} ${MANIFEST})
|
||||
target_include_directories(${TARGET_NAME} PUBLIC "${TEST_INC}")
|
||||
target_include_directories(${TARGET_NAME} SYSTEM PUBLIC "${TEST_INC_SYS}")
|
||||
|
@@ -53,7 +53,7 @@ set(WITH_USD ON CACHE BOOL "" FORCE)
|
||||
set(WITH_MEM_JEMALLOC ON CACHE BOOL "" FORCE)
|
||||
set(WITH_CYCLES_CUDA_BINARIES ON CACHE BOOL "" FORCE)
|
||||
set(WITH_CYCLES_CUBIN_COMPILER OFF CACHE BOOL "" FORCE)
|
||||
set(CYCLES_CUDA_BINARIES_ARCH sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_70;sm_75 CACHE STRING "" FORCE)
|
||||
set(CYCLES_CUDA_BINARIES_ARCH sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_70;sm_75;compute_75 CACHE STRING "" FORCE)
|
||||
set(WITH_CYCLES_DEVICE_OPTIX ON CACHE BOOL "" FORCE)
|
||||
|
||||
# platform dependent options
|
||||
|
@@ -169,6 +169,26 @@ function(blender_include_dirs_sys
|
||||
include_directories(SYSTEM ${_ALL_INCS})
|
||||
endfunction()
|
||||
|
||||
# Set include paths for header files included with "*.h" syntax.
|
||||
# This enables auto-complete suggestions for user header files on Xcode.
|
||||
# Build process is not affected since the include paths are the same
|
||||
# as in HEADER_SEARCH_PATHS.
|
||||
function(blender_user_header_search_paths
|
||||
name
|
||||
includes
|
||||
)
|
||||
|
||||
if(XCODE)
|
||||
set(_ALL_INCS "")
|
||||
foreach(_INC ${includes})
|
||||
get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
|
||||
# _ALL_INCS is a space-separated string of file paths in quotes.
|
||||
set(_ALL_INCS "${_ALL_INCS} \"${_ABS_INC}\"")
|
||||
endforeach()
|
||||
set_target_properties(${name} PROPERTIES XCODE_ATTRIBUTE_USER_HEADER_SEARCH_PATHS "${_ALL_INCS}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(blender_source_group
|
||||
name
|
||||
sources
|
||||
@@ -317,6 +337,7 @@ function(blender_add_lib__impl
|
||||
# works fine without having the includes
|
||||
# listed is helpful for IDE's (QtCreator/MSVC)
|
||||
blender_source_group("${name}" "${sources}")
|
||||
blender_user_header_search_paths("${name}" "${includes}")
|
||||
|
||||
list_assert_duplicates("${sources}")
|
||||
list_assert_duplicates("${includes}")
|
||||
@@ -354,6 +375,42 @@ function(blender_add_lib
|
||||
set_property(GLOBAL APPEND PROPERTY BLENDER_LINK_LIBS ${name})
|
||||
endfunction()
|
||||
|
||||
# blender_add_test_lib() is used to define a test library. It is intended to be
|
||||
# called in tandem with blender_add_lib(). The test library will be linked into
|
||||
# the bf_gtest_runner_test executable (see tests/gtests/CMakeLists.txt).
|
||||
function(blender_add_test_lib
|
||||
name
|
||||
sources
|
||||
includes
|
||||
includes_sys
|
||||
library_deps
|
||||
)
|
||||
|
||||
add_cc_flags_custom_test(${name} PARENT_SCOPE)
|
||||
|
||||
# Otherwise external projects will produce warnings that we cannot fix.
|
||||
remove_strict_flags()
|
||||
|
||||
# This duplicates logic that's also in GTestTesting.cmake, macro BLENDER_SRC_GTEST_EX.
|
||||
# TODO(Sybren): deduplicate after the general approach in D7649 has been approved.
|
||||
LIST(APPEND includes
|
||||
${CMAKE_SOURCE_DIR}/tests/gtests
|
||||
)
|
||||
LIST(APPEND includes_sys
|
||||
${GLOG_INCLUDE_DIRS}
|
||||
${GFLAGS_INCLUDE_DIRS}
|
||||
${CMAKE_SOURCE_DIR}/extern/gtest/include
|
||||
${CMAKE_SOURCE_DIR}/extern/gmock/include
|
||||
)
|
||||
add_definitions(-DBLENDER_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE})
|
||||
add_definitions(${GFLAGS_DEFINES})
|
||||
add_definitions(${GLOG_DEFINES})
|
||||
|
||||
blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}")
|
||||
|
||||
set_property(GLOBAL APPEND PROPERTY BLENDER_TEST_LIBS ${name})
|
||||
endfunction()
|
||||
|
||||
# Ninja only: assign 'heavy pool' to some targets that are especially RAM-consuming to build.
|
||||
function(setup_heavy_lib_pool)
|
||||
if(WITH_NINJA_POOL_JOBS AND NINJA_MAX_NUM_PARALLEL_COMPILE_HEAVY_JOBS)
|
||||
|
@@ -20,7 +20,11 @@
|
||||
|
||||
# Libraries configuration for Apple.
|
||||
|
||||
set(MACOSX_DEPLOYMENT_TARGET "10.13")
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
set(MACOSX_DEPLOYMENT_TARGET 11.00)
|
||||
else()
|
||||
set(MACOSX_DEPLOYMENT_TARGET 10.13)
|
||||
endif()
|
||||
|
||||
macro(find_package_wrapper)
|
||||
# do nothing, just satisfy the macro
|
||||
@@ -378,6 +382,12 @@ if(WITH_CYCLES_OSL)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
set(WITH_CYCLES_EMBREE OFF)
|
||||
set(WITH_OPENIMAGEDENOISE OFF)
|
||||
set(WITH_CPU_SSE OFF)
|
||||
endif()
|
||||
|
||||
if(WITH_CYCLES_EMBREE)
|
||||
find_package(Embree 3.8.0 REQUIRED)
|
||||
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Xlinker -stack_size -Xlinker 0x100000")
|
||||
@@ -439,8 +449,8 @@ if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR CMAKE_OSX_ARCHITECTURES MATCHES "
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller")
|
||||
endif()
|
||||
else()
|
||||
set(CMAKE_C_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
|
||||
set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -fno-strict-aliasing")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -fno-strict-aliasing")
|
||||
endif()
|
||||
|
||||
if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
|
||||
|
@@ -21,8 +21,10 @@
|
||||
# Xcode and system configuration for Apple.
|
||||
|
||||
if(NOT CMAKE_OSX_ARCHITECTURES)
|
||||
set(CMAKE_OSX_ARCHITECTURES x86_64 CACHE STRING
|
||||
"Choose the architecture you want to build Blender for: i386, x86_64 or ppc"
|
||||
execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
message(STATUS "Detected native architecture ${ARCHITECTURE}.")
|
||||
set(CMAKE_OSX_ARCHITECTURES ${ARCHITECTURE} CACHE STRING
|
||||
"Choose the architecture you want to build Blender for: arm64 or x86_64"
|
||||
FORCE)
|
||||
endif()
|
||||
|
||||
@@ -129,14 +131,21 @@ if(${CMAKE_GENERATOR} MATCHES "Xcode")
|
||||
endif()
|
||||
unset(OSX_SDKROOT)
|
||||
|
||||
|
||||
# 10.13 is our min. target, if you use higher sdk, weak linking happens
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
set(OSX_MIN_DEPLOYMENT_TARGET 11.00)
|
||||
else()
|
||||
set(OSX_MIN_DEPLOYMENT_TARGET 10.13)
|
||||
endif()
|
||||
|
||||
if(CMAKE_OSX_DEPLOYMENT_TARGET)
|
||||
if(${CMAKE_OSX_DEPLOYMENT_TARGET} VERSION_LESS 10.13)
|
||||
message(STATUS "Setting deployment target to 10.13, lower versions are not supported")
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "" FORCE)
|
||||
if(${CMAKE_OSX_DEPLOYMENT_TARGET} VERSION_LESS ${OSX_MIN_DEPLOYMENT_TARGET})
|
||||
message(STATUS "Setting deployment target to ${OSX_MIN_DEPLOYMENT_TARGET}, lower versions are not supported")
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "${OSX_MIN_DEPLOYMENT_TARGET}" CACHE STRING "" FORCE)
|
||||
endif()
|
||||
else()
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "" FORCE)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "${OSX_MIN_DEPLOYMENT_TARGET}" CACHE STRING "" FORCE)
|
||||
endif()
|
||||
|
||||
if(NOT ${CMAKE_GENERATOR} MATCHES "Xcode")
|
||||
|
@@ -36,6 +36,11 @@ if(NOT DEFINED LIBDIR)
|
||||
elseif(EXISTS ${LIBDIR_CENTOS7_ABI})
|
||||
set(LIBDIR ${LIBDIR_CENTOS7_ABI})
|
||||
set(WITH_CXX11_ABI OFF)
|
||||
|
||||
if(CMAKE_COMPILER_IS_GNUCC AND
|
||||
CMAKE_C_COMPILER_VERSION VERSION_LESS 9.3)
|
||||
message(FATAL_ERROR "GCC version must be at least 9.3 for precompiled libraries, found ${CMAKE_C_COMPILER_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Avoid namespace pollustion.
|
||||
|
@@ -26,6 +26,10 @@ if(NOT MSVC)
|
||||
message(FATAL_ERROR "Compiler is unsupported")
|
||||
endif()
|
||||
|
||||
if(WITH_GTESTS AND ${CMAKE_VERSION} VERSION_LESS "3.18.0")
|
||||
message(FATAL_ERROR "CMake 3.18.0 is required for building WITH_GTESTS on windows, currently installed cmake version is ${CMAKE_VERSION}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set(MSVC_CLANG On)
|
||||
set(VC_TOOLS_DIR $ENV{VCToolsRedistDir} CACHE STRING "Location of the msvc redistributables")
|
||||
|
@@ -48,7 +48,7 @@ def git_branch(git_command):
|
||||
def git_tag(git_command):
|
||||
# Get current tag name.
|
||||
try:
|
||||
tag = subprocess.check_output([git_command, "describe", "--exact-match"])
|
||||
tag = subprocess.check_output([git_command, "describe", "--exact-match"], stderr=subprocess.STDOUT)
|
||||
except subprocess.CalledProcessError as e:
|
||||
return None
|
||||
|
||||
|
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>
|
@@ -38,7 +38,7 @@ PROJECT_NAME = Blender
|
||||
# could be handy for archiving the generated documentation or if some version
|
||||
# control system is used.
|
||||
|
||||
PROJECT_NUMBER = "V2.90"
|
||||
PROJECT_NUMBER = "V2.91"
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer a
|
||||
|
@@ -225,6 +225,7 @@ else:
|
||||
"aud",
|
||||
"bgl",
|
||||
"blf",
|
||||
"bl_math",
|
||||
"imbuf",
|
||||
"bmesh",
|
||||
"bmesh.ops",
|
||||
@@ -695,13 +696,11 @@ def py_descr2sphinx(ident, fw, descr, module_name, type_name, identifier):
|
||||
doc = undocumented_message(module_name, type_name, identifier)
|
||||
|
||||
if type(descr) == GetSetDescriptorType:
|
||||
fw(ident + ".. attribute:: %s\n" % identifier)
|
||||
fw(ident + " :noindex:\n\n")
|
||||
fw(ident + ".. attribute:: %s\n\n" % identifier)
|
||||
write_indented_lines(ident + " ", fw, doc, False)
|
||||
fw("\n")
|
||||
elif type(descr) == MemberDescriptorType: # same as above but use 'data'
|
||||
fw(ident + ".. data:: %s\n" % identifier)
|
||||
fw(ident + " :noindex:\n\n")
|
||||
fw(ident + ".. data:: %s\n\n" % identifier)
|
||||
write_indented_lines(ident + " ", fw, doc, False)
|
||||
fw("\n")
|
||||
elif type(descr) in {MethodDescriptorType, ClassMethodDescriptorType}:
|
||||
@@ -741,14 +740,11 @@ def pyprop2sphinx(ident, fw, identifier, py_prop):
|
||||
'''
|
||||
# readonly properties use "data" directive, variables use "attribute" directive
|
||||
if py_prop.fset is None:
|
||||
fw(ident + ".. data:: %s\n" % identifier)
|
||||
fw(ident + " :noindex:\n\n")
|
||||
fw(ident + ".. data:: %s\n\n" % identifier)
|
||||
else:
|
||||
fw(ident + ".. attribute:: %s\n" % identifier)
|
||||
fw(ident + " :noindex:\n\n")
|
||||
fw(ident + ".. attribute:: %s\n\n" % identifier)
|
||||
write_indented_lines(ident + " ", fw, py_prop.__doc__)
|
||||
if py_prop.fset is None:
|
||||
fw("\n")
|
||||
fw(ident + " (readonly)\n\n")
|
||||
else:
|
||||
fw("\n")
|
||||
@@ -914,8 +910,7 @@ def pymodule2sphinx(basepath, module_name, module, title):
|
||||
elif issubclass(value_type, (bool, int, float, str, tuple)):
|
||||
# constant, not much fun we can do here except to list it.
|
||||
# TODO, figure out some way to document these!
|
||||
fw(".. data:: %s\n" % attribute)
|
||||
fw(" :noindex:\n\n")
|
||||
fw(".. data:: %s\n\n" % attribute)
|
||||
write_indented_lines(" ", fw, "constant value %s" % repr(value), False)
|
||||
fw("\n")
|
||||
else:
|
||||
@@ -1125,8 +1120,7 @@ def pycontext2sphinx(basepath):
|
||||
|
||||
type_descr = prop.get_type_description(
|
||||
class_fmt=":class:`bpy.types.%s`", collection_id=_BPY_PROP_COLLECTION_ID)
|
||||
fw(".. data:: %s\n" % prop.identifier)
|
||||
fw(" :noindex:\n\n")
|
||||
fw(".. data:: %s\n\n" % prop.identifier)
|
||||
if prop.description:
|
||||
fw(" %s\n\n" % prop.description)
|
||||
|
||||
@@ -1171,8 +1165,7 @@ def pycontext2sphinx(basepath):
|
||||
i = 0
|
||||
while char_array[i] is not None:
|
||||
member = ctypes.string_at(char_array[i]).decode(encoding="ascii")
|
||||
fw(".. data:: %s\n" % member)
|
||||
fw(" :noindex:\n\n")
|
||||
fw(".. data:: %s\n\n" % member)
|
||||
member_type, is_seq = context_type_map[member]
|
||||
fw(" :type: %s :class:`bpy.types.%s`\n\n" % ("sequence of " if is_seq else "", member_type))
|
||||
unique.add(member)
|
||||
@@ -1378,11 +1371,9 @@ def pyrna2sphinx(basepath):
|
||||
type_descr = prop.get_type_description(class_fmt=":class:`%s`", collection_id=_BPY_PROP_COLLECTION_ID)
|
||||
# readonly properties use "data" directive, variables properties use "attribute" directive
|
||||
if 'readonly' in type_descr:
|
||||
fw(" .. data:: %s\n" % prop.identifier)
|
||||
fw(" :noindex:\n\n")
|
||||
fw(" .. data:: %s\n\n" % prop.identifier)
|
||||
else:
|
||||
fw(" .. attribute:: %s\n" % prop.identifier)
|
||||
fw(" :noindex:\n\n")
|
||||
fw(" .. attribute:: %s\n\n" % prop.identifier)
|
||||
if prop.description:
|
||||
fw(" %s\n\n" % prop.description)
|
||||
|
||||
@@ -1798,8 +1789,18 @@ def write_rst_contents(basepath):
|
||||
|
||||
standalone_modules = (
|
||||
# submodules are added in parent page
|
||||
"mathutils", "freestyle", "bgl", "blf", "imbuf", "gpu", "gpu_extras",
|
||||
"aud", "bpy_extras", "idprop.types", "bmesh",
|
||||
"aud",
|
||||
"bgl",
|
||||
"bl_math",
|
||||
"blf",
|
||||
"bmesh",
|
||||
"bpy_extras",
|
||||
"freestyle",
|
||||
"gpu",
|
||||
"gpu_extras",
|
||||
"idprop.types",
|
||||
"imbuf",
|
||||
"mathutils",
|
||||
)
|
||||
|
||||
for mod in standalone_modules:
|
||||
@@ -1951,6 +1952,7 @@ def write_rst_importable_modules(basepath):
|
||||
"mathutils.kdtree": "KDTree Utilities",
|
||||
"mathutils.interpolate": "Interpolation Utilities",
|
||||
"mathutils.noise": "Noise Utilities",
|
||||
"bl_math": "Additional Math Functions",
|
||||
"freestyle": "Freestyle Module",
|
||||
"freestyle.types": "Freestyle Types",
|
||||
"freestyle.predicates": "Freestyle Predicates",
|
||||
|
41
extern/bullet2/patches/btPolyhedralConvexShape_Inertia_fix.patch
vendored
Normal file
41
extern/bullet2/patches/btPolyhedralConvexShape_Inertia_fix.patch
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
diff --git a/extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp b/extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp
|
||||
index 9095c592d87..b831e20c2f9 100644
|
||||
--- a/extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp
|
||||
+++ b/extern/bullet2/src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp
|
||||
@@ -406,17 +406,17 @@ void btPolyhedralConvexShape::calculateLocalInertia(btScalar mass,btVector3& ine
|
||||
#ifndef __SPU__
|
||||
//not yet, return box inertia
|
||||
|
||||
- btScalar margin = getMargin();
|
||||
+ //btScalar margin = getMargin();
|
||||
|
||||
btTransform ident;
|
||||
ident.setIdentity();
|
||||
btVector3 aabbMin,aabbMax;
|
||||
- getAabb(ident,aabbMin,aabbMax);
|
||||
+ getAabb(ident,aabbMin,aabbMax); // This already contains the margin
|
||||
btVector3 halfExtents = (aabbMax-aabbMin)*btScalar(0.5);
|
||||
|
||||
- btScalar lx=btScalar(2.)*(halfExtents.x()+margin);
|
||||
- btScalar ly=btScalar(2.)*(halfExtents.y()+margin);
|
||||
- btScalar lz=btScalar(2.)*(halfExtents.z()+margin);
|
||||
+ btScalar lx=btScalar(2.)*(halfExtents.x());
|
||||
+ btScalar ly=btScalar(2.)*(halfExtents.y());
|
||||
+ btScalar lz=btScalar(2.)*(halfExtents.z());
|
||||
const btScalar x2 = lx*lx;
|
||||
const btScalar y2 = ly*ly;
|
||||
const btScalar z2 = lz*lz;
|
||||
@@ -476,10 +476,10 @@ void btPolyhedralConvexAabbCachingShape::recalcLocalAabb()
|
||||
|
||||
for ( int i = 0; i < 3; ++i )
|
||||
{
|
||||
- m_localAabbMax[i] = _supporting[i][i] + m_collisionMargin;
|
||||
- m_localAabbMin[i] = _supporting[i + 3][i] - m_collisionMargin;
|
||||
+ m_localAabbMax[i] = _supporting[i][i];
|
||||
+ m_localAabbMin[i] = _supporting[i + 3][i];
|
||||
}
|
||||
-
|
||||
+
|
||||
#else
|
||||
|
||||
for (int i=0;i<3;i++)
|
@@ -180,7 +180,7 @@ void btCompoundShape::getAabb(const btTransform& trans,btVector3& aabbMin,btVect
|
||||
localHalfExtents += btVector3(getMargin(),getMargin(),getMargin());
|
||||
|
||||
|
||||
btMatrix3x3 abs_b = trans.getBasis().absolute();
|
||||
btMatrix3x3 abs_b = trans.getBasis().absolute();
|
||||
|
||||
btVector3 center = trans(localCenter);
|
||||
|
||||
|
@@ -406,17 +406,17 @@ void btPolyhedralConvexShape::calculateLocalInertia(btScalar mass,btVector3& ine
|
||||
#ifndef __SPU__
|
||||
//not yet, return box inertia
|
||||
|
||||
btScalar margin = getMargin();
|
||||
//btScalar margin = getMargin();
|
||||
|
||||
btTransform ident;
|
||||
ident.setIdentity();
|
||||
btVector3 aabbMin,aabbMax;
|
||||
getAabb(ident,aabbMin,aabbMax);
|
||||
getAabb(ident,aabbMin,aabbMax); // This already contains the margin
|
||||
btVector3 halfExtents = (aabbMax-aabbMin)*btScalar(0.5);
|
||||
|
||||
btScalar lx=btScalar(2.)*(halfExtents.x()+margin);
|
||||
btScalar ly=btScalar(2.)*(halfExtents.y()+margin);
|
||||
btScalar lz=btScalar(2.)*(halfExtents.z()+margin);
|
||||
btScalar lx=btScalar(2.)*(halfExtents.x());
|
||||
btScalar ly=btScalar(2.)*(halfExtents.y());
|
||||
btScalar lz=btScalar(2.)*(halfExtents.z());
|
||||
const btScalar x2 = lx*lx;
|
||||
const btScalar y2 = ly*ly;
|
||||
const btScalar z2 = lz*lz;
|
||||
@@ -476,10 +476,10 @@ void btPolyhedralConvexAabbCachingShape::recalcLocalAabb()
|
||||
|
||||
for ( int i = 0; i < 3; ++i )
|
||||
{
|
||||
m_localAabbMax[i] = _supporting[i][i] + m_collisionMargin;
|
||||
m_localAabbMin[i] = _supporting[i + 3][i] - m_collisionMargin;
|
||||
m_localAabbMax[i] = _supporting[i][i];
|
||||
m_localAabbMin[i] = _supporting[i + 3][i];
|
||||
}
|
||||
|
||||
|
||||
#else
|
||||
|
||||
for (int i=0;i<3;i++)
|
||||
|
2
extern/cuew/src/cuew.c
vendored
2
extern/cuew/src/cuew.c
vendored
@@ -879,7 +879,7 @@ int cuewCompilerVersion(void) {
|
||||
}
|
||||
|
||||
/* get --version output */
|
||||
strncat(command, "\"", 1);
|
||||
strcat(command, "\"");
|
||||
strncat(command, path, sizeof(command) - 1);
|
||||
strncat(command, "\" --version", sizeof(command) - strlen(path) - 1);
|
||||
pipe = popen(command, "r");
|
||||
|
64
extern/mantaflow/CMakeLists.txt
vendored
64
extern/mantaflow/CMakeLists.txt
vendored
@@ -31,19 +31,32 @@ if(MSVC_CLANG AND WITH_OPENMP AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.0.1
|
||||
remove_cc_flag("-fopenmp")
|
||||
endif()
|
||||
|
||||
set(MANTAVERSION "0.12")
|
||||
set(MANTAVERSION "0.13")
|
||||
|
||||
add_definitions(-DWITH_FLUID=1)
|
||||
|
||||
set(MANTA_DEP
|
||||
dependencies
|
||||
)
|
||||
# Compile Mantaflow dependencies too (e.g. cnpy for numpy file IO).
|
||||
# Make sure that dependencies exist before enabling this option by updating the source files in extern/
|
||||
set(WITH_MANTA_DEPENDENCIES 0)
|
||||
|
||||
# Enable Mantaflow numpy support
|
||||
set(WITH_MANTA_NUMPY 0)
|
||||
|
||||
if(NOT WITH_MANTA_DEPENDENCIES)
|
||||
add_definitions(-DNO_CNPY=1)
|
||||
endif()
|
||||
|
||||
set(MANTA_HLP
|
||||
helper
|
||||
)
|
||||
set(MANTA_PP
|
||||
preprocessed
|
||||
)
|
||||
if(WITH_MANTA_DEPENDENCIES)
|
||||
set(MANTA_DEP
|
||||
dependencies
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_TBB)
|
||||
add_definitions(-DTBB=1)
|
||||
@@ -62,6 +75,10 @@ if(WIN32)
|
||||
add_definitions(-D_USE_MATH_DEFINES)
|
||||
endif()
|
||||
|
||||
if(WITH_MANTA_NUMPY AND WITH_PYTHON_INSTALL_NUMPY)
|
||||
add_definitions(-DNUMPY=1)
|
||||
endif()
|
||||
|
||||
set(INC
|
||||
${MANTA_PP}
|
||||
${MANTA_PP}/fileio
|
||||
@@ -69,14 +86,25 @@ set(INC
|
||||
${MANTA_PP}/plugin
|
||||
${MANTA_HLP}/pwrapper
|
||||
${MANTA_HLP}/util
|
||||
${MANTA_DEP}/cnpy
|
||||
)
|
||||
|
||||
if(WITH_MANTA_DEPENDENCIES)
|
||||
list(APPEND INC
|
||||
${MANTA_DEP}/cnpy
|
||||
)
|
||||
endif()
|
||||
|
||||
set(INC_SYS
|
||||
${PYTHON_INCLUDE_DIRS}
|
||||
${ZLIB_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
if(WITH_MANTA_NUMPY AND WITH_PYTHON_INSTALL_NUMPY)
|
||||
list(APPEND INC_SYS
|
||||
${PYTHON_NUMPY_INCLUDE_DIRS}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_TBB)
|
||||
list(APPEND INC_SYS
|
||||
${TBB_INCLUDE_DIRS}
|
||||
@@ -96,9 +124,6 @@ if(WITH_OPENVDB)
|
||||
endif()
|
||||
|
||||
set(SRC
|
||||
${MANTA_DEP}/cnpy/cnpy.cpp
|
||||
${MANTA_DEP}/cnpy/cnpy.h
|
||||
|
||||
${MANTA_PP}/commonkernels.h
|
||||
${MANTA_PP}/commonkernels.h.reg.cpp
|
||||
${MANTA_PP}/conjugategrad.cpp
|
||||
@@ -161,14 +186,10 @@ set(SRC
|
||||
${MANTA_PP}/plugin/initplugins.cpp
|
||||
${MANTA_PP}/plugin/kepsilon.cpp
|
||||
${MANTA_PP}/plugin/meshplugins.cpp
|
||||
# TODO (sebbas): add numpy to libraries
|
||||
# ${MANTA_PP}/plugin/numpyconvert.cpp
|
||||
${MANTA_PP}/plugin/pressure.cpp
|
||||
${MANTA_PP}/plugin/ptsplugins.cpp
|
||||
${MANTA_PP}/plugin/secondaryparticles.cpp
|
||||
${MANTA_PP}/plugin/surfaceturbulence.cpp
|
||||
# TODO (sebbas): add numpy to libraries
|
||||
# ${MANTA_PP}/plugin/tfplugins.cpp
|
||||
${MANTA_PP}/plugin/vortexplugins.cpp
|
||||
${MANTA_PP}/plugin/waveletturbulence.cpp
|
||||
${MANTA_PP}/plugin/waves.cpp
|
||||
@@ -193,9 +214,6 @@ set(SRC
|
||||
${MANTA_PP}/vortexsheet.h.reg.cpp
|
||||
|
||||
${MANTA_HLP}/pwrapper/manta.h
|
||||
# TODO (sebbas): add numpy to libraries
|
||||
# ${MANTA_HLP}/pwrapper/numpyWrap.cpp
|
||||
# ${MANTA_HLP}/pwrapper/numpyWrap.h
|
||||
${MANTA_HLP}/pwrapper/pclass.cpp
|
||||
${MANTA_HLP}/pwrapper/pclass.h
|
||||
${MANTA_HLP}/pwrapper/pconvert.cpp
|
||||
@@ -221,6 +239,22 @@ set(SRC
|
||||
${MANTA_HLP}/util/vectorbase.h
|
||||
)
|
||||
|
||||
if(WITH_MANTA_DEPENDENCIES)
|
||||
list(APPEND SRC
|
||||
${MANTA_DEP}/cnpy/cnpy.cpp
|
||||
${MANTA_DEP}/cnpy/cnpy.h
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_MANTA_NUMPY AND WITH_PYTHON_INSTALL_NUMPY)
|
||||
list(APPEND SRC
|
||||
${MANTA_PP}/plugin/numpyconvert.cpp
|
||||
${MANTA_PP}/plugin/tfplugins.cpp
|
||||
${MANTA_HLP}/pwrapper/numpyWrap.cpp
|
||||
${MANTA_HLP}/pwrapper/numpyWrap.h
|
||||
)
|
||||
endif()
|
||||
|
||||
set(LIB
|
||||
${PYTHON_LINKFLAGS}
|
||||
${PYTHON_LIBRARIES}
|
||||
|
23
extern/mantaflow/UPDATE.sh
vendored
23
extern/mantaflow/UPDATE.sh
vendored
@@ -13,6 +13,12 @@ BLENDER_INSTALLATION=/Users/sebbas/Developer/Blender/fluid-mantaflow
|
||||
# Try to check out Mantaflow repository before building?
|
||||
CLEAN_REPOSITORY=0
|
||||
|
||||
# Skip copying dependency files?
|
||||
WITH_DEPENDENCIES=0
|
||||
|
||||
# Build with numpy support?
|
||||
USE_NUMPY=0
|
||||
|
||||
# Choose which multithreading platform to use for Mantaflow preprocessing
|
||||
USE_OMP=0
|
||||
USE_TBB=1
|
||||
@@ -50,17 +56,21 @@ fi
|
||||
MANTA_BUILD_PATH=$MANTA_INSTALLATION/build_blender/
|
||||
mkdir -p $MANTA_BUILD_PATH
|
||||
cd $MANTA_BUILD_PATH
|
||||
cmake ../mantaflowgit -DGUI=OFF -DOPENMP=$USE_OMP -DTBB=$USE_TBB -DBLENDER=ON -DPREPDEBUG=ON && make -j8
|
||||
cmake ../mantaflowgit -DGUI=0 -DOPENMP=$USE_OMP -DTBB=$USE_TBB -DBLENDER=1 -DPREPDEBUG=1 -DNUMPY=$USE_NUMPY && make -j8
|
||||
|
||||
# ==================== 3) COPY MANTAFLOW FILES TO BLENDER ROOT ===========================
|
||||
|
||||
mkdir -p $BLENDER_INSTALLATION/blender/tmp/dependencies/ && cp -Rf $MANTA_INSTALLATION/mantaflowgit/dependencies/cnpy "$_"
|
||||
if [[ "$WITH_DEPENDENCIES" -eq "1" ]]; then
|
||||
mkdir -p $BLENDER_INSTALLATION/blender/tmp/dependencies/ && cp -Rf $MANTA_INSTALLATION/mantaflowgit/dependencies/cnpy "$_"
|
||||
fi
|
||||
mkdir -p $BLENDER_INSTALLATION/blender/tmp/helper/ && cp -Rf $MANTA_INSTALLATION/mantaflowgit/source/util "$_"
|
||||
mkdir -p $BLENDER_INSTALLATION/blender/tmp/helper/ && cp -Rf $MANTA_INSTALLATION/mantaflowgit/source/pwrapper "$_"
|
||||
mkdir -p $BLENDER_INSTALLATION/blender/tmp/preprocessed/ && cp -Rf $MANTA_INSTALLATION/build_blender/pp/source/. "$_"
|
||||
|
||||
# Remove some files that are not need in Blender
|
||||
rm $BLENDER_INSTALLATION/blender/tmp/dependencies/cnpy/example1.cpp
|
||||
if [[ "$WITH_DEPENDENCIES" -eq "1" ]]; then
|
||||
rm $BLENDER_INSTALLATION/blender/tmp/dependencies/cnpy/example1.cpp
|
||||
fi
|
||||
rm $BLENDER_INSTALLATION/blender/tmp/helper/pwrapper/pymain.cpp
|
||||
rm $BLENDER_INSTALLATION/blender/tmp/preprocessed/*.reg
|
||||
rm $BLENDER_INSTALLATION/blender/tmp/preprocessed/python/*.reg
|
||||
@@ -82,8 +92,13 @@ BLENDER_TMP_DEP=$BLENDER_TMP/dependencies
|
||||
BLENDER_TMP_HLP=$BLENDER_TMP/helper
|
||||
BLENDER_TMP_PP=$BLENDER_TMP/preprocessed
|
||||
|
||||
# Before moving new files, delete all existing file in the Blender repository
|
||||
rm -Rf $BLENDER_MANTA_EXTERN/dependencies $BLENDER_MANTA_EXTERN/helper $BLENDER_MANTA_EXTERN/preprocessed
|
||||
|
||||
# Move files from tmp dir to extern/
|
||||
cp -Rf $BLENDER_TMP_DEP $BLENDER_MANTA_EXTERN
|
||||
if [[ "$WITH_DEPENDENCIES" -eq "1" ]]; then
|
||||
cp -Rf $BLENDER_TMP_DEP $BLENDER_MANTA_EXTERN
|
||||
fi
|
||||
cp -Rf $BLENDER_TMP_HLP $BLENDER_MANTA_EXTERN
|
||||
cp -Rf $BLENDER_TMP_PP $BLENDER_MANTA_EXTERN
|
||||
|
||||
|
21
extern/mantaflow/dependencies/cnpy/LICENSE
vendored
21
extern/mantaflow/dependencies/cnpy/LICENSE
vendored
@@ -1,21 +0,0 @@
|
||||
The MIT License
|
||||
|
||||
Copyright (c) Carl Rogers, 2011
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
385
extern/mantaflow/dependencies/cnpy/cnpy.cpp
vendored
385
extern/mantaflow/dependencies/cnpy/cnpy.cpp
vendored
@@ -1,385 +0,0 @@
|
||||
// Copyright (C) 2011 Carl Rogers
|
||||
// Released under MIT License
|
||||
// license available in LICENSE file, or at http://www.opensource.org/licenses/mit-license.php
|
||||
|
||||
#include "cnpy.h"
|
||||
#include <complex>
|
||||
#include <cstdlib>
|
||||
#include <algorithm>
|
||||
#include <cstring>
|
||||
#include <iomanip>
|
||||
#include <stdint.h>
|
||||
#include <stdexcept>
|
||||
#include <regex>
|
||||
|
||||
char cnpy::BigEndianTest()
|
||||
{
|
||||
int x = 1;
|
||||
return (((char *)&x)[0]) ? '<' : '>';
|
||||
}
|
||||
|
||||
char cnpy::map_type(const std::type_info &t)
|
||||
{
|
||||
if (t == typeid(float))
|
||||
return 'f';
|
||||
if (t == typeid(double))
|
||||
return 'f';
|
||||
if (t == typeid(long double))
|
||||
return 'f';
|
||||
|
||||
if (t == typeid(int))
|
||||
return 'i';
|
||||
if (t == typeid(char))
|
||||
return 'i';
|
||||
if (t == typeid(short))
|
||||
return 'i';
|
||||
if (t == typeid(long))
|
||||
return 'i';
|
||||
if (t == typeid(long long))
|
||||
return 'i';
|
||||
|
||||
if (t == typeid(unsigned char))
|
||||
return 'u';
|
||||
if (t == typeid(unsigned short))
|
||||
return 'u';
|
||||
if (t == typeid(unsigned long))
|
||||
return 'u';
|
||||
if (t == typeid(unsigned long long))
|
||||
return 'u';
|
||||
if (t == typeid(unsigned int))
|
||||
return 'u';
|
||||
|
||||
if (t == typeid(bool))
|
||||
return 'b';
|
||||
|
||||
if (t == typeid(std::complex<float>))
|
||||
return 'c';
|
||||
if (t == typeid(std::complex<double>))
|
||||
return 'c';
|
||||
if (t == typeid(std::complex<long double>))
|
||||
return 'c';
|
||||
|
||||
else
|
||||
return '?';
|
||||
}
|
||||
|
||||
template<> std::vector<char> &cnpy::operator+=(std::vector<char> &lhs, const std::string rhs)
|
||||
{
|
||||
lhs.insert(lhs.end(), rhs.begin(), rhs.end());
|
||||
return lhs;
|
||||
}
|
||||
|
||||
template<> std::vector<char> &cnpy::operator+=(std::vector<char> &lhs, const char *rhs)
|
||||
{
|
||||
// write in little endian
|
||||
size_t len = strlen(rhs);
|
||||
lhs.reserve(len);
|
||||
for (size_t byte = 0; byte < len; byte++) {
|
||||
lhs.push_back(rhs[byte]);
|
||||
}
|
||||
return lhs;
|
||||
}
|
||||
|
||||
void cnpy::parse_npy_header(unsigned char *buffer,
|
||||
size_t &word_size,
|
||||
std::vector<size_t> &shape,
|
||||
bool &fortran_order)
|
||||
{
|
||||
// std::string magic_string(buffer,6);
|
||||
uint8_t major_version = *reinterpret_cast<uint8_t *>(buffer + 6);
|
||||
uint8_t minor_version = *reinterpret_cast<uint8_t *>(buffer + 7);
|
||||
uint16_t header_len = *reinterpret_cast<uint16_t *>(buffer + 8);
|
||||
std::string header(reinterpret_cast<char *>(buffer + 9), header_len);
|
||||
|
||||
size_t loc1, loc2;
|
||||
|
||||
// fortran order
|
||||
loc1 = header.find("fortran_order") + 16;
|
||||
fortran_order = (header.substr(loc1, 4) == "True" ? true : false);
|
||||
|
||||
// shape
|
||||
loc1 = header.find("(");
|
||||
loc2 = header.find(")");
|
||||
|
||||
std::regex num_regex("[0-9][0-9]*");
|
||||
std::smatch sm;
|
||||
shape.clear();
|
||||
|
||||
std::string str_shape = header.substr(loc1 + 1, loc2 - loc1 - 1);
|
||||
while (std::regex_search(str_shape, sm, num_regex)) {
|
||||
shape.push_back(std::stoi(sm[0].str()));
|
||||
str_shape = sm.suffix().str();
|
||||
}
|
||||
|
||||
// endian, word size, data type
|
||||
// byte order code | stands for not applicable.
|
||||
// not sure when this applies except for byte array
|
||||
loc1 = header.find("descr") + 9;
|
||||
bool littleEndian = (header[loc1] == '<' || header[loc1] == '|' ? true : false);
|
||||
assert(littleEndian);
|
||||
|
||||
// char type = header[loc1+1];
|
||||
// assert(type == map_type(T));
|
||||
|
||||
std::string str_ws = header.substr(loc1 + 2);
|
||||
loc2 = str_ws.find("'");
|
||||
word_size = atoi(str_ws.substr(0, loc2).c_str());
|
||||
}
|
||||
|
||||
void cnpy::parse_npy_header(FILE *fp,
|
||||
size_t &word_size,
|
||||
std::vector<size_t> &shape,
|
||||
bool &fortran_order)
|
||||
{
|
||||
char buffer[256];
|
||||
size_t res = fread(buffer, sizeof(char), 11, fp);
|
||||
if (res != 11)
|
||||
throw std::runtime_error("parse_npy_header: failed fread");
|
||||
std::string header = fgets(buffer, 256, fp);
|
||||
assert(header[header.size() - 1] == '\n');
|
||||
|
||||
size_t loc1, loc2;
|
||||
|
||||
// fortran order
|
||||
loc1 = header.find("fortran_order");
|
||||
if (loc1 == std::string::npos)
|
||||
throw std::runtime_error("parse_npy_header: failed to find header keyword: 'fortran_order'");
|
||||
loc1 += 16;
|
||||
fortran_order = (header.substr(loc1, 4) == "True" ? true : false);
|
||||
|
||||
// shape
|
||||
loc1 = header.find("(");
|
||||
loc2 = header.find(")");
|
||||
if (loc1 == std::string::npos || loc2 == std::string::npos)
|
||||
throw std::runtime_error("parse_npy_header: failed to find header keyword: '(' or ')'");
|
||||
|
||||
std::regex num_regex("[0-9][0-9]*");
|
||||
std::smatch sm;
|
||||
shape.clear();
|
||||
|
||||
std::string str_shape = header.substr(loc1 + 1, loc2 - loc1 - 1);
|
||||
while (std::regex_search(str_shape, sm, num_regex)) {
|
||||
shape.push_back(std::stoi(sm[0].str()));
|
||||
str_shape = sm.suffix().str();
|
||||
}
|
||||
|
||||
// endian, word size, data type
|
||||
// byte order code | stands for not applicable.
|
||||
// not sure when this applies except for byte array
|
||||
loc1 = header.find("descr");
|
||||
if (loc1 == std::string::npos)
|
||||
throw std::runtime_error("parse_npy_header: failed to find header keyword: 'descr'");
|
||||
loc1 += 9;
|
||||
bool littleEndian = (header[loc1] == '<' || header[loc1] == '|' ? true : false);
|
||||
assert(littleEndian);
|
||||
|
||||
// char type = header[loc1+1];
|
||||
// assert(type == map_type(T));
|
||||
|
||||
std::string str_ws = header.substr(loc1 + 2);
|
||||
loc2 = str_ws.find("'");
|
||||
word_size = atoi(str_ws.substr(0, loc2).c_str());
|
||||
}
|
||||
|
||||
void cnpy::parse_zip_footer(FILE *fp,
|
||||
uint16_t &nrecs,
|
||||
size_t &global_header_size,
|
||||
size_t &global_header_offset)
|
||||
{
|
||||
std::vector<char> footer(22);
|
||||
fseek(fp, -22, SEEK_END);
|
||||
size_t res = fread(&footer[0], sizeof(char), 22, fp);
|
||||
if (res != 22)
|
||||
throw std::runtime_error("parse_zip_footer: failed fread");
|
||||
|
||||
uint16_t disk_no, disk_start, nrecs_on_disk, comment_len;
|
||||
disk_no = *(uint16_t *)&footer[4];
|
||||
disk_start = *(uint16_t *)&footer[6];
|
||||
nrecs_on_disk = *(uint16_t *)&footer[8];
|
||||
nrecs = *(uint16_t *)&footer[10];
|
||||
global_header_size = *(uint32_t *)&footer[12];
|
||||
global_header_offset = *(uint32_t *)&footer[16];
|
||||
comment_len = *(uint16_t *)&footer[20];
|
||||
|
||||
assert(disk_no == 0);
|
||||
assert(disk_start == 0);
|
||||
assert(nrecs_on_disk == nrecs);
|
||||
assert(comment_len == 0);
|
||||
}
|
||||
|
||||
cnpy::NpyArray load_the_npy_file(FILE *fp)
|
||||
{
|
||||
std::vector<size_t> shape;
|
||||
size_t word_size;
|
||||
bool fortran_order;
|
||||
cnpy::parse_npy_header(fp, word_size, shape, fortran_order);
|
||||
|
||||
cnpy::NpyArray arr(shape, word_size, fortran_order);
|
||||
size_t nread = fread(arr.data<char>(), 1, arr.num_bytes(), fp);
|
||||
if (nread != arr.num_bytes())
|
||||
throw std::runtime_error("load_the_npy_file: failed fread");
|
||||
return arr;
|
||||
}
|
||||
|
||||
cnpy::NpyArray load_the_npz_array(FILE *fp, uint32_t compr_bytes, uint32_t uncompr_bytes)
|
||||
{
|
||||
|
||||
std::vector<unsigned char> buffer_compr(compr_bytes);
|
||||
std::vector<unsigned char> buffer_uncompr(uncompr_bytes);
|
||||
size_t nread = fread(&buffer_compr[0], 1, compr_bytes, fp);
|
||||
if (nread != compr_bytes)
|
||||
throw std::runtime_error("load_the_npy_file: failed fread");
|
||||
|
||||
int err;
|
||||
z_stream d_stream;
|
||||
|
||||
d_stream.zalloc = Z_NULL;
|
||||
d_stream.zfree = Z_NULL;
|
||||
d_stream.opaque = Z_NULL;
|
||||
d_stream.avail_in = 0;
|
||||
d_stream.next_in = Z_NULL;
|
||||
err = inflateInit2(&d_stream, -MAX_WBITS);
|
||||
|
||||
d_stream.avail_in = compr_bytes;
|
||||
d_stream.next_in = &buffer_compr[0];
|
||||
d_stream.avail_out = uncompr_bytes;
|
||||
d_stream.next_out = &buffer_uncompr[0];
|
||||
|
||||
err = inflate(&d_stream, Z_FINISH);
|
||||
err = inflateEnd(&d_stream);
|
||||
|
||||
std::vector<size_t> shape;
|
||||
size_t word_size;
|
||||
bool fortran_order;
|
||||
cnpy::parse_npy_header(&buffer_uncompr[0], word_size, shape, fortran_order);
|
||||
|
||||
cnpy::NpyArray array(shape, word_size, fortran_order);
|
||||
|
||||
size_t offset = uncompr_bytes - array.num_bytes();
|
||||
memcpy(array.data<unsigned char>(), &buffer_uncompr[0] + offset, array.num_bytes());
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
cnpy::npz_t cnpy::npz_load(std::string fname)
|
||||
{
|
||||
FILE *fp = fopen(fname.c_str(), "rb");
|
||||
|
||||
if (!fp) {
|
||||
throw std::runtime_error("npz_load: Error! Unable to open file " + fname + "!");
|
||||
}
|
||||
|
||||
cnpy::npz_t arrays;
|
||||
|
||||
while (1) {
|
||||
std::vector<char> local_header(30);
|
||||
size_t headerres = fread(&local_header[0], sizeof(char), 30, fp);
|
||||
if (headerres != 30)
|
||||
throw std::runtime_error("npz_load: failed fread");
|
||||
|
||||
// if we've reached the global header, stop reading
|
||||
if (local_header[2] != 0x03 || local_header[3] != 0x04)
|
||||
break;
|
||||
|
||||
// read in the variable name
|
||||
uint16_t name_len = *(uint16_t *)&local_header[26];
|
||||
std::string varname(name_len, ' ');
|
||||
size_t vname_res = fread(&varname[0], sizeof(char), name_len, fp);
|
||||
if (vname_res != name_len)
|
||||
throw std::runtime_error("npz_load: failed fread");
|
||||
|
||||
// erase the lagging .npy
|
||||
varname.erase(varname.end() - 4, varname.end());
|
||||
|
||||
// read in the extra field
|
||||
uint16_t extra_field_len = *(uint16_t *)&local_header[28];
|
||||
if (extra_field_len > 0) {
|
||||
std::vector<char> buff(extra_field_len);
|
||||
size_t efield_res = fread(&buff[0], sizeof(char), extra_field_len, fp);
|
||||
if (efield_res != extra_field_len)
|
||||
throw std::runtime_error("npz_load: failed fread");
|
||||
}
|
||||
|
||||
uint16_t compr_method = *reinterpret_cast<uint16_t *>(&local_header[0] + 8);
|
||||
uint32_t compr_bytes = *reinterpret_cast<uint32_t *>(&local_header[0] + 18);
|
||||
uint32_t uncompr_bytes = *reinterpret_cast<uint32_t *>(&local_header[0] + 22);
|
||||
|
||||
if (compr_method == 0) {
|
||||
arrays[varname] = load_the_npy_file(fp);
|
||||
}
|
||||
else {
|
||||
arrays[varname] = load_the_npz_array(fp, compr_bytes, uncompr_bytes);
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
return arrays;
|
||||
}
|
||||
|
||||
cnpy::NpyArray cnpy::npz_load(std::string fname, std::string varname)
|
||||
{
|
||||
FILE *fp = fopen(fname.c_str(), "rb");
|
||||
|
||||
if (!fp)
|
||||
throw std::runtime_error("npz_load: Unable to open file " + fname);
|
||||
|
||||
while (1) {
|
||||
std::vector<char> local_header(30);
|
||||
size_t header_res = fread(&local_header[0], sizeof(char), 30, fp);
|
||||
if (header_res != 30)
|
||||
throw std::runtime_error("npz_load: failed fread");
|
||||
|
||||
// if we've reached the global header, stop reading
|
||||
if (local_header[2] != 0x03 || local_header[3] != 0x04)
|
||||
break;
|
||||
|
||||
// read in the variable name
|
||||
uint16_t name_len = *(uint16_t *)&local_header[26];
|
||||
std::string vname(name_len, ' ');
|
||||
size_t vname_res = fread(&vname[0], sizeof(char), name_len, fp);
|
||||
if (vname_res != name_len)
|
||||
throw std::runtime_error("npz_load: failed fread");
|
||||
vname.erase(vname.end() - 4, vname.end()); // erase the lagging .npy
|
||||
|
||||
// read in the extra field
|
||||
uint16_t extra_field_len = *(uint16_t *)&local_header[28];
|
||||
fseek(fp, extra_field_len, SEEK_CUR); // skip past the extra field
|
||||
|
||||
uint16_t compr_method = *reinterpret_cast<uint16_t *>(&local_header[0] + 8);
|
||||
uint32_t compr_bytes = *reinterpret_cast<uint32_t *>(&local_header[0] + 18);
|
||||
uint32_t uncompr_bytes = *reinterpret_cast<uint32_t *>(&local_header[0] + 22);
|
||||
|
||||
if (vname == varname) {
|
||||
NpyArray array = (compr_method == 0) ? load_the_npy_file(fp) :
|
||||
load_the_npz_array(fp, compr_bytes, uncompr_bytes);
|
||||
fclose(fp);
|
||||
return array;
|
||||
}
|
||||
else {
|
||||
// skip past the data
|
||||
// uint32_t size = *(uint32_t*) &local_header[22];
|
||||
uint32_t size = *(uint32_t *)&local_header[18]; // using index 18 instead of 22 enables
|
||||
// support for compressed data
|
||||
fseek(fp, size, SEEK_CUR);
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
|
||||
// if we get here, we haven't found the variable in the file
|
||||
throw std::runtime_error("npz_load: Variable name " + varname + " not found in " + fname);
|
||||
}
|
||||
|
||||
cnpy::NpyArray cnpy::npy_load(std::string fname)
|
||||
{
|
||||
|
||||
FILE *fp = fopen(fname.c_str(), "rb");
|
||||
|
||||
if (!fp)
|
||||
throw std::runtime_error("npy_load: Unable to open file " + fname);
|
||||
|
||||
NpyArray arr = load_the_npy_file(fp);
|
||||
|
||||
fclose(fp);
|
||||
return arr;
|
||||
}
|
310
extern/mantaflow/dependencies/cnpy/cnpy.h
vendored
310
extern/mantaflow/dependencies/cnpy/cnpy.h
vendored
@@ -1,310 +0,0 @@
|
||||
// Copyright (C) 2011 Carl Rogers
|
||||
// Released under MIT License
|
||||
// license available in LICENSE file, or at http://www.opensource.org/licenses/mit-license.php
|
||||
|
||||
#ifndef LIBCNPY_H_
|
||||
#define LIBCNPY_H_
|
||||
|
||||
#include <string>
|
||||
#include <stdexcept>
|
||||
#include <sstream>
|
||||
#include <vector>
|
||||
#include <cstdio>
|
||||
#include <typeinfo>
|
||||
#include <iostream>
|
||||
#include <cassert>
|
||||
#include <zlib.h>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <stdint.h>
|
||||
#include <numeric>
|
||||
|
||||
namespace cnpy {
|
||||
|
||||
struct NpyArray {
|
||||
NpyArray(const std::vector<size_t> &_shape, size_t _word_size, bool _fortran_order)
|
||||
: shape(_shape), word_size(_word_size), fortran_order(_fortran_order)
|
||||
{
|
||||
num_vals = 1;
|
||||
for (size_t i = 0; i < shape.size(); i++)
|
||||
num_vals *= shape[i];
|
||||
data_holder = std::shared_ptr<std::vector<char>>(new std::vector<char>(num_vals * word_size));
|
||||
}
|
||||
|
||||
NpyArray() : shape(0), word_size(0), fortran_order(0), num_vals(0)
|
||||
{
|
||||
}
|
||||
|
||||
template<typename T> T *data()
|
||||
{
|
||||
return reinterpret_cast<T *>(&(*data_holder)[0]);
|
||||
}
|
||||
|
||||
template<typename T> const T *data() const
|
||||
{
|
||||
return reinterpret_cast<T *>(&(*data_holder)[0]);
|
||||
}
|
||||
|
||||
template<typename T> std::vector<T> as_vec() const
|
||||
{
|
||||
const T *p = data<T>();
|
||||
return std::vector<T>(p, p + num_vals);
|
||||
}
|
||||
|
||||
size_t num_bytes() const
|
||||
{
|
||||
return data_holder->size();
|
||||
}
|
||||
|
||||
std::shared_ptr<std::vector<char>> data_holder;
|
||||
std::vector<size_t> shape;
|
||||
size_t word_size;
|
||||
bool fortran_order;
|
||||
size_t num_vals;
|
||||
};
|
||||
|
||||
using npz_t = std::map<std::string, NpyArray>;
|
||||
|
||||
char BigEndianTest();
|
||||
char map_type(const std::type_info &t);
|
||||
template<typename T> std::vector<char> create_npy_header(const std::vector<size_t> &shape);
|
||||
void parse_npy_header(FILE *fp,
|
||||
size_t &word_size,
|
||||
std::vector<size_t> &shape,
|
||||
bool &fortran_order);
|
||||
void parse_npy_header(unsigned char *buffer,
|
||||
size_t &word_size,
|
||||
std::vector<size_t> &shape,
|
||||
bool &fortran_order);
|
||||
void parse_zip_footer(FILE *fp,
|
||||
uint16_t &nrecs,
|
||||
size_t &global_header_size,
|
||||
size_t &global_header_offset);
|
||||
npz_t npz_load(std::string fname);
|
||||
NpyArray npz_load(std::string fname, std::string varname);
|
||||
NpyArray npy_load(std::string fname);
|
||||
|
||||
template<typename T> std::vector<char> &operator+=(std::vector<char> &lhs, const T rhs)
|
||||
{
|
||||
// write in little endian
|
||||
for (size_t byte = 0; byte < sizeof(T); byte++) {
|
||||
char val = *((char *)&rhs + byte);
|
||||
lhs.push_back(val);
|
||||
}
|
||||
return lhs;
|
||||
}
|
||||
|
||||
template<> std::vector<char> &operator+=(std::vector<char> &lhs, const std::string rhs);
|
||||
template<> std::vector<char> &operator+=(std::vector<char> &lhs, const char *rhs);
|
||||
|
||||
template<typename T>
|
||||
void npy_save(std::string fname,
|
||||
const T *data,
|
||||
const std::vector<size_t> shape,
|
||||
std::string mode = "w")
|
||||
{
|
||||
FILE *fp = NULL;
|
||||
std::vector<size_t> true_data_shape; // if appending, the shape of existing + new data
|
||||
|
||||
if (mode == "a")
|
||||
fp = fopen(fname.c_str(), "r+b");
|
||||
|
||||
if (fp) {
|
||||
// file exists. we need to append to it. read the header, modify the array size
|
||||
size_t word_size;
|
||||
bool fortran_order;
|
||||
parse_npy_header(fp, word_size, true_data_shape, fortran_order);
|
||||
assert(!fortran_order);
|
||||
|
||||
if (word_size != sizeof(T)) {
|
||||
std::cout << "libnpy error: " << fname << " has word size " << word_size
|
||||
<< " but npy_save appending data sized " << sizeof(T) << "\n";
|
||||
assert(word_size == sizeof(T));
|
||||
}
|
||||
if (true_data_shape.size() != shape.size()) {
|
||||
std::cout << "libnpy error: npy_save attempting to append misdimensioned data to " << fname
|
||||
<< "\n";
|
||||
assert(true_data_shape.size() != shape.size());
|
||||
}
|
||||
|
||||
for (size_t i = 1; i < shape.size(); i++) {
|
||||
if (shape[i] != true_data_shape[i]) {
|
||||
std::cout << "libnpy error: npy_save attempting to append misshaped data to " << fname
|
||||
<< "\n";
|
||||
assert(shape[i] == true_data_shape[i]);
|
||||
}
|
||||
}
|
||||
true_data_shape[0] += shape[0];
|
||||
}
|
||||
else {
|
||||
fp = fopen(fname.c_str(), "wb");
|
||||
true_data_shape = shape;
|
||||
}
|
||||
|
||||
std::vector<char> header = create_npy_header<T>(true_data_shape);
|
||||
size_t nels = std::accumulate(shape.begin(), shape.end(), 1, std::multiplies<size_t>());
|
||||
|
||||
fseek(fp, 0, SEEK_SET);
|
||||
fwrite(&header[0], sizeof(char), header.size(), fp);
|
||||
fseek(fp, 0, SEEK_END);
|
||||
fwrite(data, sizeof(T), nels, fp);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void npz_save(std::string zipname,
|
||||
std::string fname,
|
||||
const T *data,
|
||||
const std::vector<size_t> &shape,
|
||||
std::string mode = "w")
|
||||
{
|
||||
// first, append a .npy to the fname
|
||||
fname += ".npy";
|
||||
|
||||
// now, on with the show
|
||||
FILE *fp = NULL;
|
||||
uint16_t nrecs = 0;
|
||||
size_t global_header_offset = 0;
|
||||
std::vector<char> global_header;
|
||||
|
||||
if (mode == "a")
|
||||
fp = fopen(zipname.c_str(), "r+b");
|
||||
|
||||
if (fp) {
|
||||
// zip file exists. we need to add a new npy file to it.
|
||||
// first read the footer. this gives us the offset and size of the global header
|
||||
// then read and store the global header.
|
||||
// below, we will write the the new data at the start of the global header then append the
|
||||
// global header and footer below it
|
||||
size_t global_header_size;
|
||||
parse_zip_footer(fp, nrecs, global_header_size, global_header_offset);
|
||||
fseek(fp, global_header_offset, SEEK_SET);
|
||||
global_header.resize(global_header_size);
|
||||
size_t res = fread(&global_header[0], sizeof(char), global_header_size, fp);
|
||||
if (res != global_header_size) {
|
||||
throw std::runtime_error("npz_save: header read error while adding to existing zip");
|
||||
}
|
||||
fseek(fp, global_header_offset, SEEK_SET);
|
||||
}
|
||||
else {
|
||||
fp = fopen(zipname.c_str(), "wb");
|
||||
}
|
||||
|
||||
std::vector<char> npy_header = create_npy_header<T>(shape);
|
||||
|
||||
size_t nels = std::accumulate(shape.begin(), shape.end(), 1, std::multiplies<size_t>());
|
||||
size_t nbytes = nels * sizeof(T) + npy_header.size();
|
||||
|
||||
// get the CRC of the data to be added
|
||||
uint32_t crc = crc32(0L, (uint8_t *)&npy_header[0], npy_header.size());
|
||||
crc = crc32(crc, (uint8_t *)data, nels * sizeof(T));
|
||||
|
||||
// build the local header
|
||||
std::vector<char> local_header;
|
||||
local_header += "PK"; // first part of sig
|
||||
local_header += (uint16_t)0x0403; // second part of sig
|
||||
local_header += (uint16_t)20; // min version to extract
|
||||
local_header += (uint16_t)0; // general purpose bit flag
|
||||
local_header += (uint16_t)0; // compression method
|
||||
local_header += (uint16_t)0; // file last mod time
|
||||
local_header += (uint16_t)0; // file last mod date
|
||||
local_header += (uint32_t)crc; // crc
|
||||
local_header += (uint32_t)nbytes; // compressed size
|
||||
local_header += (uint32_t)nbytes; // uncompressed size
|
||||
local_header += (uint16_t)fname.size(); // fname length
|
||||
local_header += (uint16_t)0; // extra field length
|
||||
local_header += fname;
|
||||
|
||||
// build global header
|
||||
global_header += "PK"; // first part of sig
|
||||
global_header += (uint16_t)0x0201; // second part of sig
|
||||
global_header += (uint16_t)20; // version made by
|
||||
global_header.insert(global_header.end(), local_header.begin() + 4, local_header.begin() + 30);
|
||||
global_header += (uint16_t)0; // file comment length
|
||||
global_header += (uint16_t)0; // disk number where file starts
|
||||
global_header += (uint16_t)0; // internal file attributes
|
||||
global_header += (uint32_t)0; // external file attributes
|
||||
global_header += (uint32_t)
|
||||
global_header_offset; // relative offset of local file header, since it begins where the
|
||||
// global header used to begin
|
||||
global_header += fname;
|
||||
|
||||
// build footer
|
||||
std::vector<char> footer;
|
||||
footer += "PK"; // first part of sig
|
||||
footer += (uint16_t)0x0605; // second part of sig
|
||||
footer += (uint16_t)0; // number of this disk
|
||||
footer += (uint16_t)0; // disk where footer starts
|
||||
footer += (uint16_t)(nrecs + 1); // number of records on this disk
|
||||
footer += (uint16_t)(nrecs + 1); // total number of records
|
||||
footer += (uint32_t)global_header.size(); // nbytes of global headers
|
||||
footer += (uint32_t)(global_header_offset + nbytes +
|
||||
local_header.size()); // offset of start of global headers, since global
|
||||
// header now starts after newly written array
|
||||
footer += (uint16_t)0; // zip file comment length
|
||||
|
||||
// write everything
|
||||
fwrite(&local_header[0], sizeof(char), local_header.size(), fp);
|
||||
fwrite(&npy_header[0], sizeof(char), npy_header.size(), fp);
|
||||
fwrite(data, sizeof(T), nels, fp);
|
||||
fwrite(&global_header[0], sizeof(char), global_header.size(), fp);
|
||||
fwrite(&footer[0], sizeof(char), footer.size(), fp);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void npy_save(std::string fname, const std::vector<T> data, std::string mode = "w")
|
||||
{
|
||||
std::vector<size_t> shape;
|
||||
shape.push_back(data.size());
|
||||
npy_save(fname, &data[0], shape, mode);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void npz_save(std::string zipname,
|
||||
std::string fname,
|
||||
const std::vector<T> data,
|
||||
std::string mode = "w")
|
||||
{
|
||||
std::vector<size_t> shape;
|
||||
shape.push_back(data.size());
|
||||
npz_save(zipname, fname, &data[0], shape, mode);
|
||||
}
|
||||
|
||||
template<typename T> std::vector<char> create_npy_header(const std::vector<size_t> &shape)
|
||||
{
|
||||
|
||||
std::vector<char> dict;
|
||||
dict += "{'descr': '";
|
||||
dict += BigEndianTest();
|
||||
dict += map_type(typeid(T));
|
||||
dict += std::to_string(sizeof(T));
|
||||
dict += "', 'fortran_order': False, 'shape': (";
|
||||
dict += std::to_string(shape[0]);
|
||||
for (size_t i = 1; i < shape.size(); i++) {
|
||||
dict += ", ";
|
||||
dict += std::to_string(shape[i]);
|
||||
}
|
||||
if (shape.size() == 1)
|
||||
dict += ",";
|
||||
dict += "), }";
|
||||
// pad with spaces so that preamble+dict is modulo 16 bytes. preamble is 10 bytes. dict needs to
|
||||
// end with \n
|
||||
int remainder = 16 - (10 + dict.size()) % 16;
|
||||
dict.insert(dict.end(), remainder, ' ');
|
||||
dict.back() = '\n';
|
||||
|
||||
std::vector<char> header;
|
||||
header += (char)0x93;
|
||||
header += "NUMPY";
|
||||
header += (char)0x01; // major version of numpy format
|
||||
header += (char)0x00; // minor version of numpy format
|
||||
header += (uint16_t)dict.size();
|
||||
header.insert(header.end(), dict.begin(), dict.end());
|
||||
|
||||
return header;
|
||||
}
|
||||
|
||||
} // namespace cnpy
|
||||
|
||||
#endif
|
30
extern/mantaflow/helper/util/vectorbase.h
vendored
30
extern/mantaflow/helper/util/vectorbase.h
vendored
@@ -439,6 +439,36 @@ inline Real normSquare(const int v)
|
||||
return square(v);
|
||||
}
|
||||
|
||||
//! Compute sum of all components, allow use of int, Real too
|
||||
template<class S> inline S sum(const S v)
|
||||
{
|
||||
return v;
|
||||
}
|
||||
template<class S> inline S sum(const Vector3D<S> &v)
|
||||
{
|
||||
return v.x + v.y + v.z;
|
||||
}
|
||||
|
||||
//! Get absolute representation of vector, allow use of int, Real too
|
||||
inline Real abs(const Real v)
|
||||
{
|
||||
return std::fabs(v);
|
||||
}
|
||||
inline int abs(const int v)
|
||||
{
|
||||
return std::abs(v);
|
||||
}
|
||||
|
||||
template<class S> inline Vector3D<S> abs(const Vector3D<S> &v)
|
||||
{
|
||||
Vector3D<S> cp(v.x, v.y, v.z);
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
if (cp[i] < 0)
|
||||
cp[i] *= (-1.0);
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
//! Returns a normalized vector
|
||||
template<class S> inline Vector3D<S> getNormalized(const Vector3D<S> &v)
|
||||
{
|
||||
|
43
extern/mantaflow/preprocessed/fileio/iogrids.cpp
vendored
43
extern/mantaflow/preprocessed/fileio/iogrids.cpp
vendored
@@ -27,7 +27,10 @@ extern "C" {
|
||||
}
|
||||
#endif
|
||||
|
||||
#include "cnpy.h"
|
||||
#if NO_CNPY != 1
|
||||
# include "cnpy.h"
|
||||
#endif
|
||||
|
||||
#include "mantaio.h"
|
||||
#include "grid.h"
|
||||
#include "vector4d.h"
|
||||
@@ -965,12 +968,16 @@ int readGrid4dUni(
|
||||
};
|
||||
void readGrid4dUniCleanup(void **fileHandle)
|
||||
{
|
||||
#if NO_ZLIB != 1
|
||||
gzFile gzf = NULL;
|
||||
if (fileHandle) {
|
||||
gzf = (gzFile)(*fileHandle);
|
||||
gzclose(gzf);
|
||||
*fileHandle = NULL;
|
||||
}
|
||||
#else
|
||||
debMsg("file format not supported without zlib", 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
template<class T> int writeGrid4dRaw(const string &name, Grid4d<T> *grid)
|
||||
@@ -1021,15 +1028,13 @@ template<class T> int readGrid4dRaw(const string &name, Grid4d<T> *grid)
|
||||
|
||||
template<class T> int writeGridNumpy(const string &name, Grid<T> *grid)
|
||||
{
|
||||
#if NO_ZLIB == 1
|
||||
debMsg("file format not supported without zlib", 1);
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
#if FLOATINGPOINT_PRECISION != 1
|
||||
errMsg("writeGridNumpy: Double precision not yet supported");
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
#if NO_CNPY != 1
|
||||
// find suffix to differentiate between npy <-> npz , TODO: check for actual "npy" string
|
||||
std::string::size_type idx;
|
||||
bool bUseNpz = false;
|
||||
@@ -1075,19 +1080,21 @@ template<class T> int writeGridNumpy(const string &name, Grid<T> *grid)
|
||||
cnpy::npy_save(name, &grid[0], shape, "w");
|
||||
}
|
||||
return 1;
|
||||
};
|
||||
#else
|
||||
debMsg("file format not supported without cnpy", 1);
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
template<class T> int readGridNumpy(const string &name, Grid<T> *grid)
|
||||
{
|
||||
#if NO_ZLIB == 1
|
||||
debMsg("file format not supported without zlib", 1);
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
#if FLOATINGPOINT_PRECISION != 1
|
||||
errMsg("readGridNumpy: Double precision not yet supported");
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
#if NO_CNPY != 1
|
||||
// find suffix to differentiate between npy <-> npz
|
||||
std::string::size_type idx;
|
||||
bool bUseNpz = false;
|
||||
@@ -1144,7 +1151,11 @@ template<class T> int readGridNumpy(const string &name, Grid<T> *grid)
|
||||
gridArr.data<T>(),
|
||||
sizeof(T) * grid->getSizeX() * grid->getSizeY() * grid->getSizeZ());
|
||||
return 1;
|
||||
};
|
||||
#else
|
||||
debMsg("file format not supported without cnpy", 1);
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
int writeGridsNumpy(const string &name, std::vector<PbClass *> *grids)
|
||||
{
|
||||
@@ -1163,13 +1174,12 @@ void getNpzFileSize(
|
||||
const string &name, int &x, int &y, int &z, int *t = NULL, std::string *info = NULL)
|
||||
{
|
||||
x = y = z = 0;
|
||||
#if NO_ZLIB != 1
|
||||
debMsg("file format not supported without zlib", 1);
|
||||
return;
|
||||
#endif
|
||||
|
||||
#if FLOATINGPOINT_PRECISION != 1
|
||||
errMsg("getNpzFileSize: Double precision not yet supported");
|
||||
#endif
|
||||
|
||||
#if NO_CNPY != 1
|
||||
// find suffix to differentiate between npy <-> npz
|
||||
cnpy::NpyArray gridArr;
|
||||
cnpy::npz_t fNpz = cnpy::npz_load(name);
|
||||
@@ -1180,6 +1190,9 @@ void getNpzFileSize(
|
||||
x = gridArr.shape[2];
|
||||
if (t)
|
||||
(*t) = 0; // unused for now
|
||||
#else
|
||||
debMsg("file format not supported without cnpy", 1);
|
||||
#endif
|
||||
}
|
||||
Vec3 getNpzFileSize(const string &name)
|
||||
{
|
||||
|
@@ -322,6 +322,7 @@ template<class T> int readPdataUni(const std::string &name, ParticleDataImpl<T>
|
||||
UniPartHeader head;
|
||||
assertMsg(gzread(gzf, &head, sizeof(UniPartHeader)) == sizeof(UniPartHeader),
|
||||
"can't read file, no header present");
|
||||
pdata->getParticleSys()->resize(head.dim); // ensure that parent particle system has same size
|
||||
pdata->resize(head.dim);
|
||||
|
||||
assertMsg(head.dim == pdata->size(), "pdata size doesn't match");
|
||||
|
21
extern/mantaflow/preprocessed/fileio/ioutil.cpp
vendored
21
extern/mantaflow/preprocessed/fileio/ioutil.cpp
vendored
@@ -26,17 +26,18 @@
|
||||
extern "C" {
|
||||
# include <zlib.h>
|
||||
}
|
||||
#endif
|
||||
|
||||
# if defined(WIN32) || defined(_WIN32)
|
||||
# include <windows.h>
|
||||
# include <string>
|
||||
# endif
|
||||
#if defined(WIN32) || defined(_WIN32)
|
||||
# include <windows.h>
|
||||
# include <string>
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace Manta {
|
||||
|
||||
# if defined(WIN32) || defined(_WIN32)
|
||||
#if defined(WIN32) || defined(_WIN32)
|
||||
static wstring stringToWstring(const char *str)
|
||||
{
|
||||
const int length_wc = MultiByteToWideChar(CP_UTF8, 0, str, strlen(str), NULL, 0);
|
||||
@@ -44,10 +45,11 @@ static wstring stringToWstring(const char *str)
|
||||
MultiByteToWideChar(CP_UTF8, 0, str, strlen(str), &strWide[0], length_wc);
|
||||
return strWide;
|
||||
}
|
||||
# endif // WIN32==1
|
||||
#endif // WIN32==1
|
||||
|
||||
void *safeGzopen(const char *filename, const char *mode)
|
||||
{
|
||||
#if NO_ZLIB != 1
|
||||
gzFile gzfile;
|
||||
|
||||
# if defined(WIN32) || defined(_WIN32)
|
||||
@@ -58,8 +60,11 @@ void *safeGzopen(const char *filename, const char *mode)
|
||||
# endif
|
||||
|
||||
return gzfile;
|
||||
}
|
||||
#else
|
||||
debMsg("safeGzopen not supported without zlib", 1);
|
||||
return nullptr;
|
||||
#endif // NO_ZLIB != 1
|
||||
}
|
||||
|
||||
#if defined(OPENVDB)
|
||||
// Convert from OpenVDB value to Manta value.
|
||||
@@ -109,4 +114,4 @@ template<> void convertTo(openvdb::Vec3s *out, Vec3 &in)
|
||||
}
|
||||
#endif // OPENVDB==1
|
||||
|
||||
} // namespace
|
||||
} // namespace Manta
|
||||
|
2
extern/mantaflow/preprocessed/gitinfo.h
vendored
2
extern/mantaflow/preprocessed/gitinfo.h
vendored
@@ -1,3 +1,3 @@
|
||||
|
||||
|
||||
#define MANTA_GIT_VERSION "commit 7395d36e3f504edbdabe34b30edc855b422c7baa"
|
||||
#define MANTA_GIT_VERSION "commit 841bfd09c068dfb95637c0ec14fa78305286a433"
|
||||
|
38
extern/mantaflow/preprocessed/mesh.cpp
vendored
38
extern/mantaflow/preprocessed/mesh.cpp
vendored
@@ -213,34 +213,36 @@ Mesh &Mesh::operator=(const Mesh &o)
|
||||
return *this;
|
||||
}
|
||||
|
||||
void Mesh::load(string name, bool append)
|
||||
int Mesh::load(string name, bool append)
|
||||
{
|
||||
if (name.find_last_of('.') == string::npos)
|
||||
errMsg("file '" + name + "' does not have an extension");
|
||||
string ext = name.substr(name.find_last_of('.'));
|
||||
if (ext == ".gz") // assume bobj gz
|
||||
readBobjFile(name, this, append);
|
||||
return readBobjFile(name, this, append);
|
||||
else if (ext == ".obj")
|
||||
readObjFile(name, this, append);
|
||||
return readObjFile(name, this, append);
|
||||
else
|
||||
errMsg("file '" + name + "' filetype not supported");
|
||||
|
||||
// dont always rebuild...
|
||||
// rebuildCorners();
|
||||
// rebuildLookup();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Mesh::save(string name)
|
||||
int Mesh::save(string name)
|
||||
{
|
||||
if (name.find_last_of('.') == string::npos)
|
||||
errMsg("file '" + name + "' does not have an extension");
|
||||
string ext = name.substr(name.find_last_of('.'));
|
||||
if (ext == ".obj")
|
||||
writeObjFile(name, this);
|
||||
return writeObjFile(name, this);
|
||||
else if (ext == ".gz")
|
||||
writeBobjFile(name, this);
|
||||
return writeBobjFile(name, this);
|
||||
else
|
||||
errMsg("file '" + name + "' filetype not supported");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Mesh::fromShape(Shape &shape, bool append)
|
||||
@@ -1339,8 +1341,8 @@ template<class T> void MeshDataImpl<T>::setSource(Grid<T> *grid, bool isMAC)
|
||||
{
|
||||
mpGridSource = grid;
|
||||
mGridSourceMAC = isMAC;
|
||||
if (isMAC)
|
||||
assertMsg(dynamic_cast<MACGrid *>(grid) != NULL, "Given grid is not a valid MAC grid");
|
||||
if (grid && isMAC)
|
||||
assertMsg(grid->getType() & GridBase::TypeMAC, "Given grid is not a valid MAC grid");
|
||||
}
|
||||
|
||||
template<class T> void MeshDataImpl<T>::initNewValue(IndexInt idx, Vec3 pos)
|
||||
@@ -1371,38 +1373,40 @@ void Mesh::updateDataFields()
|
||||
for (size_t i = 0; i < mNodes.size(); ++i) {
|
||||
Vec3 pos = mNodes[i].pos;
|
||||
for (IndexInt md = 0; md < (IndexInt)mMdataReal.size(); ++md)
|
||||
mMdataReal[md]->initNewValue(i, mNodes[i].pos);
|
||||
mMdataReal[md]->initNewValue(i, pos);
|
||||
for (IndexInt md = 0; md < (IndexInt)mMdataVec3.size(); ++md)
|
||||
mMdataVec3[md]->initNewValue(i, mNodes[i].pos);
|
||||
mMdataVec3[md]->initNewValue(i, pos);
|
||||
for (IndexInt md = 0; md < (IndexInt)mMdataInt.size(); ++md)
|
||||
mMdataInt[md]->initNewValue(i, mNodes[i].pos);
|
||||
mMdataInt[md]->initNewValue(i, pos);
|
||||
}
|
||||
}
|
||||
|
||||
template<typename T> void MeshDataImpl<T>::load(string name)
|
||||
template<typename T> int MeshDataImpl<T>::load(string name)
|
||||
{
|
||||
if (name.find_last_of('.') == string::npos)
|
||||
errMsg("file '" + name + "' does not have an extension");
|
||||
string ext = name.substr(name.find_last_of('.'));
|
||||
if (ext == ".uni")
|
||||
readMdataUni<T>(name, this);
|
||||
return readMdataUni<T>(name, this);
|
||||
else if (ext == ".raw") // raw = uni for now
|
||||
readMdataUni<T>(name, this);
|
||||
return readMdataUni<T>(name, this);
|
||||
else
|
||||
errMsg("mesh data '" + name + "' filetype not supported for loading");
|
||||
return 0;
|
||||
}
|
||||
|
||||
template<typename T> void MeshDataImpl<T>::save(string name)
|
||||
template<typename T> int MeshDataImpl<T>::save(string name)
|
||||
{
|
||||
if (name.find_last_of('.') == string::npos)
|
||||
errMsg("file '" + name + "' does not have an extension");
|
||||
string ext = name.substr(name.find_last_of('.'));
|
||||
if (ext == ".uni")
|
||||
writeMdataUni<T>(name, this);
|
||||
return writeMdataUni<T>(name, this);
|
||||
else if (ext == ".raw") // raw = uni for now
|
||||
writeMdataUni<T>(name, this);
|
||||
return writeMdataUni<T>(name, this);
|
||||
else
|
||||
errMsg("mesh data '" + name + "' filetype not supported for saving");
|
||||
return 0;
|
||||
}
|
||||
|
||||
// specializations
|
||||
|
127
extern/mantaflow/preprocessed/mesh.h
vendored
127
extern/mantaflow/preprocessed/mesh.h
vendored
@@ -240,35 +240,8 @@ class Mesh : public PbClass {
|
||||
}
|
||||
}
|
||||
|
||||
void load(std::string name, bool append = false);
|
||||
static PyObject *_W_2(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
Mesh *pbo = dynamic_cast<Mesh *>(Pb::objFromPy(_self));
|
||||
bool noTiming = _args.getOpt<bool>("notiming", -1, 0);
|
||||
pbPreparePlugin(pbo->getParent(), "Mesh::load", !noTiming);
|
||||
PyObject *_retval = 0;
|
||||
{
|
||||
ArgLocker _lock;
|
||||
std::string name = _args.get<std::string>("name", 0, &_lock);
|
||||
bool append = _args.getOpt<bool>("append", 1, false, &_lock);
|
||||
pbo->_args.copy(_args);
|
||||
_retval = getPyNone();
|
||||
pbo->load(name, append);
|
||||
pbo->_args.check();
|
||||
}
|
||||
pbFinalizePlugin(pbo->getParent(), "Mesh::load", !noTiming);
|
||||
return _retval;
|
||||
}
|
||||
catch (std::exception &e) {
|
||||
pbSetError("Mesh::load", e.what());
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void fromShape(Shape &shape, bool append = false);
|
||||
static PyObject *_W_3(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_2(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -294,34 +267,8 @@ class Mesh : public PbClass {
|
||||
}
|
||||
}
|
||||
|
||||
void save(std::string name);
|
||||
static PyObject *_W_4(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
Mesh *pbo = dynamic_cast<Mesh *>(Pb::objFromPy(_self));
|
||||
bool noTiming = _args.getOpt<bool>("notiming", -1, 0);
|
||||
pbPreparePlugin(pbo->getParent(), "Mesh::save", !noTiming);
|
||||
PyObject *_retval = 0;
|
||||
{
|
||||
ArgLocker _lock;
|
||||
std::string name = _args.get<std::string>("name", 0, &_lock);
|
||||
pbo->_args.copy(_args);
|
||||
_retval = getPyNone();
|
||||
pbo->save(name);
|
||||
pbo->_args.check();
|
||||
}
|
||||
pbFinalizePlugin(pbo->getParent(), "Mesh::save", !noTiming);
|
||||
return _retval;
|
||||
}
|
||||
catch (std::exception &e) {
|
||||
pbSetError("Mesh::save", e.what());
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void advectInGrid(FlagGrid &flags, MACGrid &vel, int integrationMode);
|
||||
static PyObject *_W_5(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_3(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -349,7 +296,7 @@ class Mesh : public PbClass {
|
||||
}
|
||||
|
||||
void scale(Vec3 s);
|
||||
static PyObject *_W_6(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_4(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -375,7 +322,7 @@ class Mesh : public PbClass {
|
||||
}
|
||||
|
||||
void offset(Vec3 o);
|
||||
static PyObject *_W_7(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_5(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -401,7 +348,7 @@ class Mesh : public PbClass {
|
||||
}
|
||||
|
||||
void rotate(Vec3 thetas);
|
||||
static PyObject *_W_8(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_6(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -427,7 +374,7 @@ class Mesh : public PbClass {
|
||||
}
|
||||
|
||||
void computeVelocity(Mesh &oldMesh, MACGrid &vel);
|
||||
static PyObject *_W_9(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_7(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -453,6 +400,58 @@ class Mesh : public PbClass {
|
||||
}
|
||||
}
|
||||
|
||||
//! file io
|
||||
int load(std::string name, bool append = false);
|
||||
static PyObject *_W_8(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
Mesh *pbo = dynamic_cast<Mesh *>(Pb::objFromPy(_self));
|
||||
bool noTiming = _args.getOpt<bool>("notiming", -1, 0);
|
||||
pbPreparePlugin(pbo->getParent(), "Mesh::load", !noTiming);
|
||||
PyObject *_retval = 0;
|
||||
{
|
||||
ArgLocker _lock;
|
||||
std::string name = _args.get<std::string>("name", 0, &_lock);
|
||||
bool append = _args.getOpt<bool>("append", 1, false, &_lock);
|
||||
pbo->_args.copy(_args);
|
||||
_retval = toPy(pbo->load(name, append));
|
||||
pbo->_args.check();
|
||||
}
|
||||
pbFinalizePlugin(pbo->getParent(), "Mesh::load", !noTiming);
|
||||
return _retval;
|
||||
}
|
||||
catch (std::exception &e) {
|
||||
pbSetError("Mesh::load", e.what());
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int save(std::string name);
|
||||
static PyObject *_W_9(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
Mesh *pbo = dynamic_cast<Mesh *>(Pb::objFromPy(_self));
|
||||
bool noTiming = _args.getOpt<bool>("notiming", -1, 0);
|
||||
pbPreparePlugin(pbo->getParent(), "Mesh::save", !noTiming);
|
||||
PyObject *_retval = 0;
|
||||
{
|
||||
ArgLocker _lock;
|
||||
std::string name = _args.get<std::string>("name", 0, &_lock);
|
||||
pbo->_args.copy(_args);
|
||||
_retval = toPy(pbo->save(name));
|
||||
pbo->_args.check();
|
||||
}
|
||||
pbFinalizePlugin(pbo->getParent(), "Mesh::save", !noTiming);
|
||||
return _retval;
|
||||
}
|
||||
catch (std::exception &e) {
|
||||
pbSetError("Mesh::save", e.what());
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void computeLevelset(LevelsetGrid &levelset, Real sigma, Real cutoff = -1.);
|
||||
static PyObject *_W_10(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
@@ -1564,7 +1563,7 @@ template<class T> class MeshDataImpl : public MeshDataBase {
|
||||
}
|
||||
|
||||
//! file io
|
||||
void save(const std::string name);
|
||||
int save(const std::string name);
|
||||
static PyObject *_W_41(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
@@ -1577,8 +1576,7 @@ template<class T> class MeshDataImpl : public MeshDataBase {
|
||||
ArgLocker _lock;
|
||||
const std::string name = _args.get<std::string>("name", 0, &_lock);
|
||||
pbo->_args.copy(_args);
|
||||
_retval = getPyNone();
|
||||
pbo->save(name);
|
||||
_retval = toPy(pbo->save(name));
|
||||
pbo->_args.check();
|
||||
}
|
||||
pbFinalizePlugin(pbo->getParent(), "MeshDataImpl::save", !noTiming);
|
||||
@@ -1590,7 +1588,7 @@ template<class T> class MeshDataImpl : public MeshDataBase {
|
||||
}
|
||||
}
|
||||
|
||||
void load(const std::string name);
|
||||
int load(const std::string name);
|
||||
static PyObject *_W_42(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
@@ -1603,8 +1601,7 @@ template<class T> class MeshDataImpl : public MeshDataBase {
|
||||
ArgLocker _lock;
|
||||
const std::string name = _args.get<std::string>("name", 0, &_lock);
|
||||
pbo->_args.copy(_args);
|
||||
_retval = getPyNone();
|
||||
pbo->load(name);
|
||||
_retval = toPy(pbo->load(name));
|
||||
pbo->_args.check();
|
||||
}
|
||||
pbFinalizePlugin(pbo->getParent(), "MeshDataImpl::load", !noTiming);
|
||||
|
16
extern/mantaflow/preprocessed/mesh.h.reg.cpp
vendored
16
extern/mantaflow/preprocessed/mesh.h.reg.cpp
vendored
@@ -10,14 +10,14 @@ static const Pb::Register _R_12("Mesh", "Mesh", "PbClass");
|
||||
template<> const char *Namify<Mesh>::S = "Mesh";
|
||||
static const Pb::Register _R_13("Mesh", "Mesh", Mesh::_W_0);
|
||||
static const Pb::Register _R_14("Mesh", "clear", Mesh::_W_1);
|
||||
static const Pb::Register _R_15("Mesh", "load", Mesh::_W_2);
|
||||
static const Pb::Register _R_16("Mesh", "fromShape", Mesh::_W_3);
|
||||
static const Pb::Register _R_17("Mesh", "save", Mesh::_W_4);
|
||||
static const Pb::Register _R_18("Mesh", "advectInGrid", Mesh::_W_5);
|
||||
static const Pb::Register _R_19("Mesh", "scale", Mesh::_W_6);
|
||||
static const Pb::Register _R_20("Mesh", "offset", Mesh::_W_7);
|
||||
static const Pb::Register _R_21("Mesh", "rotate", Mesh::_W_8);
|
||||
static const Pb::Register _R_22("Mesh", "computeVelocity", Mesh::_W_9);
|
||||
static const Pb::Register _R_15("Mesh", "fromShape", Mesh::_W_2);
|
||||
static const Pb::Register _R_16("Mesh", "advectInGrid", Mesh::_W_3);
|
||||
static const Pb::Register _R_17("Mesh", "scale", Mesh::_W_4);
|
||||
static const Pb::Register _R_18("Mesh", "offset", Mesh::_W_5);
|
||||
static const Pb::Register _R_19("Mesh", "rotate", Mesh::_W_6);
|
||||
static const Pb::Register _R_20("Mesh", "computeVelocity", Mesh::_W_7);
|
||||
static const Pb::Register _R_21("Mesh", "load", Mesh::_W_8);
|
||||
static const Pb::Register _R_22("Mesh", "save", Mesh::_W_9);
|
||||
static const Pb::Register _R_23("Mesh", "computeLevelset", Mesh::_W_10);
|
||||
static const Pb::Register _R_24("Mesh", "getLevelset", Mesh::_W_11);
|
||||
static const Pb::Register _R_25("Mesh", "applyMeshToGrid", Mesh::_W_12);
|
||||
|
6
extern/mantaflow/preprocessed/particle.cpp
vendored
6
extern/mantaflow/preprocessed/particle.cpp
vendored
@@ -29,7 +29,7 @@ using namespace std;
|
||||
namespace Manta {
|
||||
|
||||
ParticleBase::ParticleBase(FluidSolver *parent)
|
||||
: PbClass(parent), mAllowCompress(true), mFreePdata(false)
|
||||
: PbClass(parent), mMaxParticles(0), mAllowCompress(true), mFreePdata(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -359,8 +359,8 @@ template<class T> void ParticleDataImpl<T>::setSource(Grid<T> *grid, bool isMAC)
|
||||
{
|
||||
mpGridSource = grid;
|
||||
mGridSourceMAC = isMAC;
|
||||
if (isMAC)
|
||||
assertMsg(dynamic_cast<MACGrid *>(grid) != NULL, "Given grid is not a valid MAC grid");
|
||||
if (grid && isMAC)
|
||||
assertMsg(grid->getType() & GridBase::TypeMAC, "Given grid is not a valid MAC grid");
|
||||
}
|
||||
|
||||
template<class T> void ParticleDataImpl<T>::initNewValue(IndexInt idx, Vec3 pos)
|
||||
|
106
extern/mantaflow/preprocessed/particle.h
vendored
106
extern/mantaflow/preprocessed/particle.h
vendored
@@ -100,6 +100,17 @@ class ParticleBase : public PbClass {
|
||||
//! threads)
|
||||
inline void addBuffered(const Vec3 &pos, int flag = 0);
|
||||
|
||||
virtual void resize(IndexInt size)
|
||||
{
|
||||
assertMsg(false, "Dont use, override...");
|
||||
return;
|
||||
}
|
||||
virtual void resizeAll(IndexInt size)
|
||||
{
|
||||
assertMsg(false, "Dont use, override...");
|
||||
return;
|
||||
}
|
||||
|
||||
//! particle data functions
|
||||
|
||||
//! create a particle data object
|
||||
@@ -152,6 +163,20 @@ class ParticleBase : public PbClass {
|
||||
return mPartData[i];
|
||||
}
|
||||
|
||||
//! expose maximum number of particles to python
|
||||
int mMaxParticles;
|
||||
static PyObject *_GET_mMaxParticles(PyObject *self, void *cl)
|
||||
{
|
||||
ParticleBase *pbo = dynamic_cast<ParticleBase *>(Pb::objFromPy(self));
|
||||
return toPy(pbo->mMaxParticles);
|
||||
}
|
||||
static int _SET_mMaxParticles(PyObject *self, PyObject *val, void *cl)
|
||||
{
|
||||
ParticleBase *pbo = dynamic_cast<ParticleBase *>(Pb::objFromPy(self));
|
||||
pbo->mMaxParticles = fromPy<int>(val);
|
||||
return 0;
|
||||
}
|
||||
|
||||
protected:
|
||||
//! new particle candidates
|
||||
std::vector<Vec3> mNewBufferPos;
|
||||
@@ -431,8 +456,14 @@ template<class S> class ParticleSystem : public ParticleBase {
|
||||
}
|
||||
//! insert buffered positions as new particles, update additional particle data
|
||||
void insertBufferedParticles();
|
||||
//! resize only the data vector, only use if you know what you're doing, otherwise use
|
||||
//! resizeAll()
|
||||
virtual void resize(IndexInt size)
|
||||
{
|
||||
mData.resize(size);
|
||||
}
|
||||
//! resize data vector, and all pdata fields
|
||||
void resizeAll(IndexInt newsize);
|
||||
virtual void resizeAll(IndexInt size);
|
||||
|
||||
//! adding and deleting
|
||||
inline void kill(IndexInt idx);
|
||||
@@ -877,11 +908,6 @@ class ParticleIndexSystem : public ParticleSystem<ParticleIndexData> {
|
||||
return -1;
|
||||
}
|
||||
};
|
||||
//! we only need a resize function...
|
||||
void resize(IndexInt size)
|
||||
{
|
||||
mData.resize(size);
|
||||
}
|
||||
public:
|
||||
PbArgs _args;
|
||||
}
|
||||
@@ -2479,28 +2505,66 @@ template<class S> void ParticleSystem<S>::insertBufferedParticles()
|
||||
for (IndexInt i = 0; i < (IndexInt)mData.size(); ++i)
|
||||
mData[i].flag &= ~PNEW;
|
||||
|
||||
if (mNewBufferPos.size() == 0)
|
||||
if (mNewBufferPos.empty())
|
||||
return;
|
||||
IndexInt newCnt = mData.size();
|
||||
resizeAll(newCnt + mNewBufferPos.size());
|
||||
IndexInt bufferSize = mNewBufferPos.size();
|
||||
IndexInt partsSize = mData.size();
|
||||
|
||||
if (mMaxParticles > 0)
|
||||
assertMsg(mMaxParticles >= partsSize,
|
||||
"Particle system cannot contain more particles that the maximum allowed number");
|
||||
|
||||
// max number of new particles that can be inserted, adjusted buffer size when using maxParticles
|
||||
// field
|
||||
IndexInt numNewParts = (mMaxParticles > 0) ? mMaxParticles - mData.size() : bufferSize;
|
||||
if (numNewParts > bufferSize)
|
||||
numNewParts = bufferSize; // upper clamp
|
||||
|
||||
assertMsg(numNewParts >= 0, "Must not have negative number of new particles");
|
||||
|
||||
// new size of particle system
|
||||
IndexInt newSize = mData.size() + numNewParts;
|
||||
if (mMaxParticles > 0)
|
||||
assertMsg(newSize <= mMaxParticles,
|
||||
"Particle system cannot contain more particles that the maximum allowed number");
|
||||
resizeAll(newSize);
|
||||
|
||||
int insertFlag;
|
||||
Vec3 insertPos;
|
||||
static RandomStream mRand(9832);
|
||||
for (IndexInt i = 0; i < numNewParts; ++i) {
|
||||
|
||||
// get random index in newBuffer vector
|
||||
// we are inserting particles randomly so that they are sampled uniformly in the fluid region
|
||||
// otherwise, regions of fluid can remain completely empty once mData.size() == maxParticles is
|
||||
// reached.
|
||||
int randIndex = floor(mRand.getReal() * mNewBufferPos.size());
|
||||
|
||||
// get elements from new buffers with random index
|
||||
std::swap(mNewBufferPos[randIndex], mNewBufferPos.back());
|
||||
insertPos = mNewBufferPos.back();
|
||||
mNewBufferPos.pop_back();
|
||||
|
||||
insertFlag = 0;
|
||||
if (!mNewBufferFlag.empty()) {
|
||||
std::swap(mNewBufferFlag[randIndex], mNewBufferFlag.back());
|
||||
insertFlag = mNewBufferFlag.back();
|
||||
mNewBufferFlag.pop_back();
|
||||
}
|
||||
|
||||
mData[partsSize].pos = insertPos;
|
||||
mData[partsSize].flag = PNEW | insertFlag;
|
||||
|
||||
for (IndexInt i = 0; i < (IndexInt)mNewBufferPos.size(); ++i) {
|
||||
int flag = (mNewBufferFlag.size() > 0) ? mNewBufferFlag[i] : 0;
|
||||
// note, other fields are not initialized here...
|
||||
mData[newCnt].pos = mNewBufferPos[i];
|
||||
mData[newCnt].flag = PNEW | flag;
|
||||
// now init pdata fields from associated grids...
|
||||
for (IndexInt pd = 0; pd < (IndexInt)mPdataReal.size(); ++pd)
|
||||
mPdataReal[pd]->initNewValue(newCnt, mNewBufferPos[i]);
|
||||
mPdataReal[pd]->initNewValue(partsSize, insertPos);
|
||||
for (IndexInt pd = 0; pd < (IndexInt)mPdataVec3.size(); ++pd)
|
||||
mPdataVec3[pd]->initNewValue(newCnt, mNewBufferPos[i]);
|
||||
mPdataVec3[pd]->initNewValue(partsSize, insertPos);
|
||||
for (IndexInt pd = 0; pd < (IndexInt)mPdataInt.size(); ++pd)
|
||||
mPdataInt[pd]->initNewValue(newCnt, mNewBufferPos[i]);
|
||||
newCnt++;
|
||||
mPdataInt[pd]->initNewValue(partsSize, insertPos);
|
||||
partsSize++;
|
||||
}
|
||||
if (mNewBufferPos.size() > 0)
|
||||
debMsg("Added & initialized " << (IndexInt)mNewBufferPos.size() << " particles",
|
||||
2); // debug info
|
||||
debMsg("Added & initialized " << numNewParts << " particles", 2); // debug info
|
||||
mNewBufferPos.clear();
|
||||
mNewBufferFlag.clear();
|
||||
}
|
||||
|
227
extern/mantaflow/preprocessed/particle.h.reg.cpp
vendored
227
extern/mantaflow/preprocessed/particle.h.reg.cpp
vendored
@@ -29,279 +29,283 @@ static const Pb::Register _R_21("ParticleBase", "ParticleBase", "PbClass");
|
||||
template<> const char *Namify<ParticleBase>::S = "ParticleBase";
|
||||
static const Pb::Register _R_22("ParticleBase", "ParticleBase", ParticleBase::_W_0);
|
||||
static const Pb::Register _R_23("ParticleBase", "create", ParticleBase::_W_1);
|
||||
static const Pb::Register _R_24("ParticleBase",
|
||||
"maxParticles",
|
||||
ParticleBase::_GET_mMaxParticles,
|
||||
ParticleBase::_SET_mMaxParticles);
|
||||
#endif
|
||||
#ifdef _C_ParticleDataBase
|
||||
static const Pb::Register _R_24("ParticleDataBase", "ParticleDataBase", "PbClass");
|
||||
static const Pb::Register _R_25("ParticleDataBase", "ParticleDataBase", "PbClass");
|
||||
template<> const char *Namify<ParticleDataBase>::S = "ParticleDataBase";
|
||||
static const Pb::Register _R_25("ParticleDataBase", "ParticleDataBase", ParticleDataBase::_W_21);
|
||||
static const Pb::Register _R_26("ParticleDataBase", "ParticleDataBase", ParticleDataBase::_W_21);
|
||||
#endif
|
||||
#ifdef _C_ParticleDataImpl
|
||||
static const Pb::Register _R_26("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_27("ParticleDataImpl<int>",
|
||||
"ParticleDataImpl<int>",
|
||||
"ParticleDataBase");
|
||||
template<> const char *Namify<ParticleDataImpl<int>>::S = "ParticleDataImpl<int>";
|
||||
static const Pb::Register _R_27("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_28("ParticleDataImpl<int>",
|
||||
"ParticleDataImpl",
|
||||
ParticleDataImpl<int>::_W_22);
|
||||
static const Pb::Register _R_28("ParticleDataImpl<int>", "clear", ParticleDataImpl<int>::_W_23);
|
||||
static const Pb::Register _R_29("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_29("ParticleDataImpl<int>", "clear", ParticleDataImpl<int>::_W_23);
|
||||
static const Pb::Register _R_30("ParticleDataImpl<int>",
|
||||
"setSource",
|
||||
ParticleDataImpl<int>::_W_24);
|
||||
static const Pb::Register _R_30("ParticleDataImpl<int>", "copyFrom", ParticleDataImpl<int>::_W_25);
|
||||
static const Pb::Register _R_31("ParticleDataImpl<int>", "setConst", ParticleDataImpl<int>::_W_26);
|
||||
static const Pb::Register _R_32("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_31("ParticleDataImpl<int>", "copyFrom", ParticleDataImpl<int>::_W_25);
|
||||
static const Pb::Register _R_32("ParticleDataImpl<int>", "setConst", ParticleDataImpl<int>::_W_26);
|
||||
static const Pb::Register _R_33("ParticleDataImpl<int>",
|
||||
"setConstRange",
|
||||
ParticleDataImpl<int>::_W_27);
|
||||
static const Pb::Register _R_33("ParticleDataImpl<int>", "add", ParticleDataImpl<int>::_W_28);
|
||||
static const Pb::Register _R_34("ParticleDataImpl<int>", "sub", ParticleDataImpl<int>::_W_29);
|
||||
static const Pb::Register _R_35("ParticleDataImpl<int>", "addConst", ParticleDataImpl<int>::_W_30);
|
||||
static const Pb::Register _R_36("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_34("ParticleDataImpl<int>", "add", ParticleDataImpl<int>::_W_28);
|
||||
static const Pb::Register _R_35("ParticleDataImpl<int>", "sub", ParticleDataImpl<int>::_W_29);
|
||||
static const Pb::Register _R_36("ParticleDataImpl<int>", "addConst", ParticleDataImpl<int>::_W_30);
|
||||
static const Pb::Register _R_37("ParticleDataImpl<int>",
|
||||
"addScaled",
|
||||
ParticleDataImpl<int>::_W_31);
|
||||
static const Pb::Register _R_37("ParticleDataImpl<int>", "mult", ParticleDataImpl<int>::_W_32);
|
||||
static const Pb::Register _R_38("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_38("ParticleDataImpl<int>", "mult", ParticleDataImpl<int>::_W_32);
|
||||
static const Pb::Register _R_39("ParticleDataImpl<int>",
|
||||
"multConst",
|
||||
ParticleDataImpl<int>::_W_33);
|
||||
static const Pb::Register _R_39("ParticleDataImpl<int>", "safeDiv", ParticleDataImpl<int>::_W_34);
|
||||
static const Pb::Register _R_40("ParticleDataImpl<int>", "clamp", ParticleDataImpl<int>::_W_35);
|
||||
static const Pb::Register _R_41("ParticleDataImpl<int>", "clampMin", ParticleDataImpl<int>::_W_36);
|
||||
static const Pb::Register _R_42("ParticleDataImpl<int>", "clampMax", ParticleDataImpl<int>::_W_37);
|
||||
static const Pb::Register _R_43("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_40("ParticleDataImpl<int>", "safeDiv", ParticleDataImpl<int>::_W_34);
|
||||
static const Pb::Register _R_41("ParticleDataImpl<int>", "clamp", ParticleDataImpl<int>::_W_35);
|
||||
static const Pb::Register _R_42("ParticleDataImpl<int>", "clampMin", ParticleDataImpl<int>::_W_36);
|
||||
static const Pb::Register _R_43("ParticleDataImpl<int>", "clampMax", ParticleDataImpl<int>::_W_37);
|
||||
static const Pb::Register _R_44("ParticleDataImpl<int>",
|
||||
"getMaxAbs",
|
||||
ParticleDataImpl<int>::_W_38);
|
||||
static const Pb::Register _R_44("ParticleDataImpl<int>", "getMax", ParticleDataImpl<int>::_W_39);
|
||||
static const Pb::Register _R_45("ParticleDataImpl<int>", "getMin", ParticleDataImpl<int>::_W_40);
|
||||
static const Pb::Register _R_46("ParticleDataImpl<int>", "sum", ParticleDataImpl<int>::_W_41);
|
||||
static const Pb::Register _R_47("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_45("ParticleDataImpl<int>", "getMax", ParticleDataImpl<int>::_W_39);
|
||||
static const Pb::Register _R_46("ParticleDataImpl<int>", "getMin", ParticleDataImpl<int>::_W_40);
|
||||
static const Pb::Register _R_47("ParticleDataImpl<int>", "sum", ParticleDataImpl<int>::_W_41);
|
||||
static const Pb::Register _R_48("ParticleDataImpl<int>",
|
||||
"sumSquare",
|
||||
ParticleDataImpl<int>::_W_42);
|
||||
static const Pb::Register _R_48("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_49("ParticleDataImpl<int>",
|
||||
"sumMagnitude",
|
||||
ParticleDataImpl<int>::_W_43);
|
||||
static const Pb::Register _R_49("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_50("ParticleDataImpl<int>",
|
||||
"setConstIntFlag",
|
||||
ParticleDataImpl<int>::_W_44);
|
||||
static const Pb::Register _R_50("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_51("ParticleDataImpl<int>",
|
||||
"printPdata",
|
||||
ParticleDataImpl<int>::_W_45);
|
||||
static const Pb::Register _R_51("ParticleDataImpl<int>", "save", ParticleDataImpl<int>::_W_46);
|
||||
static const Pb::Register _R_52("ParticleDataImpl<int>", "load", ParticleDataImpl<int>::_W_47);
|
||||
static const Pb::Register _R_53("ParticleDataImpl<int>",
|
||||
static const Pb::Register _R_52("ParticleDataImpl<int>", "save", ParticleDataImpl<int>::_W_46);
|
||||
static const Pb::Register _R_53("ParticleDataImpl<int>", "load", ParticleDataImpl<int>::_W_47);
|
||||
static const Pb::Register _R_54("ParticleDataImpl<int>",
|
||||
"getDataPointer",
|
||||
ParticleDataImpl<int>::_W_48);
|
||||
static const Pb::Register _R_54("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_55("ParticleDataImpl<Real>",
|
||||
"ParticleDataImpl<Real>",
|
||||
"ParticleDataBase");
|
||||
template<> const char *Namify<ParticleDataImpl<Real>>::S = "ParticleDataImpl<Real>";
|
||||
static const Pb::Register _R_55("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_56("ParticleDataImpl<Real>",
|
||||
"ParticleDataImpl",
|
||||
ParticleDataImpl<Real>::_W_22);
|
||||
static const Pb::Register _R_56("ParticleDataImpl<Real>", "clear", ParticleDataImpl<Real>::_W_23);
|
||||
static const Pb::Register _R_57("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_57("ParticleDataImpl<Real>", "clear", ParticleDataImpl<Real>::_W_23);
|
||||
static const Pb::Register _R_58("ParticleDataImpl<Real>",
|
||||
"setSource",
|
||||
ParticleDataImpl<Real>::_W_24);
|
||||
static const Pb::Register _R_58("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_59("ParticleDataImpl<Real>",
|
||||
"copyFrom",
|
||||
ParticleDataImpl<Real>::_W_25);
|
||||
static const Pb::Register _R_59("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_60("ParticleDataImpl<Real>",
|
||||
"setConst",
|
||||
ParticleDataImpl<Real>::_W_26);
|
||||
static const Pb::Register _R_60("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_61("ParticleDataImpl<Real>",
|
||||
"setConstRange",
|
||||
ParticleDataImpl<Real>::_W_27);
|
||||
static const Pb::Register _R_61("ParticleDataImpl<Real>", "add", ParticleDataImpl<Real>::_W_28);
|
||||
static const Pb::Register _R_62("ParticleDataImpl<Real>", "sub", ParticleDataImpl<Real>::_W_29);
|
||||
static const Pb::Register _R_63("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_62("ParticleDataImpl<Real>", "add", ParticleDataImpl<Real>::_W_28);
|
||||
static const Pb::Register _R_63("ParticleDataImpl<Real>", "sub", ParticleDataImpl<Real>::_W_29);
|
||||
static const Pb::Register _R_64("ParticleDataImpl<Real>",
|
||||
"addConst",
|
||||
ParticleDataImpl<Real>::_W_30);
|
||||
static const Pb::Register _R_64("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_65("ParticleDataImpl<Real>",
|
||||
"addScaled",
|
||||
ParticleDataImpl<Real>::_W_31);
|
||||
static const Pb::Register _R_65("ParticleDataImpl<Real>", "mult", ParticleDataImpl<Real>::_W_32);
|
||||
static const Pb::Register _R_66("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_66("ParticleDataImpl<Real>", "mult", ParticleDataImpl<Real>::_W_32);
|
||||
static const Pb::Register _R_67("ParticleDataImpl<Real>",
|
||||
"multConst",
|
||||
ParticleDataImpl<Real>::_W_33);
|
||||
static const Pb::Register _R_67("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_68("ParticleDataImpl<Real>",
|
||||
"safeDiv",
|
||||
ParticleDataImpl<Real>::_W_34);
|
||||
static const Pb::Register _R_68("ParticleDataImpl<Real>", "clamp", ParticleDataImpl<Real>::_W_35);
|
||||
static const Pb::Register _R_69("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_69("ParticleDataImpl<Real>", "clamp", ParticleDataImpl<Real>::_W_35);
|
||||
static const Pb::Register _R_70("ParticleDataImpl<Real>",
|
||||
"clampMin",
|
||||
ParticleDataImpl<Real>::_W_36);
|
||||
static const Pb::Register _R_70("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_71("ParticleDataImpl<Real>",
|
||||
"clampMax",
|
||||
ParticleDataImpl<Real>::_W_37);
|
||||
static const Pb::Register _R_71("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_72("ParticleDataImpl<Real>",
|
||||
"getMaxAbs",
|
||||
ParticleDataImpl<Real>::_W_38);
|
||||
static const Pb::Register _R_72("ParticleDataImpl<Real>", "getMax", ParticleDataImpl<Real>::_W_39);
|
||||
static const Pb::Register _R_73("ParticleDataImpl<Real>", "getMin", ParticleDataImpl<Real>::_W_40);
|
||||
static const Pb::Register _R_74("ParticleDataImpl<Real>", "sum", ParticleDataImpl<Real>::_W_41);
|
||||
static const Pb::Register _R_75("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_73("ParticleDataImpl<Real>", "getMax", ParticleDataImpl<Real>::_W_39);
|
||||
static const Pb::Register _R_74("ParticleDataImpl<Real>", "getMin", ParticleDataImpl<Real>::_W_40);
|
||||
static const Pb::Register _R_75("ParticleDataImpl<Real>", "sum", ParticleDataImpl<Real>::_W_41);
|
||||
static const Pb::Register _R_76("ParticleDataImpl<Real>",
|
||||
"sumSquare",
|
||||
ParticleDataImpl<Real>::_W_42);
|
||||
static const Pb::Register _R_76("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_77("ParticleDataImpl<Real>",
|
||||
"sumMagnitude",
|
||||
ParticleDataImpl<Real>::_W_43);
|
||||
static const Pb::Register _R_77("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_78("ParticleDataImpl<Real>",
|
||||
"setConstIntFlag",
|
||||
ParticleDataImpl<Real>::_W_44);
|
||||
static const Pb::Register _R_78("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_79("ParticleDataImpl<Real>",
|
||||
"printPdata",
|
||||
ParticleDataImpl<Real>::_W_45);
|
||||
static const Pb::Register _R_79("ParticleDataImpl<Real>", "save", ParticleDataImpl<Real>::_W_46);
|
||||
static const Pb::Register _R_80("ParticleDataImpl<Real>", "load", ParticleDataImpl<Real>::_W_47);
|
||||
static const Pb::Register _R_81("ParticleDataImpl<Real>",
|
||||
static const Pb::Register _R_80("ParticleDataImpl<Real>", "save", ParticleDataImpl<Real>::_W_46);
|
||||
static const Pb::Register _R_81("ParticleDataImpl<Real>", "load", ParticleDataImpl<Real>::_W_47);
|
||||
static const Pb::Register _R_82("ParticleDataImpl<Real>",
|
||||
"getDataPointer",
|
||||
ParticleDataImpl<Real>::_W_48);
|
||||
static const Pb::Register _R_82("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_83("ParticleDataImpl<Vec3>",
|
||||
"ParticleDataImpl<Vec3>",
|
||||
"ParticleDataBase");
|
||||
template<> const char *Namify<ParticleDataImpl<Vec3>>::S = "ParticleDataImpl<Vec3>";
|
||||
static const Pb::Register _R_83("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_84("ParticleDataImpl<Vec3>",
|
||||
"ParticleDataImpl",
|
||||
ParticleDataImpl<Vec3>::_W_22);
|
||||
static const Pb::Register _R_84("ParticleDataImpl<Vec3>", "clear", ParticleDataImpl<Vec3>::_W_23);
|
||||
static const Pb::Register _R_85("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_85("ParticleDataImpl<Vec3>", "clear", ParticleDataImpl<Vec3>::_W_23);
|
||||
static const Pb::Register _R_86("ParticleDataImpl<Vec3>",
|
||||
"setSource",
|
||||
ParticleDataImpl<Vec3>::_W_24);
|
||||
static const Pb::Register _R_86("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_87("ParticleDataImpl<Vec3>",
|
||||
"copyFrom",
|
||||
ParticleDataImpl<Vec3>::_W_25);
|
||||
static const Pb::Register _R_87("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_88("ParticleDataImpl<Vec3>",
|
||||
"setConst",
|
||||
ParticleDataImpl<Vec3>::_W_26);
|
||||
static const Pb::Register _R_88("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_89("ParticleDataImpl<Vec3>",
|
||||
"setConstRange",
|
||||
ParticleDataImpl<Vec3>::_W_27);
|
||||
static const Pb::Register _R_89("ParticleDataImpl<Vec3>", "add", ParticleDataImpl<Vec3>::_W_28);
|
||||
static const Pb::Register _R_90("ParticleDataImpl<Vec3>", "sub", ParticleDataImpl<Vec3>::_W_29);
|
||||
static const Pb::Register _R_91("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_90("ParticleDataImpl<Vec3>", "add", ParticleDataImpl<Vec3>::_W_28);
|
||||
static const Pb::Register _R_91("ParticleDataImpl<Vec3>", "sub", ParticleDataImpl<Vec3>::_W_29);
|
||||
static const Pb::Register _R_92("ParticleDataImpl<Vec3>",
|
||||
"addConst",
|
||||
ParticleDataImpl<Vec3>::_W_30);
|
||||
static const Pb::Register _R_92("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_93("ParticleDataImpl<Vec3>",
|
||||
"addScaled",
|
||||
ParticleDataImpl<Vec3>::_W_31);
|
||||
static const Pb::Register _R_93("ParticleDataImpl<Vec3>", "mult", ParticleDataImpl<Vec3>::_W_32);
|
||||
static const Pb::Register _R_94("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_94("ParticleDataImpl<Vec3>", "mult", ParticleDataImpl<Vec3>::_W_32);
|
||||
static const Pb::Register _R_95("ParticleDataImpl<Vec3>",
|
||||
"multConst",
|
||||
ParticleDataImpl<Vec3>::_W_33);
|
||||
static const Pb::Register _R_95("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_96("ParticleDataImpl<Vec3>",
|
||||
"safeDiv",
|
||||
ParticleDataImpl<Vec3>::_W_34);
|
||||
static const Pb::Register _R_96("ParticleDataImpl<Vec3>", "clamp", ParticleDataImpl<Vec3>::_W_35);
|
||||
static const Pb::Register _R_97("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_97("ParticleDataImpl<Vec3>", "clamp", ParticleDataImpl<Vec3>::_W_35);
|
||||
static const Pb::Register _R_98("ParticleDataImpl<Vec3>",
|
||||
"clampMin",
|
||||
ParticleDataImpl<Vec3>::_W_36);
|
||||
static const Pb::Register _R_98("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_99("ParticleDataImpl<Vec3>",
|
||||
"clampMax",
|
||||
ParticleDataImpl<Vec3>::_W_37);
|
||||
static const Pb::Register _R_99("ParticleDataImpl<Vec3>",
|
||||
"getMaxAbs",
|
||||
ParticleDataImpl<Vec3>::_W_38);
|
||||
static const Pb::Register _R_100("ParticleDataImpl<Vec3>",
|
||||
"getMaxAbs",
|
||||
ParticleDataImpl<Vec3>::_W_38);
|
||||
static const Pb::Register _R_101("ParticleDataImpl<Vec3>",
|
||||
"getMax",
|
||||
ParticleDataImpl<Vec3>::_W_39);
|
||||
static const Pb::Register _R_101("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_102("ParticleDataImpl<Vec3>",
|
||||
"getMin",
|
||||
ParticleDataImpl<Vec3>::_W_40);
|
||||
static const Pb::Register _R_102("ParticleDataImpl<Vec3>", "sum", ParticleDataImpl<Vec3>::_W_41);
|
||||
static const Pb::Register _R_103("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_103("ParticleDataImpl<Vec3>", "sum", ParticleDataImpl<Vec3>::_W_41);
|
||||
static const Pb::Register _R_104("ParticleDataImpl<Vec3>",
|
||||
"sumSquare",
|
||||
ParticleDataImpl<Vec3>::_W_42);
|
||||
static const Pb::Register _R_104("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_105("ParticleDataImpl<Vec3>",
|
||||
"sumMagnitude",
|
||||
ParticleDataImpl<Vec3>::_W_43);
|
||||
static const Pb::Register _R_105("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_106("ParticleDataImpl<Vec3>",
|
||||
"setConstIntFlag",
|
||||
ParticleDataImpl<Vec3>::_W_44);
|
||||
static const Pb::Register _R_106("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_107("ParticleDataImpl<Vec3>",
|
||||
"printPdata",
|
||||
ParticleDataImpl<Vec3>::_W_45);
|
||||
static const Pb::Register _R_107("ParticleDataImpl<Vec3>", "save", ParticleDataImpl<Vec3>::_W_46);
|
||||
static const Pb::Register _R_108("ParticleDataImpl<Vec3>", "load", ParticleDataImpl<Vec3>::_W_47);
|
||||
static const Pb::Register _R_109("ParticleDataImpl<Vec3>",
|
||||
static const Pb::Register _R_108("ParticleDataImpl<Vec3>", "save", ParticleDataImpl<Vec3>::_W_46);
|
||||
static const Pb::Register _R_109("ParticleDataImpl<Vec3>", "load", ParticleDataImpl<Vec3>::_W_47);
|
||||
static const Pb::Register _R_110("ParticleDataImpl<Vec3>",
|
||||
"getDataPointer",
|
||||
ParticleDataImpl<Vec3>::_W_48);
|
||||
#endif
|
||||
#ifdef _C_ParticleIndexSystem
|
||||
static const Pb::Register _R_110("ParticleIndexSystem",
|
||||
static const Pb::Register _R_111("ParticleIndexSystem",
|
||||
"ParticleIndexSystem",
|
||||
"ParticleSystem<ParticleIndexData>");
|
||||
template<> const char *Namify<ParticleIndexSystem>::S = "ParticleIndexSystem";
|
||||
static const Pb::Register _R_111("ParticleIndexSystem",
|
||||
static const Pb::Register _R_112("ParticleIndexSystem",
|
||||
"ParticleIndexSystem",
|
||||
ParticleIndexSystem::_W_19);
|
||||
#endif
|
||||
#ifdef _C_ParticleSystem
|
||||
static const Pb::Register _R_112("ParticleSystem<BasicParticleData>",
|
||||
static const Pb::Register _R_113("ParticleSystem<BasicParticleData>",
|
||||
"ParticleSystem<BasicParticleData>",
|
||||
"ParticleBase");
|
||||
template<>
|
||||
const char *Namify<ParticleSystem<BasicParticleData>>::S = "ParticleSystem<BasicParticleData>";
|
||||
static const Pb::Register _R_113("ParticleSystem<BasicParticleData>",
|
||||
static const Pb::Register _R_114("ParticleSystem<BasicParticleData>",
|
||||
"ParticleSystem",
|
||||
ParticleSystem<BasicParticleData>::_W_2);
|
||||
static const Pb::Register _R_114("ParticleSystem<BasicParticleData>",
|
||||
static const Pb::Register _R_115("ParticleSystem<BasicParticleData>",
|
||||
"pySize",
|
||||
ParticleSystem<BasicParticleData>::_W_3);
|
||||
static const Pb::Register _R_115("ParticleSystem<BasicParticleData>",
|
||||
static const Pb::Register _R_116("ParticleSystem<BasicParticleData>",
|
||||
"setPos",
|
||||
ParticleSystem<BasicParticleData>::_W_4);
|
||||
static const Pb::Register _R_116("ParticleSystem<BasicParticleData>",
|
||||
static const Pb::Register _R_117("ParticleSystem<BasicParticleData>",
|
||||
"getPos",
|
||||
ParticleSystem<BasicParticleData>::_W_5);
|
||||
static const Pb::Register _R_117("ParticleSystem<BasicParticleData>",
|
||||
static const Pb::Register _R_118("ParticleSystem<BasicParticleData>",
|
||||
"getPosPdata",
|
||||
ParticleSystem<BasicParticleData>::_W_6);
|
||||
static const Pb::Register _R_118("ParticleSystem<BasicParticleData>",
|
||||
static const Pb::Register _R_119("ParticleSystem<BasicParticleData>",
|
||||
"setPosPdata",
|
||||
ParticleSystem<BasicParticleData>::_W_7);
|
||||
static const Pb::Register _R_119("ParticleSystem<BasicParticleData>",
|
||||
static const Pb::Register _R_120("ParticleSystem<BasicParticleData>",
|
||||
"clear",
|
||||
ParticleSystem<BasicParticleData>::_W_8);
|
||||
static const Pb::Register _R_120("ParticleSystem<BasicParticleData>",
|
||||
static const Pb::Register _R_121("ParticleSystem<BasicParticleData>",
|
||||
"advectInGrid",
|
||||
ParticleSystem<BasicParticleData>::_W_9);
|
||||
static const Pb::Register _R_121("ParticleSystem<BasicParticleData>",
|
||||
static const Pb::Register _R_122("ParticleSystem<BasicParticleData>",
|
||||
"projectOutside",
|
||||
ParticleSystem<BasicParticleData>::_W_10);
|
||||
static const Pb::Register _R_122("ParticleSystem<BasicParticleData>",
|
||||
static const Pb::Register _R_123("ParticleSystem<BasicParticleData>",
|
||||
"projectOutOfBnd",
|
||||
ParticleSystem<BasicParticleData>::_W_11);
|
||||
static const Pb::Register _R_123("ParticleSystem<ParticleIndexData>",
|
||||
static const Pb::Register _R_124("ParticleSystem<ParticleIndexData>",
|
||||
"ParticleSystem<ParticleIndexData>",
|
||||
"ParticleBase");
|
||||
template<>
|
||||
const char *Namify<ParticleSystem<ParticleIndexData>>::S = "ParticleSystem<ParticleIndexData>";
|
||||
static const Pb::Register _R_124("ParticleSystem<ParticleIndexData>",
|
||||
static const Pb::Register _R_125("ParticleSystem<ParticleIndexData>",
|
||||
"ParticleSystem",
|
||||
ParticleSystem<ParticleIndexData>::_W_2);
|
||||
static const Pb::Register _R_125("ParticleSystem<ParticleIndexData>",
|
||||
static const Pb::Register _R_126("ParticleSystem<ParticleIndexData>",
|
||||
"pySize",
|
||||
ParticleSystem<ParticleIndexData>::_W_3);
|
||||
static const Pb::Register _R_126("ParticleSystem<ParticleIndexData>",
|
||||
static const Pb::Register _R_127("ParticleSystem<ParticleIndexData>",
|
||||
"setPos",
|
||||
ParticleSystem<ParticleIndexData>::_W_4);
|
||||
static const Pb::Register _R_127("ParticleSystem<ParticleIndexData>",
|
||||
static const Pb::Register _R_128("ParticleSystem<ParticleIndexData>",
|
||||
"getPos",
|
||||
ParticleSystem<ParticleIndexData>::_W_5);
|
||||
static const Pb::Register _R_128("ParticleSystem<ParticleIndexData>",
|
||||
static const Pb::Register _R_129("ParticleSystem<ParticleIndexData>",
|
||||
"getPosPdata",
|
||||
ParticleSystem<ParticleIndexData>::_W_6);
|
||||
static const Pb::Register _R_129("ParticleSystem<ParticleIndexData>",
|
||||
static const Pb::Register _R_130("ParticleSystem<ParticleIndexData>",
|
||||
"setPosPdata",
|
||||
ParticleSystem<ParticleIndexData>::_W_7);
|
||||
static const Pb::Register _R_130("ParticleSystem<ParticleIndexData>",
|
||||
static const Pb::Register _R_131("ParticleSystem<ParticleIndexData>",
|
||||
"clear",
|
||||
ParticleSystem<ParticleIndexData>::_W_8);
|
||||
static const Pb::Register _R_131("ParticleSystem<ParticleIndexData>",
|
||||
static const Pb::Register _R_132("ParticleSystem<ParticleIndexData>",
|
||||
"advectInGrid",
|
||||
ParticleSystem<ParticleIndexData>::_W_9);
|
||||
static const Pb::Register _R_132("ParticleSystem<ParticleIndexData>",
|
||||
static const Pb::Register _R_133("ParticleSystem<ParticleIndexData>",
|
||||
"projectOutside",
|
||||
ParticleSystem<ParticleIndexData>::_W_10);
|
||||
static const Pb::Register _R_133("ParticleSystem<ParticleIndexData>",
|
||||
static const Pb::Register _R_134("ParticleSystem<ParticleIndexData>",
|
||||
"projectOutOfBnd",
|
||||
ParticleSystem<ParticleIndexData>::_W_11);
|
||||
#endif
|
||||
@@ -432,6 +436,7 @@ void PbRegister_file_10()
|
||||
KEEP_UNUSED(_R_131);
|
||||
KEEP_UNUSED(_R_132);
|
||||
KEEP_UNUSED(_R_133);
|
||||
KEEP_UNUSED(_R_134);
|
||||
}
|
||||
}
|
||||
} // namespace Manta
|
144
extern/mantaflow/preprocessed/plugin/initplugins.cpp
vendored
144
extern/mantaflow/preprocessed/plugin/initplugins.cpp
vendored
@@ -1479,48 +1479,24 @@ void PbRegister_addTestParts()
|
||||
}
|
||||
|
||||
//! calculate the difference between two pdata fields (note - slow!, not parallelized)
|
||||
|
||||
Real pdataMaxDiff(const ParticleDataBase *a, const ParticleDataBase *b)
|
||||
template<class T> Real getPdataMaxDiff(const ParticleDataImpl<T> *a, const ParticleDataImpl<T> *b)
|
||||
{
|
||||
double maxVal = 0.;
|
||||
// debMsg(" PD "<< a->getType()<<" as"<<a->getSizeSlow()<<" bs"<<b->getSizeSlow() , 1);
|
||||
assertMsg(a->getType() == b->getType(), "pdataMaxDiff problem - different pdata types!");
|
||||
assertMsg(a->getSizeSlow() == b->getSizeSlow(), "pdataMaxDiff problem - different pdata sizes!");
|
||||
|
||||
if (a->getType() & ParticleDataBase::TypeReal) {
|
||||
const ParticleDataImpl<Real> &av = *dynamic_cast<const ParticleDataImpl<Real> *>(a);
|
||||
const ParticleDataImpl<Real> &bv = *dynamic_cast<const ParticleDataImpl<Real> *>(b);
|
||||
FOR_PARTS(av)
|
||||
{
|
||||
maxVal = std::max(maxVal, (double)fabs(av[idx] - bv[idx]));
|
||||
}
|
||||
Real maxVal = 0.;
|
||||
FOR_PARTS(*a)
|
||||
{
|
||||
T diff = a->get(idx) - b->get(idx);
|
||||
Real s = (Real)sum(abs(diff));
|
||||
maxVal = std::max(maxVal, s);
|
||||
}
|
||||
else if (a->getType() & ParticleDataBase::TypeInt) {
|
||||
const ParticleDataImpl<int> &av = *dynamic_cast<const ParticleDataImpl<int> *>(a);
|
||||
const ParticleDataImpl<int> &bv = *dynamic_cast<const ParticleDataImpl<int> *>(b);
|
||||
FOR_PARTS(av)
|
||||
{
|
||||
maxVal = std::max(maxVal, (double)fabs((double)av[idx] - bv[idx]));
|
||||
}
|
||||
}
|
||||
else if (a->getType() & ParticleDataBase::TypeVec3) {
|
||||
const ParticleDataImpl<Vec3> &av = *dynamic_cast<const ParticleDataImpl<Vec3> *>(a);
|
||||
const ParticleDataImpl<Vec3> &bv = *dynamic_cast<const ParticleDataImpl<Vec3> *>(b);
|
||||
FOR_PARTS(av)
|
||||
{
|
||||
double d = 0.;
|
||||
for (int c = 0; c < 3; ++c) {
|
||||
d += fabs((double)av[idx][c] - (double)bv[idx][c]);
|
||||
}
|
||||
maxVal = std::max(maxVal, d);
|
||||
}
|
||||
}
|
||||
else {
|
||||
errMsg("pdataMaxDiff: Grid Type is not supported (only Real, Vec3, int)");
|
||||
}
|
||||
|
||||
return maxVal;
|
||||
}
|
||||
Real pdataMaxDiff(const ParticleDataImpl<Real> *a, const ParticleDataImpl<Real> *b)
|
||||
{
|
||||
return getPdataMaxDiff(a, b);
|
||||
}
|
||||
static PyObject *_W_15(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
@@ -1531,8 +1507,8 @@ static PyObject *_W_15(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
PyObject *_retval = 0;
|
||||
{
|
||||
ArgLocker _lock;
|
||||
const ParticleDataBase *a = _args.getPtr<ParticleDataBase>("a", 0, &_lock);
|
||||
const ParticleDataBase *b = _args.getPtr<ParticleDataBase>("b", 1, &_lock);
|
||||
const ParticleDataImpl<Real> *a = _args.getPtr<ParticleDataImpl<Real>>("a", 0, &_lock);
|
||||
const ParticleDataImpl<Real> *b = _args.getPtr<ParticleDataImpl<Real>>("b", 1, &_lock);
|
||||
_retval = toPy(pdataMaxDiff(a, b));
|
||||
_args.check();
|
||||
}
|
||||
@@ -1552,6 +1528,76 @@ void PbRegister_pdataMaxDiff()
|
||||
}
|
||||
}
|
||||
|
||||
Real pdataMaxDiffInt(const ParticleDataImpl<int> *a, const ParticleDataImpl<int> *b)
|
||||
{
|
||||
return getPdataMaxDiff(a, b);
|
||||
}
|
||||
static PyObject *_W_16(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
FluidSolver *parent = _args.obtainParent();
|
||||
bool noTiming = _args.getOpt<bool>("notiming", -1, 0);
|
||||
pbPreparePlugin(parent, "pdataMaxDiffInt", !noTiming);
|
||||
PyObject *_retval = 0;
|
||||
{
|
||||
ArgLocker _lock;
|
||||
const ParticleDataImpl<int> *a = _args.getPtr<ParticleDataImpl<int>>("a", 0, &_lock);
|
||||
const ParticleDataImpl<int> *b = _args.getPtr<ParticleDataImpl<int>>("b", 1, &_lock);
|
||||
_retval = toPy(pdataMaxDiffInt(a, b));
|
||||
_args.check();
|
||||
}
|
||||
pbFinalizePlugin(parent, "pdataMaxDiffInt", !noTiming);
|
||||
return _retval;
|
||||
}
|
||||
catch (std::exception &e) {
|
||||
pbSetError("pdataMaxDiffInt", e.what());
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
static const Pb::Register _RP_pdataMaxDiffInt("", "pdataMaxDiffInt", _W_16);
|
||||
extern "C" {
|
||||
void PbRegister_pdataMaxDiffInt()
|
||||
{
|
||||
KEEP_UNUSED(_RP_pdataMaxDiffInt);
|
||||
}
|
||||
}
|
||||
|
||||
Real pdataMaxDiffVec3(const ParticleDataImpl<Vec3> *a, const ParticleDataImpl<Vec3> *b)
|
||||
{
|
||||
return getPdataMaxDiff(a, b);
|
||||
}
|
||||
static PyObject *_W_17(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
FluidSolver *parent = _args.obtainParent();
|
||||
bool noTiming = _args.getOpt<bool>("notiming", -1, 0);
|
||||
pbPreparePlugin(parent, "pdataMaxDiffVec3", !noTiming);
|
||||
PyObject *_retval = 0;
|
||||
{
|
||||
ArgLocker _lock;
|
||||
const ParticleDataImpl<Vec3> *a = _args.getPtr<ParticleDataImpl<Vec3>>("a", 0, &_lock);
|
||||
const ParticleDataImpl<Vec3> *b = _args.getPtr<ParticleDataImpl<Vec3>>("b", 1, &_lock);
|
||||
_retval = toPy(pdataMaxDiffVec3(a, b));
|
||||
_args.check();
|
||||
}
|
||||
pbFinalizePlugin(parent, "pdataMaxDiffVec3", !noTiming);
|
||||
return _retval;
|
||||
}
|
||||
catch (std::exception &e) {
|
||||
pbSetError("pdataMaxDiffVec3", e.what());
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
static const Pb::Register _RP_pdataMaxDiffVec3("", "pdataMaxDiffVec3", _W_17);
|
||||
extern "C" {
|
||||
void PbRegister_pdataMaxDiffVec3()
|
||||
{
|
||||
KEEP_UNUSED(_RP_pdataMaxDiffVec3);
|
||||
}
|
||||
}
|
||||
|
||||
//! calculate center of mass given density grid, for re-centering
|
||||
|
||||
Vec3 calcCenterOfMass(const Grid<Real> &density)
|
||||
@@ -1567,7 +1613,7 @@ Vec3 calcCenterOfMass(const Grid<Real> &density)
|
||||
p /= w;
|
||||
return p;
|
||||
}
|
||||
static PyObject *_W_16(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_18(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -1589,7 +1635,7 @@ static PyObject *_W_16(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
static const Pb::Register _RP_calcCenterOfMass("", "calcCenterOfMass", _W_16);
|
||||
static const Pb::Register _RP_calcCenterOfMass("", "calcCenterOfMass", _W_18);
|
||||
extern "C" {
|
||||
void PbRegister_calcCenterOfMass()
|
||||
{
|
||||
@@ -1789,7 +1835,7 @@ void updateFractions(const FlagGrid &flags,
|
||||
fractions.setConst(Vec3(0.));
|
||||
KnUpdateFractions(flags, phiObs, fractions, boundaryWidth, fracThreshold);
|
||||
}
|
||||
static PyObject *_W_17(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_19(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -1816,7 +1862,7 @@ static PyObject *_W_17(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
static const Pb::Register _RP_updateFractions("", "updateFractions", _W_17);
|
||||
static const Pb::Register _RP_updateFractions("", "updateFractions", _W_19);
|
||||
extern "C" {
|
||||
void PbRegister_updateFractions()
|
||||
{
|
||||
@@ -1968,7 +2014,7 @@ void setObstacleFlags(FlagGrid &flags,
|
||||
{
|
||||
KnUpdateFlagsObs(flags, fractions, phiObs, phiOut, phiIn, boundaryWidth);
|
||||
}
|
||||
static PyObject *_W_18(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_20(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -1996,7 +2042,7 @@ static PyObject *_W_18(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
static const Pb::Register _RP_setObstacleFlags("", "setObstacleFlags", _W_18);
|
||||
static const Pb::Register _RP_setObstacleFlags("", "setObstacleFlags", _W_20);
|
||||
extern "C" {
|
||||
void PbRegister_setObstacleFlags()
|
||||
{
|
||||
@@ -2113,7 +2159,7 @@ void initVortexVelocity(const Grid<Real> &phiObs,
|
||||
{
|
||||
kninitVortexVelocity(phiObs, vel, center, radius);
|
||||
}
|
||||
static PyObject *_W_19(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_21(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -2139,7 +2185,7 @@ static PyObject *_W_19(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
static const Pb::Register _RP_initVortexVelocity("", "initVortexVelocity", _W_19);
|
||||
static const Pb::Register _RP_initVortexVelocity("", "initVortexVelocity", _W_21);
|
||||
extern "C" {
|
||||
void PbRegister_initVortexVelocity()
|
||||
{
|
||||
@@ -2465,7 +2511,7 @@ int blurMacGrid(MACGrid &oG, MACGrid &tG, float si)
|
||||
}
|
||||
return tmGK.mDim;
|
||||
}
|
||||
static PyObject *_W_20(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_22(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -2489,7 +2535,7 @@ static PyObject *_W_20(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
static const Pb::Register _RP_blurMacGrid("", "blurMacGrid", _W_20);
|
||||
static const Pb::Register _RP_blurMacGrid("", "blurMacGrid", _W_22);
|
||||
extern "C" {
|
||||
void PbRegister_blurMacGrid()
|
||||
{
|
||||
@@ -2501,7 +2547,7 @@ int blurRealGrid(Grid<Real> &oG, Grid<Real> &tG, float si)
|
||||
{
|
||||
return blurGrid<Real>(oG, tG, si);
|
||||
}
|
||||
static PyObject *_W_21(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
static PyObject *_W_23(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
{
|
||||
try {
|
||||
PbArgs _args(_linargs, _kwds);
|
||||
@@ -2525,7 +2571,7 @@ static PyObject *_W_21(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
static const Pb::Register _RP_blurRealGrid("", "blurRealGrid", _W_21);
|
||||
static const Pb::Register _RP_blurRealGrid("", "blurRealGrid", _W_23);
|
||||
extern "C" {
|
||||
void PbRegister_blurRealGrid()
|
||||
{
|
||||
|
@@ -111,6 +111,8 @@ extern void PbRegister_checkSymmetryVec3();
|
||||
extern void PbRegister_projectPpmFull();
|
||||
extern void PbRegister_addTestParts();
|
||||
extern void PbRegister_pdataMaxDiff();
|
||||
extern void PbRegister_pdataMaxDiffInt();
|
||||
extern void PbRegister_pdataMaxDiffVec3();
|
||||
extern void PbRegister_calcCenterOfMass();
|
||||
extern void PbRegister_updateFractions();
|
||||
extern void PbRegister_setObstacleFlags();
|
||||
@@ -306,6 +308,8 @@ void MantaEnsureRegistration()
|
||||
PbRegister_projectPpmFull();
|
||||
PbRegister_addTestParts();
|
||||
PbRegister_pdataMaxDiff();
|
||||
PbRegister_pdataMaxDiffInt();
|
||||
PbRegister_pdataMaxDiffVec3();
|
||||
PbRegister_calcCenterOfMass();
|
||||
PbRegister_updateFractions();
|
||||
PbRegister_setObstacleFlags();
|
||||
|
@@ -153,7 +153,6 @@ static void clg_str_reserve(CLogStringBuf *cstr, const uint len)
|
||||
cstr->data = data;
|
||||
cstr->is_alloc = true;
|
||||
}
|
||||
cstr->len_alloc = len;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,26 +178,34 @@ static void clg_str_vappendf(CLogStringBuf *cstr, const char *fmt, va_list args)
|
||||
{
|
||||
/* Use limit because windows may use '-1' for a formatting error. */
|
||||
const uint len_max = 65535;
|
||||
uint len_avail = (cstr->len_alloc - cstr->len);
|
||||
if (len_avail == 0) {
|
||||
len_avail = CLOG_BUF_LEN_INIT;
|
||||
clg_str_reserve(cstr, len_avail);
|
||||
}
|
||||
while (true) {
|
||||
uint len_avail = cstr->len_alloc - cstr->len;
|
||||
|
||||
va_list args_cpy;
|
||||
va_copy(args_cpy, args);
|
||||
int retval = vsnprintf(cstr->data + cstr->len, len_avail, fmt, args_cpy);
|
||||
va_end(args_cpy);
|
||||
if (retval != -1) {
|
||||
cstr->len += retval;
|
||||
|
||||
if (retval < 0) {
|
||||
/* Some encoding error happened, not much we can do here, besides skipping/cancelling this
|
||||
* message. */
|
||||
break;
|
||||
}
|
||||
else if ((uint)retval <= len_avail) {
|
||||
/* Copy was successful. */
|
||||
cstr->len += (uint)retval;
|
||||
break;
|
||||
}
|
||||
else {
|
||||
len_avail *= 2;
|
||||
if (len_avail >= len_max) {
|
||||
/* vsnprintf was not successful, due to lack of allocated space, retval contains expected
|
||||
* length of the formated string, use it to allocate required amount of memory. */
|
||||
uint len_alloc = cstr->len + (uint)retval;
|
||||
if (len_alloc >= len_max) {
|
||||
/* Safe upper-limit, just in case... */
|
||||
break;
|
||||
}
|
||||
clg_str_reserve(cstr, len_avail);
|
||||
clg_str_reserve(cstr, len_alloc);
|
||||
len_avail = cstr->len_alloc - cstr->len;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -76,6 +76,9 @@ struct BlenderCamera {
|
||||
int full_width;
|
||||
int full_height;
|
||||
|
||||
int render_width;
|
||||
int render_height;
|
||||
|
||||
BoundBox2D border;
|
||||
BoundBox2D pano_viewplane;
|
||||
BoundBox2D viewport_camera_border;
|
||||
@@ -126,8 +129,10 @@ static void blender_camera_init(BlenderCamera *bcam, BL::RenderSettings &b_rende
|
||||
bcam->matrix = transform_identity();
|
||||
|
||||
/* render resolution */
|
||||
bcam->full_width = render_resolution_x(b_render);
|
||||
bcam->full_height = render_resolution_y(b_render);
|
||||
bcam->render_width = render_resolution_x(b_render);
|
||||
bcam->render_height = render_resolution_y(b_render);
|
||||
bcam->full_width = bcam->render_width;
|
||||
bcam->full_height = bcam->render_height;
|
||||
}
|
||||
|
||||
static float blender_camera_focal_distance(BL::RenderEngine &b_engine,
|
||||
@@ -398,8 +403,8 @@ static void blender_camera_sync(Camera *cam,
|
||||
|
||||
/* panorama sensor */
|
||||
if (bcam->type == CAMERA_PANORAMA && bcam->panorama_type == PANORAMA_FISHEYE_EQUISOLID) {
|
||||
float fit_xratio = (float)bcam->full_width * bcam->pixelaspect.x;
|
||||
float fit_yratio = (float)bcam->full_height * bcam->pixelaspect.y;
|
||||
float fit_xratio = (float)bcam->render_width * bcam->pixelaspect.x;
|
||||
float fit_yratio = (float)bcam->render_height * bcam->pixelaspect.y;
|
||||
bool horizontal_fit;
|
||||
float sensor_size;
|
||||
|
||||
|
@@ -492,27 +492,15 @@ void BlenderSession::render(BL::Depsgraph &b_depsgraph_)
|
||||
/* Update denoising parameters. */
|
||||
session->set_denoising(session_params.denoising);
|
||||
|
||||
bool use_denoising = session_params.denoising.use;
|
||||
bool store_denoising_passes = session_params.denoising.store_passes;
|
||||
|
||||
buffer_params.denoising_data_pass = use_denoising || store_denoising_passes;
|
||||
buffer_params.denoising_clean_pass = (scene->film->denoising_flags & DENOISING_CLEAN_ALL_PASSES);
|
||||
buffer_params.denoising_prefiltered_pass = store_denoising_passes &&
|
||||
session_params.denoising.type == DENOISER_NLM;
|
||||
|
||||
scene->film->denoising_data_pass = buffer_params.denoising_data_pass;
|
||||
scene->film->denoising_clean_pass = buffer_params.denoising_clean_pass;
|
||||
scene->film->denoising_prefiltered_pass = buffer_params.denoising_prefiltered_pass;
|
||||
|
||||
/* Add passes */
|
||||
/* Compute render passes and film settings. */
|
||||
vector<Pass> passes = sync->sync_render_passes(
|
||||
b_rlay, b_view_layer, session_params.adaptive_sampling, session_params.denoising);
|
||||
buffer_params.passes = passes;
|
||||
|
||||
scene->film->pass_alpha_threshold = b_view_layer.pass_alpha_threshold();
|
||||
scene->film->tag_passes_update(scene, passes);
|
||||
scene->film->tag_update(scene);
|
||||
scene->integrator->tag_update(scene);
|
||||
/* Set buffer params, using film settings from sync_render_passes. */
|
||||
buffer_params.passes = passes;
|
||||
buffer_params.denoising_data_pass = scene->film->denoising_data_pass;
|
||||
buffer_params.denoising_clean_pass = scene->film->denoising_clean_pass;
|
||||
buffer_params.denoising_prefiltered_pass = scene->film->denoising_prefiltered_pass;
|
||||
|
||||
BL::RenderResult::views_iterator b_view_iter;
|
||||
|
||||
|
@@ -697,6 +697,16 @@ vector<Pass> BlenderSync::sync_render_passes(BL::RenderLayer &b_rlay,
|
||||
}
|
||||
RNA_END;
|
||||
|
||||
scene->film->denoising_data_pass = denoising.use || denoising.store_passes;
|
||||
scene->film->denoising_clean_pass = (scene->film->denoising_flags & DENOISING_CLEAN_ALL_PASSES);
|
||||
scene->film->denoising_prefiltered_pass = denoising.store_passes &&
|
||||
denoising.type == DENOISER_NLM;
|
||||
|
||||
scene->film->pass_alpha_threshold = b_view_layer.pass_alpha_threshold();
|
||||
scene->film->tag_passes_update(scene, passes);
|
||||
scene->film->tag_update(scene);
|
||||
scene->integrator->tag_update(scene);
|
||||
|
||||
return passes;
|
||||
}
|
||||
|
||||
|
@@ -383,11 +383,24 @@ string CUDADevice::compile_kernel(const DeviceRequestedFeatures &requested_featu
|
||||
}
|
||||
}
|
||||
|
||||
const string ptx = path_get(string_printf("lib/%s_compute_%d%d.ptx", name, major, minor));
|
||||
VLOG(1) << "Testing for pre-compiled kernel " << ptx << ".";
|
||||
if (path_exists(ptx)) {
|
||||
VLOG(1) << "Using precompiled kernel.";
|
||||
return ptx;
|
||||
/* The driver can JIT-compile PTX generated for older generations, so find the closest one. */
|
||||
int ptx_major = major, ptx_minor = minor;
|
||||
while (ptx_major >= 3) {
|
||||
const string ptx = path_get(
|
||||
string_printf("lib/%s_compute_%d%d.ptx", name, ptx_major, ptx_minor));
|
||||
VLOG(1) << "Testing for pre-compiled kernel " << ptx << ".";
|
||||
if (path_exists(ptx)) {
|
||||
VLOG(1) << "Using precompiled kernel.";
|
||||
return ptx;
|
||||
}
|
||||
|
||||
if (ptx_minor > 0) {
|
||||
ptx_minor--;
|
||||
}
|
||||
else {
|
||||
ptx_major--;
|
||||
ptx_minor = 9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -539,7 +539,7 @@ if(WITH_CYCLES_DEVICE_OPTIX AND WITH_CYCLES_CUDA_BINARIES)
|
||||
${SRC_UTIL_HEADERS}
|
||||
COMMAND ${CUBIN_CC_ENV}
|
||||
"$<TARGET_FILE:cycles_cubin_cc>"
|
||||
-target 30
|
||||
-target 50
|
||||
-ptx
|
||||
-i ${CMAKE_CURRENT_SOURCE_DIR}/${input}
|
||||
${cuda_flags}
|
||||
@@ -563,7 +563,7 @@ if(WITH_CYCLES_DEVICE_OPTIX AND WITH_CYCLES_CUDA_BINARIES)
|
||||
COMMAND
|
||||
${CUDA_NVCC_EXECUTABLE}
|
||||
--ptx
|
||||
-arch=sm_30
|
||||
-arch=sm_50
|
||||
${cuda_flags}
|
||||
${input}
|
||||
WORKING_DIRECTORY
|
||||
|
@@ -665,11 +665,9 @@ ccl_device void kernel_path_trace(
|
||||
|
||||
kernel_path_trace_setup(kg, sample, x, y, &rng_hash, &ray);
|
||||
|
||||
# ifndef __KERNEL_OPTIX__
|
||||
if (ray.t == 0.0f) {
|
||||
return;
|
||||
}
|
||||
# endif
|
||||
|
||||
/* Initialize state. */
|
||||
float3 throughput = make_float3(1.0f, 1.0f, 1.0f);
|
||||
|
@@ -77,7 +77,7 @@ ccl_device_inline float4 svm_image_texture_read(KernelGlobals *kg,
|
||||
return make_float4(f, f, f, 1.0f);
|
||||
}
|
||||
/* Byte */
|
||||
#ifdef cl_khr_fp16
|
||||
#ifdef __KERNEL_CL_KHR_FP16__
|
||||
/* half and half4 are optional in OpenCL */
|
||||
else if (texture_type == IMAGE_DATA_TYPE_HALF) {
|
||||
float f = tex_fetch(half, info, offset);
|
||||
|
@@ -204,8 +204,8 @@ color sky_radiance_nishita(vector dir, float nishita_data[10], string filename)
|
||||
mul;
|
||||
}
|
||||
}
|
||||
/* convert to RGB and adjust strength */
|
||||
return xyz_to_rgb(xyz[0], xyz[1], xyz[2]) * 120000.0;
|
||||
/* convert to RGB */
|
||||
return xyz_to_rgb(xyz[0], xyz[1], xyz[2]);
|
||||
}
|
||||
|
||||
shader node_sky_texture(
|
||||
|
@@ -205,8 +205,8 @@ ccl_device float3 sky_radiance_nishita(KernelGlobals *kg,
|
||||
}
|
||||
}
|
||||
|
||||
/* convert to rgb and adjust strength */
|
||||
return xyz_to_rgb(kg, xyz) * 120000.0f;
|
||||
/* convert to RGB */
|
||||
return xyz_to_rgb(kg, xyz);
|
||||
}
|
||||
|
||||
ccl_device void svm_node_tex_sky(
|
||||
|
@@ -798,7 +798,7 @@ NODE_DEFINE(SkyTextureNode)
|
||||
SOCKET_BOOLEAN(sun_disc, "Sun Disc", true);
|
||||
SOCKET_FLOAT(sun_size, "Sun Size", 0.009512f);
|
||||
SOCKET_FLOAT(sun_intensity, "Sun Intensity", 1.0f);
|
||||
SOCKET_FLOAT(sun_elevation, "Sun Elevation", M_PI_2_F);
|
||||
SOCKET_FLOAT(sun_elevation, "Sun Elevation", 15.0f * M_PI_F / 180.0f);
|
||||
SOCKET_FLOAT(sun_rotation, "Sun Rotation", 0.0f);
|
||||
SOCKET_FLOAT(altitude, "Altitude", 1.0f);
|
||||
SOCKET_FLOAT(air_density, "Air", 1.0f);
|
||||
|
@@ -100,6 +100,7 @@ set(SRC_HEADERS
|
||||
util_simd.h
|
||||
util_avxf.h
|
||||
util_avxb.h
|
||||
util_avxi.h
|
||||
util_semaphore.h
|
||||
util_sseb.h
|
||||
util_ssef.h
|
||||
|
@@ -429,6 +429,7 @@ if(WITH_XR_OPENXR)
|
||||
GHOST_IXrContext.h
|
||||
intern/GHOST_IXrGraphicsBinding.h
|
||||
intern/GHOST_XrContext.h
|
||||
intern/GHOST_XrException.h
|
||||
intern/GHOST_XrSession.h
|
||||
intern/GHOST_XrSwapchain.h
|
||||
intern/GHOST_Xr_intern.h
|
||||
|
@@ -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
|
||||
|
@@ -180,6 +180,10 @@ GHOST_WindowWayland::GHOST_WindowWayland(GHOST_SystemWayland *system,
|
||||
wl_surface_commit(w->surface);
|
||||
wl_display_roundtrip(m_system->display());
|
||||
|
||||
#ifdef GHOST_OPENGL_ALPHA
|
||||
setOpaque();
|
||||
#endif
|
||||
|
||||
setState(state);
|
||||
|
||||
setTitle(title);
|
||||
@@ -214,6 +218,10 @@ GHOST_TSuccess GHOST_WindowWayland::deactivate()
|
||||
|
||||
GHOST_TSuccess GHOST_WindowWayland::notify_size()
|
||||
{
|
||||
#ifdef GHOST_OPENGL_ALPHA
|
||||
setOpaque();
|
||||
#endif
|
||||
|
||||
return m_system->pushEvent(
|
||||
new GHOST_Event(m_system->getMilliSeconds(), GHOST_kEventWindowSize, this));
|
||||
}
|
||||
@@ -385,6 +393,19 @@ bool GHOST_WindowWayland::isDialog() const
|
||||
return w->is_dialog;
|
||||
}
|
||||
|
||||
#ifdef GHOST_OPENGL_ALPHA
|
||||
void GHOST_WindowWayland::setOpaque() const
|
||||
{
|
||||
struct wl_region *region;
|
||||
|
||||
/* Make the window opaque. */
|
||||
region = wl_compositor_create_region(m_system->compositor());
|
||||
wl_region_add(region, 0, 0, w->width, w->height);
|
||||
wl_surface_set_opaque_region(w->surface, region);
|
||||
wl_region_destroy(region);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* \param type The type of rendering context create.
|
||||
* \return Indication of success.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user