Compare commits

..

981 Commits

Author SHA1 Message Date
ed32db06c1 Merge branch 'master' into fluid-mantaflow 2019-12-16 15:05:04 +01:00
451400f6e6 Mantaflow: Fixed more issues raised in part 6 of the review (D3855)
Mostly renaming from manta to fluid
2019-12-16 15:02:32 +01:00
6ed9eab010 Mantaflow: Post merge fixes 2019-12-15 22:41:56 +01:00
75eb9b93b3 Merge branch 'master' into fluid-mantaflow 2019-12-15 22:36:01 +01:00
d2dfaff2b6 Mantaflow: Cleaned up warnings 2019-12-15 22:26:00 +01:00
09aa3439b8 Mantaflow: Fix even more names, ie fluid instead of smoke 2019-12-15 21:57:18 +01:00
484a2803e6 Mantaflow: Fix more names, ie fluid instead of smoke 2019-12-15 21:45:50 +01:00
6f17b4cc5e Mantaflow: Fix wrong include in new overlay extras 2019-12-15 21:22:08 +01:00
2cc63752fd Mantaflow: Clean up waveletNoiseTile.bin 2019-12-12 22:50:17 +01:00
50256da50a Merge branch 'master' into fluid-mantaflow 2019-12-12 22:46:00 +01:00
6ca148dad0 Mantaflow: Minor sanity checks 2019-12-12 22:34:52 +01:00
57d25f4f9b Mantaflow: Updated manta source files 2019-12-12 22:33:00 +01:00
c83447cdf4 Mantaflow: Mantaflow is now not an experimental feature 2019-12-12 17:53:44 +01:00
36d309cff7 Mantaflow: Renaming from manta to fluid 2019-12-12 14:12:11 +01:00
10bc043c99 Mantaflow: Fix for guiding res pointer 2019-12-12 02:46:47 +01:00
a3e2b60f93 Mantaflow: Mantaflow is now an experimental feature 2019-12-12 02:46:05 +01:00
b75c38ee83 Mantaflow: Fixed more issues raised in part 11 of the review (D3861) 2019-12-11 17:41:38 +01:00
d9328f69b8 Mantaflow: Fixed more issues raised in part 2 of the review (D3851) 2019-12-11 17:33:46 +01:00
6b62eb17a0 Mantaflow: Clang format previous commit 2019-12-11 17:29:47 +01:00
3d4e5a89eb Mantaflow: Fixed more issues raised in part 8 of the review (D3857) 2019-12-11 17:25:31 +01:00
df747de1fc Mantaflow: Clang format previous commit 2019-12-11 16:03:13 +01:00
5d009982b1 Mantaflow: Fixed issues raised in part 9 of the review (D3858) 2019-12-11 16:00:46 +01:00
c98a82b7d5 Mantaflow: Fixed issues raised in part 11 of the review (D3861) 2019-12-11 12:36:06 +01:00
a3328a8699 Mantaflow: Fixed issues raised in part 10 of the review (D3860) 2019-12-11 11:24:13 +01:00
c54fd66c0a Mantaflow: Fixed more issues raised in part 8 of the review (D3857) 2019-12-11 10:24:48 +01:00
63b0377e96 Mantaflow: Fixed issues raised in part 8 of the review (D3857) 2019-12-11 10:07:14 +01:00
2fcf705a17 Mantaflow: Fixed issues raised in part 7 of the review (D3856) 2019-12-10 22:53:14 +01:00
881b90b922 Mantaflow: Fixed issues raised in part 6 of the review (D3855) 2019-12-10 22:02:13 +01:00
f4db26f01b Mantaflow: Fixed issues raised in part 3 of the review (D3852) 2019-12-10 21:44:36 +01:00
82d75a46ce Mantaflow: Fixed issues raised in part 2 of the review (D3851) 2019-12-10 18:25:17 +01:00
fc557cdd13 Mantaflow: Fixed issues raised in part 1 of the review (D3850) 2019-12-10 15:35:30 +01:00
e96877c8b7 Mantaflow: Flame vorticity fix 2019-12-01 22:29:18 +01:00
6b7b619f06 Mantaflow: Cleaned up extern C in implementation file
No need to duplicate it, it is already declared in header file
2019-11-27 11:39:33 +01:00
c179a13a4b Merge branch 'master' into fluid-mantaflow 2019-11-27 11:17:58 +01:00
0ca44974c9 Mantaflow: Fix for bake not being triggered when executed for the first time 2019-11-26 23:21:36 +01:00
95e9c164a9 Mantaflow: Cleanup in smoke script 2019-11-26 22:02:02 +01:00
c7c92ca63b Mantaflow: Improved fluid inflow setup 2019-11-26 21:50:47 +01:00
5628318fb3 Mantaflow: Added Bake all functionality
The new option for cache type final includes the bake all operator
2019-11-26 21:50:09 +01:00
bd36ad9171 Mantaflow: Cleanup and sanity checks in fluid scripts 2019-11-26 21:49:07 +01:00
37ae8d65fa Mantaflow: Cleaned up pointer exchange 2019-11-26 21:41:07 +01:00
730c829b25 Mantaflow: Cleaned up smoke noise code 2019-11-25 21:36:06 +01:00
aaa0cecb2c Mantaflow: Added flame vorticity functionality 2019-11-25 21:22:32 +01:00
6feca2c932 Mantaflow: Added cache reset functionality
Particularly important for cache replay mode
2019-11-25 21:10:38 +01:00
355107ce5e Mantaflow: Updated Manta pointer exchange setup 2019-11-25 20:45:13 +01:00
b0b92717bb Mantaflow: Fix solid mode drawing issue for liquid domains 2019-11-23 00:17:18 +01:00
0109c52ea7 Mantaflow: Small adjustments to surface-distance parameter
Better default values
2019-11-22 13:02:38 +01:00
20933a1d44 Mantaflow: Updated build setup
Moved Manta source files to extern/ and adapted the updater script
2019-11-21 23:00:22 +01:00
b0f221bda1 Fix T71583: Liquid domains with missing origin offset 2019-11-21 15:33:56 +01:00
baceb91552 Mantaflow: Removed cache reset setup for now 2019-11-21 10:33:22 +01:00
c73aaf6af2 Merge branch 'master' into fluid-mantaflow 2019-11-20 18:49:01 +01:00
a8a41cfdf2 Mantaflow: Cleanup with clang-format 2019-11-20 18:47:02 +01:00
2e863df3a9 Merge branch 'master' into fluid-mantaflow 2019-11-20 14:41:16 +01:00
e1aa388135 Mantaflow: Big update for liquid simulations
Support for second order obstacles, additional parameters to control liquid behavior (e.g. flip ratio, max/min timesteps)
2019-11-20 14:39:22 +01:00
13124fa84e Mantaflow: Added min/max timestep parameters
These parameters will allow the user to better control how long bake jobs may/should take.
2019-11-20 13:05:53 +01:00
fcb49d8029 Mantaflow: Fix for memory deallocation
Mesh was being freed slightly too early. Might have been the cause of very random crashes.
2019-11-20 13:00:06 +01:00
0ea952df43 Mantaflow: Sanity check required when reading older files 2019-11-20 12:54:31 +01:00
98d7f35087 Mantaflow: Fix for Eevee attempting to draw volumes into liquid domains 2019-11-20 12:45:42 +01:00
3e8cec8d2b Mantaflow: Updated manta source updater script 2019-11-20 12:42:27 +01:00
5c03ccfc06 Mantaflow: Updated manta pp files 2019-11-20 12:41:25 +01:00
9b098e340b Mantaflow: Reset all cache pause frames fields when data bake is freed
Data Free was only resetting its own pause frame even though all bakes get deleted during this operation.
2019-11-08 12:47:08 +01:00
1cd70c4f09 Merge branch 'master' into fluid-mantaflow 2019-11-08 12:24:25 +01:00
ccbf9ea490 Mantaflow: Optimization for parallel tasks
Default value in minimum iter per thread was preventing multithreading to kick in
2019-11-01 16:49:26 +01:00
998c8d18f2 Mantaflow: Added first version of new cache system
Refactored caching code to make it compatible with new replay option
2019-10-19 23:25:50 +02:00
c43553391a Mantaflow: Updated manta script calls
Refactoring and now using the new boundaryWidth optimization in fillHoles
2019-10-09 19:02:35 +02:00
a4a825e0fc Mantaflow: Updated manta pp files 2019-10-09 18:53:27 +02:00
db822888ef Mantaflow: Renamed variables to match new struct names
Variable names were referring to SmokeFlowSettings and SmokeCollisionSettings which have been renamed to Manta...
2019-10-08 16:36:56 +02:00
28c66e118e Fix broken manta update script 2019-10-06 23:09:55 +02:00
5419b7ab92 Updated manta update script
Use clang-format now after copying preprocessed files
2019-10-06 22:13:41 +02:00
4f338388d9 Applied clang-format to manta preprocessed source files
Just for better readability, files remain read-only, i.e. editing in manta repo only
2019-10-06 22:12:14 +02:00
a937bb8b0d Mantaflow: Fix crash when freeing bake with unknown cache directory 2019-09-27 17:38:42 +02:00
114783000d Fix T70175: Mantaflow not using subframes for particle emitters in Gas sim
Fixes issue with particle emitter not considering subframes
2019-09-27 11:45:52 +02:00
0d31127d6c Mantaflow: Fixes issue with missing materials 2019-09-26 15:06:57 +02:00
26afd3e99d Merge branch 'master' into fluid-mantaflow 2019-09-26 13:00:15 +02:00
2a789871e2 Merge branch 'master' into fluid-mantaflow 2019-09-25 15:02:47 +02:00
f1c3777fb9 Mantaflow: Fix for voxel indicator cube in domain object
Voxel indicator cube was not considering rotations of domain object
2019-09-25 11:21:39 +02:00
b333870203 Mantaflow: Fix for multiple modifiers issue
Some old smoke names were not renamed correctly
2019-09-20 15:36:07 +02:00
26635d7b6d Mantaflow: Fix for versioning issue
Fixes crash with old fluid (Elbeem) modifier
2019-09-02 20:48:52 +02:00
3377b77491 Mantaflow: Fix for noise density issue
Emission values for noise need to be upscaled with upres factor
2019-09-02 20:47:19 +02:00
552149d8f5 Mantaflow: Fix warning in rna_manta.c 2019-08-28 01:26:35 +02:00
d62f6de0a4 Mantaflow: Remove particle type additions from previous commit
Generated warning from bpy_rna.c should be safe to ignore for now
2019-08-26 01:34:21 +02:00
cd9a54c012 Merge branch 'master' into fluid-mantaflow 2019-08-26 00:50:08 +02:00
052f0c68a6 Mantaflow: Small fixes for a clean console 2019-08-26 00:09:06 +02:00
8beba05ecc Merge branch 'master' into fluid-mantaflow 2019-08-18 22:53:13 +02:00
a97d7a829f Mantaflow: Addressed all issues from the review / diff 2019-08-18 21:53:07 +02:00
02a94d6a4c Merge branch 'master' into fluid-mantaflow 2019-07-23 18:09:17 +02:00
eefef6179d Mantaflow: Updated Mantaflow sources files 2019-07-23 18:01:09 +02:00
e08ae99652 Merge branch 'master' into fluid-mantaflow 2019-07-18 22:20:20 +02:00
a39a724187 Mantaflow: Code cleanup in UI 2019-07-18 15:13:30 +02:00
aa6d630144 Mantaflow: Update for adaptive domain
Fixes issues with smoke moving not uniformly when domain size changes.
2019-07-18 15:12:55 +02:00
9a964c3f34 Mantaflow: More manta / smoke renaming and added some sanity checks for the adaptive domain 2019-06-23 17:51:05 +02:00
c2b72102bd Mantaflow: Removed old liquid code completely
rip
2019-06-19 17:05:39 +02:00
aa1e9f2e53 Mantaflow: Removed old smoke code completely
rip
2019-06-18 16:36:24 +02:00
41a0e7a5de Mantaflow: Applied Nils big rename patches
Replaces occurences of smoke with manta
2019-06-18 16:20:24 +02:00
603894cc4d Mantaflow: Fix caching bug from master merge review 2019-05-27 11:29:45 +02:00
0442170995 Mantaflow: Cleanup Mantaflow source files
No need to have numpy bindings in Blender right now
2019-05-27 11:27:46 +02:00
232ec3132d Mantaflow: Moved smoke dissolve function from Blender C code to internal Mantaflow code 2019-05-27 11:26:41 +02:00
7842721f4c Fix T65043: Make sure that final mesh geometry gets initialized 2019-05-23 22:04:40 +02:00
f82717a061 Mantaflow: Small fix related to mesh domain object and post merge cleanup 2019-05-22 00:25:27 +02:00
c2fe19cf88 Merge branch 'master' into fluid-mantaflow 2019-05-21 22:26:45 +02:00
52501be2c2 Mantaflow: Post merge fixes 2019-05-19 22:01:35 +02:00
71b7e996d4 Merge branch 'master' into fluid-mantaflow 2019-05-19 21:07:09 +02:00
ebb639def2 Mantaflow: Small UI fix
effector_weights function had deprecated arguments
2019-05-19 21:05:20 +02:00
bfb2f4db1a Mantaflow: Implemented adaptive domain for manta smoke
This functionality exists in the vanilla build already but had to be disabled in the manta build. Now it is back.
2019-05-19 21:04:04 +02:00
66698b9f37 Mantaflow: Updated UI for domain border behaviour
Options for domain borders are now in a separate panel
2019-05-19 19:34:40 +02:00
d06aedc245 Mantaflow: Fix for smoke emission from particles 2019-05-10 19:59:32 +02:00
09a3217c96 Mantaflow: Updated manta pp files and added update script 2019-05-10 11:56:56 +02:00
b9ca115d50 Merge branch 'master' into fluid-mantaflow 2019-05-04 15:55:59 +02:00
773647d319 Merge 'master' into 'fluid-mantaflow'
Conflicts:
	release/scripts/startup/bl_ui/properties_physics_common.py
	release/scripts/startup/bl_ui/properties_physics_smoke.py
	source/blender/blenkernel/CMakeLists.txt
	source/blender/blenkernel/intern/particle_system.c
	source/blender/blenkernel/intern/pointcache.c
	source/blender/blenkernel/intern/smoke.c
	source/blender/editors/physics/CMakeLists.txt
	source/blender/makesdna/DNA_smoke_types.h
	source/blender/modifiers/intern/MOD_smoke.c
2019-05-04 15:55:17 +02:00
1ed8eaa348 Merge 'master' into 'fluid-mantaflow' 2019-05-04 12:36:02 +02:00
432f9da43f Merge 'master' into 'fluid-mantaflow'
Conflicts:
	build_files/cmake/macros.cmake
	intern/smoke/CMakeLists.txt
	source/blender/blenkernel/CMakeLists.txt
	source/blender/blenkernel/intern/smoke.c
	source/blender/draw/engines/eevee/eevee_volumes.c
