This script will install all packages from the repositories and will compile
missing in repositories libraries.
It is supposed to replace pre-compiled libraries from our svn.
Tested script on Fedora 14 and 17, Ubuntu 10.04 and 12.10. All the dependencies
and manually built libraries seems to be fine. However, it's really annoying to
build blender in virtual machine to ensure there's no linking errors, i would
hope community will help testing and making needed tweaks to the script :)
To use the script, simple run it from your user name. It'll run installation
commands from a sudo, so you would likely be requested to type a password.
I've made tweaks to CMake FindLibs, so it should find OIIO, OCIO and python
libraries compiled by this script. Boost and FFmpeg would need to be specified
manually.
SCons currently would require manual paths specifications as well. Perhaps we
could make SCons smarter in the future.
All the parameters you need to pass to CMake/SCons would be printed when script
finishes to run.
Pretty much sure it's not production-ready script, but we need to start testing
at some point :)
Proper implementation for only including the boost locale libs when
WITH_BF_INTERNATIONAL is enabled, so that those of us who do not need/want to
bother with translated ui's can compile. The way it was done before was wrong as
1) the value was always set to true earlier in the config scripts, 2) the base
config scripts run before user config overrides are set
This commit adds a small and simplistic C wrapper around boost's locale library as intern/locale, and heavily simplifies/reduces Blender's own i18n code (under blenfont/ dir). And it adds back UI translation on windows' official builds (with msvc)!
Note to platform maintainers: iconv and gettext (libintl) can now be removed from precompiled libs (not gettext binaries, under windows, of course ;) ).
Note to MinGW32/64 users: boost_locale lib has not yet been uploaded for those build env, please disable WITH_INTERNATIONAL for now (hopefully will be fixed very soon, have contacted psy-fy).
This script was used to initialize build environment currently used
for glibc-2.11 builds.
It's supposed to be used on debian-based distros.
Usage is described in the top comment of the script.
It is highly recommended to use this script in the virtual machine
to prevent possible conflicts with your own configuration.
TODO:
- Add OSL configuration
- Script requires manual copying of some scripts still (see comments
at the top of the script)
I would prefer this script be edited only in cases when it's really
needed, meaning i wouldn't be fan of changes like "just use latest
version of library XXX". It's not so safe to do such changes and it's
easy to upgrade libraries after environment was set up.
The blender.config file used for local #defines in qtcreator projects is rewritten on every project update. To avoid losing user settings these can now be written to an optional blender_custom.config file, which is then merged into the main blender.config on updates.
Warns if an array is passed to a function where the array is declared larger, eg float[2] argument is passed function defined as float[3], (or a greater size).
Existing free static checkers dont do this from what I can tell.
This adds cmake code for LLVM on linux and updates the cmake code used for OSX.
LLVM is linked like other external libraries now, by using the setup_liblinks and setup_libdirs macros instead of the PLATFORM_LINKFLAGS variable.
The use of llvm-config for getting a list of libraries can also be simplified quite a bit.
Caching the LLVM_DIRECTORY and LLVM_VERSION strings could be nicer though.
This commit integrates support of OpenColorIO library into build systems.
It also contains C-API for OpenColorIO library which could be used by Blender.
CMake has got find rules familiar to OpenImageIO's one which makes it easier
for build system to find needed libraries and includes. Scons only could use
explicitly defined paths to libraries and includes.
C-API would be compiled and Blender would be linked against C-API and OpenColorIO
but it wouldn't affect on Blender behavior at all.
OpenColorIO could be disabled by setting up WITH_OCIO to Off in CMake and
setting WITH_BF_OCIO in Scons.
This solves crash when trying to render with missing files on MinGW-w64 cycles. The cause was an OpenEXR exception that went uncaught when trying to check the file's extension through OpenImageIO while building the shader tree. Thus my bug-hunting frustration can end with a happy chord.
made some changes to startup.c
- change default player to internal since its working now.
- added new screen for full screen 3d viewport (nice for demo's and navigating)
- disable cursor depth option (was enabled by default because of re-used flag)
Carve proved it's a way to go, so the time have came to get rid of old
boolean operation module which isn't used anymore.
Still kept BOP interface but move it to BSP module. At some point it
could be cleaned up further (like perhaps removed extra abstraction
level or so) but would be nice to combine such a refactor with making
BSP aware of NGons.
Tested on linux using both cmake and scons, possible regressions on
windows/osx. Would check windoes build just after commit.
Assumes numpy is installed to the BF_PYTHON/site-packages/numpy directory,
could be tweaked further, but this should be enough to setup release
building environment.
Seems blender can't import numpy, but that doesn't seem to be scons issue,
the same happens here with cmake too. Would ask Campbell to help looking
into this.
* Windows department switches to CUDA Toolkit 4.2 :)
* Windows Buildbot uses that too now (thanks jesterKing)
* Re-enable sm_13 for x86, compiled again with current SVN and the new toolkit.
* All official builds for windows now come with sm_13, sm_20, sm_21 and sm_30 for the Kepler cards.
* SSE/SSE2 is an unknown option for the compiler (Command line warning D9002 : ignoring unknown option '/arch:SSE2'), so it can be left out because on x64 it automatically builds with SSE and SSE2.
- only show mingw option when building with mingw
- always run cmake configure with convenience build targets so failed configurations stop re-configuring.
- disable WITH_GHOST_XDND in 'make lite'
-- package name and .spec->Version match
-- use find_lang macro for locales
-- Requires & Provides (mostly) match the fedora .spec
-- fix unpackaged file error for blender-thumbnailer.py
TODO: figure out how persuade CPack to make multiple rpms to also package blenderplayer
- Library compile errors
- 2 Bugs (have been reported to lib owner)
- LAPACK for cmake
TODO:
- Scons is still missing LAPACK lib define
- Do other platforms got LAPACK lib?
After testing it seems that for safe debug sessions, debug build optimizations need to be off.
Also removed sse flags from release flags since they are included in ray optimization flags which are on by default.
* Some code and comment cleanup
* Remove cmake equivalent variable comments
* Remove some non used parameters from config files and btools: WITH_BF_FMOD, BF_VERSION.
* Remove some commented non-used variables
1) Removes unwanted folders from Python/lib instead of just emptying them out.
2) Removes the test folder from Python/lib. This folder contains unit tests for Python (not the unittest module itself), and is about 10~12MB.
Not all file formats/calls are supported yet. It will be expended.
Please from now on use BLI_fopen, BLI_* for file manipulations.
For non-windows systems BLI_fopen just calls fopen.
For Windows, the utf-8 string is translated to utf-16 string in order to call UTF version of the function.
made some small edits
- removed changes to AVI reading since the data types are apart of the format spec.
- absf -> abs for a double value in render code.
Reverting to openal from creative because own builds doesn't deal with 3D sound.
Hopefully it wouldn't lead to crashes caused by ffmpeg+openal (for resolving which
libraries were updated to openal-soft).
of python bundling on systems where python is installed to /usr/lib64
Now ABI flags are automatically detecting (by checking all available flags
and checking if there's include directory exists for flag).
Also, automatically set PYTHON_LIBPATH to /usr/lib64 if python
scripts are stored in this folder.
Bundling python on *nix platforms is now checks if python is installed
to lib64 directory and if it is, python will be bundled to lib64
folder instead of lib.
This will make building on openSUSE a bit less annoying
Error was caused by boost library (which doesn't seem to be working with Cycles too
when compiling with mingw). Switched mingw to use TR1 unordered collections. Also,
there was re-declaration of strcasecmp when mingw is used.
Additional changes are related on using own process spawning when BF_TOOLSET is set to
mingw. Seems to be working fine now (i've got too long command line error) and no
warning are supressing now (as it was told in comment for commented own process spawning).
==================================
Merging Carve library integration project into the trunk.
This commit switches Boolean modifier to another library which handles
mesh boolean operations in much stable and faster way, resolving old
well-known limitations of intern boolop library.
Carve is integrating as alternative interface for boolop library and
which makes it totally transparent for blender sources to switch between
old-fashioned boolop and new Carve backends.
Detailed changes in this commit:
- Integrated needed subset of Carve library sources into extern/
Added script for re-bundling it (currently works only if repo
was cloned by git-svn).
- Added BOP_CarveInterface for boolop library which can be used by
Boolean modifier.
- Carve backend is enabled by default, can be disabled by WITH_BF_CARVE
SCons option and WITH_CARVE CMake option.
- If Boost library is found in build environment it'll be used for
unordered collections. If Boost isn't found, it'll fallback to TR1
implementation for GCC compilers. Boost is obligatory if MSVC is used.
Tested on Linux 64bit and Windows 7 64bit.
NOTE: behavior of flat objects was changed. E.g. Plane-Sphere now gives
plane with circle hole, not plane with semisphere. Don't think
it's really issue because it's not actually defined behavior in
such situations and both of ways might be useful. Since it's
only known "regression" think it's OK to deal with it.
Details are there http://wiki.blender.org/index.php/User:Nazg-gul/CarveBooleans
Special thanks to:
- Ken Hughes: author of original carve integration patch.
- Campbell Barton: help in project development, review tests.
- Tobias Sargeant: author of Carve library, help in resolving some
merge stoppers, bug fixing.
This patch enables search for specific libraries for vc2010 using "set_lib_path" macro
If *x* library or path exists in lib/win___/vc2010/*x* , vc2010 will use it. If not, compiler will use standard libraries.
It can be easily extended to gcc.
The function is enabled for:
openCollada
openExr
Python
openImageIO
The different libraries are needed for different compilers because C++ was used. There is no standard for lib's C++ structure/functions' names.
Actual libs will follow
That is, instead of '#../lib/windows/lib_name/include', we're now using BF_LIBNAME + '/include'. This makes it possible to have a single lib folder shared between several local working trees again.
* Added option "WITH_BF_CYCLES_CUDA_THREADED_COMPILE" for the people who have much RAM (8 or more) and can compile several kernels at the same time. If enabled, it uses the general BF_NUMJOBS flag.
* The option is off per default.
* Added CUDA Binaries to Windows scons config files, disabled by default.
Also the path to nvcc is commented out, best to set this in the user config, as it varies on each system probably.
* Compile all of cycles with -ffast-math again
* Add scons compilation of cuda binaries, tested on mac/linux.
* Add UI option for supported/experimental features, to make it
more clear what is supported, opencl/subdivision is experimental.
* Remove cycles xml exporter, was just for testing.
- Force libsamplerate linking statically
- Remove global compiler flags for sse2 and sse.
Tests of release builds didn't show big difference in time of
tracking using SAD algorithm or time of solving,
so this shouldn't introduce big slowdown.
move these checks from creator into BKE's image.c, this way we dont need the defines for creator, scons was missing DDS, HDR & Cineon for example and nobody noticed.
This should fix an error with generated qtcreator projects.
also replace decoded bytes for unicode escape sequences in the VIEW3D_MT_edit_text_chars menu.
directory if available, which should make building with ffmpeg and cycles easier.
If this folder is not available or another path is specified in user-config.py
or CMakeCache.txt, this should have no effect. Wiki build instructions now show
how to use these.
http://wiki.blender.org/index.php/Dev:2.5/Doc/Building_Blender/Linux
* Fix excessive fireflies in Velvet BSDF (patch by David).
* Disable some unused SSE code
* Remove RTTI disabling flags for now, this is giving some compile issues and
was only needed of OSL which we're not using yet.
* OpenEXR doesn't need debug suffix
* Fix libmv template issue when linking by removing duplicate libmv inclusion. I wonder how this never turned up in release builds as well.
Important: Since OpenImageIO went into trunk, OpenEXR, possibly along with other image libraries will need to be turned on too because OIIO depends on them.