[Bf-committers] SCons build system future

matmenu matmenu at live.fr
Sun Dec 27 10:24:56 CET 2015


Anyone has a .bat file that successfully build latest git with the full 
functionnality and a clean directory (without those .lib and .manifest 
files)?

Am 21/12/2015 um 21:47 schrieb matmenu:
> The build is successfull. No errors like with the GUI solution. But some
> .lib and .manifest files are in the bin dir although they shouldn't
> (they are not in the buildbot nor scons builds)
>
> Am 21/12/2015 um 20:21 schrieb matmenu:
>> Thank you Antony, that was part of the problem. For some reason, I also
>> had to completly delete everything in the "blender-build" folder,
>> otherwise it would still look for the 32 bit version of the libs
>> (despite the cmake cache being deleted by the .bat file).
>>
>> Ok, so you can put the .bat file I gave in the last email in the
>> official Git repo. Only thing that would be nice would be to have a
>> script that clone the git to ensure the path is the right one. Or write
>> it in the wiki doc.
>>
>>
>> Am 21/12/2015 um 14:53 schrieb Antony Riakiotakis:
>>> Did you start your batch file from a visual studio 64 bit command line
>>> (It's under visual studio folder in program launcher)? It's important, else
>>> the system will think you're compiling for 32 bits and search for the 32bit
>>> windows folder.
>>>
>>> On 21 December 2015 at 14:29, matmenu <matmenu at live.fr> wrote:
>>>
>>>> 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):
>>>>
>>>> ----------------------.bat file----------------------
>>>>
>>>> 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
>>>> -DWITH_MEM_JEMALLOC=ON
>>>>
>>>> nmake install
>>>> ------------------------------------------------
>>>>
>>>> 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:
>>>> C:/Users/test/blender_git/blender/../lib/windows_vc12/zlib/lib/libz_st.lib
>>>> -- 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:
>>>>
>>>> C:/Users/test/blender_git/blender/../lib/windows_vc12/freetype/lib/freetype2ST.lib
>>>> 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
>>>> "FFMPEG", but
>>>>       CMake did not find one.
>>>>
>>>>       Could not find a package configuration file provided by "FFMPEG" with
>>>> any
>>>>       of the following names:
>>>>
>>>>         FFMPEGConfig.cmake
>>>>         ffmpeg-config.cmake
>>>>
>>>>       Add the installation prefix of "FFMPEG" to CMAKE_PREFIX_PATH or set
>>>>       "FFMPEG_DIR" to a directory containing one of the above files.  If
>>>> "FFMPEG"
>>>>       provides a separate development package or SDK, be sure it has been
>>>>       installed.
>>>>
>>>>
>>>> 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
>>>> OPENIMAGEIO_INCLUDE_DIR)
>>>> CMake Warning at CMakeLists.txt:1552 (message):
>>>>       LLVM debug libs not present on this system.  Using release libs for
>>>> debug
>>>>       builds.
>>>>
>>>>
>>>> -- OSL not found
>>>> CMake Error at CMakeLists.txt:2249 (message):
>>>>       Apple and Windows require pre-compiled libs at:
>>>>       'C:/Users/test/blender_git/blender/../lib/windows_vc12'
>>>>
>>>>
>>>> -- Configuring incomplete, errors occurred!
>>>> See also
>>>> "C:/Users/test/blender_git/blender-build/CMakeFiles/CMakeOutput.log".
>>>> See also
>>>> "C:/Users/test/blender_git/blender-build/CMakeFiles/CMakeError.log".
>>>>
>>>> C:\Users\test\blender_git\blender-build>nmake install
>>>>
>>>> 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'
>>>> Stop.
>>>>
>>>> C:\Users\test\blender_git\blender-build>
>>>>
>>>>
>>>> --------------------------------------------------------------------
>>>>
>>>>
>>>> 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]
>>>>> ./blender/build_files/build_environment/install_deps.sh
>>>>>
>>>>> 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:
>>>>> https://cmake.org/cmake/help/v3.0/module/ExternalProject.html
>>>>>
>>>>> 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
>>>>>> -DWITH_MEM_JEMALLOC=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
>>>>>>>> (blenderplayer-related).
>>>>>>> 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
>>>>>> them.
>>>>>>>> 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
>>>>>> enough
>>>>>>>>>> to communicate the change.
>>>>>>>>>>
>>>>>>>>>> Thomas
>>>>>>>>>>
>>>>>>>>>> Am 20.12.15 um 15:22 schrieb Mike Erwin:
>>>>>>>>>>> I use SCons but support the idea of having only one build system.
>>>>>> Never
>>>>>>>>>>> had
>>>>>>>>>>> much luck building Blender with CMake but am willing to learn!
>>>>>>>>>>>
>>>>>>>>>>> -- Mike
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Bf-committers mailing list
>>>>>>>>>>> Bf-committers at blender.org
>>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Bf-committers mailing list
>>>>>>>>>> Bf-committers at blender.org
>>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Bf-committers mailing list
>>>>>>>>> Bf-committers at blender.org
>>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>>>>> _______________________________________________
>>>>>>>> Bf-committers mailing list
>>>>>>>> Bf-committers at blender.org
>>>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>>> _______________________________________________
>>>>>> Bf-committers mailing list
>>>>>> Bf-committers at blender.org
>>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>>>
>>>>> _______________________________________________
>>>>> Bf-committers mailing list
>>>>> Bf-committers at blender.org
>>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>> _______________________________________________
>>>> Bf-committers mailing list
>>>> Bf-committers at blender.org
>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>>
>>> _______________________________________________
>>> Bf-committers mailing list
>>> Bf-committers at blender.org
>>> http://lists.blender.org/mailman/listinfo/bf-committers
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers



More information about the Bf-committers mailing list