2019-05-04 12:35:31 +02:00
723cc85423 Mantaflow: Fixes small issue with levelset
Minor change in levelset generation and added sanity check for flowsflags
2019-04-06 18:33:12 +02:00
ac540f0692 Merge branch 'smokeTypes' into smokeC 2019-04-06 18:25:33 +02:00
3c00523eaa Merge branch 'rnaSmoke' into smokeTypes 2019-04-06 18:25:12 +02:00
2d438ae53e Merge branch 'particleSystem' into rnaSmoke 2019-04-06 18:24:49 +02:00
95b9766c17 Merge branch 'bakeConfig' into particleSystem 2019-04-06 18:24:34 +02:00
a7cf4cccf0 Merge branch 'sourceUpdate' into bakeConfig 2019-04-06 18:24:18 +02:00
697b8f1bb8 Merge branch 'internUpdate' into sourceUpdate 2019-04-06 18:23:42 +02:00
7104d1311f Merge branch 'buildConfig' into internUpdate 2019-04-06 18:23:29 +02:00
90f3d5d851 Merge branch 'pythonScripts' into buildConfig 2019-04-06 18:21:38 +02:00
809443ee6f Merge branch 'mantaWrapper' into pythonScripts 2019-04-06 18:20:19 +02:00
6cf9f1e525 Mantaflow: Cleanup debug output and some refactoring
No need to have huge debug output enabled
2019-04-06 18:14:53 +02:00
c1af4f849f Merge branch 'fluid-mantaflow' into smokeC 2019-04-06 17:08:04 +02:00
0756286ee1 Mantaflow: Updated smoke.c to let mantaflow side handle inflow application
Write inflow into separate inflow grids instead of writing directly into simulation grids
2019-04-06 00:00:16 +02:00
1960703a3b Merge branch 'smokeTypes' into smokeC 2019-04-05 23:54:30 +02:00
0be2660313 Mantaflow: Updates to variable names in smoke domain settings
Unused padding variables now use underscore in variable name
2019-04-05 23:54:06 +02:00
e001c3d534 Merge branch 'rnaSmoke' into smokeTypes 2019-04-05 23:48:07 +02:00
a261b850f1 Mantaflow: Minor update in smoke rna
Added const to return type to silence some warnings
2019-04-05 23:47:42 +02:00
a2abfcbfc1 Merge branch 'particleSystem' into rnaSmoke 2019-04-05 23:44:36 +02:00
4331add63b Mantaflow: Updated particle system to use newer flags and functions
Manta code in particle system needs to use updated flags as well
2019-04-05 23:42:12 +02:00
30a29660df Merge branch 'bakeConfig' into particleSystem 2019-04-05 23:37:30 +02:00
a71f1dec8f Mantaflow: Updated manta bake job setup
Bake jobs now lock the UI completely
2019-04-05 23:34:42 +02:00
319ce72c3a Merge branch 'sourceUpdate' into bakeConfig 2019-04-05 23:23:28 +02:00
9d40d0ad2e Mantaflow: Smaller update for draw engine code
Mainly adjusted some flags to work with manta
2019-04-05 23:22:53 +02:00
305bedc9d1 Merge branch 'internUpdate' into sourceUpdate 2019-04-05 23:18:32 +02:00
f9a7a90557 Merge branch 'buildConfig' into internUpdate 2019-04-05 23:17:05 +02:00
9159d9bebc Merge branch 'pythonScripts' into buildConfig 2019-04-05 23:04:56 +02:00
f75704033c Mantaflow: Updated fluid UI to handle locked UI during bake
Since bake locks the UI it needs to show a hint on how to pause / cancel the bake job
2019-04-05 23:04:09 +02:00
7ad431ff0a Merge branch 'mantaWrapper' into pythonScripts 2019-04-05 23:01:34 +02:00
c3ba70bbae Mantaflow: Updated fluid wrapper and script files
Includes setup in which inflow is applied on mantaflow side
2019-04-05 22:59:43 +02:00
9eeaf30357 Merge branch 'mantaFiles' into mantaWrapper 2019-04-05 21:45:46 +02:00
dc70424faa Mantaflow: Updated manta preprocessed files
New pp files with updated init plugin
2019-04-05 21:38:12 +02:00
f701c6344d Merge branch 'smokeTypes' into smokeC 2019-03-26 21:05:16 +01:00
f33519945c Merge branch 'rnaSmoke' into smokeTypes 2019-03-26 20:44:00 +01:00
a38c14aecb Merge branch 'particleSystem' into rnaSmoke 2019-03-26 20:04:36 +01:00
27b26f6b1c Merge branch 'bakeConfig' into particleSystem 2019-03-26 19:19:22 +01:00
287b26f910 Merge branch 'sourceUpdate' into bakeConfig 2019-03-26 18:56:23 +01:00
e4cd623fef Merge branch 'internUpdate' into sourceUpdate 2019-03-26 17:47:15 +01:00
a8a9f6aae1 Merge branch 'buildConfig' into internUpdate 2019-03-26 15:46:58 +01:00
e9ee13d4d6 Merge branch 'pythonScripts' into buildConfig 2019-03-26 15:29:28 +01:00
2457cfdfb6 Merge branch 'mantaWrapper' into pythonScripts 2019-03-26 15:22:26 +01:00
e9413e9ec6 Merge branch 'mantaFiles' into mantaWrapper 2019-03-26 13:23:37 +01:00
a1ef8a2cea Merge branch 'master' into mantaFiles 2019-03-26 12:56:46 +01:00
0f3da2016d Mantaflow: Update for new outflow flag
Trigger outflow object allocation when active outflow objects present in scene
2018-11-08 22:33:01 +01:00
8ad5665ee6 Mantaflow: Updated entire smoke.c code
Big customizations to make old smoke.c work with smoke and liquids
2018-11-08 22:33:01 +01:00
06fd308103 Mantaflow: Updated types for outflow
Added new flag for active outflow
2018-11-08 22:32:52 +01:00
85e757257e Mantaflow: Updated fluid modifier settings
Updated fields for domain, flow and effector settings
2018-11-08 22:32:52 +01:00
1c6da92b1a Mantaflow: Updated rna smoke code
Necessary updates for new fluid parameters
2018-11-08 22:32:41 +01:00
350df53d29 Mantaflow: Updated particle system
Bug fix for display amount field and refactoring in general
2018-11-08 22:32:25 +01:00
2933b9c895 Mantaflow: Customization for particle system
Added functionality to read mantaflow particle systems (FLIP + secondary)
2018-11-08 22:32:25 +01:00
4ddf0b6812 Mantaflow: Added bake configuration
Handles entire baking setup
2018-11-08 22:32:13 +01:00
f3fa0fb9b1 Mantaflow: Updates in /blender/source
A collection of smaller changes in the C files
2018-11-08 22:31:54 +01:00
ed417d796b Mantaflow: Update other /intern packages
Disabled old smoke code and added new speed vector code to cycles
2018-11-08 22:31:42 +01:00
3e11933329 Mantaflow: Adapted build config
CMake configuration update and macros for mantaflow
2018-11-08 22:31:30 +01:00
60e5963baf Mantaflow: Updated particle and fluid modifier UI
Made path field accessible after bake and removed obsolete UI text in particle settings
2018-11-08 22:31:18 +01:00
8da87f1eb0 Mantaflow: Customized UI for Manta fluids
Single UI for smoke and liquid
2018-11-08 22:31:18 +01:00
8a498582b3 Mantaflow: Refactoring for smoke outflow
Now setting outflow every frame, allowing walls to be keyframed
2018-11-08 22:28:16 +01:00
a1a1d4300e Mantaflow: Improved allocation of fluid outflow objects
Similarly to flow and obstacle objects, the outflow grid now only gets allocated when outflow objects are actually present. Commit also includes improved vector (mesh, particles) cleanup (fixes issue with particles being visible although domain is empty in simulation).
2018-11-06 15:24:04 +01:00
2b3ada655a Mantaflow: Added fluid wrapper files
Wrapper files manage communication between /source/blender C code and Mantaflow Cpp/Python code (preprocessed files)
2018-11-06 15:17:42 +01:00
cc802e66d7 Mantaflow: Updated Manta pp files
includes critical fix for outflow at domain borders and fixes crash when using secondary particles with open domain borders
2018-11-06 14:22:12 +01:00
792eb57e62 Mantaflow: Added preprocessed Mantaflow source files
Preprocessed files for both OpenMP and TBB
2018-10-28 14:47:51 +01:00
c29ce9bafa fix for particle UI and mesh name update 2018-08-27 16:15:30 +02:00
61e194757b improved cache directory handling 2018-08-24 00:25:27 +02:00
7b648f2b4c secondary particle naming update 2018-08-24 00:24:01 +02:00
a7db0defc8 updated some default values 2018-08-14 13:39:03 +02:00
50e8022ffb cleanups and fix missing rename in alembic exporter 2018-08-13 16:04:23 +02:00
ac8ed6555a removed obsolete imports in fluid ui 2018-08-11 23:48:07 +02:00
627740da7a fixed issue with addons submodule commit pointer 2018-08-11 23:20:14 +02:00
6271f052b8 Merge branch 'master' into fluid-mantaflow 2018-08-11 22:47:24 +02:00
af010fe4b9 another UI cleanup 2018-08-11 22:47:17 +02:00
1dc196391b Merge branch 'fluid-mantaflow' of https://git.blender.org/blender into fluid-mantaflow 2018-08-11 22:43:20 +02:00
59015857e8 Merge commit '1f33075ef043f0281c69a261c53eda0ce8334cbe' into fluid-mantaflow 2018-08-11 22:25:51 +02:00
461e2cfc40 post merge fixes and cleanups 2018-08-11 17:19:41 +02:00
74b435c32c Merge branch 'master' into fluid-mantaflow 2018-08-11 15:10:33 +02:00
ac5d656a27 janitorial services for 2.8
cleanups, cleanups, cleanups
2018-08-11 15:01:37 +02:00
b1ee77d2d6 fix for odd python assertion error
error was appearing when closing blender
2018-08-04 13:54:06 +02:00
57113144a5 manta script export refactor and lots of cleanups 2018-08-03 23:24:06 +02:00
1095680c28 Merge branch 'master' into fluid-mantaflow 2018-08-03 15:08:39 +02:00
0dd35a7e85 minor cleanups 2018-08-03 11:01:22 +02:00
4aa6d74ae4 minor cleanup and fix memory leak (resulted from active fields commit) 2018-08-03 00:07:28 +02:00
e9dfc5c167 improved cache resume functionality
it is now possible to resume an already completed bake
2018-08-02 17:44:22 +02:00
7b0ffd69e0 fix for active fields (cache read)
new cache does not save active fields, e.g. fire. so for now, just
reload them during cache read step
2018-08-02 13:27:54 +02:00
1667a76172 fix in python cleanup function
new motion blur vertvel vector was not being deleted. clearing all dicts before deletion now.
2018-08-02 01:46:55 +02:00
150b57c7f9 fix for particle system crash 2018-08-01 17:44:16 +02:00
801bbb7427 fixes for motion blur support
- added missing velocity interpolation. vertvel vector now pulls data
from interpolated vel grid (needed especially when using different
solver sizes)
- added missing cleanup calls on the python end (i.e. delete new python
motion blur objects too)
2018-08-01 00:12:42 +02:00
55e94f7008 Merge branch 'master' into fluid-mantaflow 2018-07-30 17:24:37 +02:00
80c53eb3cf small fixes for manta script export 2018-07-30 16:15:37 +02:00
5ccc748f41 added initial support for motion blur (cycles) 2018-07-29 18:23:30 +02:00
32b1ea9771 updated fluid guiding mode
mode now set by guiding object (and not by domain object). i.e. guide mode setting now only affects cells from guiding object
2018-07-29 18:01:20 +02:00
0df08c66c1 fix for smoke guiding and some cleanup 2018-07-13 10:27:41 +02:00
dd075f267c added guiding object velocity factor (UI option) 2018-07-11 16:49:20 +02:00
070d9da1e8 improvements to keyframe parameters 2018-07-11 00:24:04 +02:00
ca7431c483 more sanity checks for fluid guiding 2018-07-10 23:18:56 +02:00
fc31bd2950 fluid guiding overhaul
- fluid guiding now has a separate cache. velocities from guiding
objects can be baked into this cache
- alternatively, another another (baked) fluid domain can be set as the
parent. its velocities will then used for the guiding effect (e.g. use
smoke sim to guide liquid sim)
- minor other updates: refactored manta-script exporter, fixed liquid
leak (fractions completely disabled now), naming cleanups, fix for
smoke resume bake (was missing velocity reload)
2018-07-07 15:56:39 +02:00
ebaa0f0055 Merge branch 'master' into fluid-mantaflow 2018-06-12 13:50:58 +02:00
1be28f9ba8 UI and workflow optimizations
leave UI enabled when bake is paused, reset scene frame before scene update
2018-05-15 15:13:18 +02:00
ed35ac426e fix for inflow with subframes/adaptive time steps 2018-05-14 15:22:18 +02:00
86b1274665 refactored liquid script setup 2018-05-14 15:17:21 +02:00
a5158499fe small cleanup and refactor 2018-05-10 21:34:35 +02:00
2b541854b5 fix for windows path issue
escape slashes in python calls
2018-05-10 20:16:49 +02:00
cfc9ad3ebd added sanity check before bake free call 2018-05-10 16:45:54 +02:00
1ddcbac9a0 added some sanity checks to prevent illegal cache access 2018-05-08 02:06:43 +02:00
fc6981e979 improvement for cache pause/resume functionality
bake now resumes correctly even if current scene is changed in between
2018-05-08 01:34:20 +02:00
b5fa065165 enabled raw mesh pointer normalization 2018-05-07 19:00:31 +02:00
d1858148e6 added pause/resume bake functionality
works for all bake types (data, noise, mesh, particles)
2018-05-07 17:29:58 +02:00
879b71e179 minor secondary particle fixes
fixes immediate bake crash and missing tracers
2018-05-07 17:27:11 +02:00
7d1c73f5ba legacy code cleanup
mostly from manta script export (which needs to be refactored later) and from pointcache (which needs to go altogether)
2018-05-07 12:20:58 +02:00
adbca18ea8 improved data save/load setup and added cancel bake operator 2018-05-07 11:27:12 +02:00
b724ceba4c small openvdb fix
happened because of previous merge commit
2018-05-06 00:00:27 +02:00
ee590724ac disable mesh and fluid noise toggle during bake 2018-05-05 23:55:55 +02:00
1d9bb5d7b0 Merge branch 'master' into fluid-mantaflow 2018-05-05 23:14:14 +02:00
3960e05c37 bigger cleanup and added direct manta mesh pointer access 2018-05-05 21:23:41 +02:00
aef00c38c3 small UI update 2018-05-04 17:26:04 +02:00
d1f5551bde preparations for liquid real time updates during bake 2018-05-02 16:43:39 +02:00
8a4864be2f make FLIP particle system toggle available even after bake 2018-05-02 12:24:03 +02:00
04e9b3ff01 fix for particle file extension 2018-05-02 11:22:26 +02:00
3718200a22 added support for obj mesh caching 2018-05-02 00:47:45 +02:00
32e89737d7 more mesh improvements
added more smoothening settings and a preview/final mesh switch
2018-05-01 23:41:22 +02:00
41109f4f0f improved cache formats
now supporting openvdb and others - manta handles file IO
2018-05-01 19:33:06 +02:00
e42f589a92 use improved particle levelset function 2018-04-30 16:48:26 +02:00
987745e440 updated manta pp files 2018-04-30 16:47:28 +02:00
9378430cfa big refactor for data, mesh, particles separation
replaced high res options with factor, particles and mesh now have separate solver, placed bake buttons in corresponding tabs in UI, fixed high res mesh
2018-04-30 14:56:32 +02:00
b122c5ad06 fix smoke / manta rename in quick effects 2018-04-02 16:05:20 +02:00
77e3cacc79 fix smoke / manta rename in UI 2018-04-02 15:41:01 +02:00
39c8edad54 replaced WITH_SMOKE macro with WITH_MANTA in entire project
for a mantaflow build, one now only has to enable the WITH_MANTA macro
2018-04-02 15:21:29 +02:00
91233bda02 clean up and fixed some warnings
fixes broken linux build
2018-04-02 14:52:01 +02:00
a260fd1542 minor stability improvements for new adaptive inflow setup 2018-04-01 23:25:32 +02:00
86c49311a4 updated adaptive time stepping
moved adaptive stepping loop out of manta simulation (python) and into big step (update flows + update obstacles + manta simulation) (blender c)
2018-03-31 17:54:45 +02:00
384ec9dfc8 just cleanup and minor bug fixes 2018-03-26 21:14:30 +02:00
7d4c961dde get wavelet noise params at every frame (animatable) 2018-03-25 14:22:26 +02:00
2a6a579b06 support for animated properties in new decoupled baking setup 2018-03-25 13:52:09 +02:00
d141e55237 big cleanup in FLUID.cpp
removed global python params vector. now using local vectors.
2018-03-24 22:45:13 +01:00
449306bbaf fix for multiple domains and different flow objects in scene 2018-03-24 17:48:39 +01:00
646f9e3f15 more updates for decoupled baking - initial support for smoke 2018-03-24 14:48:22 +01:00
87b5b49879 cleanup and made multiprocessing only available for unix
before adding multiprocessing for windows see if it is worth the effort
2018-03-21 16:22:26 +01:00
d7161fc3f1 more changes for decoupled fluid cache
liquid support finished, smoke and stability todo
2018-03-19 13:48:23 +01:00
293a67cacf fix warning for cache read function 2018-03-13 16:32:31 +01:00
ac0d74cb6d cleanup in pointcache.c 2018-03-13 16:17:16 +01:00
2c4b5e6207 added first version of decoupled cache - breaks compatibility, blender not fully working right now 2018-03-13 13:57:44 +01:00
908dbedff3 fix legacy wturbulence
windows will not compile with issue - only warning on linux
2018-03-03 15:35:16 +01:00
218c012925 post merge compiling fixes 2018-02-24 00:25:03 +01:00
edd75f7e17 Merge branch 'master' into fluid-mantaflow 2018-02-23 23:39:20 +01:00
8c71781683 cleanup before master merge 2018-02-23 23:26:52 +01:00
8b46cf45f7 refactored python object desctruction setup
no need to specify individual variables anymore - deletion now based on id
2017-12-15 16:27:45 +01:00
4de0c06708 updated manta pp files 2017-12-15 16:23:11 +01:00
359f29f373 small fix in cache for pointcache and openvdb 2017-12-08 14:57:14 +01:00
8fa642db3d reactivated smoke adaptive domain settings 2017-12-06 22:21:56 +01:00
b88e77517f some cleanup and simplifications 2017-12-05 18:19:36 +01:00
f2b5dd6ecd cleanup alphaV viscosity 2017-12-03 12:24:39 +01:00
b37472c4e7 added missing preset scripts to git repo 2017-12-02 16:56:06 +01:00
e6ddb4bb1c fix for liquid surface distance and some UI updates 2017-12-02 16:54:43 +01:00
56f7df0b94 moved smoke advection to the end of simulation step
otherwise moving obstacles are in trouble, ie always one step behind
2017-12-02 16:53:58 +01:00
bc6ab0f077 updated viscosity settings
reusing viscosity UI from elbeem fluid
2017-12-02 16:13:20 +01:00
07c02b0462 cleanup debug output and also added some sanity type conversions 2017-12-02 12:52:32 +01:00
8ea0a8cbc6 fix for particle caching and also added more sanity checks in particle getters 2017-12-01 16:35:12 +01:00
da5e513c42 cleanup in smoke script 2017-11-30 23:25:04 +01:00
22e5ed2053 Merge branch 'master' into fluid-mantaflow 2017-11-29 17:11:59 +01:00
02b271947e added settings for fluid diffusion (i.e. viscosity and surface tension) 2017-11-29 16:28:37 +01:00
6976df8346 added support for updated manta fire burn function 2017-11-29 16:26:18 +01:00
b6cc2d4dcf updated manta pp files 2017-11-29 16:25:26 +01:00
d1abec2026 use particle size from particle settings UI for manta particles 2017-11-29 15:27:42 +01:00
3ed9864aa4 changed particle lifetime from int to float 2017-11-29 15:01:34 +01:00
a769db448c activated viscosity and surface tension settings for liquids 2017-11-28 12:49:22 +01:00
4d56dc8de7 refactored setup for liquid on first frame again 2017-11-28 12:46:51 +01:00
af86b91cac small fix for inflow levelset
clear after initial frame to avoid sampling snd parts twice
2017-11-27 11:09:45 +01:00
acee60cc58 updated manta pp files 2017-11-27 11:01:03 +01:00
69afb0b6f6 updated caching (now using frame 1 for liquids as well) and also added new snd particle parameters 2017-11-26 17:22:19 +01:00
9f1b5cce63 cleanup: removed unused secondary particle type vector 2017-11-25 11:24:20 +01:00
c131e0059c fix for levelset generation
bad array init prevented outer levelset region from being set correctly
2017-11-19 18:51:29 +01:00
6a454f10ff removed deleteInObstacle option
need to see if this fixes the liquid mass instability issue
2017-11-19 18:50:11 +01:00
b668b186d7 fix for alembic particle exporter
added missing type checks for manta particle systems
2017-11-13 20:52:56 +01:00
e70c28e484 fix for alembic mesh exporter
liquids and smoke can both be of domain type. checking for smoke domain needed to be more specific, i.e. now checking domain type as well.
2017-11-13 19:45:34 +01:00
ef8a137d8a fix for particle and mesh scaling 2017-11-11 13:07:44 +01:00
91ef5780c9 re-enabled bubble rise factor and some small snd particles fixes 2017-11-11 13:07:44 +01:00
09d2c464dd obvel velocity fix, disabling surface tension and viscosity for now, set do not delete flip in obstacle 2017-11-08 14:31:27 +01:00
bd269c8caf updates for new manta pp files, also added first setup for viscosity and surface tension 2017-11-01 19:55:38 +01:00
255485d2b9 added missing ray normalization in levelset generation call 2017-11-01 12:38:39 +01:00
dbc97a5cff updated manta pp files 2017-11-01 12:37:31 +01:00
b920cc6bb3 openvdb changes for manta support
customization for obstacle grid to match mantaflow flags grid
2017-10-24 21:42:41 +02:00
f149896761 changes for quick smoke cycles node setup and minor bug fixes
with quick smoke, the cycles setup for fire was unreachable (why?) -> removed the if-clause. also fixed minor bugs (UI Quick Liquid, copy settings for effector object)
2017-10-24 19:46:25 +02:00
fcc131d237 Merge branch 'master' into fluid-mantaflow 2017-10-14 12:54:36 +02:00
90413d600e fix for particle count in UI
was missing count reset
2017-10-09 00:00:00 +02:00
90ec9b4026 disabling fractions and enabling moving obstacles again
fractions do not support moving obstacles right now. also, fractions combined with obstacles results in particle leak (likely because of inaccuracies at fluid/obs border when repeatedly subtracting from phi grid - sdf not preserved)
2017-10-06 13:21:38 +02:00
c1fb55b44b big fluid particles update
- refactored original snd particle functions on mantaflow side
- bug fixes for particle reading (fixes disappearing issue when using
various ptypes at once)
- added support (esp. in caching) for future particle life vector (on
mantaflow it's side already in use. todo: copy values to blender
particle systems)
- memory optimization: only allocate particle fields when they're
actually enabled in UI
- fixed standalone script export (snd particle system, pdata fields)
2017-10-03 14:08:58 +02:00
949316d0a7 fluid particles UI update 2017-09-27 14:55:17 +02:00
8e38037be2 cleanup for adaptive time stepping
especially the timestep was too big and resulted in adaptive steps when adaptive stepping was actually disabled.
2017-09-27 14:39:06 +02:00
519a9e04a4 general cleanup 2017-09-22 14:37:39 +02:00
5d0370e8c5 fix for initial velocities
added sanity check that clears any left over velocities
2017-09-21 01:57:31 +02:00
373d96e3db fix for liquid velocity bug
now explicitly setting initial velocity in inflow region. this solves the problem where liquid inflow becomes unstable over time. it also allows you to use liquid plane objects with initial velocity (similar to smoke). for proper liquid initial velocities a volume initialization is needed though (todo).
2017-09-19 14:23:26 +02:00
4e7edefe08 Merge branch 'master' into fluid-mantaflow 2017-09-19 01:11:31 +02:00
e9624e1f7b Merge commit '68596950550d' into fluid-mantaflow 2017-09-04 22:15:05 +02:00
3097c05262 various smaller fixes / cleanup for obstacles and guiding 2017-09-04 01:11:19 +02:00
fca7d66a3f improved initial velocity setup for smoke and liquids
initial velocity grids now only allocated if actually enabled in UI. rudimentary support for liquid initial velocity when using plane inflow objects, proper liquid initial velocities (set invels in full volume) still todo though.
2017-09-03 02:23:38 +02:00
613cc715fa flow source UI updates 2017-09-02 22:59:33 +02:00
e47fdf4b05 improved fluid obstacle / guide surface distance value
preserves levelset inside flow objects
2017-09-02 22:55:48 +02:00
544d8fe9b5 cleanup in manta script exporter 2017-09-02 15:40:16 +02:00
afc9c2ddcb added surface thickness option for effector objects (i.e. obstacle or guide objects) 2017-08-31 17:07:41 +02:00
00c5ddd9d7 obstacle grid optimization
now only allocating obstacle grids when there actually is an obstacle object present
2017-08-28 13:05:13 +02:00
397c4208a5 added support for liquid guiding
guiding liquid simulations is currently considered experimental though
2017-08-27 01:39:09 +02:00
e486b84b33 cleanup for smoke preconditioner (multi-grid)
better way to set preconditioner flag in dynamic scenes (scenes with moving obstacle)
2017-08-26 22:35:39 +02:00
79ea5f6324 added guiding parameters to UI
alpha and beta parameters are used to control lag and size of fluid guiding
2017-08-25 12:32:45 +02:00
11ea224ac5 updated manta pp files
various tweaks that are not in the official mantaflow branch - need to merge them there later
2017-08-23 18:18:58 +02:00
d39b661722 various fluid guiding improvements
the domain settings for fluid guiding are gone now. guiding objects handle settings individually, guiding functions kick in automatically if there is a guiding object present.
2017-08-21 11:47:33 +02:00
b3ed9257aa fix for levelset generation
fixes problem with multiple collision / guiding objects. levelset was overwritten incorrectly.
2017-08-18 17:52:46 +02:00
75482e3169 added options for fluid guiding
Collision settings are now effector settings. In there an object can be of type collision or guiding.
2017-08-17 19:57:15 +02:00
0baa089467 name cleanup for levelset grids 2017-08-12 17:33:29 +02:00
39eb8fa1a6 new method for levelset generation from mesh
now considering planes as well
2017-08-09 17:35:38 +02:00
1a914c0c06 added missing openmp files for guiding 2017-08-05 07:43:56 +02:00
d18ae102f3 added minimal guiding UI controls
minimal controls = toggle guiding and set tornado velocity strength
2017-08-04 23:08:06 +02:00
1b80047d1c first working fluid guiding setup in smoke script 2017-08-02 00:43:15 +02:00
1f314b9ea5 adapted spiral velocity getter from mantaflow
now possible to get 3D instead of just 2D target vel grid (useful for tornado effect)
2017-08-01 20:16:57 +02:00
0c4e3fd968 eventually convert bubble snd parts to floats 2017-07-28 21:33:05 +02:00
9019d66b6a added control fields for float and tracer particle amount
float / tracer particle amount now determined by probability
2017-07-24 17:36:28 +02:00
cb9fb1c9fc committing unfinished liquid inflow velocity code
everything commented out, needs some more consideration
2017-07-28 22:11:58 +02:00
3bdfb5f982 made textual descriptions of new min max particle fields a bit clearer 2017-07-23 19:23:22 +02:00
e6a43693f4 added UI fields to control FLIP particle amount
also cleaned up the UI a bit
2017-07-23 14:52:41 +02:00
adf1db3969 added missing manta omp files
correspond to previous manta files update
2017-07-21 20:46:32 +02:00
25170baeab updated manta pp files
fix for outflow flag at outermost cell: now overriding with obstacle is possible, PFLOAT name change in mantaflow
2017-07-21 16:16:37 +02:00
a1a0e9efef initial tracer particle support 2017-07-20 22:56:31 +02:00
f22f84ea32 fix for particle float type define
PFLOAT name collided with PFLOAT from windows header
2017-07-20 22:48:24 +02:00
d724a45092 added bubble control to UI
control how much gravity affects bubbles, i.e. control how fast they rise
2017-07-19 00:41:37 +02:00
697df3a368 Merge branch 'master' into fluid-mantaflow 2017-07-18 18:50:16 +02:00
d9ba9993d8 added setup for bubble particles
blender internal particle setup (not manta side), i.e. UI, particle system creation / deletion, particle IO.
2017-07-18 10:27:51 +02:00
44f49e765b updated manta pp files
added drop and float particle support. also improved drop particle generation.
2017-07-17 21:58:26 +02:00
766572cd0a outflow cleanup in liquid script
now using initDomain() to set outflow cells
2017-07-14 20:45:41 +02:00
6ed2fe0229 added settings for snd particle type vector
this extra vector stores snd particle types: drop, float, bubble, tracer
2017-07-12 22:09:21 +02:00
354b496972 added float and tracer particle flags 2017-07-11 23:38:27 +02:00
feda06e184 updated manta pp files 2017-07-11 23:14:23 +02:00
3ee4f50995 update for smoke domain boundaries
using phiout levelset for smoke outflow
2017-07-11 19:09:34 +02:00
8379725171 fix for liquid domain boundaries
cells next to domain walls are used for fractions. if outflow is enabled these should get set to outflow cells and not fluid cells (were set to fluid and liquid didnt leave domain)
2017-07-11 18:21:28 +02:00
166c3db1e7 added support for smoke initial velocity 2017-07-07 20:03:15 +02:00
0f25e77920 more flexible particle threshold velocity 2017-07-06 22:37:52 +02:00
97ee6ac8b9 improved particle setup sanity checks and fixed object drawtype setup (when parts enabled switch to wireframe, otherwise solid) 2017-07-06 11:14:00 +02:00
47056f2b3a refactoring in rna particle setup
made particle system creation / deletion more modular. this will be helpful when adding floats and tracer particles.
2017-07-05 19:13:37 +02:00
d12bb24d38 Merge branch 'master' into fluid-mantaflow 2017-07-03 19:53:25 +02:00
6b3c3ad5b0 UI fix: disable snd parts threshold field when cache is baked 2017-07-03 19:44:20 +02:00
e3d1f6b984 cleanup in particle UI
particle UI for automatically generated systems was offering too many settings. now (similarly to elbeem) only restricted access
2017-07-02 19:16:03 +02:00
93d31ac344 improved pointcache and now also supporting FLIP visualization again 2017-07-02 19:13:59 +02:00
72311c6357 more improvements for particle caching with pointcache 2017-07-01 13:59:38 +02:00
a9992eaaab first support for ptcache files for liquids 2017-06-30 23:17:45 +02:00
03742faf43 added guards in pointcache read/write functions
if we want to use ptcache format for liquids, first make sure not to access smoke fields.
2017-06-29 14:42:33 +02:00
273cf1f65c cleanup in FLUID class 2017-06-27 20:23:09 +02:00
29553c0684 replaced particle dim getter with domain dim getter 2017-06-26 23:46:11 +02:00
9b7d06b255 added particle UI tab 2017-06-26 21:20:50 +02:00
67df724a1f added particle data pointer getter to mantaflow files 2017-06-25 17:37:04 +02:00
1bdf2152e1 added first version of secondary particle function to mantaflow files
liquid script now also has additional particle system (for all secondary particles)
2017-06-24 19:55:49 +02:00
60600dd36e updated manta obstacle velocity
some more improvements to obstacle velocities in mantaflow. now manta only accepts mac grids. any resampling from vec3 to mac needs to be done before calling wall function.
2017-06-24 18:52:41 +02:00
672caef66f big cleanup for manta directives
very early in the project these directives where set to preserve the functionality of the original smoke code. keeping up this dual compatibility would be an overkill for this branch.
2017-06-24 16:22:58 +02:00
3c516cac3c disabling liquid obstacle velocities for now
need fractions support for obvels first
2017-06-22 22:45:18 +02:00
9cde58c214 Fix T51837: Added num particles sanity check when reading particle files. Also fixed num particles field for pVel files 2017-06-21 23:17:34 +02:00
c0c3ebf115 small name fix for maxvel variable
name did not match variable name that gets deleted
2017-06-20 00:39:51 +02:00
b203980733 refactored obstacle velocities 2017-06-19 19:27:44 +02:00
231f75aab2 applied some fixes that automatic analyze tool suggested 2017-06-17 23:56:48 +02:00
443d567234 added particle velocity scaling 2017-06-16 11:13:00 +02:00
b20f9b3ff5 automated some UI selections
now smoke domains set volume cache automatically, liquid domains set surface cache automatically
2017-06-15 13:50:31 +02:00
a8ac44e74f setting solver res here is obsolete
no need to set this explicitly. solver only threw expection when loading blend files created with vanilla blender. versioning support will handle this in the future.
2017-06-14 21:28:41 +02:00
e3850739a0 added support for particle velocities
now saving and loading particle velocities from uni files
2017-06-14 21:12:51 +02:00
ae8f0385c5 implemented new caching approach
caching is now divided into two parts: surface and volume caching. the reasooning behind this is that for some setups (e.g. liquid + particles) there needs to be a way to cache both the mesh (surface caching) and particles (volumetric caching). Also, smoke scenes might use meshes in the future (e.g. vortex sheets)
2017-06-14 15:59:57 +02:00
dfb1d7f1bd refactored new option for particles and mesh 2017-06-13 14:56:54 +02:00
8a79adcaf7 implemented viewport display switcher for liquids
previously the viewport switcher only worked for smoke. only drawback is now that toggling the viewport switcher resets the cache(probably because of recalculating liquid mesh). baked caches however stay. issue remains a todo.
2017-06-13 14:47:31 +02:00
a3efe48987 added cfl field to UI
adjustable cfl number lets users better control timesteps
2017-06-12 23:13:59 +02:00
16c8f46a31 added particle instance variable initialization and cleaned up a bit 2017-06-12 22:38:23 +02:00
f686625d8b added new cache option that supports mesh and FLIP particle export 2017-06-12 17:48:25 +02:00
74ff9c1036 fix for particle system sanity check
sanity was a little to late. needs to be before any file reading (getter) operation
2017-06-11 14:37:19 +02:00
a281ef6a98 automatically set domain mesh draw type for particles and mesh mode
for particles it is more convenient to have a wire frame, for meshes the solid mode is better
2017-06-11 13:58:47 +02:00
8b7a20de97 added narrow band field to UI
being able to control the particle band width is useful when working with the FLIP particle cache. with a higher band width you can fill up the entire fluid volume with particles
2017-06-11 01:45:14 +02:00
6f67dc1080 fix for required shift when domains moves
when domain moves away from position it was originally simulated it, a shift needs to be added to the particle coords. the was opposite to what is needed.
2017-06-10 10:57:54 +02:00
0ca08748b8 set manta particle radius in particle system as well 2017-06-10 10:55:08 +02:00
8f2ffc1b1c fix for preconditioner and closed domains
closed domains require zero pressure fixing enabled for the preconditioner to work
2017-06-10 00:51:12 +02:00
aab52d938f fixed domain border collision key mapping
textual descriptions of borders did not match blender views
2017-06-09 22:40:19 +02:00
c410bb71f2 filter out dead particles
mantaflow stores dead particles for internal purposes. in blender we just skip them, they dont need to be shown in the UI
2017-06-09 21:16:24 +02:00
bdd845c42d improved manta particle step function
function now scales, translates particle data properly
2017-06-09 00:40:14 +02:00
e9e41421a6 added function in smoke rna to register FLIP particle system
when flip particle file format is toggled, a new particle gets registered. toggling meshes releases the particle system
2017-06-08 23:38:11 +02:00
35c99918f4 added api to read fluid domain dimension from particle file 2017-06-07 02:40:18 +02:00
152e58dff1 renamed debug level flag
flag was conflicting in debug mode
2017-06-06 15:19:45 +02:00
0a4750a658 replaced border collisions menu in UI with boolean flags
Setting domain borders should not be determined by a few textual descriptions. Rather, users should be able to set any combination of borders.
2017-06-05 16:33:47 +02:00
a45e818dc8 adjusted boundary width for set obstacle velocities
boundary width was one cell too big. in some cases with moving obstacles, particles would just stay next to wall.
2017-06-05 16:23:28 +02:00
1c1e99363d improvements to the pointcache
fixed a problem where caching would not resume after restarting the simulation. also, cache file names are now a bit nicer
2017-06-04 22:05:43 +02:00
50e351e6e0 added debug flag to control console output
console output had gotten to a point where it slowed down the simulation
2017-06-03 02:51:01 +02:00
5468cf836e added function to handle particle reading inside particle system c code 2017-06-02 22:37:20 +02:00
9cb43962a7 added c/c++ api functions and extended caching to account for particles 2017-06-02 22:36:18 +02:00
8810490a2c added particle file reader function
reading from .uni files. this function is an adapted version of the load() function for particles in Mantaflow
2017-06-01 23:30:54 +02:00
3a41fc953a cleaned up some weird spaces 2017-05-31 22:47:12 +02:00
e066521fa3 fix missing classes in python scripts
post merge cleanup
2017-05-30 00:36:19 +02:00
96cf0cc946 Merge branch 'master' into fluid-mantaflow 2017-05-29 23:02:34 +02:00
fd09c48c3d removed optional border velocities for obstacles
having just the velocities inside the obstacle seems sufficient for now (visually)
2017-05-27 22:41:13 +02:00
c0a7082fb9 improved setObstacleVelocity() function
now checking if obvel present before interpolating. also added some sanity checks
2017-05-24 22:31:57 +02:00
51c05767d2 set obstacle velocity after every setWallBcs()
if not set, the essential obstacle velocities will get overwritten with 0
2017-05-12 20:00:45 +02:00
fb7b154acc improved liquid inflow / generating phi grid
phiObs has to be subtracted from phi and not just from phiIn. otherwise when joining phi and phiIn, some obstacle areas in phi are not set to positive value, stay negative and hence show up as liquid
2017-05-03 19:24:16 +02:00
de9c1e02fc small fix for phi grid reset 2017-04-20 16:09:56 +02:00
cc3dbb5196 disabling fractions in liquid for now
can be enabled again once setObstacleVelocity() supports them
2017-04-18 00:45:04 +02:00
a4b48c95d9 interpolating phi later in step
interpolation needs to come later to avoid weird mesh resizing in first frames (occurred between frame 1 and 2)
2017-04-14 00:36:29 +02:00
1797850eee use larger surface distance value so that obvels cover larger area. manta can then better extrpolate those obvels 2017-04-13 19:11:42 +02:00
de7a71915b small fix for frame number: manta starts on frame 0, not on 1 2017-04-11 13:50:23 +02:00
d519e28f58 save and load obstacle velocities (for standalone mode) 2017-04-05 13:43:10 +02:00
45369cb1f0 added cleanup routine in destructor for multigrid 2017-04-03 01:03:33 +02:00
c8df09ab0d updated manta pp files 2017-04-02 21:18:28 +02:00
1e3f3565c3 removed dummy fractions grid from smoke script 2017-03-27 21:51:43 +02:00
5c1c489e5d updated manta pp files and adapted obstacle velocity setter in smoke/liquid script
important: boundaryWidth for liquids is 2 instead of default 1
2017-03-26 20:40:17 +02:00
a8901bc63e added adaptive time stepping option to ui 2017-03-26 20:38:26 +02:00
a7b5871ccf added support for liquid moving obstacles
using same obvel setter as in smoke script. fractions left out for now
2017-03-26 15:26:12 +02:00
4a813b78b0 removed high res clean up functions for liquid
in theory with correct obvels no need to clear phi inside obs. if still needed, then maybe do this later in blender c code
2017-03-26 15:24:00 +02:00
effbf4a4cb added guard for smoke/liquid sampling/distance functions
in smoke domains no need to get mesh distances, in liquid domains no need to calculate smoke influence factor
2017-03-25 13:04:51 +02:00
8561336e2a removed flow type guard and instead made FLUID destructor less restrictive
required if multiple domains in viewport. domains do not know what flow objects they have inside
2017-03-24 15:55:57 +01:00
ddeb4c5f58 fix for wrong framenr argument in step function 2017-03-24 15:51:20 +01:00
cb8424e14d improved raycasting for mesh distances again
also includes name and formatting cleanup
2017-03-23 12:01:52 +01:00
cbf3e40121 improved levelset calculation function
now using better estimates for min distance and also 14 instead of just 6 raydirs for raycasts (added 8 quadrant diagonals)
2017-03-22 14:27:42 +01:00
59b56db129 removed unused phi reset from obstacle update function 2017-03-21 15:08:04 +01:00
09465fef32 added ids to all grids, vars, funcs, etc in manta scripts
having unique python variables allows having multiple domains in the viewport at once
2017-03-20 20:13:09 +02:00
76c9289a03 split up fluid solver and helper variable setup 2017-03-19 02:04:10 +02:00
3b60dd8c46 fixed and cleaned up inflow grid
inflow grid is necessary when running manta script in mantaflow standalone mode
2017-03-18 19:10:37 +02:00
d3c6768daa added id member variable and cleaned up manta init function 2017-03-17 13:25:41 +02:00
a279388006 added preprocessing for destructor and init script strings 2017-03-17 01:17:26 +02:00
bb37d1d33b cleanup in manta C api
no need to pass smoke modifier data as argument anymore
2017-03-16 22:31:57 +02:00
2c46cadd18 cleanup in pointcache 2017-03-16 17:04:26 +02:00
8d52f85699 cleanup in blender python 2017-03-16 00:28:11 +02:00
ae4d6ea4a6 cleanup spectrum
spectrum files not need anymore - moved in master too
2017-03-15 23:55:27 +02:00
137c0355ab major automatization update for domain setup
depending on the domain type the appropriate settings for cache type, draw type and border collisions type are now set automatically
2017-03-15 23:45:34 +02:00
5cd5f9ec06 fix for combining emission maps
the function that combines the emission maps was not considering the mesh distance maps. hence, when using subframes for liquids, the values were not set and the emitter object had an incorrect shape.
2017-03-14 14:26:35 +01:00
821a6e75bc manual sanity clean up for preconditioner
necessary when changing grid size. internal grid has to be freed and reallocated to match new grid size
2017-03-14 01:13:04 +01:00
77ba932ec1 small fix for extrapolation function
distance argument was not int - was problematic with uneven divisions size
2017-03-13 23:04:10 +02:00
0d53e3fbd0 optimizations for liquid caching
liquid simulations now running without first saving to file
2017-03-12 23:13:37 +01:00
af8722d0d0 added tbb support for mantaflow
if openmp is not present or disabled we now use tbb manta pp files as a fallback to provide at least some acceleration
2017-03-11 15:50:01 +01:00
b57e38e9ab Merge branch 'master' into fluid-mantaflow 2017-03-10 23:04:26 +01:00
02bb2aa8c5 added multigrid preconditioner setup
dynamic and static obstacles are recognized and preconditioner is set accordingly
2017-03-03 17:33:26 +02:00
0199f41bc0 updated mantaflow pp files
new mantaflow files require cxx11 option because of new multigrid solver
2017-03-02 13:10:45 +02:00
74e07a644a extrapolate obvels outside of obstacle and set them afterwards with option for borderWidth 2017-02-28 02:34:14 +02:00
1ad5aef63a setting obstacle velocities
for now we're doing this before advection. TODO: check if maybe doing this after pressure solve as in original code
2017-02-28 02:33:29 +02:00
b612a7f7a8 obvels need scaling before manta can use them 2017-02-27 19:20:11 +02:00
86e3e95de6 reordered cleanup before and after smoke step 2017-02-26 15:44:23 +02:00
b1f72a09c1 small fix for manta function registration 2017-02-24 00:12:39 +02:00
59ccfbee87 new manta functions to handle moving obstacles
added function to set obstacle velocities at fl/obs border, cleanup for averageVel function (more general name and vec3 argument instead of mac)
2017-02-23 12:56:48 +02:00
71979c248f manta script cleanup 2017-02-21 01:04:23 +02:00
7711b72c83 updated manta vec3 extrapolation
now using inside mode as well - similar to extrapolateLsSimple()
2017-02-20 11:39:34 +02:00
fce0b2daad updated mesh distance function
now using raycast in inverted direction as well. if this is not done, there are cases with wrong phi grid (swapped inside and outside)
2017-02-19 10:31:42 +02:00
dadebe55c8 argument cleanup: no need to have cell_size in update mesh function
smoke_pos_to_cell() handles cell_size division
2017-02-17 14:33:56 +02:00
ce1ae77991 cleaned up headers 2016-12-29 12:13:35 +02:00
5bcd39da48 removed high res getter for flags grid 2016-12-04 18:12:39 +02:00
cf964047e1 moved forces to pre step function and now resetting inflow obstacle with 0.0 (instead of 0.5) 2016-12-02 23:07:41 +01:00
3656c02c92 improved inflow, outflow and implemented initial support for moving objects
- outflow objects may move now
- inflow routine in mantaflow script now inside adaptive time stepping
- flag grid is generated from phiobs. no more "hacks" that write bit
masks by hand

TODO:
- object velocities need to be set at borders
2016-12-01 13:19:53 +01:00
f4a69f192f no need to use two cells for border of smoke domain 2016-11-16 17:52:15 +02:00
5749df3f85 moved clean up and copy functions to pre/post step 2016-11-15 12:01:31 +02:00
037662d04b added pre and post step functions 2016-11-15 12:01:31 +02:00
ca73e57b2f removed obsolete high res grid access function 2016-11-12 02:33:15 +02:00
d28cb620dd added numObstacle grid in manta script and access functions 2016-11-12 02:31:04 +02:00
b7d857f22e added missing grids to liquid/smoke grid import/export and also cleaned up scripts a bit 2016-11-12 00:18:38 +02:00
e5ebf2e4fe new mantaflow functions which should replace some of the calls from smoke.c 2016-11-11 13:54:19 +02:00
f84a0752fa formatting and comment clean up 2016-11-11 13:10:11 +02:00
4221aa7119 refactored manta script export functions 2016-11-10 00:41:09 +02:00
8c39247db1 added obstacle access functions and cleaned up a bit 2016-11-09 22:09:47 +02:00
757cb5223d changed obstacle type to int to match manta flag grid type 2016-11-09 22:06:12 +02:00
5b3bf7acd9 updated liquid inflow function 2016-11-07 00:56:25 +01:00
37f0c4f572 cleaned up a bit in scripts and now using new readParticle() function instead of temp file hack 2016-11-04 19:38:45 +02:00
f7fb1cb2d8 updated manta pp files and simplified python api 2016-11-03 22:04:14 +02:00
2ef7da9d06 disabling velocity reset for now. reason: not only obstacle cell velocities are reset but also border cells 2016-11-02 00:41:02 +01:00
88537b758e reverting to old IO functions. changes from D2317 produce posixpath, mantaflow save() and load() require string though 2016-10-29 22:30:23 +02:00
47ac6aa864 Mantaflow: Fix typo in smoke_export_low script. 2016-10-29 13:26:29 -06:00
657259fbaa Mantaflow: Use Path objects instead of os.path.join()
File paths are passed into these functions, so convert passed path to pathlib.Path object to avoid internal/external conflicts. This should be easier to maintain and visually cleaner.

Reviewers: sebbas

Reviewed By: sebbas

