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-08-05Xcode: support cmake options for grouping in foldersGermano Cavalcante
The Xcode IDE can also benefit from the options: - WINDOWS_USE_VISUAL_STUDIO_SOURCE_FOLDERS - WINDOWS_USE_VISUAL_STUDIO_PROJECT_FOLDERS So add suport to these options and also renames them as they are no longer limited to just Windows and Visual Studio. Reviewed By: brecht, ankitm Differential Revision: https://developer.blender.org/D12132
2021-02-05Cleanup: cmake indentation, white-spaceCampbell Barton
2020-10-12Cleanup: CMake: Remove arguments from endif(..)Ankit Meel
No functional change. Added in {rB1f6b7387ad01}
2020-10-09CMake/macOS: Remove _LIBPATH, avoid link_directories.Ankit Meel
After tests were bundled in a single executable and cycles and libmv created their own tests, the warnings on macOS have gone over 800. The reason is setting `*_LIBRARIES` to names of the libraries and later using `link_directories` to link them properly. https://cmake.org/cmake/help/latest/command/link_directories.html > Note This command is rarely necessary and should be avoided where > there are other choices. Prefer to pass full absolute paths to > libraries where possible, since this ensures the correct library > will always be linked. The find_library() command provides the > full path, which can generally be used directly in calls to > target_link_libraries(). Warnings like the following popup for every target/executable, for every library it links to. ``` ld: warning: directory not found for option '-L/Users/me/blender-build/blender/../lib/darwin/jpeg/lib/Debug' ``` The patch completes a step towards removing `link_directories` as mentioned in TODO at several places. The patch uses absolute paths to link libraries and removes all `*_LIBPATH`s except `PYTHON_LIBPATH` from `platform_apple.cmake` file. (The corner case where it's used seems like dead code. Python is no longer shipped with that file structure.) Also, unused code for LLVM-3.4 has been removed. Also, guards to avoid searching libraries in system directories have been added. `APPLE` platform now no longer needs `setup_libdirs`, `cycles_link_directories`, and `link_directories`. The number of warnings now is less than 100, most of them being deprecation ones in dependencies. This patch depended on {rBb746179d0add}, {rB2fdbe4d05011}, {rB402a4cadba49} and {rBd7f482f88ecb}. Reviewed By: brecht Differential Revision: https://developer.blender.org/D8855
2020-09-07Cleanup: tabs in CMake filesCampbell Barton
2020-09-05Cleanup: clang-formatCampbell Barton
2020-09-05Fix Cycles redefining some Blender macrosBrecht Van Lommel
These changes were accidentally copied over from the Cycles repository, remove them again.
2020-09-04Fix Cycles unsetting most GCC and Clang C++ flagsJulian Eisel
Caused by f04260d8c679. Cycles' CMake defines macros with the same name as Blender, which override the Blender ones. There's however a small difference in the re-defined `remove_cc_flag()`, the Cycles version only takes one flag at a time. So I guess Blender's calls to it would only result in the first flag being removed. Of course Cycles shouldn't override any Blender macros, but I'll leave that up to Brecht to fix properly.
2020-09-04Fix build error on macOS after recent changesBrecht Van Lommel
2020-09-04CMake: refresh building and external library handling of Cycles standaloneBrecht Van Lommel
* Support precompiled libraries on Linux * Add license headers * Refactoring to deduplicate code Includes work by Ray Molenkamp and Grische for precompiled libraries. Ref D8769
2020-09-02Cycles: Support WITH_CYCLES_NATIVE_ONLY with MSVCRay Molenkamp
This change enables the developer option `WITH_CYCLES_NATIVE_ONLY` for MSVC. This allows a developer to just build the cycles CPU kernel for their specific system rather than all kernels, speeding up development. Other platforms have had this option for years, but MSVC lacks the compiler switch to target the host architecture hence it always build all kernels. This change uses a small helper program to detect the required flags. Only AVX/AVX2 are tested, for the following reasons - SSE2 is enabled by default and requires no flags - SSE3/4 have no specific build flags for msvc - AVX512 is not yet supported by cycles Differential Revision: https://developer.blender.org/D8775 Reviewed by: brecht, sergey
2020-07-08CMake: Fix spelling of Embree passed to find packageSergey Sharybin
The spelling and capitalization of package name passed to find_package() and find_package_handle_standard_args() needs to match. Silences CMake warning about mismatch. Differential Revision: https://developer.blender.org/D8247
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-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
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-16CMake: remove BLENDER_SORTED_LIBSCampbell Barton
Use CMake's target_link_libraries instead of manually maintaining library dependencies in a single list. In practice adding new libraries often ended up being guess-work, now each library lists the libraries it uses. This was used for the game player executable so libraries could optionally link to stubs. If we need this functionality it can be done using target-properties as described in T46725.
2019-04-16CMake: cleanup, arg rename, add definitions lastCampbell Barton
2018-11-07Cycles: Added Embree as BVH option for CPU renders.Stefan Werner
Note that this is turned off by default and must be enabled at build time with the CMake WITH_CYCLES_EMBREE flag. Embree must be built as a static library with ray masking turned on, the `make deps` scripts have been updated accordingly. There, Embree is off by default too and must be enabled with the WITH_EMBREE flag. Using Embree allows for much faster rendering of deformation motion blur while reducing the memory footprint. TODO: GPU implementation, deduplication of data, leveraging more of Embrees features (e.g. tessellation cache). Differential Revision: https://developer.blender.org/D3682
2018-06-14Cycles: Query XYZ to/from Scene Linear conversion from OCIO instead of ↵Lukas Stockner
assuming sRGB I've limited it to just the RGB<->XYZ stuff for now, correct image handling is the next step. Reviewers: brecht, sergey Differential Revision: https://developer.blender.org/D3478
2018-03-02Fix Cycle standalone build.Brecht Van Lommel
2018-02-04msvc: Use source folder structure for project file.Ray Molenkamp
This patch changes the huge list of projects in visual studio into a nice tree matching the source folder structure. see D2823 for details. Differential Revision: http://developer.blender.org/D2823
2017-04-21CMake: Add option to build against system-wide GlogSergey Sharybin
Similar to previous commit for Gflags.
2017-04-21CMake: Add option to link against system-wide Gflags librarySergey Sharybin
It is disabled by default, so should not affect existing configurations. Main benefits of this goes as: - Linux distros can use that to avoid libraries duplication and link blender package against gflags package from the system. - It it easier to test whether Blender works with updated version of Gflags prior to re-bundling the library.
2016-11-07Fix compilation error when CUDA toolkit is not installedSergey Sharybin
After CUDA dynload changes having CUDA toolkit became required in order to compile Cycles. This only happened due to wrong default value to the option.
2016-01-14CMake: Fix typo in CUDA dynload commitSergey Sharybin
2016-01-14Cycles: Add option to directly link against CUDA librariesSergey Sharybin
The main purpose of such linking is to make Blender compatible with NVidia's debuggers and profilers which are doing some LD_PRELOAD magic to intercept some function calls. Such magic conflicts with our CUDA wrangler magic and causes segmentation faults. The option is disabled by default, so there's no affect on any of artists. In order to make Blender linked directly against CUDA library use the WITH_CUDA_DYNLOAD CMake option (it's marked as advanced).
2016-01-04Move GLog/GFlags to extern/Sergey Sharybin
This is where the libraries belongs to actually, they are not only used by Libmv now, but also by tests and Cycles.
2015-09-08Cycles: Support building with latest upstream OSLSergey Sharybin
Only affects standalone part.
2014-12-31Cycles: Post-reintegration tweaks to ensure things do compileSergey Sharybin
This commit contains all the tweaks which were missing in initial patch re-integration from the standalone Cycles repository. This commit also contains an utility cmake macro to help linking targets with different libraries for release/debug builds, the name currently is target_link_libraries_decoupled it gets a target and list of libraries and makes sure debug builds are using libraries with "_d" suffix. After all this changes it'll hopefully be easier to interchange patches between blender and standalone repositories, because they're now quite identical.
2014-12-31Cycles: Be ready for gflags namespace auto-detectSergey Sharybin
This way it is now possible to use gflags >= 2.1, where all the functions were moved from google to gflags namespace. This isn't currently used in blender, but for standalone repository this change is essential.
2014-12-31Cycles Standalone: Add initial support for compilation on WindowsSergey Sharybin
This applies to an application comiling from the standalone Cycles repository only. There's still lack of proper install target, so currently pthreads library is to be copied next to cycles.exe manually.
2014-12-31Cycles: Fully support WITH_CYCLES_LOGGING optionSergey Sharybin
This commit generalizes logging module a little bit in making it possible to use Glog logging in standalone Cycles repository.
2014-12-31Cycles: Fix compilation error when OIIO is compiled with external PugiXML parserSergey Sharybin
Basic idea is to check whether OIIO is compiled with embedded PugiXML parser and if so use PugiXML from OIIO, otherwise find a standalone PugiXML library.
2014-12-31Cycles: Solve linking error caused by missing pthreads librarySergey Sharybin
Not sure why it worked on Debian but didn't work on Arch, could have been some indirect link dependency or so. Anyway, we explicitly depends on pthreads, so need to do corresponding find_package().
2014-12-31Cycles: Synchronize changes with standalone repositorySergey Sharybin
This changes were done in original commit of the standalone Cycles repository and needed here for easier patch synchronization.
2014-10-08Ghost Context RefactorJason Wilkins
https://developer.blender.org/D643 Separates graphics context creation from window code in Ghost so that they can vary separately.
2014-06-28Cycles: use SYSTEM for external includesCampbell Barton
2013-08-30Cycles / Standalone:Thomas Dinges
* Standalone can now be compiled without the GUI, making the glut dependency optional. Added WITH_CYCLES_STANDALONE_GUI cmake flag.
2013-08-27Cycles / Standalone:Thomas Dinges
* Rename test to standalone. Note: New CMAKE flag is WITH_CYCLES_STANDALONE.
2012-11-09Cycles / CMake:Thomas Dinges
* Removed PARTIO building code, partio code was removed already. * Include "app" dir only when building with CYCLES_TEST enabled.
2012-09-10Cleanup for OSL linking in cmake: Move cmake OSL library search and path ↵Lukas Toenne
definition from the cycles macro file to the top-level CMakeLists.txt. This makes the OSL_LIBRARIES and other variables accessible throughout Blender cmake scripts and especially in the creator module for linking libraries.
2012-08-31Cycles / OSL:Thomas Dinges
* Assume OSL libs in the libdir.
2012-06-23rename WITH_BUILTIN_GLEW, WITH_SYSTEM_GLEW & negate.Campbell Barton
2011-11-18Cycles: try to avoid NaN pixels with oren nayar. Also small cmake code cleanup.Brecht Van Lommel
2011-11-10Cycles:Brecht Van Lommel
* Add back option to bundle CUDA kernel binaries with builds. * Disable runtime CUDA kernel compilation on Windows, couldn't get this working, since it seems to depend on visual studio being installed, even though for this particular case it shouldn't be needed. CMake only at the moment. * Runtime compilation on linux/mac should now work if nvcc is not installed in the default location, but available in PATH.
2011-11-08Cycles:Brecht Van Lommel
* Disable precompiled cuda binaries, always do at run time * Change preview samples default to 10 * Hide volume panels since they don't do anything yet
2011-10-17use CMake's CUDA_NVCC_EXECUTABLE rather then own hard coded CYCLES_CUDA ↵Campbell Barton
variable.
2011-10-17Cycles:Thomas Dinges
* Auto detection of CUDA toolkit, using FIND_PACKAGE(CUDA). (Requires at least CMAKE 2.8)
2011-10-17Cycles:Thomas Dinges
Add cmake path for the CUDA toolkit (default installation) on windows.
2011-09-01Cycles: OpenCL library is now dynamically loaded so that blender doesn't crashBrecht Van Lommel
if it's not installed on the system. Code copied from clew.h/clew.c in CLCC: http://clcc.sourceforge.net/