[Bf-committers] SCons build system future
matmenu at live.fr
Mon Dec 21 14:29:09 CET 2015
Thanks Owen, but I compile Blender on Linux since years with cmake and
on windows since some month with scons. The problem doesn't come from
the dependencies, as they are all from latest svn in lib\win64_vc12 and
blender compiles well when building from vs2013 UI. The problem is with
the .bat file given by Antony. I post it again as requested by sergey
(note that it completly fails to build, so it's not only a waring):
git checkout master
git pull --rebase
git submodule update --recursive --remote
cmake ..\blender -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
-DWITH_BUILDINFO=ON -DWITH_BULLET=ON -DWITH_CODEC_AVI=ON
-DWITH_CODEC_FFMPEG=ON -DWITH_CODEC_SNDFILE=ON -DWITH_CYCLES=ON
-DWITH_CYCLES_OSL=ON -DWITH_FFTW3=ON -DWITH_LIBMV=ON
-DWITH_COMPOSITOR=ON -DWITH_FREESTYLE=ON -DWITH_GHOST_XDND=ON
-DWITH_IK_SOLVER=ON -DWITH_IK_ITASC=ON -DWITH_IMAGE_CINEON=ON
-DWITH_IMAGE_DDS=ON -DWITH_IMAGE_FRAMESERVER=ON -DWITH_IMAGE_HDR=ON
-DWITH_IMAGE_OPENEXR=ON -DWITH_IMAGE_OPENJPEG=ON -DWITH_IMAGE_REDCODE=ON
-DWITH_IMAGE_TIFF=ON -DWITH_INPUT_NDOF=ON -DWITH_INTERNATIONAL=ON
-DWITH_JACK=ON -DWITH_LZMA=ON -DWITH_LZO=ON -DWITH_MOD_BOOLEAN=ON
-DWITH_MOD_FLUID=ON -DWITH_MOD_REMESH=ON -DWITH_MOD_SMOKE=ON
-DWITH_MOD_OCEANSIM=ON -DWITH_AUDASPACE=ON -DWITH_OPENAL=ON
-DWITH_OPENCOLLADA=ON -DWITH_OPENCOLORIO=ON -DWITH_OPENMP=ON
-DWITH_PYTHON_INSTALL=ON -DWITH_RAYOPTIMIZATION=ON -DWITH_SDL=ON
-DWITH_X11_XINPUT=ON -DWITH_X11_XF86VMODE=ON -DWITH_PLAYER=ON
and this is the output of this command:
-- Performing Test SUPPORT_SSE_BUILD
-- Performing Test SUPPORT_SSE_BUILD - Success
-- SSE Support: detected.
-- Performing Test SUPPORT_SSE2_BUILD
-- Performing Test SUPPORT_SSE2_BUILD - Success
-- SSE2 Support: detected.
-- Performing Test HAVE_STDBOOL_H
-- Performing Test HAVE_STDBOOL_H - Success
-- 32 bit compiler detected.
-- Visual Studio 2013 detected.
-- Found ZLIB:
-- Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
CMake Warning at CMakeLists.txt:1333 (message):
Using HARDCODED libpng locations
-- Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR)
-- Found Freetype:
CMake Warning at CMakeLists.txt:1401 (find_package):
By not providing "FindFFMPEG.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by
CMake did not find one.
Could not find a package configuration file provided by "FFMPEG" with any
of the following names:
Add the installation prefix of "FFMPEG" to CMAKE_PREFIX_PATH or set
"FFMPEG_DIR" to a directory containing one of the above files. If
provides a separate development package or SDK, be sure it has been
CMake Warning at CMakeLists.txt:1403 (message):
Using HARDCODED ffmpeg locations
-- Could NOT find OpenEXR (missing: _openexr_LIBRARIES OPENEXR_INCLUDE_DIR)
CMake Warning at CMakeLists.txt:1421 (message):
Using HARDCODED OpenEXR locations
-- Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)
CMake Warning at CMakeLists.txt:1440 (message):
Using HARDCODED libtiff locations
-- Could NOT find Boost
CMake Warning at CMakeLists.txt:1482 (message):
USING HARDCODED boost locations
-- Could NOT find OpenImageIO (missing: OPENIMAGEIO_LIBRARY
CMake Warning at CMakeLists.txt:1552 (message):
LLVM debug libs not present on this system. Using release libs for debug
-- OSL not found
CMake Error at CMakeLists.txt:2249 (message):
Apple and Windows require pre-compiled libs at:
-- Configuring incomplete, errors occurred!
Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation. All rights reserved.
NMAKE : fatal error U1073: don't know how to make 'install'
Am 21/12/2015 um 09:04 schrieb Owen Hogarth II:
> Did you compile and install all of Blender dependencies or you just ran
> this command after getting the code from github?
> If your having trouble you can use the file located here:
> cd [blender git location]
> that will do a lot of the heavy lifting for you.
> If you want to manually build and install the dependencies. You can use
> this command
> cd [blender git location]
> ./blender/build_files/build_environment/install_deps.sh --show-deps
> to get a print out of all the dependencies then manually install those to a
> sane location.
> Once you install those dependencies if you then have to point CMAKE to
> where you installed those so that it can find them.
> I had some trouble with the install_deps.sh file but after a while it all
> built successfully.
> I personally like the cmake approach better but if Blender requires
> external libraries I think it would be worth looking into setting up
> blender as an external_project structure since that would allow you to
> download anything and do really advanced builds:
> The problem with that is that external projects and add_subdirectory don't
> play nicely with each other and require a lot of hacks..... to get them
> working together.
> On Mon, Dec 21, 2015 at 3:30 PM, matmenu <matmenu at live.fr> wrote:
>> As Sergey, Antony and you all agreed on making a batch file, would it be
>> possible to put it in the official git? It would maybe resolve some of
>> the issues that are specific to the GUI workflow? For the exact error
>> message, I'll post them tonight as soon as I'm back home.
>> Here is the version from Antony modified to have all the feature set of
>> the full cmake version:
>> cd %HOMEPATH%\blender_git\blender
>> git checkout master
>> git pull --rebase
>> git submodule update --recursive --remote
>> cd %HOMEPATH%\blender_git\blender-build
>> del CMakeCache.txt
>> cmake ..\blender -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
>> -DWITH_BUILDINFO=ON -DWITH_BULLET=ON -DWITH_CODEC_AVI=ON
>> -DWITH_CODEC_FFMPEG=ON -DWITH_CODEC_SNDFILE=ON -DWITH_CYCLES=ON
>> -DWITH_CYCLES_OSL=ON -DWITH_FFTW3=ON -DWITH_LIBMV=ON
>> -DWITH_LIBMV_SCHUR_SPECIALIZATIONS=ON -DWITH_GAMEENGINE=ON
>> -DWITH_COMPOSITOR=ON -DWITH_FREESTYLE=ON -DWITH_GHOST_XDND=ON
>> -DWITH_IK_SOLVER=ON -DWITH_IK_ITASC=ON -DWITH_IMAGE_CINEON=ON
>> -DWITH_IMAGE_DDS=ON -DWITH_IMAGE_FRAMESERVER=ON -DWITH_IMAGE_HDR=ON
>> -DWITH_IMAGE_OPENEXR=ON -DWITH_IMAGE_OPENJPEG=ON -DWITH_IMAGE_REDCODE=ON
>> -DWITH_IMAGE_TIFF=ON -DWITH_INPUT_NDOF=ON -DWITH_INTERNATIONAL=ON
>> -DWITH_JACK=ON -DWITH_LZMA=ON -DWITH_LZO=ON -DWITH_MOD_BOOLEAN=ON
>> -DWITH_MOD_FLUID=ON -DWITH_MOD_REMESH=ON -DWITH_MOD_SMOKE=ON
>> -DWITH_MOD_OCEANSIM=ON -DWITH_AUDASPACE=ON -DWITH_OPENAL=ON
>> -DWITH_OPENCOLLADA=ON -DWITH_OPENCOLORIO=ON -DWITH_OPENMP=ON
>> -DWITH_PYTHON_INSTALL=ON -DWITH_RAYOPTIMIZATION=ON -DWITH_SDL=ON
>> -DWITH_X11_XINPUT=ON -DWITH_X11_XF86VMODE=ON -DWITH_PLAYER=ON
>> nmake install
>> Note that on my computer, this batch file fails to find most librairies
>> and I have no idea why.
>> Am 21/12/2015 um 01:50 schrieb Campbell Barton:
>>> Some of the issues you've described seems quite strange and I've never
>>> encountered on MS-Windows+MSVC.
>>> On Mon, Dec 21, 2015 at 5:08 AM, matmenu <matmenu at live.fr> wrote:
>>>> Exactly what Antony said. Nobody will care what the building system is,
>>>> if it works out of the box. At the moment, it works perfect on Linux,
>>>> but it's still not working flawlessly on windows for me and other
>>>> friends. We made a little list of things that don't work properly:
>>>> - When using the cmake_full script, 2 modules fail to build in VS2013
>>> What fails? can you link to build error?
>>>> - "cmake_full" script is not default.
>>> This is also the case with CMake on Linux/OSX,
>>> though the reasoning for this on Linux is that linking errors with
>>> FFMPEG/Collada/LLVM are more common - and the libraries are not
>>> essential in many cases.
>>>> - With Scons it is a one-line cmd that compiles a release-like build in
>>>> one step. With cmake, following the wiki doc, we have to 1) Start the
>>>> GUI and choose the folders 2) configure, change some parameters manually
>>>> 3)generate solutions, 4) open VS 5) switch from debug (default) to
>>>> release 6) start the building process.
>>> On Unix systems we have a convenience makefile that handles this
>>> ('make' in the source dir to configure+build+install).
>>> We could have a BAT file for Windows to do the equivalent steps.
>>>> - Switching branches is a pain. Everytime we switch the branch, we have
>>>> to 1)delete cache, 2)configure and add my cutom params manually agin
>>>> (with scons, it was just added to the scons script) 3) generate solution
>>>> etc... otherwise, not all files are taken into account (for example for
>>>> object_nodes branch which has a lot of new files) and build fails. With
>>>> scons, the git checkout was enough to have the branch-specific scons
>>>> script and run the one-line again.
>>> I've never heard of switching branches needing to delete cache,
>>> What custom params are you having to set each time?
>>>> So I agree that the best experience on Linux is with Cmake, but on
>>>> Windows, it's still far away from ideal. Maybe just because I don't know
>>>> Cmake on windows well and the wiki doc is not adapted, but either it's
>>>> in doc or scripts or both, there is still some things to do to make it a
>>>> good switch. Fixing windows specific-bugs is already not funny, so it
>>>> would be good to make the build process as easy as with scons.
>>> With the issues you run into, its best if we can try to redo and fix
>>>> Am 20/12/2015 um 16:37 schrieb Antony Riakiotakis:
>>>>> +1 to drop scons. It may be easy to setup for casual builders, but so
>>>>> is cmake, if we provide good defaults.
>>>>> On 20/12/2015, Thomas Dinges <blender at dingto.org> wrote:
>>>>>> I use SCons too, but I also use CMake from time to time, so it's not a
>>>>>> big deal to switch over.
>>>>>> Therefore, I fully support removing SCons. Not sure we really need to
>>>>>> wait for 2.8x to do it though, imho it's fine to drop it now, we still
>>>>>> need 1-2 months before a new 2.7x release I guess, should be time
>>>>>> to communicate the change.
>>>>>> Am 20.12.15 um 15:22 schrieb Mike Erwin:
>>>>>>> I use SCons but support the idea of having only one build system.
>>>>>>> much luck building Blender with CMake but am willing to learn!
>>>>>>> -- Mike
>>>>>>> Bf-committers mailing list
>>>>>>> Bf-committers at blender.org
>>>>>> Bf-committers mailing list
>>>>>> Bf-committers at blender.org
>>>>> Bf-committers mailing list
>>>>> Bf-committers at blender.org
>>>> Bf-committers mailing list
>>>> Bf-committers at blender.org
>> Bf-committers mailing list
>> Bf-committers at blender.org
> Bf-committers mailing list
> Bf-committers at blender.org
More information about the Bf-committers