Differential Revision: https://developer.blender.org/D2317
2016-10-26 20:37:57 +02:00
7eefa08cf8 Merge branch 'master' into fluid-mantaflow 2016-10-25 21:11:59 +02:00
0ccc7262f3 boundary width as variable and small clean up in liquid high-res step 2016-10-24 12:09:10 +02:00
2c05b7f8be clean up in cmake setup 2016-10-23 21:28:08 +02:00
831332dfbb small clean up 2016-10-23 16:14:14 +02:00
b1fdf48235 refactored manta liquid script 2016-10-23 16:14:14 +02:00
15aa698211 no need to rename main() from mantaflow - simply remove file from cmake and no main() method clash will occur 2016-10-23 16:14:14 +02:00
a04378301e forgot to revert my own version number changes for macos in CMakeLists - fixed that 2016-10-23 16:14:14 +02:00
395568ddae change path's to literal strings, to prevent escape issues with windows paths. 2016-10-20 13:00:55 -06:00
5db51d2119 updated manta files with linker fixes 2016-10-20 17:44:01 +02:00
338e0006a1 better inflow map generation 2016-10-17 21:02:35 +02:00
8ef9cff3a1 adapted draw routine to handle liquid domains better 2016-10-12 10:41:44 +02:00
92d1ebc7d2 fix for CMakeLists 2016-10-10 22:39:12 +02:00
9c7d8fea1b Merge branch 'master' into fluid-mantaflow 2016-10-09 00:53:18 +02:00
cd963e3824 small clean up (removed deprecated variable) 2016-10-08 22:52:54 +02:00
d4acb55f1d correct path parsing for smoke script 2016-10-07 00:49:12 +02:00
8fd32cdebf fixed temp directory for highres liquids (correct temp directory) 2016-10-06 23:01:55 +02:00
129b642521 better path parsing for python io calls 2016-10-05 09:12:34 +02:00
2ae461bfb1 small clean up. removed 'phi reset' which caused the mesh flickering 2016-10-04 14:52:10 +02:00
ca19521848 mesh normals were read in incorrectly. now using reverse order 2016-09-24 15:14:54 +02:00
4bc5700fc1 updated cmake lists to account for windows systems 2016-09-23 22:57:12 +02:00
0ba55c3c39 hooked up blender kernel code to work with obstacle adaptions in liquid script 2016-09-20 00:45:25 +02:00
5d44015a46 adapted manta liquid script to support obstacles 2016-09-19 19:32:19 +02:00
0c2997fee9 cleanup for quick liquid script 2016-09-18 20:54:29 +02:00
7f10f639be boundary width != 0 needed for liquid obstacles 2016-09-18 16:23:11 +02:00
a5a472485c refactored liquid inflow function 2016-09-18 13:41:40 +02:00
510f4fd416 removed access to manta grids from blender kernel code (bad sideeffects with new obstacle script code) 2016-09-16 00:43:19 +02:00
8c0776f18b fix for highres smoke flag and some cleanup 2016-09-15 09:29:32 +02:00
4054724bf8 fix for script smoke export 2016-09-14 14:51:05 +02:00
e43b821664 added liquid obstacle grids and access functions 2016-09-13 02:32:14 +02:00
05664b2b4c clean up and maintenance in script files 2016-09-12 20:11:45 +02:00
db18178f97 refactored manta script export and also added script export functionality for liquids 2016-09-11 19:24:18 +02:00
05405f759c removed unnecessary flag updates from liquid script 2016-09-10 17:50:21 +02:00
97152cf76b ui cleanup in fluid quality and general fluid tab 2016-09-09 11:19:38 +02:00
473f12e00b enabled liquid high resolution mode in ui 2016-09-08 01:26:31 +02:00
b8e4bb0769 pointcache adaptions for liquid high resolution files 2016-09-07 21:39:46 +02:00
64afd4263c improved high resolution step for liquids - using phiparts in high res mode as well now 2016-09-06 14:12:57 +02:00
a3e364757d added liquid high res api functions 2016-09-05 20:29:11 +02:00
d2ed5517c2 made particle radius factor field accessible 2016-08-29 22:17:57 +02:00
e283052af4 small fix for obstacle flag 2016-08-26 23:39:20 +02:00
cbf0a28f87 adapted value ranges for some fields and removed vorticity guard in smoke script 2016-08-23 00:31:37 +02:00
47a1640795 fix ui tab class. tab from elbeem was using this class before. 2016-08-22 19:01:17 +02:00
93a1054ece sanity check: make sure that domain type and flow types are valid combinations 2016-08-22 00:16:17 +02:00
b77f9388a4 removed chrono calls in mantaflow file. they caused some trouble with the blender build and are not needed anyways. 2016-08-21 01:04:57 +02:00
c635588cdc fix for viewport switcher: don't hide it when cache is baked 2016-08-20 00:22:38 +02:00
2c6348bf35 added support for external forces for liquids 2016-08-19 21:27:46 +02:00
11398e6cf6 refactored inflow flag 2016-08-19 14:08:16 +02:00
34cb963bf3 added gravity field and clean up UI a bit 2016-08-19 14:06:50 +02:00
90bad37c82 fixed obstacles for liquids (=blender source - manta liquid script needs some more customizations) 2016-08-19 14:01:34 +02:00
67bbd8b3db cleaned up a bit in mantaflow scripts 2016-08-18 23:12:31 +02:00
8c7ddbcfe6 added some sanity checks for ui and outflow fields 2016-08-17 19:26:32 +02:00
8067321206 added particle number (discretization) field to ui 2016-08-17 19:21:24 +02:00
4a2909c147 cleanup in manta liquid and smoke scripts 2016-08-17 19:15:45 +02:00
af8fb98bb4 removed 'stand-in' grid from liquid script (transparency functions only handling smoke domains) 2016-08-17 00:15:54 +02:00
449bea5438 fix in pointcache: make sure file is saved before trying to write liquid cache 2016-08-16 13:15:17 +02:00
26020784ad cleanup for filenames and classes: SMOKE -> FLUID 2016-08-16 13:12:58 +02:00
89436dd519 now using scene gravity in all mantaflow scripts (smoke and liquid) 2016-08-15 22:59:31 +02:00
ea7ed9dd10 refactored mantaflow scripts 2016-08-15 22:54:04 +02:00
96334c0719 fix for openvdb caching 2016-08-13 23:55:12 +02:00
c1756a55a8 removed smoke flames tab (was re-added after merge with master) 2016-08-12 16:21:58 +02:00
6fd71252b7 another cleanup for viewport switch. removed old 'show high resolution' check-box. 2016-08-12 16:06:09 +02:00
ca6966c39d updated manta pp files 2016-08-12 15:33:59 +02:00
63e97093d6 Merge branch 'master' into fluid-mantaflow 2016-08-12 14:17:04 +02:00
0a633dc170 disable high resolution liquid for now. high res loop in manta script needs some more work. 2016-08-12 12:45:17 +02:00
1c57b84127 preparations for liquid high resolution 2016-08-12 12:35:02 +02:00
9bd37ebc30 fix for viewport geometry mode 2016-08-11 17:12:47 +02:00
855f164761 removed preview resolution field. will not be needed 2016-08-11 15:45:56 +02:00
7083b22422 hooked up viewport viewing mode switch 2016-08-11 15:22:04 +02:00
866876a1d8 fix for manta liquid inflow and some general code cleanup in liquid script 2016-08-10 23:36:11 +02:00
e64269b8fc UI changes: renamed modifier label and some preparations for liquid high res mode 2016-08-10 22:10:45 +02:00
362f5e892b fix for outflow: only delete content from cells inside mesh 2016-08-09 15:24:02 +02:00
2ea7dab100 border collisions now work for smoke AND liquids 2016-08-09 15:23:51 +02:00
55694aa88e added 'Quick Liquid' script (similar to exisiting 'Quick Smoke' and 'Quick Fluid') 2016-08-09 00:10:59 +02:00
c23ce4a79d fixed viewport bug: objects inside smoke or liquid domain are now visible 2016-08-08 21:21:47 +02:00
c2bdfb18e0 better default values for vorticity and particle randomness 2016-08-08 21:20:39 +02:00
1187d35e7b added default values for render and viewport mode 2016-08-08 15:52:28 +02:00
5e00f7b9c0 implemented flow behavior geometry mode. works with liquids and also with smoke. 2016-08-07 23:58:21 +02:00
5ffcd36578 clean up for variable names 2016-08-07 20:34:54 +02:00
2e6abd0186 liquid settings: removed narrow band option (no need to toggle / turn off) and fixed particle randomness setting 2016-08-07 14:18:21 +02:00
648ee14cb9 reorganized fluid ui: introduced fluid quality tab and merged fluid behavior settings into one tab 2016-08-06 22:19:56 +02:00
9734506289 hiding fft noise type from gui: currently not supported in mantaflow 2016-08-04 17:41:24 +02:00
fc074465b7 fix for cache file format: wrong format not producing crash anymore 2016-08-04 16:13:29 +02:00
24d394efa8 added new border collision option: horizontally open (useful for liquids) 2016-08-03 12:57:36 +02:00
49fc90a4be bug fix: phiinit grid was not initialized to null 2016-08-03 10:49:10 +02:00
aa51619731 using inflow flag to control when to apply inflow 2016-08-03 02:10:05 +02:00
19148237c7 customized outflow function to account for liquids 2016-08-02 23:54:01 +02:00
940df74902 now using new behavior outflow flags instead of outflow type flags 2016-08-01 11:30:49 +02:00
12ad5310db more outflow ui customizations 2016-07-31 20:42:35 +02:00
d9cad3c0e7 made flag grid also accessible through manta api. needed for liquid outflow. 2016-07-30 22:50:19 +02:00
35c666b468 made flag grid also accessible through manta api. needed for liquid outflow. 2016-07-29 23:16:32 +02:00
a139f273b3 removed outflow flow type 2016-07-27 01:08:41 +02:00
5b98fce170 removed old liquid files (not needed anymore) 2016-07-26 14:19:10 +02:00
b30ce82e3e renamed some tabs to match other 'fluid' tabs 2016-07-25 20:12:45 +02:00
f9eee6d858 final touches for fluid source settings panel 2016-07-24 12:56:31 +02:00
394ede20b6 reorganized flow source settings in UI 2016-07-24 10:11:47 +02:00
4b6d9f0a8d reorganized ui for flow behaviour field 2016-07-23 12:04:58 +02:00
bcf01ecadf hooked up pointcache to new liquid grid io. caching now works even if bake was interrupted. 2016-07-21 02:28:33 +02:00
d23f1a5947 added c api functions for liquid grid io 2016-07-20 09:34:54 +02:00
03eac283a5 added functions to save / load liquid grids and particle systems 2016-07-19 00:19:37 +02:00
87bd42ebc9 added io section to liquid script. grid io needed for caching. 2016-07-18 01:05:14 +02:00
506cf7051f distinguishing between phi and phi_init grid 2016-07-17 17:51:56 +02:00
128a60137d added normalization for liquid inflow (needed for mantaflow) 2016-07-16 13:20:15 +02:00
0aa086586a made viewport switcher functional. now switching between geometry and render/preview works. 2016-07-16 12:58:11 +02:00
bdce2b847d clean up: bad formatting in pointcache fixed 2016-07-15 15:19:26 +02:00
1a05cf6547 cleaned up /removed some old TODOs 2016-07-15 14:50:44 +02:00
25b7d8a8ad renamed viewport mode switcher variables 2016-07-15 12:39:21 +02:00
4ffac9faf1 possible fix for running manta python calls under windows 2016-07-14 23:52:49 +02:00
8eac981888 no need to add old smoke code as lib 2016-07-13 23:51:24 +02:00
ce69ec37cf more UI changes: clean up layout for smoke, fire and liquids 2016-07-08 19:47:13 +02:00
07d241fbe2 UI customizations: distinguish between flow type and flow behavior 2016-07-06 17:23:51 +02:00
ba0825d407 mesh faces for liquids now enabled 2016-07-05 19:36:12 +02:00
cf3c18948b liquid mesh scaling improvements 2016-07-04 00:09:30 +02:00
697566e5c9 sanity check in liquid mesh create function. prevents crashes 2016-07-03 21:18:50 +02:00
ed954841bf some cleanup for liquid inflow 2016-07-03 13:11:41 +02:00
77bb36bffb mesh scaling according to scale factor. not perfect solution though 2016-07-02 18:02:13 +02:00
25922e9b17 removed mesh scaling. better do this in smoke.c and keep cpp wrapper independent from mesh size 2016-07-01 15:59:38 +02:00
93872456e6 fixed return type for vertex getter 2016-07-01 15:22:19 +02:00
ce4d31cf3d cleanup function names 2016-06-30 00:09:15 +02:00
9a78eea081 final cleanup for liquid inflow 2016-06-29 01:23:20 +02:00
9773ffa92f added new liquid inflow function. this version uses 6 raycasts and not only considers distance to flow mesh surface from within mesh but also from outside. 2016-06-28 19:21:49 +02:00
17d51b6d09 cleanup liquid inflow functions 2016-06-25 15:34:04 +02:00
8661d1bd60 cleanup in manta export. obj file export is not needed anymore 2016-06-23 22:12:54 +02:00
e507cb0ba0 removed shift for vertices - only needed in mantaflow 2016-06-21 14:51:22 +02:00
80f4b470a5 cleanup: removed old manta obj approach - we're using phi grid for liquid inflow 2016-06-20 01:05:43 +02:00
d450e098ac cleanup old mesh load function in header 2016-06-19 20:11:15 +02:00
88306313ed fixed memory leak (liquid mesh was copied but not freed) 2016-06-18 19:32:31 +02:00
40eecf3740 temporary fix for viewport tranparency (additional density grid in liquid sim) 2016-06-18 17:33:41 +02:00
032d417da0 fix for gzopen: added missing cast (void* -> gzfile) 2016-06-18 17:31:49 +02:00
da8789bf66 small gzfile fix: declare file variable before using it and use const file name 2016-06-18 16:04:35 +02:00
d127b44036 clean up in elbeem fluid code: removed some early tests (not needed since manta liquids are in smoke modifier) 2016-06-18 13:04:38 +02:00
3b521e7012 new function that builds a derived mesh from the fluid objects mesh data (fluid object gets mesh data by reading bobj.gz) 2016-06-17 11:04:19 +02:00
6dd1cf2a3e hooked up pointcache so that it triggers the new mesh read function 2016-06-16 01:12:04 +02:00
d67e7284b9 added mesh (.bobj.gz files) read functionality to fluid class 2016-06-15 16:36:21 +02:00
6a288555eb implemented getters for mesh fields and also added them to the c api 2016-06-15 01:07:56 +02:00
c933f959af added fields for meshes to fluid object 2016-06-14 22:45:12 +02:00
9516230a8a making maxres a public field 2016-06-13 14:13:01 +02:00
0972761bf0 new liquid inflow approach based on multiple raycasts 2016-06-12 02:32:42 +02:00
6c177d3d30 fixed missing sign from previous commit 2016-06-11 18:21:24 +02:00
0992e7f686 reverting to old liquid inflow - previous approach results in inaacurate meshes (interpolation issue) 2016-06-11 18:01:22 +02:00
e8863f0be1 trying out new liquid inflow values 2016-06-11 00:53:13 +02:00
5a83406340 custom file names for liquid cache now supported 2016-06-10 14:17:01 +02:00
7abab97769 started integration of liquids in pointcache 2016-06-09 19:28:49 +02:00
4cb76badec added high res liquid inflow grid (the one manta uses to create the mesh) 2016-06-09 00:05:25 +02:00
465250ad34 need to disable some smoke functions again 2016-06-08 22:59:15 +02:00
80f4488cf6 script cleanup (added some debug messages and remained phi grid) 2016-06-08 22:55:40 +02:00
a3c04bdd56 added phi high res grid. will be used later in liquid upres mode 2016-06-08 22:53:24 +02:00
a09387ee55 splitting up domain initialization. otherwise crashing 2016-06-08 22:49:04 +02:00
f0c17c7599 added high res liquid phi grid getter 2016-06-08 22:28:15 +02:00
664d6ad6c6 first customizations for liquid caching - extending the smoke cache 2016-06-08 16:22:40 +02:00
2c991e2ff2 re-enabled the remaining smoke functions. smoke sim now back to normal state 2016-06-08 16:19:33 +02:00
836db6c990 fixed domain switching - now using flags correctly 2016-06-07 00:45:26 +02:00
05c03b6526 cleaned up scripts and init functions which use them 2016-06-06 18:13:31 +02:00
2bd08d59d6 just some ui changes for the liquid domain switcher 2016-06-05 00:20:53 +02:00
d3c57bc244 added some liquid domain flags. mantaflow needs to know what domain to setup 2016-06-04 22:04:09 +02:00
6fe495f564 added liquid ensure function 2016-06-04 14:28:01 +02:00
c435b25a8e cleaned up liquid init and made it public 2016-06-04 11:10:49 +02:00
fef67913f2 use smaller randomness factor for now 2016-06-03 20:05:41 +02:00
a29e47ad23 re-enabled smoke ensure functions 2016-06-02 23:02:44 +02:00
1cbac79a1e added liquid flags / adapted settings to handle smoke 2016-06-02 22:16:33 +02:00
f13e9ccc61 better liquid inflow function 2016-06-01 19:20:21 +02:00
492e457afa memory cleanup for liquid inflow 2016-05-30 01:03:47 +02:00
b7d4d4a440 manta mesh smoothing not very performant. removing for now 2016-05-29 16:18:05 +02:00
a13cf9d56a better use floats for inflow liquid inflow map 2016-05-29 00:34:23 +02:00
be151d5ebd mantaflow mesh smoothing functions 2016-05-28 17:55:29 +02:00
7872e2fc3b added liquid inflow map 2016-05-27 16:20:51 +02:00
240ed366ce disabling smoke and fire grid 'ensures' for now - conflict with liquids 2016-05-27 10:39:03 +02:00
787735d8da reading from phitemp now 2016-05-27 00:32:54 +02:00
4500bd8195 added phitemp grid to mantaflow script (for blender to use for liquid mesh map) 2016-05-26 22:05:12 +02:00
7a8fd7068e major clean up
- removed deprecated scons setup
- reverted to original code in intern/smoke (new structures are all in
intern/mantaflow)
- minor CMake clean ups
2016-05-25 11:26:56 +02:00
c65d58a384 Merge branch 'master' into fluid-mantaflow 2016-05-24 23:10:59 +02:00
21d382fdfe disabling ptcache and some other smoke specific functionality to get liquids running in smoke core 2016-05-23 23:24:32 +02:00
e506b450e0 liquid grid pointer exchange functions (lets blender write the inflow to the mantaflow grid) 2016-05-21 02:17:50 +02:00
d352bc36b2 using smoke flags to guard certain calls (important when liquid is added) 2016-05-21 00:52:14 +02:00
909715d336 added flags to distinguish smoke and liquid setup 2016-05-20 18:41:49 +02:00
ba01efb841 liquid init function in header 2016-05-19 21:35:14 +02:00
cadcaac2dc small cleanup for smoke init function as well 2016-05-19 21:33:35 +02:00
68ccc63c1b added liquid init function (putting together manta script and firing off first python call) 2016-05-19 21:30:23 +02:00
45c146f4d6 don't forget to sample particles on first frame 2016-05-18 21:11:07 +02:00
bc11878b4c liquid script cleanup (removed old mesh .obj loading approach) 2016-05-17 16:03:10 +02:00
cb3f5f9b72 added liquid destruction script snippets 2016-05-17 15:54:56 +02:00
e32d03d7bd start frame for manta step was always one frame ahead 2016-05-15 02:20:04 +02:00
e8938ee9dc idea for mantaflow liquids api entry point 2016-05-14 11:08:18 +02:00
50b60c4edb fixed broken CMake for mantaflow directory 2016-05-13 01:32:11 +02:00
4a6f96a6d3 moved some script snippets to separate shared file (now there is only one solver string, one adaptive time stepping string, etc) 2016-05-12 13:01:39 +02:00
976ddc6636 new manta script file to hold shared snippets for smoke and liquids (e.g. imports, solver object) 2016-05-11 12:45:01 +02:00
026fdb3eaa some variables from previous commit were not renamed. fixed that. 2016-05-09 00:22:19 +02:00
b885c421a5 smoke api now matching new SMOKE names 2016-05-09 00:17:40 +02:00
a726479802 smoke object is now known as SMOKE (was MANTA). otherwise it might get confusing with new LIQUID object 2016-05-08 20:00:56 +02:00
c5051412a1 first implementation of liquid API (similar to smoke) 2016-05-07 16:35:03 +02:00
ba914f6c59 fixed include paths 2016-05-06 14:57:05 +02:00
d74149c6fd formatting (indentation) smoke script to match liquid and mantaflow scripts in general 2016-05-06 14:55:29 +02:00
756eedd2ab added new liquid script functions (mostly nb flip) 2016-05-05 10:33:23 +02:00
5e2a1bfe3d cleaned up manta api and script 2016-05-02 11:21:54 +02:00
39f65a97d2 adapted obstacle flags for mantaflow 2016-04-25 16:23:10 +02:00
520075c9de transferred object velocities to mantaflow 2016-04-25 16:22:14 +02:00
a59e9cd9f6 removed some deprecated functions 2016-04-23 13:48:01 +02:00
db47130a9c simplified grid pointer access functions 2016-04-23 13:45:38 +02:00
a9ca030f61 Merge branch 'master' into fluid-mantaflow 2016-04-06 13:15:12 +01:00
2533ccd609 removed deprecated cmake setup 2016-04-05 23:34:31 +01:00
bd34f1827a removed old manta_pp files from internal python dir - manta_pp files are in intern/mantaflow 2016-04-04 18:01:30 +01:00
ca58fa9a14 minor formatting cleanup 2016-04-03 23:52:49 +01:00
32de14f6c9 better use smaller uvweight reset time (strange smoke movement when set too high) 2016-04-02 12:55:14 +01:00
e248452b6c reverting to original fluid solver destructor. additional guards not needed. 2016-04-01 22:12:02 +02:00
f5c3f4acc2 making sure that all python objects are garbage collected 2016-04-01 22:10:52 +02:00
d2ef009a65 first customizations for using mantafow flags grid (replaces obstacle grid / array in blender) 2016-03-31 22:13:28 +01:00
b464579ad1 important: initialize uv helper grids as well 2016-03-30 20:06:51 +02:00
88ac9387cb added caching for mantaflow texture grids 2016-03-29 16:48:09 +01:00
a267258554 better and safer to delete solver python variables (and thus trigger object deletion) at the end 2016-03-28 13:29:54 +01:00
3f22573395 added current frame number to manta step. useful for standalone mantaflow script usage and for correct caching (uvweight) 2016-03-28 09:15:21 +01:00
88cb1a9c8f run uv setup strings only when using high res 2016-03-27 22:56:18 +01:00
d6356b71e3 switched back to old uv setup using low res solver 2016-03-27 10:01:32 +01:00
81ea46dee6 generalized mantaflow grid helper functions 2016-03-26 16:13:20 +01:00
8e5f736da7 implemented external forces 2016-03-25 18:32:39 +01:00
bce4ca54c5 crash fixes when loading a new script and some better default parameters 2016-03-24 14:59:59 +01:00
ee4c49462a added guards in fluid solver destructor 2016-03-24 01:35:29 +01:00
e4d27ed7b0 fixed pyobject reference count and changed mantaflow deallocation callback -> solver objects now deleted as well 2016-03-23 20:05:18 +01:00
5e24184124 now using separate flags for heat, fire, colors and highres 2016-03-23 06:10:39 +01:00
00bc0e6804 clean up strings for solver and gc 2016-03-22 21:22:04 +01:00
57af2486ff adapted setup for energy grid (now using high res) 2016-03-22 16:30:41 +01:00
6c1846e64f cleaned up include statements 2016-03-21 18:53:37 +01:00
329f128f23 now deleting python grid references properly 2016-03-20 23:26:43 +01:00
937c63766f moved uv setup and calculations from step low to step high. not needed in step low 2016-03-19 20:57:13 +01:00
fec5e07c4f fixed broken destructor from previous commit 2016-03-18 23:06:15 +01:00
8869dc6f72 fixed formatting issue in MANTA 2016-03-18 14:31:50 +01:00
f2206deadd fixing script export and small cleanups 2016-03-18 09:06:56 +01:00
6a2e523639 fixed include for manta python api header 2016-03-17 18:51:32 +01:00
837a78a451 updated manta pp files 2016-03-17 10:58:56 +01:00
1af573bb48 configured CMake and includes to use new manta api 2016-03-17 09:32:01 +01:00
81b646de8b renamed old smoke api functions in header because of name conflicts 2016-03-17 01:11:35 +01:00
f5200ea512 added macros to kernel code to use new manta smoke api 2016-03-16 21:54:46 +01:00
471d26025e removing old mantaflow code from kernel smoke.c for now. needs refactoring, maybe add later again 2016-03-16 12:39:08 +01:00
279bebead6 clean up in rna smoke 2016-03-16 09:14:40 +01:00
722f7f95be totally refactored, cleaned up manta object and its API 2016-03-15 20:09:47 +01:00
c27a16bdd1 setting up smokedomainsettings for new manta object 2016-03-15 11:23:30 +01:00
e763f021c8 setting up CMakeLists in mantaflow directory 2016-03-15 09:18:25 +01:00
ac5fdf2e16 prepared some paths in CMakeLists for new mantaflow directory 2016-03-14 12:10:57 +01:00
dde516be37 added color code snippet, fixed buoyancy sign, cleaned up standalone mode 2016-03-14 07:57:01 +01:00
e87694001f moved old liquid code to separate file 2016-03-14 07:53:41 +01:00
3b032529f8 refactored wavelet turbulence noise 2016-03-13 18:50:13 +01:00
3137f8f768 refactored deletion snippets for python 2016-03-13 18:44:45 +01:00
99f9cd040a extracted manta python api function to new files 2016-03-13 14:19:32 +01:00
4cc72652c4 changed new manta smoke api a bit 2016-03-12 12:51:11 +01:00
63a4dc5447 cleanup in CMakeLists 2016-03-11 10:33:24 +01:00
ea21f7cb99 removed old unused operator types 2016-03-10 09:01:49 +01:00
461d1ed860 added helper classes that were used in intern/smoke too 2016-03-09 16:14:20 +01:00
6d719f0727 small cleanup in ui - removing solver res for now 2016-03-08 14:42:15 +01:00
1340530c8c created separate mantaflow directory for api files 2016-03-07 22:57:48 +01:00
d69cc7ad06 updated manta pp files and new buoyancy function 2016-03-06 23:50:06 +01:00
1c8b45a596 small script cleanup, removed uvs variable 2016-03-03 22:48:30 +01:00
692c60eeb8 set wavelet noise value ranges, now using inverse posScale factor and fixed octaves issue when upres == 1 2016-02-26 18:48:46 +01:00
ec5a5ddc4f using mantaMsg() for debug messages 2016-02-26 16:13:46 +01:00
d40deb173c updated mantaflow pp files 2016-02-26 16:03:27 +01:00
db733cb2c0 even more cleanup 2016-02-26 12:59:04 +01:00
2deb386318 more noise and ui cleanup 2016-02-26 11:15:02 +01:00
f1fbad849f clean up wavelet noise 2016-02-26 09:21:53 +01:00
e8ba159405 some cleanup 2016-02-26 09:17:11 +01:00
33dba2c866 small while loop changes 2016-02-19 11:46:34 +01:00
986093dfb7 now using adaptTimestep(), new step setup and correct dt 2016-02-14 23:16:48 +01:00
d9e7005a52 manta step updates - reordered some functions 2016-02-04 20:55:13 +01:00
d58f9896cc epsilon fix 2016-02-02 16:30:31 +01:00
ab9c7d289e boundary width fix 2016-02-01 12:52:03 +01:00
61ce9584cc removed readme 2016-01-28 09:47:50 +01:00
00aeafc110 updated boundary and open bound settings 2016-01-22 15:20:14 +01:00
76f42e3ffe updated mantaflow pp files 2016-01-22 15:18:51 +01:00
81ac552eeb added del guards and removed noise grids (were not used anyway) 2016-01-18 18:10:42 +01:00
c1be8670b2 reverting to old mantaflow initialization 2016-01-17 23:05:31 +01:00
dbf8380953 updated ui wavelet noise and readme issue section 2016-01-16 22:04:33 +01:00
f0a54fa5e9 readme updates - known issues section 2016-01-14 14:46:39 +01:00
0f91dd6ce3 ui updates 2016-01-14 14:46:09 +01:00
e8c34986ed better noise integration - especially wavelet noise 2016-01-14 13:55:11 +01:00
328855b18d bound / border condition fixes 2016-01-13 00:34:32 +01:00
2be683a9f9 more readme updates (troubleshooting section) 2016-01-12 23:36:03 +01:00
846d196c4e script generation and readme updates 2016-01-12 23:10:19 +01:00
a167cb75ce wavelet fixes and refactored smoke.h 2016-01-09 21:37:23 +01:00
4be4b58816 more manta api refactoring 2016-01-09 03:01:08 +01:00
965ac27fb7 refactoring manta api and started to comment out old code -> removing it later 2016-01-08 02:12:57 +01:00
43fcc9207a some manta api refactoring 2016-01-07 21:01:19 +01:00
59ed95e447 cannot have heat, flame, fuel, react grids here 2016-01-07 03:37:29 +01:00
b1debbea46 fixing cache 2016-01-07 02:27:25 +01:00
7227b9ae10 removed #if #end directives from fluid destructor 2016-01-03 02:53:21 +01:00
8af5aa365d flag fix 2016-01-03 01:10:25 +01:00
5c70edab88 cleanup and naming changes 2016-01-03 01:07:48 +01:00
b9d1c5cb77 high res fixes 2016-01-02 17:36:47 +01:00
16a7dc70ee readme updates 2015-12-24 00:58:34 +01:00
cd35a608b3 Merge remote-tracking branch 'github/soc-2014-fluid' into soc-2014-fluid 2015-12-23 23:53:11 +01:00
caa23de7fb cleanup from previous noise test 2015-12-23 23:52:48 +01:00
ba0ef25670 added readme 2015-12-22 03:40:15 +01:00
db9caab5b1 Merge branch 'master' into soc-2014-fluid
Conflicts:
	CMakeLists.txt
	extern/CMakeLists.txt
	extern/SConscript
2015-12-21 15:21:11 +01:00
c15ac2fdda script improvements - noise settings 2015-12-21 01:06:02 +01:00
d77b678265 buoyancy improvements 2015-12-16 00:15:49 +01:00
6ec6e81563 fixed issue with bound conditions 2015-10-24 13:06:40 +02:00
3430e0aab9 minor cleanups 2015-10-12 20:38:51 +02:00
d0c9ebf9cb fuel inflow and manta script cleanup 2015-10-11 23:44:51 +02:00
9a6f22462d fixed manta density inflow grid and removed unneeded manta pp gui files 2015-10-09 18:27:27 +02:00
c411456263 refactored manta script creation 2015-10-09 12:48:24 +02:00
2e56d6a07b Merge branch 'master' into soc-2014-fluid 2015-10-06 01:01:14 +02:00
6af37db96f script changes 2015-10-06 00:53:27 +02:00
fe64157063 improving manta export script 2015-10-06 00:51:00 +02:00
d02bb60d3c updated manta pp files and adapted smoke.h 2015-10-01 11:02:40 +02:00
04eaf6bd58 removed manta-full 2015-09-30 22:01:24 +02:00
556ff7c85d fixed scons setup and removed old pp non openmp mantaflow files 2015-09-22 18:59:33 +02:00
895dc7db15 new pymain.cpp also for openmp setup 2015-09-19 22:11:58 +02:00
6cfc4110cd refactoring fluid_3d constructor setup 2015-09-19 20:28:09 +02:00
9ac37c4e0e added caching for simulation with manta solver 2015-09-19 16:58:03 +02:00
f6d5c3465a fixed setup when with_manta flag is disabled 2015-09-18 23:48:49 +02:00
191f3fc1c2 added non-openmp mantaflow pp files 2015-09-17 18:01:30 +02:00
c08a25d7e7 updated mantaflow files and some further tweaks to get it working in blender 2015-09-17 15:39:39 +02:00
9cbe88808c remove comments for cleaner console 2015-09-16 15:05:16 +02:00
807cd2e33e cleaner export paths in manta script 2015-09-10 01:38:59 +02:00
803e5a9ade read blender values in processBurn and cleaned up fire plugin 2015-09-09 14:32:10 +02:00
04d826c296 finished high resolution fire 2015-09-08 13:04:01 +02:00
497c40b29c refactored updatePointers functions 2015-09-08 01:02:59 +02:00
cd76de8410 work on high resolution fire 2015-09-08 00:39:02 +02:00
3804e91127 initialize color grids before burning - needed! 2015-09-07 01:32:42 +02:00
9dcc33794c minor tweaks 2015-09-07 00:38:39 +02:00
e9afe07ae1 Merge remote-tracking branch 'github/soc-2014-fluid' into soc-2014-fluid
merge with github version
2015-09-06 20:16:21 +02:00
d31e7960ea plugin changes 2015-09-06 19:57:24 +02:00
71d5c16487 updated fire plugin 2015-09-05 22:24:58 +02:00
18aa00cc5e more fire integration 2015-09-05 18:35:38 +02:00
a35c4b1df3 first draft for fire setup with manta 2015-09-05 15:19:15 +02:00
cd712d50b7 just removed some typos 2015-09-03 23:21:42 +02:00
1dbcacbd26 cleaning up repository 2015-08-15 15:42:41 +02:00
82c2daa248 Merge branch 'master' into soc-2014-fluid
Conflicts:
	CMakeLists.txt
	extern/CMakeLists.txt
	extern/SConscript
	intern/ghost/intern/GHOST_WindowCocoa.mm
	source/creator/CMakeLists.txt
