Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-01-11Tests: run suites instead of individual test casesSybren A. Stüvel
Group all tests of a test suite into a single test command invocation. This reduces the number of invocations by `ctest` by an order of magnitude. Since rB56aa5b0d8c6b663, `bin/tests/blender_test` was run for every individual test. Having over a 1000 tests made testing slower than necessary. Individual tests can still be run if desired by invocation of `bin/tests/blender_test --gtest_filter=suitename.testname`. NOTE: For this commit to have an immediate effect, it may be necessary to remove the `tests` and `Testing` directories and some CMake files from your build directory and rebuild. Run `ctest -N` to see the list of tests; there should be less than 200. Reviewed By: sergey, LazyDodo, sebbas Maniphest Tasks: T83222 Differential Revision: https://developer.blender.org/D9649
2020-12-21Unix/macOS: support building with CcacheMatt Hill
This adds an option (WITH_COMPILER_CCACHE) to build using Ccache if it's found. Makefiles-based, Ninja-based and Xcode generators are supported. Pass `-DWITH_COMPILER_CCACHE=ON` to cmake to enable Ccache. Utility option in GNUmakefile is also added: for e.g., `make ninja ccache`. Reviewed By: brecht, ankitm Differential Revision: https://developer.blender.org/D9665
2020-12-14Fix several issues with handling of numpy in CMake.Bastien Montagne
Issues were: * Abusing of `WITH_PYTHON_INSTALL_NUMPY` by both Audaspace and Mantaflow. - `PYTHON_INSTALL` options only decide whether we copy python (and some extra modules) in our Blender installation. On linux it makes much more sense to use global python installation. - Now we have instead a proper `WITH_PYTHON_NUMPY` * Bad assumptions regarding path of headers relative to path of python module. - In current Debian testing, modules are under `python3.9` directory, while headers are under `python3` directory. - Now we properly `find_path` for headers as well, modifying `find_python_package` to take an optional argument for headers. Note that the required changes done to `extern` libraries are in blender-specific files that do not exist upstream. Differential Revision: https://developer.blender.org/D9773
2020-12-14Revert "Fix several issues with handling of numpy in CMake."Bastien Montagne
This reverts commit 5d570c875eda8fb9aa3635f7f4edac0dc1eaedc8. Buildbots are still borken, need more time to investigate.
2020-12-14Revert "Fix own error in rB5d570c875eda in CMake script."Bastien Montagne
This reverts commit 6da609fcb365f2e51299045b7d5e93fd17583f54. Buildbots are still broken, need more time to investigate.
2020-12-14Fix own error in rB5d570c875eda in CMake script.Bastien Montagne
My mistake, though CMake could handle default arguments but it needs to be explicitly passed actually.
2020-12-14Fix several issues with handling of numpy in CMake.Bastien Montagne
Issues were: * Abusing of `WITH_PYTHON_INSTALL_NUMPY` by both Audaspace and Mantaflow. - `PYTHON_INSTALL` options only decide whether we copy python (and some extra modules) in our Blender installation. On linux it makes much more sense to use global python installation. - Now we have instead a proper `WITH_PYTHON_NUMPY` * Bad assumptions regarding path of headers relative to path of python module. - In current Debian testing, modules are under `python3.9` directory, while headers are under `python3` directory. - Now we properly `find_path` for headers as well, modifying `find_python_package` to take an optional argument for headers. Note that the required changes done to `extern` libraries are in blender-specific files that do not exist upstream. Differential Revision: https://developer.blender.org/D9773
2020-12-03MSVC: Enable clang-tidy analyserRay Molenkamp
This enables the use of clang-tidy in the VS IDE. To use it: 1 - Enable WITH_CLANG_TIDY in your cmake configuration 2 - From the Analyse pull down menu select Run Code Analysis on... The analyser is currently not enabled by default on build given it is quite slow and there are quite a few problems it reports that we still need to deal with.
2020-12-02Deps: Additional changes for PugiXML on macOSSebastián Barschkis
This commit expands the Windows-specific code in rBdca9aa0053f7 and Linux-specific code in rB33b7d53df08a. It also fixes a capitalization issue in FindPugiXML.cmake
2020-12-02Cleanup: Fix CMake syntax error in the last commit.Ankit Meel
2020-12-02CMake/macOS: consider MinSizeRel too for ASan.Ankit Meel
2020-12-01Deps: Add PugiXML as an official dependencySybren A. Stüvel
PugiXML was historically shipped hidden embedded into OIIO, the Grease Pencil team had a requirement for an XML library recently so pugi seems like a natural choice since it's not really a 'new' library, we just turn an implicit dependency into an explicit one. This commit expands the Windows-specific code in rBdca9aa0053f7 to include Linux. macOS support will be handled in a later commit. NOTE: run `cmake -U'*PUGIXML*' .` in the build directory to ensure CMake finds PugiXML in the new location. For details see D8628
2020-11-30Tests: add CMake option to run Cycles regression tests on GPU devicesBrecht Van Lommel
CYCLES_TEST_DEVICES is a list of devices (CPU, CUDA, OPTIX, OPENCL). It is set to CPU only by default. Test output is now writen to build/tests/cycles/<device>, and the HTML report has separate report pages for the different devices, with option to compare between CPU and GPU renders. Various GPU tests are still failing due to CPU/GPU differences, these are to be fixed or blacklisted still. Ref T82193
2020-11-30Deps: PugiXML 1.10Ray Molenkamp
This separates out PugiXML that was previously bundled by OIIO. As this linux/mac libs are not available this commit only contains the builder and windows changes, and the option to enable pugixml is guarded by a platform if, this can be removed once all platforms have committed the svn libs. For details see D8628
2020-11-13CMake: Extend strict flags cancellation flagsSergey Sharybin
Becomes rather annoying to duplicate them across C/C++ GCC/Clang sets, almost as if the test should test both C and C++, and to do it for all compilers. Solves strict warning in the upstream of Ceres library.
2020-11-10Cycles: Enable NanoVDB usage by defaultPatrick Mours
As discussed during the Rendering Metting. Ref T81454.
2020-11-09CMake: Extend supported strict flags cancelation for ClangSergey Sharybin
2020-11-06Cleanup: Fix the order of info_cfg_option.Ankit Meel
2020-11-06Cleanup: use string APPEND/PREPENDCampbell Barton
Replace 'set' with 'string(APPEND/PREPEND ...)'. This avoids duplicating the variable name.
2020-11-04Use compiler check for -fmacro-prefix-mapAnkit Meel
Use a more reliable method to check the availability of the flag than compiler versions. Some compilers have different behaviors for C and C++. Reviewed By: campbellbarton, ChrisLend Differential Revision: https://developer.blender.org/D9446
2020-11-04CMake: remove -fmacro-prefix-map from build-infoCampbell Barton
Quotes caused build-info to fail, remove these flags since they're not necessary.
2020-11-04CMake: use path_ensure_trailing_slash for fmacro-prefix-mapCampbell Barton
Use the native system slash so this can work on windows.
2020-11-02Re-enable WITH_COMPILER_SHORT_FILE_MACRO, fix build error.Ankit Meel
The issue was in `buildinfo.c`: char build_c[xx]flags[] = BUILD_C[XX]FLAGS; Non-escaped double-quotes were terminating the string early, and causing the compile error. So use single-quotes.
2020-11-02Turn off WITH_COMPILER_SHORT_FILE_MACRO temporarily.Ankit Meel
It's causing build errors on compilers that I don't have. Turn it off while I fix them. Added in {rB1daa3c3f0a1cfd74bef527e0207f38154e591d46}.
2020-11-02Clang/GCC: use relative path in __FILE__ macroAnkit Meel
This change removes the user-specific information from macros like `__FILE__` and keeps it relative to top level source or build (for generated files) directory. It makes traces concise. Added option `WITH_COMPILER_SHORT_FILE_MACRO` enabled by default. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D9386
2020-10-31Remove Wintab logging.Nicholas Rishel
2020-10-31Add Wintab debug logging as a CMake option WITH_WINTAB_DEBUG.Nicholas Rishel
Signed-off-by: Nicholas Rishel <rishel.nick@gmail.com>
2020-10-19Cleanup: spelling in commentsAlistair Sealy
Fixed a couple of typos in comments in CMakeLists.txt and GNUmakefile Reviewed By: #platforms_builds_tests, mont29 Differential Revision: https://developer.blender.org/D9261
2020-10-13Cycles: Add CUDA 11 build supportPatrick Mours
With this patch the build system checks whether the "CUDA10_NVCC_EXECUTABLE" CMake variable is set and if so will use that to build sm_30 kernels. Similarily for sm_8x kernels it checks "CUDA11_NVCC_EXECUTABLE". All other kernels are built using the default CUDA toolkit. This makes it possible to use either the CUDA 10 or CUDA 11 toolkit by default and only selectively use the other for the kernels where its a hard requirement. Reviewed By: brecht Differential Revision: https://developer.blender.org/D9179
2020-10-08CMake/macOS: Avoid passing compiler flags to try_compile.Ankit Meel
`APPLE` platform handles ASan compiler and linker flags using `add_compile_options` and `add_link_options`. {rB74bcb32c9f02} Arguments in `CMAKE_{LANG}_FLAGS{_CONFIG}` are also passed to `try_compile` which will fail due to linker errors, since link flags are not set. `try_compile` is used by `find_package(Boost)` for `thread` library. See CMP0066 [1] also. [1] https://cmake.org/cmake/help/latest/policy/CMP0066.html Ref D8855
2020-10-05Cycles: Add NanoVDB support for rendering volumesPatrick Mours
NanoVDB is a platform-independent sparse volume data structure that makes it possible to use OpenVDB volumes on the GPU. This patch uses it for volume rendering in Cycles, replacing the previous usage of dense 3D textures. Since it has a big impact on memory usage and performance and changes the OpenVDB branch used for the rest of Blender as well, this is not enabled by default yet, which will happen only after 2.82 was branched off. To enable it, build both dependencies and Blender itself with the "WITH_NANOVDB" CMake option. Reviewed By: brecht Differential Revision: https://developer.blender.org/D8794
2020-09-26CMake: Remove duplicate WITH_GMP options.Ankit Meel
I didn't realize there were more duplicates while committing {rBf1fee433be92}. Original was added in {rB83f8223543f58c3b0881a03b6e9ddffff91}. Duplicate was added in the merge {rB9e09b5c418c0a436e3c84ccf}. Ref D8822
2020-09-26macOS: Remove ASan debug flags from release config.Ankit Meel
Setting `PLATFORM_LINKLIBS` is not required for clang, compiler and linker flags are enough. Note that the change made in {rBa4c5811e2127}) to `platform_apple.cmake` (appending to `PLATFORM_CFLAGS`) has not been reverted. platform file shouldn't be overwriting the flags. `PLATFORM_LINKFLAGS` is overwritten by `platform_apple.cmake`, so no point in setting it. Fixing that like `PLATFORM_CFLAGS` is out of the scope of this change. `PLATFORM_LINKFLAGS_DEBUG` has been replaced with generator expression to include RelWithDebInfo and MinSizeRel build types also.
2020-09-22CMake: Enable WITH_POTRACE by defaultRay Molenkamp
All platforms have landed the libs, this can be on by default now.
2020-09-17CMake: clean up setting of platform specific linker flagsBrecht Van Lommel
Set flags directly on the target, and use common function for all cases. This refactoring helps with the next commit for test executables. Ref D8714
2020-09-15ASan/macOS: fix incomplete C/CXX compiler flags.Ankit Meel
While testing for {rB40dcf686f04f}, compiler flags got mixed up and non-working ASan configuration was committed. Platform file, which is `include`d after the `CMAKE_C_FLAGS_DEBUG` etc., are set, overwrites those flags instead of appending to them. To fix this, `PLATFORM_CFLAGS` is used to pass the `-fsanitize=*` flags to the C/C++ compiler. Tested on fresh build using both Xcode and Ninja, with & without ccache. Also silence a clang warning for multi-config generators: the object size sanitizer has no effect at -O0, but is explicitly enabled: -fsanitize=object-size [-Winvalid-command-line-argument] Reviewed By: brecht Differential Revision: https://developer.blender.org/D8879
2020-09-15Deps: Add potrace as a new library dependencyRay Molenkamp
For work the GP team plans to land soon (T79877) potrace was taken on as an additional optional dependency. This diff adds building the library to the deps builder and takes care of the integration into the build-system with the `WITH_POTRACE` cmake switch. Differential Revision: https://developer.blender.org/D8662 Reviewed by: brecht, sergey
2020-09-13Cleanup: Fix whitespace changesRay Molenkamp
Introduced in rB40dcf686f04f7db8110f9c85621eb8a0bd764080
2020-09-09CMake: Force experimental features to be on/off based on release cycleDalai Felinto
This makes it error-proof to disable/enable experimental features during the release cycles. Since it is handled by CMake it should always work reliably now (not depending on someone turning this on and off). Reviewed by Sergey Sharybin.
2020-09-07Tests: set build directory using build typeAnkit
Similar to {rB0a5f7061369d53b4eac55362ad2} but also for Xcode and Ninja multi-config. This silences 44 pairs of warnings like: /bin/rm -f build_full/bin/tests/BLI_ghash_performance_test "build_full/CMakeScripts/XCODE_DEPEND_HELPER.make:42: warning: ignoring old commands for target `build_full/bin/tests/BLI_ghash_performance_test'" /bin/rm -f build_full/bin/tests/BLI_ghash_performance_test "build_full/CMakeScripts/XCODE_DEPEND_HELPER.make:3523: warning: overriding commands for target `build_full/bin/tests/BLI_ghash_performance_test'" Reviewed By: brecht Differential Revision: https://developer.blender.org/D8815
2020-09-07Support ASan library on macOS for all generators.Ankit
This change allows macOS developers to use `WITH_COMPILER_ASAN` with every generator. `CMAKE_C_IMPLICIT_LINK_DIRECTORIES` on macOS points to `Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib` which is not where the Sanitizer libraries are. To link the library, rpath could be used but that seems complex, so linker flags are passed as the documentation says. [1] If users have `ASAN_OPTIONS=detect_leaks=1` in their environment variables, it should be removed to avoid a feature-unsupported error while compiling. [1]: http://clang.llvm.org/docs/AddressSanitizer.html#usage Reviewed By: brecht Differential Revision: https://developer.blender.org/D8817
2020-08-28Merge newboolean branch into master.Howard Trickey
This is for design task T67744, Boolean Redesign. It adds a choice of solver to the Boolean modifier and the Intersect (Boolean) and Intersect (Knife) tools. The 'Fast' choice is the current Bmesh boolean. The new 'Exact' choice is a more advanced algorithm that supports overlapping geometry and uses more robust calculations, but is slower than the Fast choice. The default with this commit is set to 'Exact'. We can decide before the 2.91 release whether or not this is the right choice, but this choice now will get us more testing and feedback on the new code.
2020-08-27MSVC: Set proper flags for C++17 support.Ray Molenkamp
MSVC already builds with the /std:c++17 flag but for 'reasons' [1] MSVC still gives the wrong value for the __cplusplus define. This change sets an additional cxx flag on supported compilers to allow the compiler properly identify C++17 support. This resolves 2 warnings coming out of bullet about the register keyword being deprecated. [1] https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
2020-08-23CMake: Fix policy warning about OSL_ROOT being set.Ray Molenkamp
When the OSL_ROOT variable is set this is ignored by findpackage on cmake < 3.12. CMake 3.12 and up also ignore it and warn about it. This change tells cmake it is OK to use the variable and stop warning
2020-08-19Turn experimental features ON for masterDalai Felinto
During alpha the user preferences > experimental featuers are available to prevent merge issues and allow developers to seek feedback. This needs to be manually turned off when we branch for beta, otherwise the RNA of the incomplete features will be exposed.
2020-08-19Revert "Turn experimental features on for master (alpha)"Dalai Felinto
I turned on the wrong feature in cmake. This reverts commit bdf43213b25d21528dfa89dc9aeaa41f8d92116e.
2020-08-18Turn experimental features on for master (alpha)Dalai Felinto
Remember to turn this off again when we branch out for the next beta (2.91)
2020-08-18Merge remote-tracking branch 'origin/blender-v2.90-release'Dalai Felinto
2020-08-18Remove (ifdef) RNA for simulation, point cloud and particlesDalai Felinto
For 2.90 release this should not be exposed in the RNA API. In master this needs to be ON by default, that's all. Differential Revision: https://developer.blender.org/D8589
2020-07-31Deps builder: Add support for building GMPRay Molenkamp
Required for the new boolean code, disabled by default until all platforms have landed the libs and the boolean code actually lands in master. Reviewed By: brecht Differential Revision: https://developer.blender.org/D8384