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
2020-04-27CMake: add WITH_LINKER_LLD option for unix platformsNathan Craddock
Can give considerably faster linking, especially for debug builds. This may be enabled by default but needs to be more thoroughly tested.
2020-04-20Windows: Add sccache support.Ray Molenkamp
sccache [1] is one of the few ccache like solutions that will work on windows. sccache support can be enabled with the `WITH_WINDOWS_SCCACHE` cmake option however it will only will work with ninja as the build system, msbuild is not supported currently. Advanced option, developes are expected to obtain and configure sccache on their own. ``` Full build no cache 1428.90s (100.00%) Full build cached 434.34s ( 30.40%) ``` [1] https://github.com/mozilla/sccache Reviewed By: nicholas_rishel, Brecht Differential Revision: https://developer.blender.org/D7466
2020-04-07Build: use -no-pie for portable builds on LinuxBrecht Van Lommel
Otherwise file browsers do not recognize the Blender executable. This is already done for official releases. We leave it off for non-portable builds, since that's how Linux distribution packages will typically build Blender and we can continue to follow the OS default there. Using a file browser to launch executables from e.g. /usr/bin would be rare as wel. Differential Revision: https://developer.blender.org/D7363
2020-04-06Fix T75357: USD export broken on windowsRay Molenkamp
Path to the jsons was wrong so they were not copied
2020-04-05Build: hide USD symbols, make Blender symbols visible againBrecht Van Lommel
Following up to b555b8d. Building Blender with hidden symbols but using libraries with visible symbols was giving linker warnings, specifically for USD. So revert that for now, as it was not needed for the bugfix. Hide USD symbols (some of which are not in the USD namespace) to avoid potential conflicts. May potentially help with AMD OpenCL issues in T74262.
2020-04-02Fix Linux link error with pcre after recent changes, must use absolute pathBrecht Van Lommel
2020-04-02Fix link error on Linux buildbot with libxml2Brecht Van Lommel
On macOS this is part of the collada folder, but for Linux xml2 is in its own folder for precompiled libraries.
2020-04-02Fix (harmless) PCRE not found warning when configuring CMake on LinuxBrecht Van Lommel
Differential Revision: https://developer.blender.org/D7309
2020-03-31Build: hide most symbols on macOS on Linux to avoid conflictsBrecht Van Lommel
This means symbols from Blender itself and most external libraries. We can't just hide all because that breaks some libraries. The better solution would be to rebuild all library dependencies with hidden visibility. Fixes T75223: Luxrender add-on failing to load on macOS
2020-03-26CMake: Fix compilation with Xcode generation on Xcode 11.4Sergey Sharybin
Need to give correct SDKROOT.
2020-03-26CMake: Fix spelling for OpenImageDenoise packageSergey Sharybin
The spelling should match exactly between how package is called in find_package and in FIND_PACKAGE_HANDLE_STANDARD_ARGS.
2020-03-26CMake: Fix macOS SDK detection with latest Xcode and macOSSergey Sharybin
Happens on macOS 10.15.4 and Xcode 11.4. The reason of failure is caused by following factors: - xcodebuild reports full semantic macOS SDK version 10.15.4 - The actual SDK file path will only include major and minor part of the version (10.15, MacOSX10.15.sdk) - Previous CMake code of ours expected direct match between SDK version and file path. The solution is to make our detection code a bit more flexible and additionally check for major.minor macOS SDK version in the path.
2020-03-26CMake: Remove support of Xcode prior to 8.2Sergey Sharybin
The specific goal of this change is to get rid of separate code paths for older and newer Xcode versions. The version 8.2 is picked since it's the latest version which runs on macOS 10.11 (which is our current deployment target). If that turns out too new for some reason the alternative would be to require Xcode version 5.
2020-03-26CMake: Cleanup, remove unneeded version requirementSergey Sharybin
The main CMakeLists already requires CMake 3.5, so there is no point of requiring "newer" CMake on macOS. This was a code from a while back where CMake 3 was not required on all platforms.
2020-03-26CMake: Fix detection of Xcode versionSergey Sharybin
Legacy code did not take into account the fact that major version can be two digits. This was causing "Xcode 11.4" to be detected as "11.".
2020-03-04Build System: Add OpenXR-SDK dependency and WITH_XR_OPENXR build optionJulian Eisel
The OpenXR-SDK contains utilities for using the OpenXR standard (https://www.khronos.org/openxr/). Namely C-headers and a so called "loader" to manage runtime linking to OpenXR platforms ("runtimes") installed on the user's system. The WITH_XR_OPENXR build option is disabled by default for now, as there is no code using it yet. On macOS it will remain disabled for now, it's untested and there's no OpenXR runtime in sight for it. Some points on the OpenXR-SDK dependency: * The repository is located at https://github.com/KhronosGroup/OpenXR-SDK (Apache 2). * Notes on updating the dependency: https://wiki.blender.org/wiki/Source/OpenXR_SDK_Dependency * It contains a bunch of generated files, for which the sources are in a separate repository (https://github.com/KhronosGroup/OpenXR-SDK-Source). * We could use that other repo by default, but I'd rather go with the simpler solution and allow people to opt in if they want advanced dev features. * We currently use the OpenXR loader lib from it and the headers. * To use the injected OpenXR API-layers from the SDK (e.g. API validation layers), the SDK needs to be compiled from this other repository. The extra "XR_" prefix in the build option is to avoid mix-ups of OpenXR with OpenEXR. Most of this comes from the 2019 GSoC project, "Core Support of Virtual Reality Headsets through OpenXR" (https://wiki.blender.org/wiki/User:Severin/GSoC-2019/). Differential Revision: https://developer.blender.org/D6188 Reviewed by: Campbell Barton, Sergey Sharybin, Bastien Montagne, Ray Molenkamp
2020-03-04Cleanup: cmake indentationCampbell Barton
2020-03-02Fix: Excessive (re)builds of subprojectsRay Molenkamp
Recent refactor external dependencies handling (D6642) improperly linked all library dependencies with public linkage rather than interface linkage. Causing excessive (re)builds of subprojects when not needed. This patch restores the interface linkage. Reviewed By: brecht sergey Differential Revision: https://developer.blender.org/D6983
2020-03-01Build: show draco library under extern folder in Visual StudioPhillip Thomas
And other code tweaks to make this library more consistent with others. Differential Revision: https://developer.blender.org/D6864
2020-02-27Build: don't include WITH_SYSTEM_GLEW as part of make liteBrecht Van Lommel
System GLEW often is not new enough, which gives error on startup. The build correctness should not be affected by using lite vs. full, so better to leave this out than save compiling one extra file.
2020-02-26Cleanup: deduplicate OpenVDB library definitions/include/libs logicBrecht Van Lommel
This will more important when we start using OpenVDB in more modules.
2020-02-26Build: add compatibility between precompiled libraries and new glibcBrecht Van Lommel
On Linux, precompiled libraries may be made with a glibc version that is incompatible with the system libraries that Blender is built on. To solve this we add a few -ffast-math symbols that can be missing. Differential Revision: https://developer.blender.org/D6930
2020-02-26Build: ignore system paths when using precompiled libraries on LinuxNathan Craddock
Based on work by Nathan Craddock, with further changes to apply it to all precompiled libraries. Differential Revision: https://developer.blender.org/D6929
2020-02-18Cycles: Enabled quaternion motion blur with Embree.Stefan Werner
Bringing Embree's motion blur closer to Cycles' native blur. This requries Embree 3.8.0 or newer. Differential Revision: https://developer.blender.org/D6575
2020-02-17Fix: T73830 OSL not finding stdosl.h on linuxRay Molenkamp
This extends FindOpenShadingLanguage.cmake to also look for the location of stdosl.h and adds the path to the invocation of oslc to deal with the headers being in different locations a little better. Differential Revision: https://developer.blender.org/D6865 Reviewers: brecht
2020-02-16BPY/Windows: Do not bundle the CRT for a bpy buildRay Molenkamp
- Doesn't work - If it worked, having a different CRT than the rest of the process would not be a good thing.
2020-02-15Cleanup: CMake formattingCampbell Barton
2020-02-14Cleanup/MSVC: Enable C++ conformance mode on compiler versions that support it.Ray Molenkamp
MSVC has a conformance mode (/permissive-) where the C++ standard is more strictly enforced. This mode is available on MSVC 15.5+ [1] This patch enables this mode on compilers that support it and cleans up the few violations it threw up in the process. - Mantaflow was using M_PI without requesting them using the _USE_MATH_DEFINES define to opt in to non default behaviour. - Collada did not include the right header for std::cerr, this seemingly was fixed for other platforms already but put inside a platform guard. - Ghost had some scoping issues regarding uninitialized variables and goto behaviour Second landing of this patch, earlier commit was reverted due to some compiler configurations having slipped though testing [1] https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance Differential Revision: https://developer.blender.org/D6824 Reviewed By: brecht
2020-02-13Revert "Cleanup/MSVC: Enable C++ conformance mode on compiler versions that ↵Ray Molenkamp
support it." It is breaking compilation on some configurations, revert for now while i see what is wrong. This reverts commit 9fe469c110940af5d2525158305d5d365bd15276.
2020-02-12Cleanup/MSVC: Enable C++ conformance mode on compiler versions that support it.Ray Molenkamp
MSVC has a conformance mode (/permissive-) where the C++ standard is more strictly enforced. This mode is available on MSVC 15.5+ [1] This patch enables this mode on compilers that support it and cleans up the few violations it threw up in the process. - Mantaflow was using M_PI without requesting them using the _USE_MATH_DEFINES define to opt in to non default behaviour. - Collada did not include the right header for std::cerr, this seemingly was fixed for other platforms already but put inside a platform guard. - Ghost had some scoping issues regarding uninitialized variables and goto behaviour [1] https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance Differential Revision: https://developer.blender.org/D6824 Reviewed By: brecht
2020-02-11Fix: Build error on windowsRay Molenkamp
USD "library" directory was not set, leading to an error during the INSTALL phase.
2020-02-10USD: Install USD library via install_deps.shSybren A. Stüvel
This commit adds the download, extract, patch, build, and install of the Universal Scene Description (USD) library to the `install_deps.sh` script. Reviewed By: mont29, LazyDodo Differential Revision: https://developer.blender.org/D6478
2020-02-07BuildSystem/Cleanup: Fix warning behaviour regarding library dependenciesRay Molenkamp
Adding USD to a lite build fails to build due to boost errors, when you turn boost on and rebuild still boost errors, boost was silently turned off since it was not deemed needed. Once boost was forced on, it still fails due to TBB being off. This patch fixes: - The Silent disabling of boost - Add a check that USD is is not on before doing that - move the TBB checks to a central location rather than the individual platform files - Add USD to the TBB checks. Differential Revision: https://developer.blender.org/D6479 Reviewers: brecht, sybren
2020-02-06Code_Cleanup_Day/Windows: Clean-up windows API Level.Ray Molenkamp
Not sure when this happened but apparently the lower bar is now windows 7 [1] This patch bumps to API version to 0x0601 (Win7) and cleans up any uses that worked around the globally set API version. [1] https://www.blender.org/download/requirements/ Reviewed By: brecht Differential Revision: https://developer.blender.org/D6758
2020-02-05Merge branch 'blender-v2.82-release'Campbell Barton
2020-02-05Fix finding freetype on Linux not using pre-compiled libsCampbell Barton
Finding X11 before platform libs caused freetype not to use pre-compiled libraries.
2020-02-05Merge branch 'blender-v2.82-release'Campbell Barton
2020-02-05CMake: remove non-standard package search pathsCampbell Barton
Reduce the number of possible locations used to find libraries, to simplify troubleshooting. Only keep '*_ROOT_DIR' and the path used by 'install_deps.sh'.
2020-02-04Merge branch 'blender-v2.82-release'Julian Eisel
2020-02-04Fix wrong glColor3usv array size check in clang array checkerSimon G
Differential Revision: https://developer.blender.org/D6716
2020-02-04Merge branch 'blender-v2.82-release'Sergey Sharybin
2020-02-04CMake: Attempt to fix tests on buildbotSergey Sharybin
An educated guess to put ensure order of static libraries initialization. A bit weird, since OpenImageDenoise should be depending on TBB, but that is likely being ensured by bf_compositor. Linking succeeded on my Intel machine, and blenloader_test was passing when doing manual test on buildbot.
2020-01-31Merge branch 'blender-v2.82-release'Brecht Van Lommel
2020-01-31Fix tests failing on AMD Ryzen, due TBB initialization order issueBrecht Van Lommel
Similar fix as the one we did for the blender executable, see T72015.
2020-01-26CMake: Fix precompiled Boost libraries on LinuxNathan Craddock
When building with precompiled libraries on Linux, CMake used boost libs from the system outside the lib dir. This restricts CMake to use only the libraries from the precompiled libraries. Reviewed By: sergey Differential Revision: https://developer.blender.org/D6659
2020-01-23CMake: Refactor external dependencies handlingSergey Sharybin
This is a more correct fix to the issue Brecht was fixing in D6600. While the fix in that patch worked fine for linking it broke ASAN runtime under some circumstances. For example, `make full debug developer` would compile, but trying to start blender will cause assert failure in ASAN (related on check that ASAN is not running already). Top-level idea: leave it to CMake to keep track of dependency graph. The root of the issue comes to the fact that target like "blender" is configured to use a lot of static libraries coming from Blender sources and to use external static libraries. There is nothing which ensures order between blender's and external libraries. Only order of blender libraries is guaranteed. It was possible that due to a cycle or other circumstances some of blender libraries would have been passed to linker after libraries it uses, causing linker errors. For example, this order will likely fail: libbf_blenfont.a libfreetype6.a libbf_blenfont.a This change makes it so blender libraries are explicitly provided their dependencies to an external libraries, which allows CMake to ensure they are always linked against them. General rule here: if bf_foo depends on an external library it is to be provided to LIBS for bf_foo. For example, if bf_blenkernel depends on opensubdiv then LIBS in blenkernel's CMakeLists.txt is to include OPENSUBDIB_LIBRARIES. The change is made based on searching for used include folders such as OPENSUBDIV_INCLUDE_DIRS and adding corresponding libraries to LIBS ion that CMakeLists.txt. Transitive dependencies are not simplified by this approach, but I am not aware of any downside of this: CMake should be smart enough to simplify them on its side. And even if not, this shouldn't affect linking time. Benefit of not relying on transitive dependencies is that build system is more robust towards future changes. For example, if bf_intern_opensubiv is no longer depends on OPENSUBDIV_LIBRARIES and all such code is moved to bf_blenkernel this will not break linking. The not-so-trivial part is change to blender_add_lib (and its version in Cycles). The complexity is caused by libraries being provided as a single list argument which doesn't allow to use different release and debug libraries on Windows. The idea is: - Have every library prefixed as "optimized" or "debug" if separation is needed (non-prefixed libraries will be considered "generic"). - Loop through libraries passed to function and do simple parsing which will look for "optimized" and "debug" words and specify following library to corresponding category. This isn't something particularly great. Alternative would be to use target_link_libraries() directly, which sounds like more code but which is more explicit and allows to have more flexibility and control comparing to wrapper approach. Tested the following configurations on Linux, macOS and Windows: - make full debug developer - make full release developer - make lite debug developer - make lite release developer NOTE: Linux libraries needs to be compiled with D6641 applied, otherwise, depending on configuration, it's possible to run into duplicated zlib symbols error. Differential Revision: https://developer.blender.org/D6642
2020-01-21Fix: Building with clang on windows.Ray Molenkamp
The USD landing broke building with clang on windows due to a couple of reasons: 1) Some incompatibilities in their headers [1] only one of them was important for us and is included in our patchset now. 2) clangs lld wanted the full path to the libusd_b library when using the whole archive link option, while msvc can figure it out from just the library name. Tested with clang/msvc and msbuild and ninja generators [1] https://github.com/PixarAnimationStudios/USD/issues/1030
2020-01-21Windows: Update platform_win32.cmake to boost 1.70Ray Molenkamp
to match the updated libs in svn.
2020-01-17Build: fix Linux linking errors with some combinations of build optionsBrecht Van Lommel
Differential Revision: https://developer.blender.org/D6600
2020-01-05CMake: enable FFTW for headless & bpy configurationsCampbell Barton
This caused the ocean modifier to be disabled.