2015-08-15 13:34:27 +02:00
Roman Pogribnyi
3d397d22d7 Smoke: UI controls for manta buoyancy used 2015-05-17 21:22:08 +02:00
Roman Pogribnyi
16ace5e6f7 Smoke: manta export paths corrected 2015-05-17 20:46:04 +02:00
Roman Pogribnyi
03c7acf3a0 Smoke: Updated mantaflow sources 2015-04-13 22:17:59 +02:00
Roman Pogribnyi
79f7f4d562 after-merge errors fixed 2015-03-15 23:05:11 +01:00
Roman Pogribnyi
5c64aa2554 Merge branch 'master' into soc-2014-fluid 2015-03-15 19:57:06 +01:00
Roman Pogribnyi
2a1a6bc572 2D lowres smoke 2015-03-09 22:55:34 +01:00
Roman Pogribnyi
bf64cd1fd8 Forces passed to Mantaflow correctly, vortex working 2015-03-05 00:19:24 +01:00
Roman Pogribnyi
1799615629 Manta 2D smoke indexing fixed 2015-02-01 23:58:36 +01:00
Roman Pogribnyi
2d0f34ef76 Manta 2D Smoke display correct 2015-02-01 23:52:19 +01:00
Roman Pogribnyi
d607c2a598 manta scene file location, work on 2D smoke 2015-01-27 23:24:16 +01:00
Roman Pogribnyi
d72968e91d fields saved properly for export, unused code removed 2014-12-04 23:14:53 +01:00
Roman Pogribnyi
666cc76e42 completing flags passing, removing comments from scenarios 2014-11-17 10:53:10 +01:00
Roman Pogribnyi
a380ca2a63 passing obstacle flags to manta correctly 2014-11-15 15:05:23 +01:00
Roman Pogribnyi
1377d74cb5 high res smoke colors fixed 2014-11-14 14:41:43 +01:00
Roman Pogribnyi
43d7cbdea8 Boundary conditions + new feature 2014-11-11 23:42:18 +01:00
Roman Pogribnyi
26dca6df78 Buoyancy in Manta using heat from Blender 2014-11-09 15:39:17 +01:00
Roman Pogribnyi
6b11773770 error checks for Manta_API functions 2014-11-09 14:41:12 +01:00
Roman Pogribnyi
15ba8ec5af shrinking Fluid_3d class 2014-11-09 14:38:01 +01:00
Roman Pogribnyi
b63074492d low- and highres colored smoke 2014-11-06 00:31:09 +01:00
Roman Pogribnyi
b1acc10d8b not initializing density fields 2014-11-05 21:26:12 +01:00
Roman Pogribnyi
cbda5b801b SMOKE: mantaflow in Fluid_3d object, running wavelets 2014-11-05 20:53:08 +01:00
Roman Pogribnyi
2e6fbe23b8 SMOKE: wavelets included in setups 2014-11-04 17:45:03 +01:00
Roman Pogribnyi
645c283477 wturbulence for mantaflow 2014-11-02 14:21:17 +01:00
Roman Pogribnyi
f45d319d60 division between high-res and low-res manta operations 2014-11-02 14:20:54 +01:00
Roman Pogribnyi
4256c72ae3 working with manta compiler flag 2014-10-30 16:36:06 +01:00
Roman Pogribnyi
d410d6622a lowres density pointers corrected 2014-10-30 11:48:07 +01:00
Roman Pogribnyi
c181d0b9be lowres: computing forces only once 2014-10-27 13:38:45 +01:00
Roman Pogribnyi
c92be53d24 Not using disk setup file anymore 2014-10-27 09:56:29 +01:00
Roman Pogribnyi
cd5898aecb low-res: only manta solver, with manta flag simulation 2014-10-27 09:16:32 +01:00
Roman Pogribnyi
8d40c8de5a Defining Interfaces for Manta_API 2014-10-26 21:59:40 +01:00
Roman Pogribnyi
b4ef7ed987 GetGridPOinter form mantaflow working 2014-10-26 21:51:41 +01:00
Roman Pogribnyi
4ffc4fb0bc UI syntax 2014-10-26 21:50:31 +01:00
Roman Pogribnyi
e62f96480a unused manta UI disabled 2014-10-25 14:54:54 +02:00
Roman Pogribnyi
71493088c1 deleting manta solvers and fields correctly 2014-10-25 14:10:15 +02:00
Roman Pogribnyi
5d3ae295d8 compiler flags for osx and linux 2014-10-25 12:26:59 +02:00
Roman Pogribnyi
2696d2bb8b mantaflow stable on osx 2014-10-24 17:45:28 +02:00
Roman Pogribnyi
9b54025191 Manta python module imported correctly 2014-10-24 12:33:19 +02:00
ee54a4eaee Fix compile 2014-10-23 18:41:11 +02:00
0d41f63eb2 Revert changes.
Still one linking error left.
2014-10-23 18:04:28 +02:00
f43088623c Revert name changes to be conform with mana_full 2014-10-23 17:17:01 +02:00
33c5699a41 Fix compile error on Linux 2014-10-23 16:55:49 +02:00
f2c5ff385d Fix merge error
Streamline Python function name
2014-10-23 16:46:28 +02:00
9c113a870a Fix merge error (still some left)
Fix some path issues
2014-10-23 16:36:01 +02:00
2cc063318c Fix CMake (missing path for zlib) 2014-10-23 15:36:05 +02:00
8662cddce1 Fix (one) compile error on MSVC 2013
Fix merge error
2014-10-23 15:24:24 +02:00
9ff1ebed52 Merge remote-tracking branch 'origin/master' into soc-2014-fluid
Conflicts:
	.gitignore
	intern/cycles/CMakeLists.txt
	source/blender/blenkernel/intern/smoke.c
	source/blender/python/intern/bpy_interface.c
	source/creator/CMakeLists.txt
2014-10-23 15:12:28 +02:00
Roman Pogribnyi
a2ed11c6ee readGridFromMemory correct dimensionality 2014-10-23 11:59:50 +02:00
Roman Pogribnyi
77fcd6c400 unnecessary calls to Mantaflow removed 2014-10-22 20:47:41 +02:00
Roman Pogribnyi
9cc9c7ec16 high-res: inflow data passed in-memory, forces working 2014-10-21 23:09:04 +02:00
Roman Pogribnyi
2b3b73fbb0 low-res: passing obstacles in-memory 2014-10-18 15:52:46 +02:00
Roman Pogribnyi
e6a37c3f24 low res: errors in grid construction fixed, methods for passing obstacles to Mantaflow added 2014-10-18 15:15:45 +02:00
Roman Pogribnyi
8b9abeb8e0 methods for adding texture values to grids, working for Real type 2014-10-17 17:37:53 +02:00
Roman Pogribnyi
86aeeb16f8 in-memory passing of force fields 2014-10-16 22:05:00 +02:00
Roman Pogribnyi
453a284e97 generating grid name from type 2014-10-16 21:42:37 +02:00
Roman Pogribnyi
2fcda12a14 passing void pointers for different types of grids 2014-10-16 21:33:35 +02:00
Roman Pogribnyi
b3413a07b4 passing inflow adaptive grids without disk files 2014-10-15 19:51:35 +02:00
Roman Pogribnyi
193461e3da Manta_API as singletone 2014-10-11 20:21:40 +02:00
Roman Pogribnyi
065e1a196c debug output, smoke BC 2014-10-11 19:39:03 +02:00
Roman Pogribnyi
c7c360c573 loading influence fields form file 2014-10-11 19:38:08 +02:00
Roman Pogribnyi
239260d45b returning to non-static methods 2014-10-11 19:35:53 +02:00
Roman Pogribnyi
1ad9eebd51 more vars from sds, flow density added to manta 2014-09-27 14:48:56 +02:00
Roman Pogribnyi
db26bdd36f writing correct density emitter to file 2014-09-27 13:53:41 +02:00
Roman Pogribnyi
b79bcc8121 replacing step function 2014-09-27 09:38:38 +02:00
Roman Pogribnyi
f91b07d655 loading flow data on first sim frame 2014-09-22 14:46:14 +02:00
Roman Pogribnyi
8e32d79158 scenario changed according to simpleplume 2014-09-22 13:35:42 +02:00
Roman Pogribnyi
8f14ff3905 per-step sim without writing to disk, reducing number of arguments to manta 2014-09-21 16:37:49 +02:00
Roman Pogribnyi
309e1bcc2d low-res smoke scenario running, unused files removed 2014-09-21 14:51:48 +02:00
Roman Pogribnyi
065676a6f8 updated mantaflow version 2014-09-21 14:43:44 +02:00
Roman Pogribnyi
00157066bf reverting to old smoke style, simpleplume scenario for debug 2014-09-21 14:43:00 +02:00
Roman Pogribnyi
527920ecf6 using bake buton, reading more settings 2014-09-20 16:48:46 +02:00
Roman Pogribnyi
199b6cdc1e timestep config corrected 2014-08-31 23:03:26 +02:00
Roman Pogribnyi
0fce063fd0 Display and render of highres smoke fixed 2014-08-25 15:28:12 +02:00
Roman Pogribnyi
9c7f7c6573 more parameters for smoke scenario, writing out emitter fields 2014-08-25 14:43:17 +02:00
Roman Pogribnyi
b3cc023c08 smoke scenarion working 2014-08-19 11:03:29 +02:00
Roman Pogribnyi
86989150b5 started scenarios implemetation; added file for smoke; back to setup file generation 2014-08-18 20:48:33 +02:00
Roman Pogribnyi
c9a3db6c42 reverting to Bake button 2014-08-18 16:49:01 +02:00
Roman Pogribnyi
ca26093a2c functions for scenarios parsing added 2014-08-18 16:01:37 +02:00
Roman Pogribnyi
01ec151a07 commented parts and debug msgs removed in rest of files 2014-08-18 15:22:59 +02:00
Roman Pogribnyi
0e200e9d31 manta.cpp commented parts removed 2014-08-18 15:08:39 +02:00
Roman Pogribnyi
dca46055ee releasing python after sim step 2014-08-18 14:53:03 +02:00
Roman Pogribnyi
2b9c2bc1d4 debug messages added 2014-08-18 11:52:26 +02:00
Roman Pogribnyi
5f39d58e6d setup script passed directly; file still created fir debug 2014-08-18 09:25:54 +02:00
Roman Pogribnyi
a651697d78 frame counting for simulation correct 2014-08-17 22:26:26 +02:00
Roman Pogribnyi
c9571f9a3e Run sim from timeline, without Bake button 2014-08-17 15:55:00 +02:00
Roman Pogribnyi
775b93767f RNA update operations corrected 2014-08-16 12:03:17 +02:00
Roman Pogribnyi
f105ea7b5e timestep decreased 2014-08-15 22:25:22 +02:00
Roman Pogribnyi
269dbda090 old density read-style 2014-08-15 22:18:52 +02:00
Roman Pogribnyi
0607338884 repositioned domain handling; quick smoke working 2014-08-15 21:48:15 +02:00
Roman Pogribnyi
3bd5139761 faster SDF, displaying smoke 2014-08-15 20:17:23 +02:00
Roman Pogribnyi
dca8568fff added comments 2014-08-14 23:14:49 +02:00
Roman Pogribnyi
4b7cc3923e removed commented parts 2014-08-14 23:11:12 +02:00
Roman Pogribnyi
dcdb8a658c inflow without noise; passing rotated geometry to amantaflow correct 2014-08-14 23:04:56 +02:00
Roman Pogribnyi
6642bd6ab4 wavelets source positioning correct 2014-08-13 22:12:02 +02:00
Roman Pogribnyi
dc529debbd resizeable domain added. Working for non-rotated objects 2014-08-13 20:57:12 +02:00
Roman Pogribnyi
9575a37b20 loading and displaying wavelets smoke 2014-08-13 16:06:04 +02:00
Roman Pogribnyi
00c9e3b4cf rotating domain to get manta axes 2014-08-12 22:43:39 +02:00
Roman Pogribnyi
2f96dbd3fc invoking BKE_cache_write when read from cached files successful; handling wavelet 2014-08-12 22:42:23 +02:00
Roman Pogribnyi
201555edca updating highres fluid_3d; writing smoke cache to BKE_pointcache 2014-08-12 00:55:35 +02:00
Roman Pogribnyi
74136a6d06 re-runs with wavelets work 2014-08-11 22:16:15 +02:00
Roman Pogribnyi
8537dccb30 runtime error in abscent FLUID_3D obj seems corrected 2014-08-11 21:48:16 +02:00
Roman Pogribnyi
e5b7630809 more density in emitter, unused function declaration removed 2014-08-10 18:05:10 +02:00
Roman Pogribnyi
edc3b4b687 force fields direction correct 2014-08-09 13:00:48 +02:00
Roman Pogribnyi
818d6ae380 more fluid_3d pointers handling 2014-08-08 23:46:11 +02:00
Roman Pogribnyi
868980d7f2 FLUID3D pointers handling 2014-08-08 22:25:33 +02:00
Roman Pogribnyi
ba0d7cb56d Buoyancy factor corrected 2014-08-08 17:55:36 +02:00
Roman Pogribnyi
0e173445c7 manta running speed increased. Buoyancy factor added 2014-08-08 17:55:14 +02:00
Roman Pogribnyi
861bfc9441 correct number of sim frames 2014-08-08 16:51:22 +02:00
Roman Pogribnyi
e3adec65f7 Error with force_grid_size fixed. Direction still incorrect 2014-08-08 14:16:10 +02:00
Roman Pogribnyi
ec9c908018 forces included in manta simulation on per-basis step 2014-08-08 00:14:35 +02:00
Roman Pogribnyi
306ef174cb updating force_fields on per-step basis 2014-08-07 23:50:58 +02:00
Roman Pogribnyi
5a54c9c6b7 updating force field on smoke_process 2014-08-07 20:34:21 +02:00
Roman Pogribnyi
ff20f36680 exporting wind force 2014-08-07 20:12:38 +02:00
Roman Pogribnyi
9156dcac7d addForceField method in mantaflow added 2014-08-07 19:58:15 +02:00
Roman Pogribnyi
fa4dec8e52 Linux running error fixed. Replay sim error fixed 2014-08-05 19:34:15 +02:00
Roman Pogribnyi
1f22e9d68c passing correctly rotated geometry to manta 2014-08-05 19:20:29 +02:00
Roman Pogribnyi
6a22addd61 returning to densityInflowMesh 2014-08-05 14:11:06 +02:00
Roman Pogribnyi
5c6ee2794d extracting force_fields 2014-08-04 12:08:37 +02:00
Roman Pogribnyi
4de2c21a40 closing file correctly 2014-08-03 17:45:54 +02:00
Roman Pogribnyi
73186af86e renaming of processed density field files 2014-08-02 13:04:30 +02:00
Roman Pogribnyi
2e06c6dbe7 progress textfield started, stopButton correct 2014-08-02 13:03:29 +02:00
Roman Pogribnyi
e7dbab06f4 unused file deleted 2014-08-01 19:36:27 +02:00
Roman Pogribnyi
0f8dabc1d7 imorting mantaflow correctly in Unix 2014-08-01 19:33:39 +02:00
Roman Pogribnyi
c6ca55e32e stop sim button 2014-07-31 23:13:21 +02:00
Roman Pogribnyi
79d6c89eaf frame_num field added, manta_sim in separate thread 2014-07-31 19:54:09 +02:00
Roman Pogribnyi
ce20c8d876 step, stop sim manta operations added 2014-07-31 19:52:50 +02:00
Roman Pogribnyi
473255d2f7 method for frame_step in separate thread added 2014-07-31 13:13:35 +02:00
Roman Pogribnyi
c8138097f7 per-step simulation added 2014-07-31 00:12:24 +02:00
Roman Pogribnyi
411ee40384 single-threaded re-runs work ok 2014-07-30 18:24:02 +02:00
Roman Pogribnyi
3122ee62d1 back to single-threaded method to debug manta re-run errors 2014-07-30 17:29:24 +02:00
Roman Pogribnyi
5f19242c58 new flags for manta module 2014-07-28 21:16:58 +02:00
Roman Pogribnyi
ada6ead6cc manta readfile to separate function 2014-07-28 12:09:00 +02:00
Roman Pogribnyi
e3aecd084e using user-defined frame bounds 2014-07-25 20:35:00 +02:00
Roman Pogribnyi
3643bf3be0 added start-end frame fields in UI 2014-07-25 19:40:31 +02:00
Roman Pogribnyi
06f05294cb function bodies moved to cpp file, some sim settings tweaked 2014-07-25 16:53:24 +02:00
Roman Pogribnyi
762a4b57a8 manta tun is separate thread 2014-07-24 14:54:32 +02:00
Roman Pogribnyi
15a2f381b0 class registration improved 2014-07-23 20:06:56 +02:00
Roman Pogribnyi
5e92c2770a debug output removed 2014-07-23 20:01:30 +02:00
Roman Pogribnyi
0f64929d79 added debug messages 2014-07-22 16:44:57 +02:00
Roman Pogribnyi
bab35daf74 unused files removed 2014-07-22 15:20:02 +02:00
Roman Pogribnyi
5bd23adb62 division on manta_pp and manta_full to switch between full module and pp files 2014-07-22 15:18:47 +02:00
Roman Pogribnyi
7752cfb1d8 cleaned cmakelists file 2014-07-21 16:48:52 +02:00
Roman Pogribnyi
fe44c97b37 unused plugin files removed 2014-07-21 16:47:34 +02:00
Roman Pogribnyi
8f9b4a3566 removing source duplicates 2014-07-17 15:36:20 +02:00
Roman Pogribnyi
ea0e959843 compiling & linking; unused paths deleted; compile flags for manta removed 2014-07-17 15:12:52 +02:00
Roman Pogribnyi
91921bb051 depends added, unused list commands removed 2014-07-17 13:51:43 +02:00
Roman Pogribnyi
c6e418c690 non-existing files generated and preprocessed 2014-07-17 13:20:29 +02:00
Roman Pogribnyi
1c2f537505 paths for repositioned manta_pp folder correct 2014-07-17 10:00:36 +02:00
Roman Pogribnyi
df1c4bb710 removing repository info 2014-07-17 10:00:36 +02:00
Roman Pogribnyi
eb64dca859 fixed prep-not-found issue,files compiling 2014-07-17 10:00:35 +02:00
2fd69c5185 Fix generating temporary files with prep binary, also comment out include of hgnfo header for now.
- I just uncommented failing code
- dunno whats up with hginfo, guess thats from external source versioncontrol of manta (?)
- pls disable openmp, due this branch was not merged lately and misses omp cmake fixes
I checked all is compiling fine now
2014-07-16 01:47:10 +02:00
Roman Pogribnyi
8a990a8318 correct prep binary location, debug messages instead of prep step 2014-07-15 16:24:32 +02:00
Roman Pogribnyi
25ef55b304 library creation for Win systems 2014-07-14 13:00:42 +02:00
Roman Pogribnyi
a70e4394ac removed pp files, preproessing during compiling step 2014-07-14 12:57:43 +02:00
Roman Pogribnyi
2071f5901a setting for debugging the linking issue 2014-07-12 16:00:50 +02:00
Roman Pogribnyi
41a28c2106 Compiling intermediate files for linking c++ code from bpy_interface.c 2014-07-10 23:02:13 +02:00
Roman Pogribnyi
8c3aedcec5 Big commit. Manta included in Blender Python. NOT ALL modules imported 2014-07-08 21:31:15 +02:00
Roman Pogribnyi
f80924027f importing manta module to interpreter 2014-07-02 20:13:12 +02:00
Roman Pogribnyi
37613a8cba *FAULTY* code, big commit: manta files, Cmake and Scons integration. Started work on full-cycle fluids 2014-07-02 11:50:03 +02:00
Roman Pogribnyi
f47b7784cf settings for SDF tweaked 2014-06-25 13:05:40 +02:00
Roman Pogribnyi
aa59cb6615 Running Manta in separate thread 2014-06-21 10:26:36 +02:00
Roman Pogribnyi
559ae8567c vorticity, SDF grids added 2014-06-21 10:25:13 +02:00
Roman Pogribnyi
efa2f69473 method for transforming meshes back from [-1,1] coords; sdf fields for obstacles and inflow meshes added 2014-06-19 15:05:05 +02:00
Roman Pogribnyi
7548135aec Manta vars initialization, support for inflow objs in setup file, *.obj export for bounding box[ -1,1] 2014-06-16 23:11:58 +02:00
Roman Pogribnyi
91c5025ce8 repositioning handled 2014-06-14 01:37:53 +02:00
Roman Pogribnyi
c781f59974 resizing meshes accordingly, tweaks in SDF method call 2014-06-14 00:40:05 +02:00
Roman Pogribnyi
7ae6959df9 Better handling of obj files when writing there 2014-06-13 22:07:20 +02:00
Roman Pogribnyi
7e0aa75de9 Setup file handles collision objs correctly 2014-06-13 22:05:29 +02:00
Roman Pogribnyi
b5b81bea79 correct file naming 2014-06-13 19:45:57 +02:00
Roman Pogribnyi
42567648a7 exporting Collision and flow objects as .obj files 2014-06-13 19:45:20 +02:00
Roman Pogribnyi
c249d3dad1 Noise settings UI 2014-06-10 23:52:45 +02:00
Roman Pogribnyi
c0ecba8002 UI for UVS count 2014-06-10 22:59:58 +02:00
Roman Pogribnyi
b37b145a95 indentation method added, minor fixes 2014-06-10 22:19:37 +02:00
Roman Pogribnyi
6a1ffeefd8 indents added; correct order of wavelets restored 2014-06-08 13:16:35 +02:00
Roman Pogribnyi
98d62932e5 setup file is correct 2014-06-07 17:59:10 +02:00
Roman Pogribnyi
8fddd571a1 flags, mock sources and obstacles. handling of octaves 2014-06-07 16:55:59 +02:00
Roman Pogribnyi
f6a5020d09 wavelet vars added 2014-06-07 16:38:52 +02:00
Roman Pogribnyi
0d979ce138 noise accounts for indentation 2014-06-07 16:16:30 +02:00
Roman Pogribnyi
44b4cf699d noise field name var 2014-06-06 23:42:23 +02:00
Roman Pogribnyi
9ed7be50aa Separate Solver creation function; 2D solver option implemented: UI + functionality 2014-06-06 23:39:00 +02:00
Roman Pogribnyi
1eae4069f7 Pressure function separated; Bundary Conditions set correctly 2014-06-05 18:47:37 +02:00
Roman Pogribnyi
a36bb2ae85 unused comments removed 2014-06-03 23:18:03 +02:00
Roman Pogribnyi
7177c3f129 separate function for semiLagrange advecttion. Using stringstream for script generation 2014-06-03 23:16:30 +02:00
Roman Pogribnyi
33e9a9e0ce Separate function for noise generation. Pressure syntax correct 2014-06-02 15:41:19 +02:00
Roman Pogribnyi
bcb5c61dc3 support for Domain Border Collisions added 2014-05-31 17:29:35 +02:00
Roman Pogribnyi
ac78fde848 operator to generate setup file added 2014-05-30 14:03:33 +02:00
Roman Pogribnyi
a009fb637b function to generate setup file added 2014-05-30 13:58:45 +02:00
Roman Pogribnyi
e7e5ef2c04 use_manta property added to smoke DNA 2014-05-30 13:45:43 +02:00
Roman Pogribnyi
2cf121ca35 Mantaflow UI added: tab and file generation button 2014-05-30 13:40:24 +02:00
Roman Pogribnyi
9ae7bd0cdb added manta.h to smoke cmake config 2014-05-30 13:17:32 +02:00
Roman Pogribnyi
60f32a6389 CMakeLists warnings restored 2014-05-30 13:15:25 +02:00
Roman Pogribnyi
e726908fb4 comments style fixed 2014-05-25 22:21:03 +02:00
Roman Pogribnyi
66f21314f9 added Manta.h for mantaflow integrtion; reading smoke simulation files 2014-05-25 00:44:12 +02:00
3876 changed files with 433170 additions and 513507 deletions

View File

@@ -1,7 +1,6 @@
{
"project_id" : "Blender",
"conduit_uri" : "https://developer.blender.org/",
"phabricator.uri" : "https://developer.blender.org/",
"git.default-relative-commit" : "origin/master",
"arc.land.update.default" : "rebase",
"arc.land.onto.default" : "master"

View File

@@ -132,7 +132,9 @@ PenaltyBreakAssignment: 100
AllowShortFunctionsOnASingleLine: None
SortIncludes: true
# Disable for now since it complicates initial migration tests,
# TODO: look into enabling this in the future.
SortIncludes: false
# Don't right align escaped newlines to the right because we have a wide default
AlignEscapedNewlines: DontAlign
@@ -191,7 +193,6 @@ ForEachMacros:
- FOREACH_MAIN_ID_BEGIN
- FOREACH_MAIN_LISTBASE_BEGIN
- FOREACH_MAIN_LISTBASE_ID_BEGIN
- FOREACH_MESH_BUFFER_CACHE
- FOREACH_NODETREE_BEGIN
- FOREACH_OBJECT_BEGIN
- FOREACH_OBJECT_FLAG_BEGIN
@@ -214,7 +215,6 @@ ForEachMacros:
- GHASH_ITER_INDEX
- GPU_SELECT_LOAD_IF_PICKSEL_LIST
- GP_EDITABLE_STROKES_BEGIN
- GP_EVALUATED_STROKES_BEGIN
- GSET_FOREACH_BEGIN
- GSET_ITER
- GSET_ITER_INDEX
@@ -238,6 +238,7 @@ ForEachMacros:
- LISTBASE_FOREACH_BACKWARD
- LISTBASE_FOREACH_MUTABLE
- LISTBASE_FOREACH_BACKWARD_MUTABLE
- MAN2D_ITER_AXES_BEGIN
- MAN_ITER_AXES_BEGIN
- NODE_INSTANCE_HASH_ITER
- NODE_SOCKET_TYPES_BEGIN
@@ -245,16 +246,12 @@ ForEachMacros:
- NODE_TYPES_BEGIN
- PIXEL_LOOPER_BEGIN
- PIXEL_LOOPER_BEGIN_CHANNELS
- RENDER_PASS_ITER_BEGIN
- RNA_BEGIN
- RNA_PROP_BEGIN
- RNA_STRUCT_BEGIN
- RNA_STRUCT_BEGIN_SKIP_RNA_TYPE
- SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN
- SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN
- SEQP_BEGIN
- SEQ_BEGIN
- SURFACE_QUAD_ITER_BEGIN
- foreach
# Use once we bump the minimum version to version 8.

5
.gitignore vendored
View File

@@ -42,7 +42,4 @@ Desktop.ini
/build_files/build_environment/downloads
# in-source buildbot signing configuration
/build_files/buildbot/codesign/config_server.py
# smoke simulation noise tile (generated)
waveletNoiseTile.bin
/build_files/buildbot/codesign/config_server.py

View File

@@ -97,11 +97,6 @@ cmake_policy(SET CMP0010 NEW)
# Input directories must have CMakeLists.txt
cmake_policy(SET CMP0014 NEW)
# Silence draco warning on macOS, new policy works fine.
if(POLICY CMP0068)
cmake_policy(SET CMP0068 NEW)
endif()
#-----------------------------------------------------------------------------
# Load some macros.
include(build_files/cmake/macros.cmake)
@@ -138,6 +133,11 @@ get_blender_version()
#-----------------------------------------------------------------------------
# Options
# First platform specific non-cached vars
if(UNIX AND NOT (APPLE OR HAIKU))
set(WITH_X11 ON)
endif()
# Blender internal features
option(WITH_BLENDER "Build blender (disable to build only the blender player)" ON)
mark_as_advanced(WITH_BLENDER)
@@ -175,14 +175,6 @@ option(WITH_BULLET "Enable Bullet (Physics Engine)" ON)
option(WITH_SYSTEM_BULLET "Use the systems bullet library (currently unsupported due to missing features in upstream!)" )
mark_as_advanced(WITH_SYSTEM_BULLET)
option(WITH_OPENCOLORIO "Enable OpenColorIO color management" ON)
if(APPLE)
# There's no OpenXR runtime in sight for macOS, neither is code well
# tested there -> disable it by default.
option(WITH_XR_OPENXR "Enable VR features through the OpenXR specification" OFF)
mark_as_advanced(WITH_XR_OPENXR)
else()
option(WITH_XR_OPENXR "Enable VR features through the OpenXR specification" ON)
endif()
# Compositor
option(WITH_COMPOSITOR "Enable the tile based nodal compositor" ON)
@@ -202,15 +194,7 @@ mark_as_advanced(WITH_GHOST_DEBUG)
option(WITH_GHOST_SDL "Enable building Blender against SDL for windowing rather than the native APIs" OFF)
mark_as_advanced(WITH_GHOST_SDL)
if(UNIX AND NOT (APPLE OR HAIKU))
option(WITH_GHOST_X11 "Enable building Blender against X11 for windowing" ON)
mark_as_advanced(WITH_GHOST_X11)
option(WITH_GHOST_WAYLAND "Enable building Blender against Wayland for windowing (under development)" OFF)
mark_as_advanced(WITH_GHOST_WAYLAND)
endif()
if(WITH_GHOST_X11)
if(WITH_X11)
option(WITH_GHOST_XDND "Enable drag'n'drop support on X11 using XDND protocol" ON)
endif()
@@ -235,7 +219,7 @@ if(UNIX AND NOT APPLE)
mark_as_advanced(WITH_OPENMP_STATIC)
endif()
if(WITH_GHOST_X11)
if(WITH_X11)
option(WITH_X11_XINPUT "Enable X11 Xinput (tablet support and unicode input)" ON)
option(WITH_X11_XF86VMODE "Enable X11 video mode switching" ON)
option(WITH_X11_XFIXES "Enable X11 XWayland cursor warping workaround" ON)
@@ -322,14 +306,6 @@ mark_as_advanced(WITH_SYSTEM_GLOG)
# Freestyle
option(WITH_FREESTYLE "Enable Freestyle (advanced edges rendering)" ON)
# New object types
option(WITH_NEW_OBJECT_TYPES "Enable new hair and pointcloud objects (use for development only, don't save in files)" OFF)
mark_as_advanced(WITH_NEW_OBJECT_TYPES)
# New simulation data block
option(WITH_NEW_SIMULATION_TYPE "Enable simulation data block (use for development only, don't save in files)" OFF)
mark_as_advanced(WITH_NEW_SIMULATION_TYPE)
# Misc
if(WIN32)
option(WITH_INPUT_IME "Enable Input Method Editor (IME) for complex Asian character input" ON)
@@ -436,8 +412,6 @@ endif()
option(WITH_GTESTS "Enable GTest unit testing" OFF)
option(WITH_OPENGL_RENDER_TESTS "Enable OpenGL render related unit testing (Experimental)" OFF)
option(WITH_OPENGL_DRAW_TESTS "Enable OpenGL UI drawing related unit testing (Experimental)" OFF)
set(TEST_PYTHON_EXE "" CACHE PATH "Python executable to run unit tests")
mark_as_advanced(TEST_PYTHON_EXE)
# Documentation
if(UNIX AND NOT APPLE)
@@ -478,8 +452,6 @@ endif()
if(CMAKE_COMPILER_IS_GNUCC)
option(WITH_LINKER_GOLD "Use ld.gold linker which is usually faster than ld.bfd" ON)
mark_as_advanced(WITH_LINKER_GOLD)
option(WITH_LINKER_LLD "Use ld.lld linker which is usually faster than ld.gold" OFF)
mark_as_advanced(WITH_LINKER_LLD)
endif()
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
@@ -515,8 +487,7 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
if(NOT MSVC)
find_library(COMPILER_ASAN_LIBRARY asan ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES})
else()
find_library(
COMPILER_ASAN_LIBRARY NAMES clang_rt.asan-x86_64
find_library( COMPILER_ASAN_LIBRARY NAMES clang_rt.asan-x86_64
PATHS
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/7.0.0/lib/windows
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\LLVM\\LLVM;]/lib/clang/6.0.0/lib/windows
@@ -543,15 +514,6 @@ if(WIN32)
option(WITH_WINDOWS_BUNDLE_CRT "Bundle the C runtime for install free distribution." ON)
mark_as_advanced(WITH_WINDOWS_BUNDLE_CRT)
option(WITH_WINDOWS_SCCACHE "Use sccache to speed up builds (Ninja builder only)" OFF)
mark_as_advanced(WITH_WINDOWS_SCCACHE)
option(WITH_WINDOWS_PDB "Generate a pdb file for client side stacktraces" ON)
mark_as_advanced(WITH_WINDOWS_PDB)
option(WITH_WINDOWS_STRIPPED_PDB "Use a stripped PDB file" On)
mark_as_advanced(WITH_WINDOWS_STRIPPED_PDB)
endif()
# The following only works with the Ninja generator in CMake >= 3.0.
@@ -646,29 +608,29 @@ endif()
# enable boost for cycles, audaspace or i18n
# otherwise if the user disabled
if(NOT WITH_BOOST)
# Explicitly disabled. so disable all deps.
macro(set_and_warn
_setting _val)
if(${${_setting}})
message(STATUS "'WITH_BOOST' is disabled: forcing 'set(${_setting} ${_val})'")
endif()
set(${_setting} ${_val})
endmacro()
set_and_warn_dependency(WITH_BOOST WITH_CYCLES OFF)
set_and_warn_dependency(WITH_BOOST WITH_INTERNATIONAL OFF)
set_and_warn_dependency(WITH_BOOST WITH_OPENVDB OFF)
set_and_warn_dependency(WITH_BOOST WITH_OPENCOLORIO OFF)
set_and_warn_dependency(WITH_BOOST WITH_QUADRIFLOW OFF)
set_and_warn_dependency(WITH_BOOST WITH_USD OFF)
set_and_warn_dependency(WITH_BOOST WITH_ALEMBIC OFF)
if(WITH_BOOST AND NOT (WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
WITH_OPENVDB OR WITH_OPENCOLORIO OR WITH_USD OR WITH_ALEMBIC))
message(STATUS "No dependencies need 'WITH_BOOST' forcing WITH_BOOST=OFF")
set_and_warn(WITH_CYCLES OFF)
set_and_warn(WITH_INTERNATIONAL OFF)
set_and_warn(WITH_OPENVDB OFF)
set_and_warn(WITH_OPENCOLORIO OFF)
set_and_warn(WITH_QUADRIFLOW OFF)
elseif(WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
WITH_OPENVDB OR WITH_OPENCOLORIO)
# Keep enabled
else()
# Disable boost if not needed.
set(WITH_BOOST OFF)
endif()
set_and_warn_dependency(WITH_TBB WITH_USD OFF)
set_and_warn_dependency(WITH_TBB WITH_OPENIMAGEDENOISE OFF)
set_and_warn_dependency(WITH_TBB WITH_OPENVDB OFF)
set_and_warn_dependency(WITH_TBB WITH_MOD_FLUID OFF)
# OpenVDB uses 'half' type from OpenEXR & fails to link without OpenEXR enabled.
set_and_warn_dependency(WITH_IMAGE_OPENEXR WITH_OPENVDB OFF)
# auto enable openimageio for cycles
if(WITH_CYCLES)
set(WITH_OPENIMAGEIO ON)
@@ -698,15 +660,13 @@ if(WITH_INSTALL_PORTABLE)
endif()
if(WITH_GHOST_SDL OR WITH_HEADLESS)
set(WITH_GHOST_WAYLAND OFF)
set(WITH_GHOST_X11 OFF)
set(WITH_X11 OFF)
set(WITH_X11_XINPUT OFF)
set(WITH_X11_XF86VMODE OFF)
set(WITH_X11_XFIXES OFF)
set(WITH_X11_ALPHA OFF)
set(WITH_GHOST_XDND OFF)
set(WITH_INPUT_IME OFF)
set(WITH_XR_OPENXR OFF)
endif()
if(WITH_CPU_SSE)
@@ -820,14 +780,67 @@ if(NOT CMAKE_BUILD_TYPE MATCHES "Release")
if(MSVC)
set(COMPILER_ASAN_LINKER_FLAGS "/FUNCTIONPADMIN:6")
endif()
if(COMPILER_ASAN_LIBRARY)
set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS};${COMPILER_ASAN_LIBRARY}")
set(PLATFORM_LINKFLAGS "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
set(PLATFORM_LINKFLAGS_DEBUG "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
endif()
set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS};${COMPILER_ASAN_LIBRARY}")
set(PLATFORM_LINKFLAGS "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
set(PLATFORM_LINKFLAGS_DEBUG "${COMPILER_ASAN_LIBRARY} ${COMPILER_ASAN_LINKER_FLAGS}")
endif()
endif()
#-----------------------------------------------------------------------------
# Platform specifics
if(WITH_X11)
find_package(X11 REQUIRED)
find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${X11_INC_SEARCH_PATH})
mark_as_advanced(X11_XF86keysym_INCLUDE_PATH)
list(APPEND PLATFORM_LINKLIBS ${X11_X11_LIB})
if(WITH_X11_XINPUT)
if(X11_Xinput_LIB)
list(APPEND PLATFORM_LINKLIBS ${X11_Xinput_LIB})
else()
message(FATAL_ERROR "LibXi not found. Disable WITH_X11_XINPUT if you
want to build without tablet support")
endif()
endif()
if(WITH_X11_XF86VMODE)
# XXX, why doesn't cmake make this available?
find_library(X11_Xxf86vmode_LIB Xxf86vm ${X11_LIB_SEARCH_PATH})
mark_as_advanced(X11_Xxf86vmode_LIB)
if(X11_Xxf86vmode_LIB)
list(APPEND PLATFORM_LINKLIBS ${X11_Xxf86vmode_LIB})
else()
message(FATAL_ERROR "libXxf86vm not found. Disable WITH_X11_XF86VMODE if you
want to build without")
endif()
endif()
if(WITH_X11_XFIXES)
if(X11_Xfixes_LIB)
list(APPEND PLATFORM_LINKLIBS ${X11_Xfixes_LIB})
else()
message(FATAL_ERROR "libXfixes not found. Disable WITH_X11_XFIXES if you
want to build without")
endif()
endif()
if(WITH_X11_ALPHA)
find_library(X11_Xrender_LIB Xrender ${X11_LIB_SEARCH_PATH})
mark_as_advanced(X11_Xrender_LIB)
if(X11_Xrender_LIB)
list(APPEND PLATFORM_LINKLIBS ${X11_Xrender_LIB})
else()
message(FATAL_ERROR "libXrender not found. Disable WITH_X11_ALPHA if you
want to build without")
endif()
endif()
endif()
# ----------------------------------------------------------------------------
# Main Platform Checks
#
@@ -937,28 +950,6 @@ if(NOT WITH_SYSTEM_EIGEN3)
set(EIGEN3_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/Eigen3)
endif()
if(WITH_OPENVDB)
list(APPEND OPENVDB_DEFINITIONS -DWITH_OPENVDB)
if(WITH_OPENVDB_3_ABI_COMPATIBLE)
list(APPEND OPENVDB_DEFINITIONS -DOPENVDB_3_ABI_COMPATIBLE)
endif()
list(APPEND OPENVDB_INCLUDE_DIRS
${BOOST_INCLUDE_DIR}
${TBB_INCLUDE_DIRS}
${OPENEXR_INCLUDE_DIRS})
list(APPEND OPENVDB_LIBRARIES ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES})
if(WITH_OPENVDB_BLOSC)
list(APPEND OPENVDB_DEFINITIONS -DWITH_OPENVDB_BLOSC)
list(APPEND OPENVDB_LIBRARIES ${BLOSC_LIBRARIES} ${ZLIB_LIBRARIES})
endif()
list(APPEND OPENVDB_LIBRARIES ${BOOST_LIBRARIES} ${TBB_LIBRARIES})
endif()
#-----------------------------------------------------------------------------
# Configure OpenGL.
@@ -982,7 +973,7 @@ if(WITH_GL_PROFILE_ES20)
)
endif()
list(APPEND BLENDER_GL_LIBRARIES "${OPENGLES_LIBRARY}")
list(APPEND BLENDER_GL_LIBRARIES OPENGLES_LIBRARY)
else()
set(OPENGLES_LIBRARY "" CACHE FILEPATH "OpenGL ES 2.0 library file")
@@ -1042,10 +1033,7 @@ else()
endif()
if(WITH_GL_EGL)
find_package(OpenGL REQUIRED EGL)
list(APPEND BLENDER_GL_LIBRARIES OpenGL::EGL)
list(APPEND GL_DEFINITIONS -DWITH_GL_EGL -DGLEW_EGL -DGLEW_INC_EGL)
list(APPEND GL_DEFINITIONS -DWITH_GL_EGL)
if(WITH_SYSTEM_GLES)
if(NOT OPENGLES_EGL_LIBRARY)
@@ -1055,7 +1043,7 @@ if(WITH_GL_EGL)
)
endif()
list(APPEND BLENDER_GL_LIBRARIES ${OPENGLES_EGL_LIBRARY})
list(APPEND BLENDER_GL_LIBRARIES OPENGLES_EGL_LIBRARY)
else()
set(OPENGLES_EGL_LIBRARY "" CACHE FILEPATH "EGL library file")
@@ -1095,6 +1083,10 @@ else()
list(APPEND GL_DEFINITIONS -DWITH_GL_PROFILE_CORE)
endif()
if(WITH_GL_EGL)
list(APPEND GL_DEFINITIONS -DWITH_EGL)
endif()
#-----------------------------------------------------------------------------
# Configure OpenMP.
if(WITH_OPENMP)
@@ -1166,6 +1158,10 @@ else()
list(APPEND GL_DEFINITIONS -DGL_ES_VERSION_1_0=0 -DGL_ES_VERSION_CL_1_1=0 -DGL_ES_VERSION_CM_1_1=0)
endif()
if(WITH_GL_EGL)
list(APPEND GL_DEFINITIONS -DGLEW_INC_EGL)
endif()
set(BLENDER_GLEW_LIBRARIES extern_glew_es bf_intern_glew_mx)
else()
@@ -1462,7 +1458,6 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
# flags to undo strict flags
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_VARIABLE -Wno-unused-variable)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_MACROS -Wno-unused-macros)
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_MISSING_VARIABLE_DECLARATIONS -Wno-missing-variable-declarations)
@@ -1481,8 +1476,6 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_REORDER -Wno-reorder)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_COMMENT -Wno-comment)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNUSED_TYPEDEFS -Wno-unused-local-typedefs)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_UNDEFINED_VAR_TEMPLATE -Wno-undefined-var-template)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_REMOVE_STRICT_FLAGS CXX_WARN_NO_INSTANTIATION_AFTER_SPECIALIZATION -Wno-instantiation-after-specialization)
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
@@ -1733,7 +1726,6 @@ if(FIRST_RUN)
info_cfg_option(WITH_CYCLES)
info_cfg_option(WITH_FREESTYLE)
info_cfg_option(WITH_OPENCOLORIO)
info_cfg_option(WITH_XR_OPENXR)
info_cfg_option(WITH_OPENIMAGEDENOISE)
info_cfg_option(WITH_OPENVDB)
info_cfg_option(WITH_ALEMBIC)

