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-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-18Fix compilation error when using SDL dynamic loadingSergey Sharybin
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: add library deps to CMakeLists.txtCampbell Barton
Tested to work on Linux and macOS. This will be enabled once all platforms are verified. See D4684
2019-04-14CMake: prepare for BLENDER_SORTED_LIBS removalCampbell Barton
No functional change, this adds LIB definition and args to cmake files. Without this it's difficult to migrate away from 'BLENDER_SORTED_LIBS' since there are many platforms/configurations that could break when changing linking order. Manually add and enable WITHOUT_SORTED_LIBS to try building without sorted libs (currently fails since all variables are empty). This check will eventually be removed. See T46725.
2017-08-18Audaspace: Moving audaspace 1.3 into extern.Jörg Müller
Deleting the old internal audaspace. Major changes from there are: - The whole library was refactored to use C++11. - Many stability and performance improvements. - Major Python API refactor: - Most requested: Play self generated sounds using numpy arrays. - For games: Sound list, random sounds and dynamic music. - Writing sounds to files. - Sequencing API. - Opening sound devices, eg. Jack. - Ability to choose different OpenAL devices in the user settings.
2017-05-30Audaspace: Don't use strict flagsSergey Sharybin
2015-10-23Quiet audaspace unused macro warningsCampbell Barton
2015-08-29Audaspace: fix for building with scons.Jörg Müller
Removed duplicated code. CMake so far built only the now removed version and scons tried to build both.
2015-07-28Audaspace: fixing problems for the merge to master suggested by Campbell and ↵Jörg Müller
Sergey. - rename WITH_EXTERNAL_AUDASPACE to WITH_SYSTEM_AUDASPACE. - rename C/PYAUDASPACE to AUDASPACE_C/PY - simplifying cmake defines and includes. - fixing include paths and enabling WITH_SYSTEM_AUDASPACE for windows. - fixing scons building. - other minor build system fixes.
2015-07-28Audaspace: use standalone library.Jörg Müller
- Added the cmake configuration option WITH_EXTERNAL_AUDASPACE. - Fixes to build without standalone library as well.
2015-03-27CMake: Enable strict flags for C++Sergey Sharybin
2013-03-27Fix #33518: Jack sync doesn't work in 2.64, 2.64 or 2.65 stable versionsSergey Sharybin
Added new build option WITH_JACK_DYNLOAD for CMake and WITH_BF_JACK_DYNLOAD for SCons, which means there'll be no build-time linking against libjack and getting symbols from libjack will happen runtime using dlopen and dlsym tricks. Alternative would be to use weak linking, but it'll require having wrapper for preloading libjack. This new options are disabled by default and they only intended to be used on linux. Other platforms shall not be using this and there shall be no functional changes on non-linux platforms at all.
2012-12-11cmake wouldn't build since it was missing files added in r52858.Campbell Barton
2012-12-10Audaspace:Joerg Mueller
Implemented forgotten Calculator classes from boost migration.
2012-11-05Update CMake rules for audaspaceSergey Sharybin
2012-11-05Audaspace:Joerg Mueller
Replacing AUD_Reference with boost::shared_ptr.
2012-10-25Audaspace:Joerg Mueller
RAII locking implementation. This should fix bug [#32096] Background music stops when playing 3D sounds.
2012-05-14Make blender compilable by gcc-4.7 and strict compilation flags:Sergey Sharybin
- Remove strict flags from files, which are using FFmpeg stuff We're still using some symbols which are marked as deprecated. Ideally, we shall switch to new API, but it's a bit larger challenge because we don't want to break compatibility withotu actual need. - Replace MAKE_ID with BT_MAKE_ID in bullet library. This is needed to prevent re-definition of MAKE_ID in bullet library. Seems it's only used to read blender files, so should be quite safe change.
2011-11-08Don't compile AUD_JOSResampleReaderCoeff.cpp twice (it's included in ↵Sergey Sharybin
AUD_JOSResampleReader.cpp) Patch from nico_ga, thanks!
2011-10-23remove $Id: tags after discussion on the mailign list: ↵Campbell Barton
http://markmail.org/message/fp7ozcywxum3ar7n
2011-10-02Missed some stoff when removing libsamplerate.Joerg Mueller
2011-10-02* Removing libsamplerate from build systemsJoerg Mueller
* Enabling OpenAL for scons win64-vc in default config; Nathan or Sergey: please update the build bot to build with OpenAL!
2011-09-20pep8 update & some minor cmake edits.Campbell Barton
2011-08-30Fix for [#25062] Sound Actuator - Positional Audio.Joerg Mueller
Now all sounds that are not mono but have 3D checked automatically get reduced to mono during BGE conversion time. Also removed the now unneeded function sound_get_channels and added a missing header file to audaspace's CMakeLists.txt.
2011-08-063D Audio GSoC:Joerg Mueller
Mixdown functionality. * Mixdown possible via libsndfile and ffmpeg! * Fixed some ffmpeg deprecation warnings * Mixdown UI only shows working Container, Codec and Format combinations! * Minor bugs and warnings fixed
2011-08-043D Audio GSoC:Joerg Mueller
Implementation of Julius O. Smith's resampling algorithm for high quality audio resampling. The filter currently is a sinc filter with a 0.9 cutt-off and windowed by a kaiser window (beta = 10). Also includes minor changes in the linear resampler.
2011-07-263D Audio GSoC:Joerg Mueller
Main: Complete rewrite of the sequencer related audio code to support 3D Audio objects later and especially adressing the animation system problems (see mailing list if interested). Note: Animation is not working yet, so with this commit volume animation doesn't work anymore, that's the next step. Minor things: * Changed AUD_Reference behaviour a little to be more usage safe. * Fixed bug in AUD_I3DHandle: Missing virtual destructor * Fixed enmus in AUD_Space.h * Fixed a warning in rna_scene.c * Removed an unneeded call in rna_sound.c
2011-07-22Merge with trunk up to r38584.Joerg Mueller
2011-07-17cmake: cleanup include paths, some duplicates and going up some unneeded dirs.Campbell Barton
2011-07-17cmake source definitions:Campbell Barton
remove missing includes and use more strict formatting.
2011-06-223D Audio GSoC:Joerg Mueller
Adapting all readers to maximally support dynamic resampling/rechanneling, introducing a DynamicIIRFilter for example.
2011-06-223D Audio GSoC:Joerg Mueller
Removing unneeded AUD_ResampleFactory.
2011-06-223D Audio GSoC:Joerg Mueller
- Converting AUD_SampleRate to a double - Removing AUD_DefaultMixer - Introducing AUD_ResampleReader as base class for all resampling readers.
2011-06-223D Audio GSoC:Joerg Mueller
- Created Handle classes - Changed Reference counting completely - Fixing some streaming bugs - Completely disabled OpenAL Buffered Factories (they were unused anyway)
2011-06-18rename cmake include/libraries to conform with suggested cmake namesCampbell Barton
2011-06-18added FindSndFile cmake module to replace inline checks.Campbell Barton
2011-05-31fix for recent cmake changesCampbell Barton
2011-05-31cmake maintenanceCampbell Barton
blender_add_lib now takes a separate include argument to suppress warnings in system includes (mostly ffmpeg & python). also only build wm_apple.c on apple+carbon configuration.
2011-05-28== FFMPEG ==Peter Schlaile
Added central compatibility header file, which enables blender to compile against very old ffmpeg versions as well as very new versions using the *NEW* API. (Old API functions are simulated using macros and inline functions) Added a whole lot of additional checks, tested against 6 different versions down the timeline, hopefully, now finally all is well.
2011-01-25use cmake defined names for jpeg, png, zlib and python libs, building on ↵Campbell Barton
*nix with non-standard libjpeg/png/zlib locations was broken. in the case of python this makes it easier to move to find_package(PythonLibs) when 3.x is supported.
2010-12-23rename blenderlib to blender_add_libCampbell Barton
2010-12-08use lowercase for cmake builtin names and macros, remove contents in else() ↵Campbell Barton
and endif() which is no longer needed.
2010-11-30Add option for CMake to build libredcode, also use CODEC prefix for ffmpeg, ↵Campbell Barton
quicktime & sndfile options.
2010-11-29include headers in cmake source, added a script to check for consistency, ↵Campbell Barton
reporting missing headers & C files. this is important so IDE's using CMake integration always get blender headers. - QtCreator & MSVC for eg, probably others too.
2010-11-21WITH_SAMPLERATE option for cmake, without this playback wont behave right so ↵Campbell Barton
this is mainly intended for developers who build without audio enabled.
2010-10-31rename and negate DISABLE_PYTHON --> WITH_PYTHONCampbell Barton
2010-10-23use explicit file paths for CMake rather then globing, This is recommended ↵Campbell Barton
by cmake devs. globbing vs explicit is discussed here. http://www.cmake.org/pipermail/cmake/2008-December/025694.html Practical implications are: - developers need to keep CMakeLists.txt files up to date. - Users wont get strange linking errors if they build after a file is added, since CMake detects CMakeLists.txt is modified and automatically reconfigure.
2010-09-07- added back zlib include (needed for win32).Campbell Barton
- use list append in more places. - remove non existing include dir.
2010-09-06- use list append in more places (preferred method since its faster)Campbell Barton
- remove some unused include paths - remove unused linux path define