View File

@@ -71,6 +71,17 @@ Testing Targets
which are tagged to use the stricter formatting
* test_deprecated:
Checks for deprecation tags in our code which may need to be removed
* test_style_c:
Checks C/C++ conforms with blenders style guide:
https://wiki.blender.org/wiki/Source/Code_Style
* test_style_c_qtc:
Same as test_style but outputs QtCreator tasks format
* test_style_osl:
Checks OpenShadingLanguage conforms with blenders style guide:
https://wiki.blender.org/wiki/Source/Code_Style
* test_style_osl_qtc:
Checks OpenShadingLanguage conforms with blenders style guide:
https://wiki.blender.org/wiki/Source/Code_Style
Static Source Code Checking
Not associated with building Blender.
@@ -391,6 +402,45 @@ test_cmake: .FORCE
test_deprecated: .FORCE
$(PYTHON) tests/check_deprecated.py
test_style_c: .FORCE
# run our own checks on C/C++ style
PYTHONIOENCODING=utf_8 $(PYTHON) \
"$(BLENDER_DIR)/source/tools/check_source/check_style_c.py" \
"$(BLENDER_DIR)/source/blender" \
"$(BLENDER_DIR)/source/creator" \
--no-length-check
test_style_c_qtc: .FORCE
# run our own checks on C/C++ style
USE_QTC_TASK=1 \
PYTHONIOENCODING=utf_8 $(PYTHON) \
"$(BLENDER_DIR)/source/tools/check_source/check_style_c.py" \
"$(BLENDER_DIR)/source/blender" \
"$(BLENDER_DIR)/source/creator" \
--no-length-check \
> \
"$(BLENDER_DIR)/test_style.tasks"
@echo "written: test_style.tasks"
test_style_osl: .FORCE
# run our own checks on C/C++ style
PYTHONIOENCODING=utf_8 $(PYTHON) \
"$(BLENDER_DIR)/source/tools/check_source/check_style_c.py" \
"$(BLENDER_DIR)/intern/cycles/kernel/shaders" \
"$(BLENDER_DIR)/release/scripts/templates_osl"
test_style_osl_qtc: .FORCE
# run our own checks on C/C++ style
USE_QTC_TASK=1 \
PYTHONIOENCODING=utf_8 $(PYTHON) \
"$(BLENDER_DIR)/source/tools/check_source/check_style_c.py" \
"$(BLENDER_DIR)/intern/cycles/kernel/shaders" \
"$(BLENDER_DIR)/release/scripts/templates_osl" \
> \
"$(BLENDER_DIR)/test_style.tasks"
@echo "written: test_style.tasks"
# -----------------------------------------------------------------------------
# Project Files
@@ -495,7 +545,7 @@ update: .FORCE
$(PYTHON) ./build_files/utils/make_update.py
format: .FORCE
PATH="../lib/${OS_NCASE}_${CPU}/llvm/bin/:../lib/${OS_NCASE}_centos7_${CPU}/llvm/bin/:../lib/${OS_NCASE}/llvm/bin/:$(PATH)" \
PATH="../lib/${OS_NCASE}/llvm/bin/:$(PATH)" \
$(PYTHON) source/tools/utils_maintenance/clang_format_paths.py $(PATHS)

View File

@@ -64,6 +64,7 @@ include(cmake/jpeg.cmake)
include(cmake/boost.cmake)
include(cmake/blosc.cmake)
include(cmake/pthreads.cmake)
include(cmake/ilmbase.cmake)
include(cmake/openexr.cmake)
include(cmake/freetype.cmake)
include(cmake/freeglut.cmake)
@@ -92,19 +93,21 @@ include(cmake/python_site_packages.cmake)
include(cmake/package_python.cmake)
include(cmake/numpy.cmake)
include(cmake/usd.cmake)
if(UNIX)
if(UNIX AND NOT APPLE)
# Rely on PugiXML compiled with OpenImageIO
else()
include(cmake/pugixml.cmake)
endif()
include(cmake/openimagedenoise.cmake)
include(cmake/embree.cmake)
include(cmake/xr_openxr.cmake)
if(WITH_WEBP)
include(cmake/webp.cmake)
endif()
if(WITH_EMBREE)
include(cmake/embree.cmake)
endif()
if(WIN32)
# HMD branch deps
include(cmake/hidapi.cmake)

View File

@@ -26,6 +26,12 @@ if(ALEMBIC_HDF5)
endif()
endif()
if(WIN32)
set(ALEMBIC_ILMBASE ${LIBDIR}/openexr)
else()
set(ALEMBIC_ILMBASE ${LIBDIR}/ilmbase)
endif()
set(ALEMBIC_EXTRA_ARGS
-DBUILDSTATIC=ON
-DLINKSTATIC=ON
@@ -38,13 +44,13 @@ set(ALEMBIC_EXTRA_ARGS
-DBoost_DEBUG=ON
-DBOOST_ROOT=${LIBDIR}/boost
-DBoost_NO_SYSTEM_PATHS=ON
-DILMBASE_ROOT=${LIBDIR}/openexr
-DALEMBIC_ILMBASE_INCLUDE_DIRECTORY=${LIBDIR}/openexr/include/OpenEXR
-DALEMBIC_ILMBASE_HALF_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IMATH_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_ILMTHREAD_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IEX_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IEXMATH_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}IexMath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DILMBASE_ROOT=${ALEMBIC_ILMBASE}
-DALEMBIC_ILMBASE_INCLUDE_DIRECTORY=${ALEMBIC_ILMBASE}/include/OpenEXR
-DALEMBIC_ILMBASE_HALF_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IMATH_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_ILMTHREAD_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IEX_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DALEMBIC_ILMBASE_IEXMATH_LIB=${ALEMBIC_ILMBASE}/lib/${LIBPREFIX}IexMath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DUSE_PYILMBASE=0
-DUSE_PYALEMBIC=0
-DUSE_ARNOLD=0
@@ -94,5 +100,6 @@ add_dependencies(
external_alembic
external_boost
external_zlib
external_ilmbase
external_openexr
)

View File

@@ -29,11 +29,13 @@ set(BLOSC_EXTRA_ARGS
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
)
# Prevent blosc from including it's own local copy of zlib in the object file
# and cause linker errors with everybody else.
set(BLOSC_EXTRA_ARGS ${BLOSC_EXTRA_ARGS}
-DPREFER_EXTERNAL_ZLIB=ON
)
if(WIN32)
# Prevent blosc from including it's own local copy of zlib in the object file
# and cause linker errors with everybody else.
set(BLOSC_EXTRA_ARGS ${BLOSC_EXTRA_ARGS}
-DPREFER_EXTERNAL_ZLIB=ON
)
endif()
ExternalProject_Add(external_blosc
URL ${BLOSC_URI}

View File

@@ -38,13 +38,13 @@ if(WIN32)
set(BOOST_BUILD_OPTIONS runtime-link=shared )
set(BOOST_HARVEST_CMD ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/lib/ ${HARVEST_TARGET}/boost/lib/ )
if(BUILD_MODE STREQUAL Release)
set(BOOST_HARVEST_CMD ${BOOST_HARVEST_CMD} && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/include/boost-${BOOST_VERSION_NODOTS_SHORT}/ ${HARVEST_TARGET}/boost/include/)
set(BOOST_HARVEST_CMD ${BOOST_HARVEST_CMD} && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/include/boost-1_68/ ${HARVEST_TARGET}/boost/include/)
endif()
elseif(APPLE)
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
set(BOOST_BUILD_COMMAND ./b2)
set(BOOST_BUILD_OPTIONS toolset=darwin cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} visibility=global --disable-icu boost.locale.icu=off)
set(BOOST_BUILD_OPTIONS toolset=darwin cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} --disable-icu boost.locale.icu=off)
set(BOOST_HARVEST_CMD echo .)
set(BOOST_PATCH_COMMAND echo .)
else()
@@ -72,9 +72,6 @@ set(BOOST_OPTIONS
--with-serialization
--with-program_options
--with-iostreams
-sNO_BZIP2=1
-sNO_LZMA=1
-sNO_ZSTD=1
${BOOST_TOOLSET}
)

View File

@@ -25,8 +25,6 @@ if(UNIX AND NOT APPLE)
set(BZIP2_CFLAGS "-fPIC -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64")
set(BZIP2_CONFIGURE_ENV ${BZIP2_CONFIGURE_ENV} && export LDFLAGS=${BZIP2_LDFLAGS} && export CFLAGS=${BZIP2_CFLAGS}
&& export PREFIX=${BZIP2_PREFIX})
else()
set(BZIP2_CONFIGURE_ENV ${CONFIGURE_ENV})
endif()
ExternalProject_Add(external_bzip2

View File

@@ -46,7 +46,9 @@ if(MSVC)
set(CLANG_HARVEST_COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/ ${HARVEST_TARGET}/llvm/)
else()
set(CLANG_HARVEST_COMMAND
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/lib/ ${HARVEST_TARGET}/llvm/debug/lib/
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/lib/ ${HARVEST_TARGET}/llvm/debug/lib/ &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/bin/ ${HARVEST_TARGET}/llvm/debug/bin/ &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/clang/include/ ${HARVEST_TARGET}/llvm/debug/include/
)
endif()
ExternalProject_Add_Step(external_clang after_install

View File

@@ -32,6 +32,7 @@ ExternalProject_Add(external_freetype
URL_HASH MD5=${FREETYPE_HASH}
PREFIX ${BUILD_DIR}/freetype
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/freetype ${DEFAULT_CMAKE_FLAGS} ${FREETYPE_EXTRA_ARGS}
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/freetype/src/external_freetype < ${PATCH_DIR}/freetype.diff
INSTALL_DIR ${LIBDIR}/freetype
)

View File

@@ -62,8 +62,14 @@ if(BUILD_MODE STREQUAL Debug)
# OpenImageIO
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib &&
${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib &&
# python
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/python/ ${HARVEST_TARGET}/python/ &&
# hdf5
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hdf5/lib ${HARVEST_TARGET}/hdf5/lib &&
# numpy
${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}d.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_numpy_${NUMPY_SHORT_VERSION}d.tar.gz &&
# python
${CMAKE_COMMAND} -E copy ${LIBDIR}/python${PYTHON_SHORT_VERSION_NO_DOTS}_d.tar.gz ${HARVEST_TARGET}/Release/python${PYTHON_SHORT_VERSION_NO_DOTS}_d.tar.gz
DEPENDS Package_Python
)
endif()
@@ -110,6 +116,8 @@ harvest(freetype/include freetype/include "*.h")
harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
harvest(glew/include glew/include "*.h")
harvest(glew/lib glew/lib "*.a")
harvest(ilmbase openexr "*")
harvest(ilmbase/include openexr/include "*.h")
harvest(jemalloc/include jemalloc/include "*.h")
harvest(jemalloc/lib jemalloc/lib "*.a")
harvest(jpg/include jpeg/include "*.h")
@@ -161,8 +169,6 @@ harvest(opensubdiv/include opensubdiv/include "*.h")
harvest(opensubdiv/lib opensubdiv/lib "*.a")
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
harvest(openvdb/lib openvdb/lib "*.a")
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
harvest(osl/bin osl/bin "oslc")
harvest(osl/include osl/include "*.h")
harvest(osl/lib osl/lib "*.a")

View File

@@ -0,0 +1,58 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
if(WIN32)
set(ILMBASE_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
set(ILMBASE_EXTRA_ARGS
-DBUILD_SHARED_LIBS=OFF
-DCMAKE_CXX_STANDARD_LIBRARIES=${ILMBASE_CMAKE_CXX_STANDARD_LIBRARIES}
)
ExternalProject_Add(external_ilmbase
URL ${ILMBASE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${ILMBASE_HASH}
PREFIX ${BUILD_DIR}/ilmbase
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ilmbase ${DEFAULT_CMAKE_FLAGS} ${ILMBASE_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/openexr
)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_ilmbase after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/ilmbase ${HARVEST_TARGET}/openexr
DEPENDEES install
)
endif()
else()
set(ILMBASE_EXTRA_ARGS
--enable-static
--disable-shared
--enable-cxxstd=11
)
ExternalProject_Add(external_ilmbase
URL ${ILMBASE_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${ILMBASE_HASH}
PREFIX ${BUILD_DIR}/ilmbase
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ilmbase ${ILMBASE_EXTRA_ARGS}
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ilmbase/src/external_ilmbase/ && make install
INSTALL_DIR ${LIBDIR}/openexr
)
endif()

View File

@@ -23,8 +23,6 @@ set(LLVM_EXTRA_ARGS
-DLLVM_TARGETS_TO_BUILD=X86
-DLLVM_INCLUDE_EXAMPLES=OFF
-DLLVM_ENABLE_TERMINFO=OFF
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
-DLLVM_ENABLE_UNWIND_TABLES=OFF
)
if(WIN32)
@@ -40,7 +38,6 @@ ExternalProject_Add(ll
URL_HASH MD5=${LLVM_HASH}
CMAKE_GENERATOR ${LLVM_GENERATOR}
PREFIX ${BUILD_DIR}/ll
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/ll/src/ll < ${PATCH_DIR}/llvm.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/llvm ${DEFAULT_CMAKE_FLAGS} ${LLVM_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/llvm
)

View File

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

View File

@@ -21,7 +21,7 @@ set(OIDN_EXTRA_ARGS
-DWITH_EXAMPLE=OFF
-DWITH_TEST=OFF
-DTBB_ROOT=${LIBDIR}/tbb
-DTBB_STATIC_LIB=${TBB_STATIC_LIBRARY}
-DTBB_STATIC_LIB=ON
-DOIDN_STATIC_LIB=ON
)

View File

@@ -106,13 +106,13 @@ set(OPENIMAGEIO_EXTRA_ARGS
-DOCIO_PATH=${LIBDIR}/opencolorio/
-DOpenEXR_USE_STATIC_LIBS=On
-DOPENEXR_HOME=${LIBDIR}/openexr/
-DILMBASE_INCLUDE_PATH=${LIBDIR}/openexr/
-DILMBASE_PACKAGE_PREFIX=${LIBDIR}/openexr/
-DILMBASE_INCLUDE_DIR=${LIBDIR}/openexr/include/
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DILMBASE_INCLUDE_PATH=${LIBDIR}/ilmbase/
-DILMBASE_PACKAGE_PREFIX=${LIBDIR}/ilmbase/
-DILMBASE_INCLUDE_DIR=${LIBDIR}/ilmbase/include/
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DSTOP_ON_WARNING=OFF
@@ -135,6 +135,7 @@ ExternalProject_Add(external_openimageio
add_dependencies(
external_openimageio
external_png external_zlib
external_ilmbase
external_openexr
external_jpeg
external_boost

View File

@@ -36,7 +36,7 @@ if(WIN32)
set(OPENSUBDIV_EXTRA_ARGS
${OPENSUBDIV_EXTRA_ARGS}
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb.lib
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb_static.lib
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/clew${LIBEXT}
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include

View File

@@ -29,20 +29,24 @@ set(OPENVDB_EXTRA_ARGS
-DBoost_NO_SYSTEM_PATHS=ON
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DBlosc_INCLUDE_DIR=${LIBDIR}/blosc/include/
-DBlosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
-DBLOSC_INCLUDE_DIR=${LIBDIR}/blosc/include/
-DBLOSC_blosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
-DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
-DOPENVDB_BUILD_UNITTESTS=Off
-DOPENVDB_BUILD_PYTHON_MODULE=Off
-DBlosc_ROOT=${LIBDIR}/blosc/
-DGLEW_LOCATION=${LIBDIR}/glew/
-DBLOSC_LOCATION=${LIBDIR}/blosc/
-DTBB_LOCATION=${LIBDIR}/tbb/
-DTBB_ROOT=${LIBDIR}/tbb/
-DOpenEXR_ROOT=${LIBDIR}/openexr
-DIlmBase_ROOT=${LIBDIR}/openexr
-DOPENEXR_LIBRARYDIR=${LIBDIR}/openexr/lib
# All libs live in openexr, even the ilmbase ones
-DILMBASE_LIBRARYDIR=${LIBDIR}/openexr/lib
-DOPENVDB_CORE_SHARED=Off
-DOPENVDB_BUILD_BINARIES=Off
-DOPENEXR_LOCATION=${LIBDIR}/openexr
-DILMBASE_LOCATION=${LIBDIR}/ilmbase
-DIlmbase_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DIlmbase_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DIlmbase_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOpenexr_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DTBB_LIBRARYDIR=${LIBDIR}/tbb/lib
-DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
-DTBB_LIBRARY_PATH=${LIBDIR}/tbb/lib
)
if(WIN32)
@@ -50,17 +54,15 @@ if(WIN32)
# being in the correct namespace
# needs to link pthreads due to it being a blosc dependency
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
-DCMAKE_CXX_STANDARD_LIBRARIES="${LIBDIR}/pthreads/lib/pthreadVC3.lib"
-DUSE_EXR=On
)
else()
# OpenVDB can't find the _static libraries automatically.
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
-DTbb_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
-DTbb_tbb_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
-DTbb_tbbmalloc_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbbmalloc_static${LIBEXT}
-DTbb_tbbmalloc_proxy_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbbmalloc_proxy_static${LIBEXT}
-DOPENEXR_NAMESPACE_VERSIONING=OFF
-DEXTRA_LIBS:FILEPATH=${LIBDIR}/pthreads/lib/pthreadVC3.lib
)
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
-DCMAKE_SHARED_LINKER_FLAGS="/safeseh:no"
-DCMAKE_EXE_LINKER_FLAGS="/safeseh:no"
)
endif()
endif()
ExternalProject_Add(openvdb
@@ -77,6 +79,7 @@ add_dependencies(
openvdb
external_tbb
external_boost
external_ilmbase
external_openexr
external_zlib
external_blosc

View File

@@ -20,6 +20,7 @@ if(WIN32)
option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/lapack/fftw3 by installing mingw64" ON)
endif()
option(WITH_WEBP "Enable building of oiio with webp support" OFF)
option(WITH_EMBREE "Enable building of Embree" OFF)
set(MAKE_THREADS 1 CACHE STRING "Number of threads to run make with")
if(NOT BUILD_MODE)

View File

@@ -18,7 +18,7 @@
if(WIN32)
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe)
set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DFLEX_EXTRA_OPTIONS="--wincompat" -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe)
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/libpng16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=0)
@@ -33,7 +33,7 @@ else()
SET(OSL_PLATFORM_FLAGS)
endif()
set(OSL_ILMBASE_CUSTOM_LIBRARIES "${LIBDIR}/openexr/lib/Imath${OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/Half{OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/IlmThread${OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/Iex${OPENEXR_VERSION_POSTFIX}.lib")
set(OSL_ILMBASE_CUSTOM_LIBRARIES "${LIBDIR}/ilmbase/lib/Imath${ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/Half{ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/IlmThread${ILMBASE_VERSION_POSTFIX}.lib^^${LIBDIR}/ilmbase/lib/Iex${ILMBASE_VERSION_POSTFIX}.lib")
set(OSL_LLVM_LIBRARY "${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAnalysis${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAsmParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMAsmPrinter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMBitReader${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMBitWriter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMCodeGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMCore${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMDebugInfo${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMExecutionEngine${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInstCombine${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInstrumentation${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMInterpreter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMJIT${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMLinker${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMC${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCDisassembler${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCJIT${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMMCParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMObject${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMRuntimeDyld${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMScalarOpts${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMSelectionDAG${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMSupport${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTableGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTarget${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMTransformUtils${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMVectorize${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86AsmParser${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86AsmPrinter${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86CodeGen${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Desc${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Disassembler${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Info${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMX86Utils${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMipa${LIBEXT};${LIBDIR}/llvm/lib/${LIBPREFIX}LLVMipo${LIBEXT}")
set(OSL_EXTRA_ARGS
@@ -50,21 +50,20 @@ set(OSL_EXTRA_ARGS
-DLLVM_VERSION=3.4
-DLLVM_LIBRARY=${OSL_LLVM_LIBRARY}
-DOPENEXR_HOME=${LIBDIR}/openexr/
-DILMBASE_HOME=${LIBDIR}/openexr/
-DILMBASE_INCLUDE_DIR=${LIBDIR}/openexr/include/
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DILMBASE_HOME=${LIBDIR}/ilmbase/
-DILMBASE_INCLUDE_DIR=${LIBDIR}/ilmbase/include/
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Half${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex${ILMBASE_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOSL_BUILD_TESTS=OFF
-DOSL_BUILD_MATERIALX=OFF
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DOPENIMAGEIOHOME=${LIBDIR}/openimageio/
-DOPENIMAGEIO_INCLUDE_DIR=${LIBDIR}/openimageio/include
-DOPENIMAGEIO_LIBRARY=${OSL_OPENIMAGEIO_LIBRARY}
-DOPENIMAGEIO_INCLUDES=${LIBDIR}/openimageio/include
${OSL_FLEX_BISON}
-DCMAKE_CXX_STANDARD_LIBRARIES=${OSL_CMAKE_CXX_STANDARD_LIBRARIES}
-DBUILDSTATIC=ON
@@ -73,7 +72,6 @@ set(OSL_EXTRA_ARGS
-DSTOP_ON_WARNING=OFF
-DUSE_LLVM_BITCODE=OFF
-DUSE_PARTIO=OFF
-DUSE_QT=OFF
${OSL_SIMD_FLAGS}
-DPARTIO_LIBRARIES=
)
@@ -89,6 +87,7 @@ elseif(APPLE)
set(OSL_EXTRA_ARGS
${OSL_EXTRA_ARGS}
-DHIDE_SYMBOLS=OFF
-DPUGIXML_HOME=${LIBDIR}/pugixml
)
endif()
@@ -108,13 +107,14 @@ add_dependencies(
external_boost
ll
external_clang
external_ilmbase
external_openexr
external_zlib
external_flexbison
external_openimageio
)
if(UNIX)
if(UNIX AND NOT APPLE)
# Rely on PugiXML compiled with OpenImageIO
else()
add_dependencies(

View File

@@ -29,7 +29,6 @@ if(MSVC)
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib ${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python.exe ${PYTARGET}/bin/python.exe
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}.dll ${PYTARGET}/bin/python${PYTHON_SHORT_VERSION_NO_DOTS}.dll
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python3${PYTHON_POSTFIX}.dll ${PYTARGET}/bin/python3${PYTHON_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}.pdb ${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.pdb
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PYSRC}/include/ ${PYTARGET}/include/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PYSRC}/lib/ ${PYTARGET}/lib/
@@ -48,7 +47,6 @@ if(MSVC)
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib ${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python${PYTHON_POSTFIX}.exe ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll ${PYTARGET}/bin/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python3${PYTHON_POSTFIX}.dll ${PYTARGET}/bin/python3${PYTHON_POSTFIX}.dll
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb ${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PYSRC}/include/ ${PYTARGET}/include/
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PYSRC}/lib/ ${PYTARGET}/lib/

View File

@@ -43,7 +43,7 @@ if(WIN32)
PREFIX ${BUILD_DIR}/python
CONFIGURE_COMMAND ""
BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p ${PYTHON_ARCH} -c ${BUILD_MODE}
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py -b ${PYTHON_SRC}/PCbuild/amd64 -s ${PYTHON_SRC} -t ${PYTHON_SRC}/tmp/ --include-underpth --include-stable --include-pip --include-dev --include-launchers --include-venv --include-symbols ${PYTHON_EXTRA_INSTLAL_FLAGS} --copy ${LIBDIR}/python
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py -b ${PYTHON_SRC}/PCbuild/amd64 -s ${PYTHON_SRC} -t ${PYTHON_SRC}/tmp/ --include-underpth --include-stable --include-pip --include-dev --include-launchers --include-symbols ${PYTHON_EXTRA_INSTLAL_FLAGS} --copy ${LIBDIR}/python
)
else()

View File

@@ -19,10 +19,8 @@
set(SQLITE_CONFIGURE_ENV echo .)
set(SQLITE_CONFIGURATION_ARGS)
if(UNIX)
if(NOT APPLE)
set(SQLITE_LDFLAGS -Wl,--as-needed)
endif()
if(UNIX AND NOT APPLE)
set(SQLITE_LDFLAGS -Wl,--as-needed)
set(SQLITE_CFLAGS
"-DSQLITE_SECURE_DELETE -DSQLITE_ENABLE_COLUMN_METADATA \
-DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS \

View File

@@ -20,10 +20,8 @@ if(WIN32)
-DTBB_BUILD_SHARED=On
-DTBB_BUILD_TBBMALLOC=On
-DTBB_BUILD_TBBMALLOC_PROXY=On
-DTBB_BUILD_STATIC=Off
)
set(TBB_LIBRARY tbb)
set(TBB_STATIC_LIBRARY Off)
-DTBB_BUILD_STATIC=On
)
else()
set(TBB_EXTRA_ARGS
-DTBB_BUILD_SHARED=Off
@@ -31,8 +29,6 @@ else()
-DTBB_BUILD_TBBMALLOC_PROXY=Off
-DTBB_BUILD_STATIC=On
)
set(TBB_LIBRARY tbb_static)
set(TBB_STATIC_LIBRARY On)
endif()
# CMake script for TBB from https://github.com/wjakob/tbb/blob/master/CMakeLists.txt
@@ -50,8 +46,7 @@ ExternalProject_Add(external_tbb
if(WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_tbb after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb.lib ${HARVEST_TARGET}/tbb/lib/tbb.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb.dll ${HARVEST_TARGET}/tbb/lib/tbb.dll
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc.lib ${HARVEST_TARGET}/tbb/lib/tbbmalloc.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc.dll ${HARVEST_TARGET}/tbb/lib/tbbmalloc.dll
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc_proxy.lib ${HARVEST_TARGET}/tbb/lib/tbbmalloc_proxy.lib
@@ -62,12 +57,7 @@ if(WIN32)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_tbb after_install
# findtbb.cmake in some deps *NEEDS* to find tbb.lib even if they are not going to use it
# to make that test pass, we place a copy with the right name in the lib folder.
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_debug.lib ${LIBDIR}/tbb/lib/tbb.lib
# Normal collection of build artifacts
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_debug.lib ${HARVEST_TARGET}/tbb/lib/debug/tbb_debug.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_debug.dll ${HARVEST_TARGET}/tbb/lib/debug/tbb_debug.dll
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb_static.lib ${HARVEST_TARGET}/tbb/lib/tbb_debug.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc_proxy.lib ${HARVEST_TARGET}/tbb/lib/tbbmalloc_proxy_debug.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc.dll ${HARVEST_TARGET}/tbb/lib/debug/tbbmalloc.dll
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc_proxy.dll ${HARVEST_TARGET}/tbb/lib/debug/tbbmalloc_proxy.dll

View File

@@ -23,8 +23,8 @@ set(USD_EXTRA_ARGS
-DBoost_USE_STATIC_RUNTIME=OFF
-DBOOST_ROOT=${LIBDIR}/boost
-DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
-DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
-DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
# This is a preventative measure that avoids possible conflicts when add-ons
# try to load another USD library into the same process space.

View File

@@ -32,43 +32,47 @@ set(JPEG_VERSION 1.5.3)
set(JPEG_URI https://github.com/libjpeg-turbo/libjpeg-turbo/archive/${JPEG_VERSION}.tar.gz)
set(JPEG_HASH 5b7549d440b86c98a517355c102d155e)
set(BOOST_VERSION 1.70.0)
set(BOOST_VERSION_NODOTS 1_70_0)
set(BOOST_VERSION_NODOTS_SHORT 1_70)
set(BOOST_VERSION 1.68.0)
set(BOOST_VERSION_NODOTS 1_68_0)
set(BOOST_URI https://dl.bintray.com/boostorg/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION_NODOTS}.tar.gz)
set(BOOST_HASH fea771fe8176828fabf9c09242ee8c26)
set(BOOST_HASH 5d8b4503582fffa9eefdb9045359c239)
# Using old version as recommended by OpenVDB build documentation.
set(BLOSC_VERSION 1.5.0)
set(BLOSC_VERSION 1.14.4)
set(BLOSC_URI https://github.com/Blosc/c-blosc/archive/v${BLOSC_VERSION}.tar.gz)
set(BLOSC_HASH 6e4a49c8c06f05aa543f3312cfce3d55)
set(BLOSC_HASH e80dfc71e4cba03b8d01ed0876547ffe)
set(PTHREADS_VERSION 3.0.0)
set(PTHREADS_URI http://sourceforge.mirrorservice.org/p/pt/pthreads4w/pthreads4w-code-v${PTHREADS_VERSION}.zip)
set(PTHREADS_HASH f3bf81bb395840b3446197bcf4ecd653)
set(OPENEXR_VERSION 2.4.0)
set(OPENEXR_URI https://github.com/AcademySoftwareFoundation/openexr/archive/v${OPENEXR_VERSION}.tar.gz)
set(OPENEXR_HASH 9e4d69cf2a12c6fb19b98af7c5e0eaee)
set(ILMBASE_VERSION 2.3.0)
if(WIN32)
# Openexr started appending _d on its own so now
# we need to tell the build the postfix is _s while
# telling all other deps the postfix is _s_d
if(BUILD_MODE STREQUAL Release)
set(ILMBASE_VERSION_POSTFIX _s)
set(OPENEXR_VERSION_POSTFIX _s)
set(OPENEXR_VERSION_BUILD_POSTFIX _s)
else()
set(ILMBASE_VERSION_POSTFIX _s_d)
set(OPENEXR_VERSION_POSTFIX _s_d)
set(OPENEXR_VERSION_BUILD_POSTFIX _s)
endif()
else()
set(OPENEXR_VERSION_BUILD_POSTFIX)
set(ILMBASE_VERSION_POSTFIX)
endif()
set(ILMBASE_URI https://github.com/openexr/openexr/releases/download/v${ILMBASE_VERSION}/ilmbase-${ILMBASE_VERSION}.tar.gz)
set(ILMBASE_HASH 354bf86de3b930ab87ac63619d60c860)
set(OPENEXR_VERSION 2.3.0)
if(WIN32) # release 2.3.0 tarball has broken cmake support
set(OPENEXR_URI https://github.com/openexr/openexr/archive/0ac2ea34c8f3134148a5df4052e40f155b76f6fb.tar.gz)
set(OPENEXR_HASH ed159435d508240712fbaaa21d94bafb)
else()
set(OPENEXR_VERSION_POSTFIX)
set(OPENEXR_URI https://github.com/openexr/openexr/releases/download/v${OPENEXR_VERSION}/openexr-${OPENEXR_VERSION}.tar.gz)
set(OPENEXR_HASH a157e8a46596bc185f2472a5a4682174)
endif()
set(FREETYPE_VERSION 2.10.1)
set(FREETYPE_VERSION 2.9.1)
set(FREETYPE_URI http://prdownloads.sourceforge.net/freetype/freetype-${FREETYPE_VERSION}.tar.gz)
set(FREETYPE_HASH c50a3c9e5e62bdc938a6e1598a782947)
set(FREETYPE_HASH 3adb0e35d3c100c456357345ccfa8056)
set(GLEW_VERSION 1.13.0)
set(GLEW_URI http://prdownloads.sourceforge.net/glew/glew/${GLEW_VERSION}/glew-${GLEW_VERSION}.tgz)
@@ -117,15 +121,15 @@ set(OPENCOLORIO_VERSION 1.1.0)
set(OPENCOLORIO_URI https://github.com/imageworks/OpenColorIO/archive/v${OPENCOLORIO_VERSION}.tar.gz)
set(OPENCOLORIO_HASH 802d8f5b1d1fe316ec5f76511aa611b8)
set(LLVM_VERSION 9.0.1)
set(LLVM_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz)
set(LLVM_HASH 31eb9ce73dd2a0f8dcab8319fb03f8fc)
set(LLVM_VERSION 6.0.1)
set(LLVM_URI http://releases.llvm.org/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz)
set(LLVM_HASH c88c98709300ce2c285391f387fecce0)
set(CLANG_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/clang-${LLVM_VERSION}.src.tar.xz)
set(CLANG_HASH 13468e4a44940efef1b75e8641752f90)
set(CLANG_URI http://releases.llvm.org/${LLVM_VERSION}/cfe-${LLVM_VERSION}.src.tar.xz)
set(CLANG_HASH 4e419bd4e3b55aa06d872320f754bd85)
set(OPENMP_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}/openmp-${LLVM_VERSION}.src.tar.xz)
set(OPENMP_HASH 6eade16057edbdecb3c4eef9daa2bfcf)
set(OPENMP_URI http://releases.llvm.org/${LLVM_VERSION}/openmp-${LLVM_VERSION}.src.tar.xz)
set(OPENMP_HASH 4826402ae3633c36c51ba4d0e5527d30)
set(OPENIMAGEIO_VERSION 1.8.13)
set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/Release-${OPENIMAGEIO_VERSION}.tar.gz)
@@ -135,9 +139,9 @@ set(TIFF_VERSION 4.0.9)
set(TIFF_URI http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz)
set(TIFF_HASH 54bad211279cc93eb4fca31ba9bfdc79)
set(OSL_VERSION 1.10.9)
set(OSL_VERSION 1.9.9)
set(OSL_URI https://github.com/imageworks/OpenShadingLanguage/archive/Release-${OSL_VERSION}.tar.gz)
set(OSL_HASH a94f1e8506f7e8f5e993653de5c5fa00)
set(OSL_HASH 44ad511e424965a10fce051a053b0605)
set(PYTHON_VERSION 3.7.4)
set(PYTHON_SHORT_VERSION 3.7)
@@ -146,12 +150,12 @@ set(PYTHON_URI https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTH
set(PYTHON_HASH d33e4aae66097051c2eca45ee3604803)
set(TBB_VERSION 2019_U9)
set(TBB_URI https://github.com/oneapi-src/oneTBB/archive/${TBB_VERSION}.tar.gz)
set(TBB_HASH 26263622e9187212ec240dcf01b66207)
set(TBB_URI https://github.com/01org/tbb/archive/${TBB_VERSION}.tar.gz)
set(TBB_HASH 584edbec127c508f2cd5b6e79ad200fc)
set(OPENVDB_VERSION 7.0.0)
set(OPENVDB_VERSION 5.1.0)
set(OPENVDB_URI https://github.com/dreamworksanimation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
set(OPENVDB_HASH fd6c4f168282f7e0e494d290cd531fa8)
set(OPENVDB_HASH 5310101f874dcfd2165f9cee68c22624)
set(IDNA_VERSION 2.8)
set(CHARDET_VERSION 3.0.4)
@@ -299,9 +303,9 @@ set(SQLITE_VERSION 3.24.0)
set(SQLITE_URI https://www.sqlite.org/2018/sqlite-src-3240000.zip)
set(SQLITE_HASH fb558c49ee21a837713c4f1e7e413309aabdd9c7)
set(EMBREE_VERSION 3.8.0)
set(EMBREE_VERSION 3.2.4)
set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip)
set(EMBREE_HASH ac504d5426945fe25dec1267e0c39d52)
set(EMBREE_HASH 3d4a1147002ff43939d45140aa9d6fb8)
set(USD_VERSION 19.11)
set(USD_URI https://github.com/PixarAnimationStudios/USD/archive/v${USD_VERSION}.tar.gz)
@@ -318,7 +322,3 @@ set(LIBGLU_HASH 151aef599b8259efe9acd599c96ea2a3)
set(MESA_VERSION 18.3.1)
set(MESA_URI ftp://ftp.freedesktop.org/pub/mesa//mesa-${MESA_VERSION}.tar.xz)
set(MESA_HASH d60828056d77bfdbae0970f9b15fb1be)
set(XR_OPENXR_SDK_VERSION 1.0.6)
set(XR_OPENXR_SDK_URI https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_SDK_VERSION}.tar.gz)
set(XR_OPENXR_SDK_HASH 21daea7c3bfec365298d779a0e19caa1)

View File

@@ -1,60 +0,0 @@
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ***** END GPL LICENSE BLOCK *****
# Keep flags in sync with install_deps.sh ones in compile_XR_OpenXR_SDK()
set(XR_OPENXR_SDK_EXTRA_ARGS
-DBUILD_FORCE_GENERATION=OFF
-DBUILD_LOADER=ON
-DDYNAMIC_LOADER=OFF
)
if(UNIX AND NOT APPLE)
list(APPEND XR_OPENXR_SDK_EXTRA_ARGS
-DBUILD_WITH_WAYLAND_HEADERS=OFF
-DBUILD_WITH_XCB_HEADERS=OFF
-DBUILD_WITH_XLIB_HEADERS=ON
-DBUILD_WITH_SYSTEM_JSONCPP=OFF
-DCMAKE_CXX_FLAGS=-DDISABLE_STD_FILESYSTEM=1
)
endif()
ExternalProject_Add(external_xr_openxr_sdk
URL ${XR_OPENXR_SDK_URI}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH MD5=${XR_OPENXR_SDK_HASH}
PREFIX ${BUILD_DIR}/xr_openxr_sdk
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/xr_openxr_sdk ${DEFAULT_CMAKE_FLAGS} ${XR_OPENXR_SDK_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/xr_openxr_sdk
)
if(WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_xr_openxr_sdk after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/xr_openxr_sdk/include/openxr ${HARVEST_TARGET}/xr_openxr_sdk/include/openxr
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/xr_openxr_sdk/lib ${HARVEST_TARGET}/xr_openxr_sdk/lib
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_xr_openxr_sdk after_install
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/xr_openxr_sdk/lib/openxr_loader.lib ${HARVEST_TARGET}/xr_openxr_sdk/lib/openxr_loader_d.lib
DEPENDEES install
)
endif()
endif()

View File

@@ -1,100 +0,0 @@
strict graph {
graph[autosize = false, size = "25.7,8.3!", resolution = 300, overlap = false, splines = false, outputorder=edgesfirst ];
node [style=filled fillcolor=white];
external_alembic -- external_boost;
external_alembic -- external_zlib;
external_alembic -- external_openexr;
external_blosc -- external_zlib;
external_blosc -- external_pthreads;
external_boost -- Make_Python_Environment;
external_clang -- ll;
external_ffmpeg -- external_zlib;
external_ffmpeg -- external_faad;
external_ffmpeg -- external_openjpeg;
external_ffmpeg -- external_xvidcore;
external_ffmpeg -- external_x264;
external_ffmpeg -- external_vpx;
external_ffmpeg -- external_theora;
external_ffmpeg -- external_vorbis;
external_ffmpeg -- external_ogg;
external_ffmpeg -- external_lame;
external_ffmpeg -- external_zlib_mingw;
external_numpy -- Make_Python_Environment;
external_opencollada -- external_xml2;
external_opencolorio -- external_boost;
external_opencolorio -- external_tinyxml;
external_opencolorio -- external_yamlcpp;
external_openexr -- external_zlib;
external_openimageio -- external_png;
external_openimageio -- external_zlib;
external_openimageio -- external_openexr;
external_openimageio -- external_openexr;
external_openimageio -- external_jpeg;
external_openimageio -- external_boost;
external_openimageio -- external_tiff;
external_openimageio -- external_opencolorio;
external_openimageio -- external_openjpeg;
external_openimageio -- external_webp;
external_openimageio -- external_opencolorio_extra;
external_openmp -- external_clang;
external_opensubdiv -- external_glew;
external_opensubdiv -- external_glfw;
external_opensubdiv -- external_clew;
external_opensubdiv -- external_cuew;
external_opensubdiv -- external_tbb;
openvdb -- external_tbb;
openvdb -- external_boost;
openvdb -- external_openexr;
openvdb -- external_openexr;
openvdb -- external_zlib;
openvdb -- external_blosc;
external_osl -- external_boost;
external_osl -- ll;
external_osl -- external_clang;
external_osl -- external_openexr;
external_osl -- external_openexr;
external_osl -- external_zlib;
external_osl -- external_flexbison;
external_osl -- external_openimageio;
external_osl -- external_pugixml;
external_png -- external_zlib;
external_python_site_packages -- Make_Python_Environment;
external_sndfile -- external_ogg;
external_sndfile -- external_vorbis;
external_sndfile -- external_flac;
external_theora -- external_vorbis;
external_theora -- external_ogg;
external_tiff -- external_zlib;
external_vorbis -- external_ogg;
blender-- external_ffmpeg;
blender-- external_alembic;
blender-- external_openjpeg;
blender-- external_opencolorio;
blender-- external_openexr;
blender-- external_opensubdiv;
blender-- openvdb;
blender-- external_osl;
blender-- external_boost;
blender-- external_jpeg;
blender-- external_png;
blender-- external_python;
blender-- external_sndfile;
blender-- external_iconv;
blender-- external_fftw3;
external_python-- external_python_site_packages;
external_python_site_packages-- requests;
external_python_site_packages-- idna;
external_python_site_packages-- chardet;
external_python_site_packages-- urllib3;
external_python_site_packages-- certifi;
external_python-- external_numpy;
external_usd-- external_boost;
external_usd-- external_tbb;
blender-- external_opencollada;
blender-- external_sdl;
blender-- external_freetype;
blender-- external_pthreads;
blender-- external_zlib;
blender-- external_openal;
blender-- external_usd;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +0,0 @@
# Files contains mixed line endings, patch needs to preserve them to apply.
opencollada.diff binary

View File

@@ -10,84 +10,22 @@ diff -Naur src/blosc/CMakeLists.txt external_blosc/blosc/CMakeLists.txt
endif(NOT Threads_FOUND)
else(WIN32)
find_package(Threads REQUIRED)
diff -Naur src/CMakeLists.txt external_blosc/CMakeLists.txt
--- src/CMakeLists.txt 2016-02-03 10:26:28 -0700
+++ external_blosc/CMakeLists.txt 2017-03-03 09:03:31 -0700
@@ -17,8 +17,8 @@
# do not include support for the Snappy library
# DEACTIVATE_ZLIB: default OFF
# do not include support for the Zlib library
-# PREFER_EXTERNAL_COMPLIBS: default ON
-# when found, use the installed compression libs instead of included sources
+# PREFER_EXTERNAL_ZLIB: default ON
+# when found, use the installed zlib instead of included sources
# TEST_INCLUDE_BENCH_SINGLE_1: default ON
# add a test that runs the benchmark program passing "single" with 1 thread
# as first parameter
@@ -80,29 +80,23 @@
"Do not include support for the SNAPPY library." OFF)
option(DEACTIVATE_ZLIB
"Do not include support for the ZLIB library." OFF)
-option(PREFER_EXTERNAL_COMPLIBS
- "When found, use the installed compression libs instead of included sources." ON)
+option(PREFER_EXTERNAL_ZLIB
+ "When found, use the installed zlib instead of included sources." ON)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
-if(NOT PREFER_EXTERNAL_COMPLIBS)
+if(NOT PREFER_EXTERNAL_ZLIB)
message(STATUS "Finding external libraries disabled. Using internal sources.")
-endif(NOT PREFER_EXTERNAL_COMPLIBS)
+endif(NOT PREFER_EXTERNAL_ZLIB)
if(NOT DEACTIVATE_LZ4)
- if(PREFER_EXTERNAL_COMPLIBS)
- find_package(LZ4)
- endif(PREFER_EXTERNAL_COMPLIBS)
# HAVE_LZ4 will be set to true because even if the library is
# not found, we will use the included sources for it
set(HAVE_LZ4 TRUE)
endif(NOT DEACTIVATE_LZ4)
if(NOT DEACTIVATE_SNAPPY)
- if(PREFER_EXTERNAL_COMPLIBS)
- find_package(Snappy)
- endif(PREFER_EXTERNAL_COMPLIBS)
# HAVE_SNAPPY will be set to true because even if the library is not found,
# we will use the included sources for it
set(HAVE_SNAPPY TRUE)
@@ -110,13 +104,13 @@
if(NOT DEACTIVATE_ZLIB)
# import the ZLIB_ROOT environment variable to help finding the zlib library
- if(PREFER_EXTERNAL_COMPLIBS)
+ if(PREFER_EXTERNAL_ZLIB)
set(ZLIB_ROOT $ENV{ZLIB_ROOT})
find_package( ZLIB )
if (NOT ZLIB_FOUND )
message(STATUS "No zlib found. Using internal sources.")
endif (NOT ZLIB_FOUND )
- endif(PREFER_EXTERNAL_COMPLIBS)
+ endif(PREFER_EXTERNAL_ZLIB)
# HAVE_ZLIB will be set to true because even if the library is not found,
# we will use the included sources for it
set(HAVE_ZLIB TRUE)
diff -Naur external_blosc.orig/blosc/blosc.c external_blosc/blosc/blosc.c
--- external_blosc.orig/blosc/blosc.c 2018-07-30 04:56:38 -0600
+++ external_blosc/blosc/blosc.c 2018-08-11 15:27:26 -0600
@@ -41,12 +41,7 @@
@@ -56,14 +56,7 @@
#include <inttypes.h>
#endif /* _WIN32 */
-/* Include the win32/pthread.h library for all the Windows builds. See #224. */
-#if defined(_WIN32)
- #include "win32/pthread.h"
- #include "win32/pthread.c"
-#else
- #include <pthread.h>
-#endif
-
+#include <pthread.h>
/* Some useful units */
#define KB 1024

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_blosc_SEARCH_DIRS
${BLOSC_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/blosc
)

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_cppunit_SEARCH_DIRS
${CPPUNIT_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/cppunit
)

View File

@@ -26,8 +26,8 @@ include(FindPackageMessage)
include(SelectLibraryConfigurations)
if(ILMBASE_USE_STATIC_LIBS)
set(_ilmbase_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
if( ILMBASE_USE_STATIC_LIBS )
set( _ilmbase_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
if(WIN32)
set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
else()
@@ -124,6 +124,7 @@ set(IlmBase_generic_include_paths
/usr/include
/usr/include/${CMAKE_LIBRARY_ARCHITECTURE}
/usr/local/include
/sw/include
/opt/local/include
)
set(IlmBase_generic_library_paths
@@ -132,6 +133,7 @@ set(IlmBase_generic_library_paths
/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}
/usr/local/lib
/usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE}
/sw/lib
/opt/local/lib
)
@@ -247,7 +249,7 @@ if(ILMBASE_FOUND)
endif()
# Restore the original find library ordering
if(ILMBASE_USE_STATIC_LIBS )
if( ILMBASE_USE_STATIC_LIBS )
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_ilmbase_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
endif()

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_logc4plus_SEARCH_DIRS
${LOGC4PLUS_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/logc4plus
)

View File

@@ -119,6 +119,7 @@ set(OpenEXR_generic_include_paths
/usr/include
/usr/include/${CMAKE_LIBRARY_ARCHITECTURE}
/usr/local/include
/sw/include
/opt/local/include
)
set(OpenEXR_generic_library_paths
@@ -127,6 +128,7 @@ set(OpenEXR_generic_library_paths
/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}
/usr/local/lib
/usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE}
/sw/lib
/opt/local/lib
)
@@ -230,7 +232,7 @@ if(OPENEXR_FOUND)
endif()
# Restore the original find library ordering
if(OPENEXR_USE_STATIC_LIBS )
if( OPENEXR_USE_STATIC_LIBS )
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_openexr_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
endif()

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_tbb_SEARCH_DIRS
${TBB_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/tbb
)

View File

@@ -109,9 +109,6 @@ if (WIN32)
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/src/tbbmalloc/${ARCH_PREFIX}-tbbmalloc-export.def
COMMENT "Preprocessing tbbmalloc.def"
)
list(APPEND tbb_src ${CMAKE_CURRENT_SOURCE_DIR}/src/tbb/tbb_resource.rc)
list(APPEND tbbmalloc_src ${CMAKE_CURRENT_SOURCE_DIR}/src/tbbmalloc/tbbmalloc.rc)
list(APPEND tbbmalloc_proxy_src ${CMAKE_CURRENT_SOURCE_DIR}/src/tbbmalloc/tbbmalloc.rc)
else()
add_custom_command(OUTPUT tbb.def
COMMAND ${CMAKE_CXX_COMPILER} -xc++ -E ${CMAKE_CURRENT_SOURCE_DIR}/src/tbb/${ARCH_PREFIX}-tbb-export.def -I ${CMAKE_CURRENT_SOURCE_DIR}/include -o tbb.def
@@ -148,12 +145,8 @@ if (TBB_BUILD_SHARED)
set_property(TARGET tbb APPEND PROPERTY LINK_FLAGS "-Wl,-version-script,${CMAKE_CURRENT_BINARY_DIR}/tbb.def")
elseif(WIN32)
set_property(TARGET tbb APPEND PROPERTY LINK_FLAGS "/DEF:${CMAKE_CURRENT_BINARY_DIR}/tbb.def")
endif()
install(TARGETS tbb DESTINATION lib)
if(WIN32)
set_target_properties(tbb PROPERTIES OUTPUT_NAME "tbb$<$<CONFIG:Debug>:_debug>")
endif()
endif()
if(CMAKE_COMPILER_IS_GNUCC)
@@ -203,7 +196,7 @@ if(TBB_BUILD_TBBMALLOC_PROXY)
add_library(tbbmalloc_proxy SHARED ${tbbmalloc_proxy_src})
set_property(TARGET tbbmalloc_proxy APPEND PROPERTY COMPILE_DEFINITIONS "__TBBMALLOC_BUILD=1")
set_property(TARGET tbbmalloc_proxy APPEND_STRING PROPERTY COMPILE_FLAGS ${DISABLE_RTTI})
target_link_libraries(tbbmalloc_proxy tbbmalloc)
link_libraries(tbbmalloc_proxy tbbmalloc)
install(TARGETS tbbmalloc_proxy DESTINATION lib)
endif()
endif()

View File

@@ -0,0 +1,18 @@
diff -NaurBb b/CMakeLists.txt a/CMakeLists.txt
--- b/CMakeLists.txt 2018-05-01 12:45:46 -0600
+++ a/CMakeLists.txt 2018-08-08 13:03:22 -0600
@@ -229,9 +229,12 @@
endif ()
string(REPLACE "/undef " "#undef "
FTCONFIG_H "${FTCONFIG_H}")
- file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h"
- "${FTCONFIG_H}")
+else()
+ file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h"
+ FTCONFIG_H)
endif ()
+file(WRITE "${PROJECT_BINARY_DIR}/include/freetype/config/ftconfig.h"
+ "${FTCONFIG_H}")
# Create the options file

View File

@@ -1,13 +0,0 @@
--- a/lib/Support/Unix/Path.inc 2020-02-17 09:24:26.000000000 +0100
+++ b/lib/Support/Unix/Path.inc 2020-02-17 09:26:25.000000000 +0100
@@ -1200,7 +1200,9 @@
/// implementation.
std::error_code copy_file(const Twine &From, const Twine &To) {
uint32_t Flag = COPYFILE_DATA;
-#if __has_builtin(__builtin_available) && defined(COPYFILE_CLONE)
+ // BLENDER: This optimization makes LLVM not build on older Xcode versions,
+ // just disable until everyone has new enough Xcode versions.
+#if 0
if (__builtin_available(macos 10.12, *)) {
bool IsSymlink;
if (std::error_code Error = is_symlink_file(From, IsSymlink))

View File

@@ -16,19 +16,6 @@ index 95abbe2..4f14f30 100644
message("WARNING: Native PCRE not found, taking PCRE from ./Externals")
add_definitions(-DPCRE_STATIC)
add_subdirectory(${EXTERNAL_LIBRARIES}/pcre)
diff --git a/DAEValidator/CMakeLists.txt b/DAEValidator/CMakeLists.txt
index 03ad540..f7d05cf 100644
--- a/DAEValidator/CMakeLists.txt
+++ b/DAEValidator/CMakeLists.txt
@@ -98,7 +98,7 @@ if (WIN32)
# C4710: 'function' : function not inlined
# C4711: function 'function' selected for inline expansion
# C4820: 'bytes' bytes padding added after construct 'member_name'
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /Wall /WX /wd4505 /wd4514 /wd4592 /wd4710 /wd4711 /wd4820")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /Wall /wd4505 /wd4514 /wd4592 /wd4710 /wd4711 /wd4820")
else ()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Werror")
endif ()
diff --git a/DAEValidator/library/include/no_warning_begin b/DAEValidator/library/include/no_warning_begin
index 7a69c32..defb315 100644
--- a/DAEValidator/library/include/no_warning_begin
@@ -43,8 +30,34 @@ index 7a69c32..defb315 100644
# if defined(_MSC_VER) && defined(_DEBUG)
# pragma warning(disable:4548)
# endif
diff --git a/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp b/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp
index 1f9a3ee..d151e9a 100644
--- a/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp
+++ b/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp
@@ -1553,7 +1553,7 @@ namespace GeneratedSaxParser
#if defined(COLLADABU_OS_WIN) && !defined(__MINGW32__)
return _isnan( value ) ? true : false;
#else
-#ifdef isnan
+#if defined(isnan) || defined(__APPLE__)
return isnan( value );
#else
return std::isnan(value);
diff --git a/DAEValidator/CMakeLists.txt b/DAEValidator/CMakeLists.txt
index 03ad540f..f7d05cfb 100644
--- a/DAEValidator/CMakeLists.txt
+++ b/DAEValidator/CMakeLists.txt
@@ -98,7 +98,7 @@ if (WIN32)
# C4710: 'function' : function not inlined
# C4711: function 'function' selected for inline expansion
# C4820: 'bytes' bytes padding added after construct 'member_name'
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /Wall /WX /wd4505 /wd4514 /wd4592 /wd4710 /wd4711 /wd4820")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /Wall /wd4505 /wd4514 /wd4592 /wd4710 /wd4711 /wd4820")
else ()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Werror")
endif ()
diff --git a/DAEValidator/library/src/ArgumentParser.cpp b/DAEValidator/library/src/ArgumentParser.cpp
index 897e4dc..98a69ff 100644
index 897e4dcf..98a69ff1 100644
--- a/DAEValidator/library/src/ArgumentParser.cpp
+++ b/DAEValidator/library/src/ArgumentParser.cpp
@@ -6,10 +6,10 @@
@@ -61,28 +74,3 @@ index 897e4dc..98a69ff 100644
#endif
namespace opencollada
diff --git a/Externals/LibXML/CMakeLists.txt b/Externals/LibXML/CMakeLists.txt
index 40081e7..e1d1bfa 100644
--- a/Externals/LibXML/CMakeLists.txt
+++ b/Externals/LibXML/CMakeLists.txt
@@ -9,6 +9,7 @@ add_definitions(
-DLIBXML_SCHEMAS_ENABLED
-DLIBXML_XPATH_ENABLED
-DLIBXML_TREE_ENABLED
+ -DLIBXML_STATIC
)
if(USE_STATIC_MSVC_RUNTIME)
diff --git a/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp b/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp
index 1f9a3ee..d151e9a 100644
--- a/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp
+++ b/GeneratedSaxParser/src/GeneratedSaxParserUtils.cpp
@@ -1553,7 +1553,7 @@ namespace GeneratedSaxParser
#if defined(COLLADABU_OS_WIN) && !defined(__MINGW32__)
return _isnan( value ) ? true : false;
#else
-#ifdef isnan
+#if defined(isnan) || defined(__APPLE__)
return isnan( value );
#else
return std::isnan(value);

View File

@@ -18,6 +18,17 @@ diff --git a/mkl-dnn/cmake/TBB.cmake b/mkl-dnn/cmake/TBB.cmake
index 0711e699..c14210b6 100644
--- a/mkl-dnn/cmake/TBB.cmake
+++ b/mkl-dnn/cmake/TBB.cmake
@@ -90,8 +90,8 @@ if(WIN32)
NO_DEFAULT_PATH
)
set(TBB_LIB_DIR ${TBB_ROOT}/lib/${TBB_ARCH}/${TBB_VCVER})
- find_library(TBB_LIBRARY tbb PATHS ${TBB_LIB_DIR} ${TBB_ROOT}/lib NO_DEFAULT_PATH)
- find_library(TBB_LIBRARY_MALLOC tbbmalloc PATHS ${TBB_LIB_DIR} ${TBB_ROOT}/lib NO_DEFAULT_PATH)
+ find_library(TBB_LIBRARY tbb_static PATHS ${TBB_LIB_DIR} ${TBB_ROOT}/lib NO_DEFAULT_PATH)
+ find_library(TBB_LIBRARY_MALLOC tbbmalloc_static PATHS ${TBB_LIB_DIR} ${TBB_ROOT}/lib NO_DEFAULT_PATH)
endif()
else()
@@ -138,13 +138,13 @@ else()
set(TBB_LIBRARY_MALLOC TBB_LIBRARY_MALLOC-NOTFOUND)
if(APPLE)
@@ -106,15 +117,3 @@ diff '--ignore-matching-lines=:' -ur '--exclude=*.svn*' -u -r
if(OIDN_STATIC_LIB)
set(OIDN_LIB_TYPE STATIC)
else()
diff -Naur orig/core/api.cpp external_openimagedenoise/core/api.cpp
--- orig/core/api.cpp 2019-07-19 08:37:04 -0600
+++ external_openimagedenoise/core/api.cpp 2020-01-21 15:10:56 -0700
@@ -15,7 +15,7 @@
// ======================================================================== //
#ifdef _WIN32
-# define OIDN_API extern "C" __declspec(dllexport)
+# define OIDN_API extern "C"
#else
# define OIDN_API extern "C" __attribute__ ((visibility ("default")))
#endif

View File

@@ -0,0 +1,13 @@
--- idiff.cpp 2016-11-18 11:42:01 -0700
+++ idiff.cpp 2016-11-18 11:41:25 -0700
@@ -308,8 +308,10 @@
// printed with three digit exponent. We change this behaviour to fit
// Linux way
#ifdef _MSC_VER
+#if _MSC_VER < 1900
_set_output_format(_TWO_DIGIT_EXPONENT);
#endif
+#endif
std::streamsize precis = std::cout.precision();
std::cout << " " << cr.nwarn << " pixels ("
<< std::setprecision(3) << (100.0*cr.nwarn / npels)

View File

@@ -1,73 +1,102 @@
diff -Naur orig/cmake/FindIlmBase.cmake openvdb/cmake/FindIlmBase.cmake
--- orig/cmake/FindIlmBase.cmake 2019-12-06 13:11:33 -0700
+++ openvdb/cmake/FindIlmBase.cmake 2020-01-16 09:06:32 -0700
@@ -225,6 +225,12 @@
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
"-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.lib"
diff -Naur openvdb.orig/openvdb/CMakeLists.txt openvdb/openvdb/CMakeLists.txt
--- openvdb.orig/openvdb/CMakeLists.txt 2018-04-10 12:22:17 -0600
+++ openvdb/openvdb/CMakeLists.txt 2018-08-15 19:04:52 -0600
@@ -82,6 +82,9 @@
IF (WIN32 AND OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING)
ADD_DEFINITIONS ( -DBOOST_ALL_NO_LIB )
ENDIF ()
+if(WIN32)
+ADD_DEFINITIONS ( -D__TBB_NO_IMPLICIT_LINKAGE )
+endif()
FIND_PACKAGE ( Blosc REQUIRED )
FIND_PACKAGE ( TBB REQUIRED )
@@ -195,6 +198,7 @@
${Ilmbase_HALF_LIBRARY}
${ZLIB_LIBRARY}
${BLOSC_blosc_LIBRARY}
+ ${EXTRA_LIBS}
)
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+ "_s.lib"
+ )
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+ "_s_d.lib"
+ )
else()
if(ILMBASE_USE_STATIC_LIBS)
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
diff -Naur orig/cmake/FindOpenEXR.cmake openvdb/cmake/FindOpenEXR.cmake
--- orig/cmake/FindOpenEXR.cmake 2019-12-06 13:11:33 -0700
+++ openvdb/cmake/FindOpenEXR.cmake 2020-01-16 09:06:39 -0700
@@ -218,6 +218,12 @@
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
"-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.lib"
IF (WIN32)
@@ -225,13 +228,16 @@
${VDB_PRINT_SOURCE_FILES}
)
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+ "_s.lib"
+if(NOT WIN32)
+ set(EXTRA_LIBS m stdc++ dl)
+endif()
+
TARGET_LINK_LIBRARIES ( vdb_print
openvdb_shared
${CMAKE_THREAD_LIBS_INIT}
${BLOSC_blosc_LIBRARY}
- m
- stdc++
- )
+ ${EXTRA_LIBS}
+)
SET ( VDB_RENDER_SOURCE_FILES cmd/openvdb_render/main.cc )
SET_SOURCE_FILES_PROPERTIES ( ${VDB_RENDER_SOURCE_FILES}
@@ -249,8 +255,7 @@
${Openexr_ILMIMF_LIBRARY}
${Ilmbase_ILMTHREAD_LIBRARY}
${Ilmbase_IEX_LIBRARY}
- m
- stdc++
+ ${EXTRA_LIBS}
)
SET ( VDB_VIEW_SOURCE_FILES
@@ -270,7 +270,7 @@
PROPERTIES
COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} -DGL_GLEXT_PROTOTYPES=1"
)
-IF (NOT WIN32)
+IF (FALSE)
ADD_EXECUTABLE ( vdb_view
${VDB_VIEW_SOURCE_FILES}
)
@@ -283,9 +288,8 @@
${GLFW_LINK_LIBRARY}
${GLFW_DEPENDENT_LIBRARIES}
${GLEW_GLEW_LIBRARY}
- m
- stdc++
- )
+ ${EXTRA_LIBS}
+ )
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
+ "_s_d.lib"
+ )
else()
if(OPENEXR_USE_STATIC_LIBS)
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
diff -Naur orig/openvdb/CMakeLists.txt openvdb/openvdb/CMakeLists.txt
--- orig/openvdb/CMakeLists.txt 2019-12-06 13:11:33 -0700
+++ openvdb/openvdb/CMakeLists.txt 2020-01-16 08:56:25 -0700
@@ -193,11 +193,12 @@
if(OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING)
add_definitions(-DBOOST_ALL_NO_LIB)
endif()
+ add_definitions(-D__TBB_NO_IMPLICIT_LINKAGE -DOPENVDB_OPENEXR_STATICLIB)
endif()
ENDIF ()
# @todo Should be target definitions
if(WIN32)
- add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
+ add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
endif()
SET ( UNITTEST_SOURCE_FILES
@@ -392,8 +396,7 @@
TARGET_LINK_LIBRARIES ( vdb_test
${CPPUnit_cppunit_LIBRARY}
openvdb_shared
- m
- stdc++
+ ${EXTRA_LIBS}
)
##### Core library configuration
diff -Naur orig/openvdb/cmd/CMakeLists.txt openvdb/openvdb/cmd/CMakeLists.txt
--- orig/openvdb/cmd/CMakeLists.txt 2019-12-06 13:11:33 -0700
+++ openvdb/openvdb/cmd/CMakeLists.txt 2020-01-16 08:56:25 -0700
@@ -53,7 +53,7 @@
endif()
ADD_TEST ( vdb_unit_test vdb_test )
@@ -422,7 +422,7 @@
ENDIF ()
if(WIN32)
- add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
+ add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
endif()
# rpath handling
diff -Naur orig/openvdb/unittest/CMakeLists.txt openvdb/openvdb/unittest/CMakeLists.txt
--- orig/openvdb/unittest/CMakeLists.txt 2019-12-06 13:11:33 -0700
+++ openvdb/openvdb/unittest/CMakeLists.txt 2020-01-16 08:56:25 -0700
@@ -49,7 +49,7 @@
endif()
if(WIN32)
- add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
+ add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
endif()
##### VDB unit tests
# Installation
-IF ( NOT WIN32 )
+IF ( FALSE )
INSTALL ( TARGETS
vdb_view
DESTINATION
diff -Naur openvdb.orig/openvdb/math/Coord.h openvdb/openvdb/math/Coord.h
--- openvdb.orig/openvdb/math/Coord.h 2018-04-10 12:22:17 -0600
+++ openvdb/openvdb/math/Coord.h 2018-08-15 20:32:43 -0600
@@ -35,6 +35,7 @@
#include <array> // for std::array
#include <iostream>
#include <limits>
+#define NOMINMAX
#include <openvdb/Platform.h>
#include "Math.h"
#include "Vec3.h"

View File

@@ -1,3 +1,15 @@
diff -Naur OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake external_osl/src/cmake/flexbison.cmake
--- OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake 2018-05-01 16:39:02 -0600
+++ external_osl/src/cmake/flexbison.cmake 2018-08-23 15:42:27 -0600
@@ -77,7 +77,7 @@
DEPENDS ${${compiler_headers}}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
ADD_CUSTOM_COMMAND ( OUTPUT ${flexoutputcxx}
- COMMAND ${FLEX_EXECUTABLE} -o ${flexoutputcxx} "${CMAKE_CURRENT_SOURCE_DIR}/${flexsrc}"
+ COMMAND ${FLEX_EXECUTABLE} ${FLEX_EXTRA_OPTIONS} -o ${flexoutputcxx} "${CMAKE_CURRENT_SOURCE_DIR}/${flexsrc}"
MAIN_DEPENDENCY ${flexsrc}
DEPENDS ${${compiler_headers}}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
diff -Naur OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake.rej external_osl/src/cmake/flexbison.cmake.rej
--- OpenShadingLanguage-Release-1.9.9/src/cmake/flexbison.cmake.rej 1969-12-31 17:00:00 -0700
+++ external_osl/src/cmake/flexbison.cmake.rej 2018-08-24 17:42:11 -0600
@@ -33,6 +45,18 @@ diff -Naur OpenShadingLanguage-Release-1.9.9/src/include/OSL/llvm_util.h externa
private:
class MemoryManager;
diff -Naur OpenShadingLanguage-Release-1.9.9/src/include/OSL/oslnoise.h external_osl/src/include/OSL/oslnoise.h
--- OpenShadingLanguage-Release-1.9.9/src/include/OSL/oslnoise.h 2018-05-01 16:39:02 -0600
+++ external_osl/src/include/OSL/oslnoise.h 2018-08-24 17:42:11 -0600
@@ -762,7 +762,7 @@
// packed into a float4. We assume T is float and VECTYPE is float4,
// but it also works if T is Dual2<float> and VECTYPE is Dual2<float4>.
template<typename T, typename VECTYPE>
-OIIO_FORCEINLINE T bilerp (VECTYPE abcd, T u, T v) {
+OIIO_FORCEINLINE T bilerp (VECTYPE& abcd, T u, T v) {
VECTYPE xx = OIIO::lerp (abcd, OIIO::simd::shuffle<1,1,3,3>(abcd), u);
return OIIO::simd::extract<0>(OIIO::lerp (xx,OIIO::simd::shuffle<2>(xx), v));
}
diff -Naur OpenShadingLanguage-Release-1.9.9/src/liboslexec/llvm_util.cpp external_osl/src/liboslexec/llvm_util.cpp
--- OpenShadingLanguage-Release-1.9.9/src/liboslexec/llvm_util.cpp 2018-05-01 16:39:02 -0600
+++ external_osl/src/liboslexec/llvm_util.cpp 2018-08-25 14:04:27 -0600

View File

@@ -109,31 +109,3 @@ diff -x .git -ur usd.orig/pxr/usd/CMakeLists.txt external_usd/pxr/usd/CMakeLists
+else()
+ message(STATUS "Skipping commandline tools because PXR_BUILD_USD_TOOLS=OFF")
+endif()
diff -Naur external_usd_orig/pxr/base/lib/tf/preprocessorUtils.h external_usd/pxr/base/lib/tf/preprocessorUtils.h
--- external_usd_orig/pxr/base/lib/tf/preprocessorUtils.h 2019-10-24 14:39:53 -0600
+++ external_usd/pxr/base/lib/tf/preprocessorUtils.h 2020-01-14 09:30:18 -0700
@@ -189,7 +189,7 @@
/// Exapnds to 1 if the argument is a tuple, and 0 otherwise.
/// \ingroup group_tf_Preprocessor
/// \hideinitializer
-#if defined(ARCH_OS_WINDOWS)
+#if defined(ARCH_COMPILER_MSVC)
#define TF_PP_IS_TUPLE(sequence) \
BOOST_VMD_IS_TUPLE(sequence)
#else
diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros/Public.cmake
--- external_usd_base/cmake/macros/Public.cmake 2019-10-24 14:39:53 -0600
+++ external_usd/cmake/macros/Public.cmake 2020-01-11 13:33:29 -0700
@@ -996,6 +996,12 @@
foreach(lib ${PXR_OBJECT_LIBS})
string(TOUPPER ${lib} uppercaseName)
list(APPEND exports "${uppercaseName}_EXPORTS=1")
+ # When building for blender, we do NOT want to export all symbols on windows.
+ # This is a dirty hack, but USD makes it impossible to do the right thing
+ # with the default options exposed.
+ if (WIN32)
+ list(APPEND exports "PXR_STATIC=1")
+ endif()
endforeach()
foreach(lib ${PXR_OBJECT_LIBS})
set(objects "${objects};\$<TARGET_OBJECTS:${lib}>")

View File

@@ -126,7 +126,6 @@ if "%dobuild%" == "1" (
cmake --build . --target Harvest_Release_Results > Harvest_Release.txt
)
echo %DATE% %TIME% : Release Harvest done >> %StatusFile%
if "%NODEBUG%" == "1" goto exit
cd %BUILD_DIR%
mkdir %STAGING%\%BuildDir%%ARCH%D
cd %Staging%\%BuildDir%%ARCH%D

View File

@@ -24,14 +24,6 @@ import re
import subprocess
import sys
def is_tool(name):
"""Check whether `name` is on PATH and marked as executable."""
# from whichcraft import which
from shutil import which
return which(name) is not None
class Builder:
def __init__(self, name, branch):
self.name = name
@@ -50,10 +42,7 @@ class Builder:
self.command_prefix = []
elif name.startswith('linux'):
self.platform = 'linux'
if is_tool('scl'):
self.command_prefix = ['scl', 'enable', 'devtoolset-6', '--']
else:
self.command_prefix = []
self.command_prefix = ['scl', 'enable', 'devtoolset-6', '--']
elif name.startswith('win'):
self.platform = 'win'
self.command_prefix = []
@@ -98,7 +87,7 @@ class VersionInfo:
self.is_development_build = False
else:
# Development build
self.full_version = self.version + self.version_char + '-' + self.hash
self.full_version = self.version + '-' + self.hash
self.is_development_build = True
def _parse_header_file(self, filename, define):

View File

@@ -65,14 +65,10 @@ class AbsoluteAndRelativeFileName:
"""
Create list of AbsoluteAndRelativeFileName for all the files in the
given directory.
NOTE: Result will be pointing to a resolved paths.
"""
assert base_dir.is_absolute()
assert base_dir.is_dir()
base_dir = base_dir.resolve()
result = []
for filename in base_dir.glob('**/*'):
if not filename.is_file():

View File

@@ -18,10 +18,9 @@
# <pep8 compliant>
import os
from pathlib import Path
import codesign.util as util
from codesign.util import ensure_file_does_not_exist_or_die
class ArchiveWithIndicator:
@@ -70,64 +69,9 @@ class ArchiveWithIndicator:
self.archive_filepath = self.base_dir / archive_name
self.ready_indicator_filepath = self.base_dir / ready_indicator_name
def is_ready_unsafe(self) -> bool:
"""
Check whether the archive is ready for access.
No guarding about possible network failres is done here.
"""
if not self.ready_indicator_filepath.exists():
return False
# Sometimes on macOS indicator file appears prior to the actual archive
# despite the order of creation and os.sync() used in tag_ready().
# So consider archive not ready if there is an indicator without an
# actual archive.
if not self.archive_filepath.exists():
print('Found indicator without actual archive, waiting for archive '
f'({self.archive_filepath}) to appear.')
return False
# Read archive size from indicator/
#
# Assume that file is either empty or is fully written. This is being checked
# by performing ValueError check since empty string will throw this exception
# when attempted to be converted to int.
expected_archive_size_str = self.ready_indicator_filepath.read_text()
try:
expected_archive_size = int(expected_archive_size_str)
except ValueError:
print(f'Invalid archive size "{expected_archive_size_str}"')
return False
# Wait for until archive is fully stored.
actual_archive_size = self.archive_filepath.stat().st_size
if actual_archive_size != expected_archive_size:
print('Partial/invalid archive size (expected '
f'{expected_archive_size} got {actual_archive_size})')
return False
return True
def is_ready(self) -> bool:
"""
Check whether the archive is ready for access.
Will tolerate possible network failures: if there is a network failure
or if there is still no proper permission on a file False is returned.
"""
# There are some intermitten problem happening at a random which is
# translates to "OSError : [WinError 59] An unexpected network error occurred".
# Some reports suggests it might be due to lack of permissions to the file,
# which might be applicable in our case since it's possible that file is
# initially created with non-accessible permissions and gets chmod-ed
# after initial creation.
try:
return self.is_ready_unsafe()
except OSError as e:
print(f'Exception checking archive: {e}')
return False
"""Check whether the archive is ready for access."""
return self.ready_indicator_filepath.exists()
def tag_ready(self) -> None:
"""
@@ -138,20 +82,14 @@ class ArchiveWithIndicator:
If it is violated, an assert will fail.
"""
assert not self.is_ready()
# Try the best to make sure everything is synced to the file system,
# to avoid any possibility of stamp appearing on a network share prior to
# an actual file.
if util.get_current_platform() != util.Platform.WINDOWS:
os.sync()
archive_size = self.archive_filepath.stat().st_size
self.ready_indicator_filepath.write_text(str(archive_size))
self.ready_indicator_filepath.touch()
def clean(self) -> None:
"""
Remove both archive and the ready indication file.
"""
util.ensure_file_does_not_exist_or_die(self.ready_indicator_filepath)
util.ensure_file_does_not_exist_or_die(self.archive_filepath)
ensure_file_does_not_exist_or_die(self.ready_indicator_filepath)
ensure_file_does_not_exist_or_die(self.archive_filepath)
def is_fully_absent(self) -> bool:
"""

View File

@@ -45,16 +45,13 @@
import abc
import logging
import shutil
import subprocess
import time
import tarfile
import zipfile
from pathlib import Path
from tempfile import TemporaryDirectory
from typing import Iterable, List
import codesign.util as util
from codesign.absolute_and_relative_filename import AbsoluteAndRelativeFileName
from codesign.archive_with_indicator import ArchiveWithIndicator
@@ -67,14 +64,14 @@ logger_server = logger.getChild('server')
def pack_files(files: Iterable[AbsoluteAndRelativeFileName],
archive_filepath: Path) -> None:
"""
Create tar archive from given files for the signing pipeline.
Create zip archive from given files for the signing pipeline.
Is used by buildbot worker to create an archive of files which are to be
signed, and by signing server to send signed files back to the worker.
"""
with tarfile.TarFile.open(archive_filepath, 'w') as tar_file_handle:
with zipfile.ZipFile(archive_filepath, 'w') as zip_file_handle:
for file_info in files:
tar_file_handle.add(file_info.absolute_filepath,
arcname=file_info.relative_filepath)
zip_file_handle.write(file_info.absolute_filepath,
arcname=file_info.relative_filepath)
def extract_files(archive_filepath: Path,
@@ -85,8 +82,8 @@ def extract_files(archive_filepath: Path,
# TODO(sergey): Verify files in the archive have relative path.
with tarfile.TarFile.open(archive_filepath, mode='r') as tar_file_handle:
tar_file_handle.extractall(path=extraction_dir)
with zipfile.ZipFile(archive_filepath, mode='r') as zip_file_handle:
zip_file_handle.extractall(path=extraction_dir)
class BaseCodeSigner(metaclass=abc.ABCMeta):
@@ -136,9 +133,6 @@ class BaseCodeSigner(metaclass=abc.ABCMeta):
# This archive is created by the code signing server.
signed_archive_info: ArchiveWithIndicator
# Platform the code is currently executing on.
platform: util.Platform
def __init__(self, config):
self.config = config
@@ -147,14 +141,12 @@ class BaseCodeSigner(metaclass=abc.ABCMeta):
# Unsigned (signing server input) configuration.
self.unsigned_storage_dir = absolute_shared_storage_dir / 'unsigned'
self.unsigned_archive_info = ArchiveWithIndicator(
self.unsigned_storage_dir, 'unsigned_files.tar', 'ready.stamp')
self.unsigned_storage_dir, 'unsigned_files.zip', 'ready.stamp')
# Signed (signing server output) configuration.
self.signed_storage_dir = absolute_shared_storage_dir / 'signed'
self.signed_archive_info = ArchiveWithIndicator(
self.signed_storage_dir, 'signed_files.tar', 'ready.stamp')
self.platform = util.get_current_platform()
self.signed_storage_dir, 'signed_files.zip', 'ready.stamp')
"""
General note on cleanup environment functions.
@@ -326,9 +318,6 @@ class BaseCodeSigner(metaclass=abc.ABCMeta):
self.copy_signed_files_to_directory(
unpacked_signed_files_dir, destination_dir)
logger_builder.info('Removing archive with signed files...')
self.signed_archive_info.clean()
############################################################################
# Signing server side helpers.
@@ -394,61 +383,3 @@ class BaseCodeSigner(metaclass=abc.ABCMeta):
logger_server.info(
'Got signing request, beging signign procedure.')
self.run_signing_pipeline()
############################################################################
# Command executing.
#
# Abstracted to a degree that allows to run commands from a foreign
# platform.
# The goal with this is to allow performing dry-run tests of code signer
# server from other platforms (for example, to test that macOS code signer
# does what it is supposed to after doing a refactor on Linux).
# TODO(sergey): What is the type annotation for the command?
def run_command_or_mock(self, command, platform: util.Platform) -> None:
"""
Run given command if current platform matches given one
If the platform is different then it will only be printed allowing
to verify logic of the code signing process.
"""
if platform != self.platform:
logger_server.info(
f'Will run command for {platform}: {command}')
return
logger_server.info(f'Running command: {command}')
subprocess.run(command)
# TODO(sergey): What is the type annotation for the command?
def check_output_or_mock(self, command,
platform: util.Platform,
allow_nonzero_exit_code=False) -> str:
"""
Run given command if current platform matches given one
If the platform is different then it will only be printed allowing
to verify logic of the code signing process.
If allow_nonzero_exit_code is truth then the output will be returned
even if application quit with non-zero exit code.
Otherwise an subprocess.CalledProcessError exception will be raised
in such case.
"""
if platform != self.platform:
logger_server.info(
f'Will run command for {platform}: {command}')
return
if allow_nonzero_exit_code:
process = subprocess.Popen(command,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
output = process.communicate()[0]
return output.decode()
logger_server.info(f'Running command: {command}')
return subprocess.check_output(
command, stderr=subprocess.STDOUT).decode()

View File

@@ -25,17 +25,12 @@ import sys
from pathlib import Path
import codesign.util as util
from codesign.config_common import *
platform = util.get_current_platform()
if platform == util.Platform.LINUX:
if sys.platform == 'linux':
SHARED_STORAGE_DIR = Path('/data/codesign')
elif platform == util.Platform.WINDOWS:
elif sys.platform == 'win32':
SHARED_STORAGE_DIR = Path('Z:\\codesign')
elif platform == util.Platform.MACOS:
SHARED_STORAGE_DIR = Path('/Volumes/codesign_macos/codesign')
# https://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema
LOGGING = {

View File

@@ -24,10 +24,7 @@ from pathlib import Path
#
# This is how long buildbot packing step will wait signing server to
# perform signing.
#
# NOTE: Notarization could take a long time, hence the rather high value
# here. Might consider using different timeout for different platforms.
TIMEOUT_IN_SECONDS = 45 * 60 * 60
TIMEOUT_IN_SECONDS = 240
# Directory which is shared across buildbot worker and signing server.
#

View File

@@ -27,43 +27,8 @@ from pathlib import Path
from codesign.config_common import *
CODESIGN_DIRECTORY = Path(__file__).absolute().parent
BLENDER_GIT_ROOT_DIRECTORY = CODESIGN_DIRECTORY.parent.parent.parent
################################################################################
# Common configuration.
# Directory where folders for codesign requests and signed result are stored.
# For example, /data/codesign
SHARED_STORAGE_DIR: Path
################################################################################
# macOS-specific configuration.
MACOS_ENTITLEMENTS_FILE = \
BLENDER_GIT_ROOT_DIRECTORY / 'release' / 'darwin' / 'entitlements.plist'
# Identity of the Developer ID Application certificate which is to be used for
# codesign tool.
# Use `security find-identity -v -p codesigning` to find the identity.
#
# NOTE: This identity is just an example from release/darwin/README.txt.
MACOS_CODESIGN_IDENTITY = 'AE825E26F12D08B692F360133210AF46F4CF7B97'
# User name (Apple ID) which will be used to request notarization.
MACOS_XCRUN_USERNAME = 'me@example.com'
# One-time application password which will be used to request notarization.
MACOS_XCRUN_PASSWORD = '@keychain:altool-password'
# Timeout in seconds within which the notarial office is supposed to reply.
MACOS_NOTARIZE_TIMEOUT_IN_SECONDS = 60 * 60
################################################################################
# Windows-specific configuration.
# URL to the timestamping authority.
WIN_TIMESTAMP_AUTHORITY_URL = 'http://timestamp.digicert.com'
TIMESTAMP_AUTHORITY_URL = 'http://timestamp.digicert.com'
# Full path to the certificate used for signing.
#
@@ -71,10 +36,7 @@ WIN_TIMESTAMP_AUTHORITY_URL = 'http://timestamp.digicert.com'
#
# On Windows it is usually is a PKCS #12 key (.pfx), so the path will look
# like Path('C:\\Secret\\Blender.pfx').
WIN_CERTIFICATE_FILEPATH: Path
################################################################################
# Logging configuration, common for all platforms.
CERTIFICATE_FILEPATH: Path
# https://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema
LOGGING = {

View File

@@ -51,7 +51,7 @@ class LinuxCodeSigner(BaseCodeSigner):
self, file: AbsoluteAndRelativeFileName) -> bool:
if file.relative_filepath == Path('blender'):
return True
if (file.relative_filepath.parts[-3:-1] == ('python', 'bin') and
if (file.relative_filepath.parts()[-3:-1] == ('python', 'bin') and
file.relative_filepath.name.startwith('python')):
return True
if file.relative_filepath.suffix == '.so':

View File

@@ -1,453 +0,0 @@
# ##### BEGIN GPL LICENSE BLOCK #####
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>
import logging
import re
import stat
import subprocess
import time
from pathlib import Path
from typing import List
import codesign.util as util
from buildbot_utils import Builder
from codesign.absolute_and_relative_filename import AbsoluteAndRelativeFileName
from codesign.base_code_signer import BaseCodeSigner
logger = logging.getLogger(__name__)
logger_server = logger.getChild('server')
# NOTE: Check is done as filename.endswith(), so keep the dot
EXTENSIONS_TO_BE_SIGNED = {'.dylib', '.so', '.dmg'}
# Prefixes of a file (not directory) name which are to be signed.
# Used to sign extra executable files in Contents/Resources.
NAME_PREFIXES_TO_BE_SIGNED = {'python'}
def is_file_from_bundle(file: AbsoluteAndRelativeFileName) -> bool:
"""
Check whether file is coming from an .app bundle
"""
parts = file.relative_filepath.parts
if not parts:
return False
if not parts[0].endswith('.app'):
return False
return True
def get_bundle_from_file(
file: AbsoluteAndRelativeFileName) -> AbsoluteAndRelativeFileName:
"""
Get AbsoluteAndRelativeFileName descriptor of bundle
"""
assert(is_file_from_bundle(file))
parts = file.relative_filepath.parts
bundle_name = parts[0]
base_dir = file.base_dir
bundle_filepath = file.base_dir / bundle_name
return AbsoluteAndRelativeFileName(base_dir, bundle_filepath)
def is_bundle_executable_file(file: AbsoluteAndRelativeFileName) -> bool:
"""
Check whether given file is an executable within an app bundle
"""
if not is_file_from_bundle(file):
return False
parts = file.relative_filepath.parts
num_parts = len(parts)
if num_parts < 3:
return False
if parts[1:3] != ('Contents', 'MacOS'):
return False
return True
def xcrun_field_value_from_output(field: str, output: str) -> str:
"""
Get value of a given field from xcrun output.
If field is not found empty string is returned.
"""
field_prefix = field + ': '
for line in output.splitlines():
line = line.strip()
if line.startswith(field_prefix):
return line[len(field_prefix):]
return ''
class MacOSCodeSigner(BaseCodeSigner):
def check_file_is_to_be_signed(
self, file: AbsoluteAndRelativeFileName) -> bool:
if file.relative_filepath.name.startswith('.'):
return False
if is_bundle_executable_file(file):
return True
base_name = file.relative_filepath.name
if any(base_name.startswith(prefix)
for prefix in NAME_PREFIXES_TO_BE_SIGNED):
return True
mode = file.absolute_filepath.lstat().st_mode
if mode & stat.S_IXUSR != 0:
file_output = subprocess.check_output(
("file", file.absolute_filepath)).decode()
if "64-bit executable" in file_output:
return True
return file.relative_filepath.suffix in EXTENSIONS_TO_BE_SIGNED
def collect_files_to_sign(self, path: Path) \
-> List[AbsoluteAndRelativeFileName]:
# Include all files when signing app or dmg bundle: all the files are
# needed to do valid signature of bundle.
if path.name.endswith('.app'):
return AbsoluteAndRelativeFileName.recursively_from_directory(path)
if path.is_dir():
files = []
for child in path.iterdir():
if child.name.endswith('.app'):
current_files = AbsoluteAndRelativeFileName.recursively_from_directory(
child)
else:
current_files = super().collect_files_to_sign(child)
for current_file in current_files:
files.append(AbsoluteAndRelativeFileName(
path, current_file.absolute_filepath))
return files
return super().collect_files_to_sign(path)
############################################################################
# Codesign.
def codesign_remove_signature(
self, file: AbsoluteAndRelativeFileName) -> None:
"""
Make sure given file does not have codesign signature
This is needed because codesigning is not possible for file which has
signature already.
"""
logger_server.info(
'Removing codesign signature from %s...', file.relative_filepath)
command = ['codesign', '--remove-signature', file.absolute_filepath]
self.run_command_or_mock(command, util.Platform.MACOS)
def codesign_file(
self, file: AbsoluteAndRelativeFileName) -> None:
"""
Sign given file
NOTE: File must not have any signatures.
"""
logger_server.info(
'Codesigning %s...', file.relative_filepath)
entitlements_file = self.config.MACOS_ENTITLEMENTS_FILE
command = ['codesign',
'--timestamp',
'--options', 'runtime',
f'--entitlements={entitlements_file}',
'--sign', self.config.MACOS_CODESIGN_IDENTITY,
file.absolute_filepath]
self.run_command_or_mock(command, util.Platform.MACOS)
def codesign_all_files(self, files: List[AbsoluteAndRelativeFileName]) -> bool:
"""
Run codesign tool on all eligible files in the given list.
Will ignore all files which are not to be signed. For the rest will
remove possible existing signature and add a new signature.
"""
num_files = len(files)
have_ignored_files = False
signed_files = []
for file_index, file in enumerate(files):
# Ignore file if it is not to be signed.
# Allows to manually construct ZIP of a bundle and get it signed.
if not self.check_file_is_to_be_signed(file):
logger_server.info(
'Ignoring file [%d/%d] %s',
file_index + 1, num_files, file.relative_filepath)
have_ignored_files = True
continue
logger_server.info(
'Running codesigning routines for file [%d/%d] %s...',
file_index + 1, num_files, file.relative_filepath)
self.codesign_remove_signature(file)
self.codesign_file(file)
signed_files.append(file)
if have_ignored_files:
logger_server.info('Signed %d files:', len(signed_files))
num_signed_files = len(signed_files)
for file_index, signed_file in enumerate(signed_files):
logger_server.info(
'- [%d/%d] %s',
file_index + 1, num_signed_files,
signed_file.relative_filepath)
return True
def codesign_bundles(
self, files: List[AbsoluteAndRelativeFileName]) -> None:
"""
Codesign all .app bundles in the given list of files.
Bundle is deducted from paths of the files, and every bundle is only
signed once.
"""
signed_bundles = set()
extra_files = []
for file in files:
if not is_file_from_bundle(file):
continue
bundle = get_bundle_from_file(file)
bundle_name = bundle.relative_filepath
if bundle_name in signed_bundles:
continue
logger_server.info('Running codesign routines on bundle %s',
bundle_name)
# It is not possible to remove signature from DMG.
if bundle.relative_filepath.name.endswith('.app'):
self.codesign_remove_signature(bundle)
self.codesign_file(bundle)
signed_bundles.add(bundle_name)
# Codesign on a bundle adds an extra folder with information.
# It needs to be compied to the source.
code_signature_directory = \
bundle.absolute_filepath / 'Contents' / '_CodeSignature'
code_signature_files = \
AbsoluteAndRelativeFileName.recursively_from_directory(
code_signature_directory)
for code_signature_file in code_signature_files:
bundle_relative_file = AbsoluteAndRelativeFileName(
bundle.base_dir,
code_signature_directory /
code_signature_file.relative_filepath)
extra_files.append(bundle_relative_file)
files.extend(extra_files)
return True
############################################################################
# Notarization.
def notarize_get_bundle_id(self, file: AbsoluteAndRelativeFileName) -> str:
"""
Get bundle ID which will be used to notarize DMG
"""
name = file.relative_filepath.name
app_name = name.split('-', 2)[0].lower()
app_name_words = app_name.split()
if len(app_name_words) > 1:
app_name_id = ''.join(word.capitalize() for word in app_name_words)
else:
app_name_id = app_name_words[0]
# TODO(sergey): Consider using "alpha" for buildbot builds.
return f'org.blenderfoundation.{app_name_id}.release'
def notarize_request(self, file) -> str:
"""
Request notarization of the given file.
Returns UUID of the notarization request. If error occurred None is
returned instead of UUID.
"""
bundle_id = self.notarize_get_bundle_id(file)
logger_server.info('Bundle ID: %s', bundle_id)
logger_server.info('Submitting file to the notarial office.')
command = [
'xcrun', 'altool', '--notarize-app', '--verbose',
'-f', file.absolute_filepath,
'--primary-bundle-id', bundle_id,
'--username', self.config.MACOS_XCRUN_USERNAME,
'--password', self.config.MACOS_XCRUN_PASSWORD]
output = self.check_output_or_mock(
command, util.Platform.MACOS, allow_nonzero_exit_code=True)
for line in output.splitlines():
line = line.strip()
if line.startswith('RequestUUID = '):
request_uuid = line[14:]
return request_uuid
# Check whether the package has been already submitted.
if 'The software asset has already been uploaded.' in line:
request_uuid = re.sub(
'.*The upload ID is ([A-Fa-f0-9\-]+).*', '\\1', line)
logger_server.warning(
f'The package has been already submitted under UUID {request_uuid}')
return request_uuid
logger_server.error(output)
logger_server.error('xcrun command did not report RequestUUID')
return None
def notarize_wait_result(self, request_uuid: str) -> bool:
"""
Wait for until notarial office have a reply
"""
logger_server.info(
'Waiting for a result from the notarization office.')
command = ['xcrun', 'altool',
'--notarization-info', request_uuid,
'--username', self.config.MACOS_XCRUN_USERNAME,
'--password', self.config.MACOS_XCRUN_PASSWORD]
time_start = time.monotonic()
timeout_in_seconds = self.config.MACOS_NOTARIZE_TIMEOUT_IN_SECONDS
while True:
output = self.check_output_or_mock(
command, util.Platform.MACOS, allow_nonzero_exit_code=True)
# Parse status and message
status = xcrun_field_value_from_output('Status', output)
status_message = xcrun_field_value_from_output(
'Status Message', output)
# Review status.
if status:
if status == 'success':
logger_server.info(
'Package successfully notarized: %s', status_message)
return True
elif status == 'invalid':
logger_server.error(output)
logger_server.error(
'Package notarization has failed: %s', status_message)
return False
elif status == 'in progress':
pass
else:
logger_server.info(
'Unknown notarization status %s (%s)', status, status_message)
logger_server.info('Keep waiting for notarization office.')
time.sleep(30)
time_slept_in_seconds = time.monotonic() - time_start
if time_slept_in_seconds > timeout_in_seconds:
logger_server.error(
"Notarial office didn't reply in %f seconds.",
timeout_in_seconds)
def notarize_staple(self, file: AbsoluteAndRelativeFileName) -> bool:
"""
Staple notarial label on the file
"""
logger_server.info('Stapling notarial stamp.')
command = ['xcrun', 'stapler', 'staple', '-v', file.absolute_filepath]
self.check_output_or_mock(command, util.Platform.MACOS)
return True
def notarize_dmg(self, file: AbsoluteAndRelativeFileName) -> bool:
"""
Run entire pipeline to get DMG notarized.
"""
logger_server.info('Begin notarization routines on %s',
file.relative_filepath)
# Submit file for notarization.
request_uuid = self.notarize_request(file)
if not request_uuid:
return False
logger_server.info('Received Request UUID: %s', request_uuid)
# Wait for the status from the notarization office.
if not self.notarize_wait_result(request_uuid):
return False
# Staple.
if not self.notarize_staple(file):
return False
return True
def notarize_all_dmg(
self, files: List[AbsoluteAndRelativeFileName]) -> bool:
"""
Notarize all DMG images from the input.
Images are supposed to be codesigned already.
"""
for file in files:
if not file.relative_filepath.name.endswith('.dmg'):
continue
if not self.check_file_is_to_be_signed(file):
continue
if not self.notarize_dmg(file):
return False
return True
############################################################################
# Entry point.
def sign_all_files(self, files: List[AbsoluteAndRelativeFileName]) -> None:
# TODO(sergey): Handle errors somehow.
if not self.codesign_all_files(files):
return
if not self.codesign_bundles(files):
return
if not self.notarize_all_dmg(files):
return

View File

@@ -26,7 +26,6 @@ from pathlib import Path
from typing import Optional
import codesign.config_builder
import codesign.util as util
from codesign.base_code_signer import BaseCodeSigner
@@ -34,14 +33,10 @@ class SimpleCodeSigner:
code_signer: Optional[BaseCodeSigner]
def __init__(self):
platform = util.get_current_platform()
if platform == util.Platform.LINUX:
if sys.platform == 'linux':
from codesign.linux_code_signer import LinuxCodeSigner
self.code_signer = LinuxCodeSigner(codesign.config_builder)
elif platform == util.Platform.MACOS:
from codesign.macos_code_signer import MacOSCodeSigner
self.code_signer = MacOSCodeSigner(codesign.config_builder)
elif platform == util.Platform.WINDOWS:
elif sys.platform == 'win32':
from codesign.windows_code_signer import WindowsCodeSigner
self.code_signer = WindowsCodeSigner(codesign.config_builder)
else:

View File

@@ -18,28 +18,9 @@
# <pep8 compliant>
import sys
from enum import Enum
from pathlib import Path
class Platform(Enum):
LINUX = 1
MACOS = 2
WINDOWS = 3
def get_current_platform() -> Platform:
if sys.platform == 'linux':
return Platform.LINUX
elif sys.platform == 'darwin':
return Platform.MACOS
elif sys.platform == 'win32':
return Platform.WINDOWS
raise Exception(f'Unknown platform {sys.platform}')
def ensure_file_does_not_exist_or_die(filepath: Path) -> None:
"""
If the file exists, unlink it.

View File

@@ -19,12 +19,11 @@
# <pep8 compliant>
import logging
import subprocess
from pathlib import Path
from typing import List
import codesign.util as util
from buildbot_utils import Builder
from codesign.absolute_and_relative_filename import AbsoluteAndRelativeFileName
@@ -53,8 +52,8 @@ class WindowsCodeSigner(BaseCodeSigner):
def get_sign_command_prefix(self) -> List[str]:
return [
'signtool', 'sign', '/v',
'/f', self.config.WIN_CERTIFICATE_FILEPATH,
'/tr', self.config.WIN_TIMESTAMP_AUTHORITY_URL]
'/f', self.config.CERTIFICATE_FILEPATH,
'/tr', self.config.TIMESTAMP_AUTHORITY_URL]
def sign_all_files(self, files: List[AbsoluteAndRelativeFileName]) -> None:
# NOTE: Sign files one by one to avoid possible command line length
@@ -65,14 +64,6 @@ class WindowsCodeSigner(BaseCodeSigner):
# one go (but only if this actually known to be much faster).
num_files = len(files)
for file_index, file in enumerate(files):
# Ignore file if it is not to be signed.
# Allows to manually construct ZIP of package and get it signed.
if not self.check_file_is_to_be_signed(file):
logger_server.info(
'Ignoring file [%d/%d] %s',
file_index + 1, num_files, file.relative_filepath)
continue
command = self.get_sign_command_prefix()
command.append(file.absolute_filepath)
logger_server.info(
@@ -80,5 +71,5 @@ class WindowsCodeSigner(BaseCodeSigner):
file_index + 1, num_files, file.relative_filepath)
# TODO(sergey): Check the status somehow. With a missing certificate
# the command still exists with a zero code.
self.run_command_or_mock(command, util.Platform.WINDOWS)
subprocess.run(command)
# TODO(sergey): Report number of signed and ignored files.

View File

@@ -1,41 +0,0 @@
#!/usr/bin/env python3
# ##### BEGIN GPL LICENSE BLOCK #####
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>
import logging.config
from pathlib import Path
from typing import List
from codesign.macos_code_signer import MacOSCodeSigner
import codesign.config_server
if __name__ == "__main__":
entitlements_file = codesign.config_server.MACOS_ENTITLEMENTS_FILE
if not entitlements_file.exists():
raise SystemExit(
'Entitlements file {entitlements_file} does not exist.')
if not entitlements_file.is_file():
raise SystemExit(
'Entitlements file {entitlements_file} is not a file.')
logging.config.dictConfig(codesign.config_server.LOGGING)
code_signer = MacOSCodeSigner(codesign.config_server)
code_signer.run_signing_server()

View File

@@ -30,25 +30,15 @@ import shutil
from pathlib import Path
from typing import List
import codesign.util as util
from codesign.windows_code_signer import WindowsCodeSigner
import codesign.config_server
if __name__ == "__main__":
logging.config.dictConfig(codesign.config_server.LOGGING)
logger = logging.getLogger(__name__)
logger_server = logger.getChild('server')
# TODO(sergey): Consider moving such sanity checks into
# CodeSigner.check_environment_or_die().
if not shutil.which('signtool.exe'):
if util.get_current_platform() == util.Platform.WINDOWS:
raise SystemExit("signtool.exe is not found in %PATH%")
logger_server.info(
'signtool.exe not found, '
'but will not be used on this foreign platform')
raise SystemExit("signtool.exe is not found in %PATH%")
logging.config.dictConfig(codesign.config_server.LOGGING)
code_signer = WindowsCodeSigner(codesign.config_server)
code_signer.run_signing_server()

View File

@@ -7,6 +7,9 @@ message(STATUS "Building in CentOS 7 64bit environment")
set(LIBDIR_NAME "linux_centos7_x86_64")
set(WITH_CXX11_ABI OFF CACHE BOOL "" FORCE)
# Default to only build Blender
set(WITH_BLENDER ON CACHE BOOL "" FORCE)
# ######## Linux-specific build options ########
# Options which are specific to Linux-only platforms
@@ -17,6 +20,12 @@ set(WITH_DOC_MANPAGE OFF CACHE BOOL "" FORCE)
set(WITH_JACK_DYNLOAD ON CACHE BOOL "" FORCE)
set(WITH_SDL_DYNLOAD ON CACHE BOOL "" FORCE)
set(WITH_SYSTEM_GLEW OFF CACHE BOOL "" FORCE)
set(WITH_OPENMP_STATIC ON CACHE BOOL "" FORCE)
set(WITH_PYTHON_INSTALL_NUMPY ON CACHE BOOL "" FORCE)
set(WITH_PYTHON_INSTALL_REQUESTS ON CACHE BOOL "" FORCE)
# ######## Release environment specific settings ########
@@ -24,5 +33,13 @@ set(LIBDIR "${CMAKE_CURRENT_LIST_DIR}/../../../../lib/${LIBDIR_NAME}" CACHE STRI
# Platform specific configuration, to ensure static linking against everything.
set(Boost_USE_STATIC_LIBS ON CACHE BOOL "" FORCE)
# We need to link OpenCOLLADA against PCRE library. Even though it is not installed
# on /usr, we do not really care -- all we care is PCRE_FOUND be TRUE and its
# library pointing to a valid one.
set(PCRE_INCLUDE_DIR "/usr/include" CACHE STRING "" FORCE)
set(PCRE_LIBRARY "${LIBDIR}/opencollada/lib/libpcre.a" CACHE STRING "" FORCE)
# Additional linking libraries
set(CMAKE_EXE_LINKER_FLAGS "-lrt -static-libstdc++ -no-pie" CACHE STRING "" FORCE)

View File

@@ -1,542 +0,0 @@
#!/usr/bin/env python3
# ##### BEGIN GPL LICENSE BLOCK #####
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
import argparse
import re
import shutil
import subprocess
import sys
import time
from pathlib import Path
from tempfile import TemporaryDirectory, NamedTemporaryFile
from typing import List
BUILDBOT_DIRECTORY = Path(__file__).absolute().parent
CODESIGN_SCRIPT = BUILDBOT_DIRECTORY / 'slave_codesign.py'
BLENDER_GIT_ROOT_DIRECTORY = BUILDBOT_DIRECTORY.parent.parent
DARWIN_DIRECTORY = BLENDER_GIT_ROOT_DIRECTORY / 'release' / 'darwin'
# Extra size which is added on top of actual files size when estimating size
# of destination DNG.
EXTRA_DMG_SIZE_IN_BYTES = 800 * 1024 * 1024
################################################################################
# Common utilities
def get_directory_size(root_directory: Path) -> int:
"""
Get size of directory on disk
"""
total_size = 0
for file in root_directory.glob('**/*'):
total_size += file.lstat().st_size
return total_size
################################################################################
# DMG bundling specific logic
def create_argument_parser():
parser = argparse.ArgumentParser()
parser.add_argument(
'source_dir',
type=Path,
help='Source directory which points to either existing .app bundle'
'or to a directory with .app bundles.')
parser.add_argument(
'--background-image',
type=Path,
help="Optional background picture which will be set on the DMG."
"If not provided default Blender's one is used.")
parser.add_argument(
'--volume-name',
type=str,
help='Optional name of a volume which will be used for DMG.')
parser.add_argument(
'--dmg',
type=Path,
help='Optional argument which points to a final DMG file name.')
parser.add_argument(
'--applescript',
type=Path,
help="Optional path to applescript to set up folder looks of DMG."
"If not provided default Blender's one is used.")
return parser
def collect_app_bundles(source_dir: Path) -> List[Path]:
"""
Collect all app bundles which are to be put into DMG
If the source directory points to FOO.app it will be the only app bundle
packed.
Otherwise all .app bundles from given directory are placed to a single
DMG.
"""
if source_dir.name.endswith('.app'):
return [source_dir]
app_bundles = []
for filename in source_dir.glob('*'):
if not filename.is_dir():
continue
if not filename.name.endswith('.app'):
continue
app_bundles.append(filename)
return app_bundles
def collect_and_log_app_bundles(source_dir: Path) -> List[Path]:
app_bundles = collect_app_bundles(source_dir)
if not app_bundles:
print('No app bundles found for packing')
return
print(f'Found {len(app_bundles)} to pack:')
for app_bundle in app_bundles:
print(f'- {app_bundle}')
return app_bundles
def estimate_dmg_size(app_bundles: List[Path]) -> int:
"""
Estimate size of DMG to hold requested app bundles
The size is based on actual size of all files in all bundles plus some
space to compensate for different size-on-disk plus some space to hold
codesign signatures.
Is better to be on a high side since the empty space is compressed, but
lack of space might cause silent failures later on.
"""
app_bundles_size = 0
for app_bundle in app_bundles:
app_bundles_size += get_directory_size(app_bundle)
return app_bundles_size + EXTRA_DMG_SIZE_IN_BYTES
def copy_app_bundles_to_directory(app_bundles: List[Path],
directory: Path) -> None:
"""
Copy all bundles to a given directory
This directory is what the DMG will be created from.
"""
for app_bundle in app_bundles:
print(f'Copying {app_bundle.name}...')
shutil.copytree(app_bundle, directory / app_bundle.name)
def get_main_app_bundle(app_bundles: List[Path]) -> Path:
"""
Get application bundle main for the installation
"""
return app_bundles[0]
def create_dmg_image(app_bundles: List[Path],
dmg_filepath: Path,
volume_name: str) -> None:
"""
Create DMG disk image and put app bundles in it
No DMG configuration or codesigning is happening here.
"""
if dmg_filepath.exists():
print(f'Removing existing writable DMG {dmg_filepath}...')
dmg_filepath.unlink()
print('Preparing directory with app bundles for the DMG...')
with TemporaryDirectory(prefix='blender-dmg-content-') as content_dir_str:
# Copy all bundles to a clean directory.
content_dir = Path(content_dir_str)
copy_app_bundles_to_directory(app_bundles, content_dir)
# Estimate size of the DMG.
dmg_size = estimate_dmg_size(app_bundles)
print(f'Estimated DMG size: {dmg_size:,} bytes.')
# Create the DMG.
print(f'Creating writable DMG {dmg_filepath}')
command = ('hdiutil',
'create',
'-size', str(dmg_size),
'-fs', 'HFS+',
'-srcfolder', content_dir,
'-volname', volume_name,
'-format', 'UDRW',
dmg_filepath)
subprocess.run(command)
def get_writable_dmg_filepath(dmg_filepath: Path):
"""
Get file path for writable DMG image
"""
parent = dmg_filepath.parent
return parent / (dmg_filepath.stem + '-temp.dmg')
def mount_readwrite_dmg(dmg_filepath: Path) -> None:
"""
Mount writable DMG
Mounting point would be /Volumes/<volume name>
"""
print(f'Mounting read-write DMG ${dmg_filepath}')
command = ('hdiutil',
'attach', '-readwrite',
'-noverify',
'-noautoopen',
dmg_filepath)
subprocess.run(command)
def get_mount_directory_for_volume_name(volume_name: str) -> Path:
"""
Get directory under which the volume will be mounted
"""
return Path('/Volumes') / volume_name
def eject_volume(volume_name: str) -> None:
"""
Eject given volume, if mounted
"""
mount_directory = get_mount_directory_for_volume_name(volume_name)
if not mount_directory.exists():
return
mount_directory_str = str(mount_directory)
print(f'Ejecting volume {volume_name}')
# Figure out which device to eject.
mount_output = subprocess.check_output(['mount']).decode()
device = ''
for line in mount_output.splitlines():
if f'on {mount_directory_str} (' not in line:
continue
tokens = line.split(' ', 3)
if len(tokens) < 3:
continue
if tokens[1] != 'on':
continue
if device:
raise Exception(
f'Multiple devices found for mounting point {mount_directory}')
device = tokens[0]
if not device:
raise Exception(
f'No device found for mounting point {mount_directory}')
print(f'{mount_directory} is mounted as device {device}, ejecting...')
subprocess.run(['diskutil', 'eject', device])
def copy_background_if_needed(background_image_filepath: Path,
mount_directory: Path) -> None:
"""
Copy background to the DMG
If the background image is not specified it will not be copied.
"""
if not background_image_filepath:
print('No background image provided.')
return
print(f'Copying background image {background_image_filepath}')
destination_dir = mount_directory / '.background'
destination_dir.mkdir(exist_ok=True)
destination_filepath = destination_dir / background_image_filepath.name
shutil.copy(background_image_filepath, destination_filepath)
def create_applications_link(mount_directory: Path) -> None:
"""
Create link to /Applications in the given location
"""
print('Creating link to /Applications')
command = ('ln', '-s', '/Applications', mount_directory / ' ')
subprocess.run(command)
def run_applescript(applescript: Path,
volume_name: str,
app_bundles: List[Path],
background_image_filepath: Path) -> None:
"""
Run given applescript to adjust look and feel of the DMG
"""
main_app_bundle = get_main_app_bundle(app_bundles)
with NamedTemporaryFile(
mode='w', suffix='.applescript') as temp_applescript:
print('Adjusting applescript for volume name...')
# Adjust script to the specific volume name.
with open(applescript, mode='r') as input:
for line in input.readlines():
stripped_line = line.strip()
if stripped_line.startswith('tell disk'):
line = re.sub('tell disk ".*"',
f'tell disk "{volume_name}"',
line)
elif stripped_line.startswith('set background picture'):
if not background_image_filepath:
continue
else:
background_image_short = \
'.background:' + background_image_filepath.name
line = re.sub('to file ".*"',
f'to file "{background_image_short}"',
line)
line = line.replace('blender.app', main_app_bundle.name)
temp_applescript.write(line)
temp_applescript.flush()
print('Running applescript...')
command = ('osascript', temp_applescript.name)
subprocess.run(command)
print('Waiting for applescript...')
# NOTE: This is copied from bundle.sh. The exact reason for sleep is
# still remained a mystery.
time.sleep(5)
def codesign(subject: Path):
"""
Codesign file or directory
NOTE: For DMG it will also notarize.
"""
command = (CODESIGN_SCRIPT, subject)
subprocess.run(command)
def codesign_app_bundles_in_dmg(mount_directory: str) -> None:
"""
Code sign all binaries and bundles in the mounted directory
"""
print(f'Codesigning all app bundles in {mount_directory}')
codesign(mount_directory)
def codesign_and_notarize_dmg(dmg_filepath: Path) -> None:
"""
Run codesign and notarization pipeline on the DMG
"""
print(f'Codesigning and notarizing DMG {dmg_filepath}')
codesign(dmg_filepath)
def compress_dmg(writable_dmg_filepath: Path,
final_dmg_filepath: Path) -> None:
"""
Compress temporary read-write DMG
"""
command = ('hdiutil', 'convert',
writable_dmg_filepath,
'-format', 'UDZO',
'-o', final_dmg_filepath)
if final_dmg_filepath.exists():
print(f'Removing old compressed DMG {final_dmg_filepath}')
final_dmg_filepath.unlink()
print('Compressing disk image...')
subprocess.run(command)
def create_final_dmg(app_bundles: List[Path],
dmg_filepath: Path,
background_image_filepath: Path,
volume_name: str,
applescript: Path) -> None:
"""
Create DMG with all app bundles
Will take care configuring background, signing all binaries and app bundles
and notarizing the DMG.
"""
print('Running all routines to create final DMG')
writable_dmg_filepath = get_writable_dmg_filepath(dmg_filepath)
mount_directory = get_mount_directory_for_volume_name(volume_name)
# Make sure volume is not mounted.
# If it is mounted it will prevent removing old DMG files and could make
# it so app bundles are copied to the wrong place.
eject_volume(volume_name)
create_dmg_image(app_bundles, writable_dmg_filepath, volume_name)
mount_readwrite_dmg(writable_dmg_filepath)
# Run codesign first, prior to copying amything else.
#
# This allows to recurs into the content of bundles without worrying about
# possible interfereice of Application symlink.
codesign_app_bundles_in_dmg(mount_directory)
copy_background_if_needed(background_image_filepath, mount_directory)
create_applications_link(mount_directory)
run_applescript(applescript, volume_name, app_bundles,
background_image_filepath)
print('Ejecting read-write DMG image...')
eject_volume(volume_name)
compress_dmg(writable_dmg_filepath, dmg_filepath)
writable_dmg_filepath.unlink()
codesign_and_notarize_dmg(dmg_filepath)
def ensure_dmg_extension(filepath: Path) -> Path:
"""
Make sure given file have .dmg extension
"""
if filepath.suffix != '.dmg':
return filepath.with_suffix(f'{filepath.suffix}.dmg')
return filepath
def get_dmg_filepath(requested_name: Path, app_bundles: List[Path]) -> Path:
"""
Get full file path for the final DMG image
Will use the provided one when possible, otherwise will deduct it from
app bundles.
If the name is deducted, the DMG is stored in the current directory.
"""
if requested_name:
return ensure_dmg_extension(requested_name.absolute())
# TODO(sergey): This is not necessarily the main one.
main_bundle = app_bundles[0]
# Strip .app from the name
return Path(main_bundle.name[:-4] + '.dmg').absolute()
def get_background_image(requested_background_image: Path) -> Path:
"""
Get effective filepath for the background image
"""
if requested_background_image:
return requested_background_image.absolute()
return DARWIN_DIRECTORY / 'background.tif'
def get_applescript(requested_applescript: Path) -> Path:
"""
Get effective filepath for the applescript
"""
if requested_applescript:
return requested_applescript.absolute()
return DARWIN_DIRECTORY / 'blender.applescript'
def get_volume_name_from_dmg_filepath(dmg_filepath: Path) -> str:
"""
Deduct volume name from the DMG path
Will use first part of the DMG file name prior to dash.
"""
tokens = dmg_filepath.stem.split('-')
words = tokens[0].split()
return ' '.join(word.capitalize() for word in words)
def get_volume_name(requested_volume_name: str,
dmg_filepath: Path) -> str:
"""
Get effective name for DMG volume
"""
if requested_volume_name:
return requested_volume_name
return get_volume_name_from_dmg_filepath(dmg_filepath)
def main():
parser = create_argument_parser()
args = parser.parse_args()
# Get normalized input parameters.
source_dir = args.source_dir.absolute()
background_image_filepath = get_background_image(args.background_image)
applescript = get_applescript(args.applescript)
app_bundles = collect_and_log_app_bundles(source_dir)
if not app_bundles:
return
dmg_filepath = get_dmg_filepath(args.dmg, app_bundles)
volume_name = get_volume_name(args.volume_name, dmg_filepath)
print(f'Will produce DMG "{dmg_filepath.name}" (without quotes)')
create_final_dmg(app_bundles,
dmg_filepath,
background_image_filepath,
volume_name,
applescript)
if __name__ == "__main__":
main()

View File

@@ -40,5 +40,5 @@ execute_process(
)
if(NOT exit_code EQUAL "0")
message(FATAL_ERROR "Non-zero exit code of codesign tool")
message( FATAL_ERROR "Non-zero exit code of codesign tool")
endif()

View File

@@ -45,7 +45,7 @@ def create_argument_parser():
def main():
parser = create_argument_parser()
args = parser.parse_args()
path_to_sign = args.path_to_sign.absolute()
path_to_sign = args.path_to_sign
if sys.platform == 'win32':
# When WIX packed is used to generate .msi on Windows the CPack will

View File

@@ -103,7 +103,7 @@ def cmake_build(builder):
if builder.platform == 'win':
command = ['cmake', '--build', '.', '--target', 'install', '--config', 'Release']
else:
command = ['make', '-s', '-j16', 'install']
command = ['make', '-s', '-j2', 'install']
print("CMake build:")
buildbot_utils.call(builder.command_prefix + command)

View File

@@ -109,15 +109,14 @@ def pack_mac(builder):
package_filepath = os.path.join(builder.build_dir, package_filename)
release_dir = os.path.join(builder.blender_dir, 'release', 'darwin')
buildbot_dir = os.path.join(builder.blender_dir, 'build_files', 'buildbot')
bundle_script = os.path.join(buildbot_dir, 'slave_bundle_dmg.py')
bundle_sh = os.path.join(release_dir, 'bundle.sh')
command = [bundle_script]
command = [bundle_sh]
command += ['--source', builder.install_dir]
command += ['--dmg', package_filepath]
if info.is_development_build:
background_image = os.path.join(release_dir, 'buildbot', 'background.tif')
command += ['--background-image', background_image]
command += [builder.install_dir]
buildbot_utils.call(command)
create_buildbot_upload_zip(builder, [(package_filepath, package_filename)])
@@ -161,6 +160,8 @@ def pack_linux(builder):
blender_executable = os.path.join(builder.install_dir, 'blender')
info = buildbot_utils.VersionInfo(builder)
blender_glibc = builder.name.split('_')[1]
blender_arch = 'x86_64'
# Strip all unused symbols from the binaries
print("Stripping binaries...")
@@ -171,7 +172,7 @@ def pack_linux(builder):
buildbot_utils.call(builder.command_prefix + ['find', py_target, '-iname', '*.so', '-exec', 'strip', '-s', '{}', ';'])
# Construct package name
platform_name = 'linux64'
platform_name = 'linux-' + blender_glibc + '-' + blender_arch
package_name = get_package_name(builder, platform_name)
package_filename = package_name + ".tar.xz"

View File

@@ -27,6 +27,9 @@ ENDIF()
SET(_alembic_SEARCH_DIRS
${ALEMBIC_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/alembic
)

View File

@@ -17,6 +17,9 @@ ENDIF()
SET(_audaspace_SEARCH_DIRS
${AUDASPACE_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
)
# Use pkg-config to get hints about paths

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_blosc_SEARCH_DIRS
${BLOSC_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/blosc
)

View File

@@ -25,6 +25,9 @@ ENDIF()
SET(_eigen3_SEARCH_DIRS
${EIGEN3_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
)
FIND_PATH(EIGEN3_INCLUDE_DIR

View File

@@ -29,6 +29,10 @@ ENDIF()
SET(_embree_SEARCH_DIRS
${EMBREE_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/embree
/opt/lib/embree
)

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_fftw3_SEARCH_DIRS
${FFTW3_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
)
FIND_PATH(FFTW3_INCLUDE_DIR

View File

@@ -28,6 +28,7 @@ ENDIF()
SET(_glew_SEARCH_DIRS
${GLEW_ROOT_DIR}
/usr/local
)
FIND_PATH(GLEW_INCLUDE_DIR

View File

@@ -444,6 +444,7 @@ if(NOT GFLAGS_FOUND)
/opt/local/var/macports/software # Mac OS X.
/opt/local/include
/usr/include
/sw/include # Fink
/opt/lib/gflags/include)
list(APPEND GFLAGS_CHECK_PATH_SUFFIXES
@@ -456,6 +457,7 @@ if(NOT GFLAGS_FOUND)
/usr/local/homebrew/lib # Mac OS X.
/opt/local/lib
/usr/lib
/sw/lib # Fink
/opt/lib/gflags/lib)
list(APPEND GFLAGS_CHECK_LIBRARY_SUFFIXES
gflags/lib # Windows (for C:/Program Files prefix).

View File

@@ -128,6 +128,7 @@ list(APPEND GLOG_CHECK_INCLUDE_DIRS
/opt/local/var/macports/software # Mac OS X.
/opt/local/include
/usr/include
/sw/include # Fink
/opt/lib/glog/include)
# Windows (for C:/Program Files prefix).
list(APPEND GLOG_CHECK_PATH_SUFFIXES
@@ -142,6 +143,7 @@ list(APPEND GLOG_CHECK_LIBRARY_DIRS
/usr/local/homebrew/lib # Mac OS X.
/opt/local/lib
/usr/lib
/sw/lib # Fink
/opt/lib/gflags/lib)
# Windows (for C:/Program Files prefix).
list(APPEND GLOG_CHECK_LIBRARY_SUFFIXES

View File

@@ -26,6 +26,9 @@ ENDIF()
SET(_hdf5_SEARCH_DIRS
${HDF5_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/hdf5
)

View File

@@ -32,6 +32,9 @@ endif()
SET(_icu_SEARCH_DIRS
${ICU_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
)
# We don't need includes, only libs to link against...

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_jack_SEARCH_DIRS
${JACK_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
)
FIND_PATH(JACK_INCLUDE_DIR

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_jemalloc_SEARCH_DIRS
${JEMALLOC_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/jemalloc
)

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_lzo_SEARCH_DIRS
${LZO_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
)
FIND_PATH(LZO_INCLUDE_DIR lzo/lzo1x.h

View File

@@ -62,6 +62,9 @@ SET(_opencollada_FIND_STATIC_COMPONENTS
SET(_opencollada_SEARCH_DIRS
${OPENCOLLADA_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/opencollada
)

View File

@@ -35,6 +35,9 @@ SET(_opencolorio_FIND_COMPONENTS
SET(_opencolorio_SEARCH_DIRS
${OPENCOLORIO_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/ocio
)

View File

@@ -47,6 +47,9 @@ SET(_openexr_FIND_COMPONENTS
SET(_openexr_SEARCH_DIRS
${OPENEXR_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/openexr
)

View File

@@ -17,6 +17,7 @@ ENDIF()
SET(_opengles_SEARCH_DIRS
${OPENGLES_ROOT_DIR}
/usr/local
)
FIND_PATH(OPENGLES_INCLUDE_DIR

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_openimagedenoise_SEARCH_DIRS
${OPENIMAGEDENOISE_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/openimagedenoise
)
@@ -95,7 +98,7 @@ FIND_LIBRARY(OPENIMAGEDENOISE_LIBRARY
# handle the QUIETLY and REQUIRED arguments and set OPENIMAGEDENOISE_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenImageDenoise DEFAULT_MSG
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENIMAGEDENOISE DEFAULT_MSG
OPENIMAGEDENOISE_LIBRARY OPENIMAGEDENOISE_INCLUDE_DIR)
IF(OPENIMAGEDENOISE_FOUND)

View File

@@ -31,6 +31,9 @@ ENDIF()
SET(_openimageio_SEARCH_DIRS
${OPENIMAGEIO_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/oiio
)

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_openjpeg_SEARCH_DIRS
${OPENJPEG_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
)
FIND_PATH(OPENJPEG_INCLUDE_DIR

View File

@@ -35,6 +35,9 @@ SET(_osl_FIND_COMPONENTS
SET(_osl_SEARCH_DIRS
${OSL_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/osl
)
@@ -66,22 +69,6 @@ FIND_PROGRAM(OSL_COMPILER oslc
HINTS ${_osl_SEARCH_DIRS}
PATH_SUFFIXES bin)
get_filename_component(OSL_SHADER_HINT ${OSL_COMPILER} DIRECTORY)
get_filename_component(OSL_SHADER_HINT ${OSL_SHADER_DIR}/../ ABSOLUTE)
FIND_PATH(OSL_SHADER_DIR
NAMES
stdosl.h
HINTS
${OSL_ROOT_DIR}
${OSL_SHADER_HINT}
$ENV{OSLHOME}
/usr/share/OSL/
/usr/include/OSL/
PATH_SUFFIXES
shaders
)
# handle the QUIETLY and REQUIRED arguments and set OSL_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)

View File

@@ -34,6 +34,9 @@ SET(_opensubdiv_FIND_COMPONENTS
SET(_opensubdiv_SEARCH_DIRS
${OPENSUBDIV_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/opensubdiv
/opt/lib/osd # install_deps.sh
)

View File

@@ -29,6 +29,10 @@ ENDIF()
SET(_openvdb_SEARCH_DIRS
${OPENVDB_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/openvdb
/opt/lib/openvdb
)

View File

@@ -26,6 +26,9 @@ ENDIF()
SET(_optix_SEARCH_DIRS
${OPTIX_ROOT_DIR}
"$ENV{PROGRAMDATA}/NVIDIA Corporation/OptiX SDK 7.0.0"
/usr/local
/sw # Fink
/opt/local # DarwinPorts
)
FIND_PATH(OPTIX_INCLUDE_DIR

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_pcre_SEARCH_DIRS
${PCRE_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
)
FIND_PATH(PCRE_INCLUDE_DIR pcre.h

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_pugixml_SEARCH_DIRS
${PUGIXML_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
/opt/lib/oiio
)

View File

@@ -71,6 +71,7 @@ STRING(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
SET(_python_SEARCH_DIRS
${PYTHON_ROOT_DIR}
"$ENV{HOME}/py${_PYTHON_VERSION_NO_DOTS}"
"/opt/py${_PYTHON_VERSION_NO_DOTS}"
"/opt/lib/python-${PYTHON_VERSION}"
)

View File

@@ -28,6 +28,12 @@ ENDIF()
SET(_sdl2_SEARCH_DIRS
${SDL2_ROOT_DIR}
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw # Fink
/opt/local # DarwinPorts
)
FIND_PATH(SDL2_INCLUDE_DIR

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_sndfile_SEARCH_DIRS
${LIBSNDFILE_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
)
FIND_PATH(LIBSNDFILE_INCLUDE_DIR sndfile.h

View File

@@ -29,6 +29,9 @@ ENDIF()
SET(_spacenav_SEARCH_DIRS
${SPACENAV_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
)
FIND_PATH(SPACENAV_INCLUDE_DIR

Some files were not shown because too many files have changed in this diff Show More