[Bf-blender-cvs] [8686e3f] buildbot_linux_cmake: Buildbot: Initial work to move linux build environment to CMake

Sergey Sharybin noreply at git.blender.org
Mon Nov 30 18:51:11 CET 2015


Commit: 8686e3f8369ad44962d63bf99f362383d1dcfb74
Author: Sergey Sharybin
Date:   Mon Nov 30 18:46:48 2015 +0100
Branches: buildbot_linux_cmake
https://developer.blender.org/rB8686e3f8369ad44962d63bf99f362383d1dcfb74

Buildbot: Initial work to move linux build environment to CMake

Still quite some work to be done, but good enough for initial tests.

>From the TODO:

- Link statically against libgomp
- Link statically against libstdc++
- Make sure CUDA kernels are compiling fine
- Make sure proper archive name is used for the uploading archive

There are also few hacks in the various code just to make compilation
and tests working correct in current release environment.

===================================================================

A	build_files/buildbot/config/blender_linux.cmake
A	build_files/buildbot/config/blender_player_linux.cmake
M	build_files/buildbot/slave_compile.py
M	build_files/buildbot/slave_pack.py
M	build_files/cmake/Modules/FindOpenCOLLADA.cmake
M	intern/cycles/blender/addon/ui.py
M	source/blenderplayer/CMakeLists.txt

===================================================================

diff --git a/build_files/buildbot/config/blender_linux.cmake b/build_files/buildbot/config/blender_linux.cmake
new file mode 100644
index 0000000..fa44e04
--- /dev/null
+++ b/build_files/buildbot/config/blender_linux.cmake
@@ -0,0 +1,142 @@
+# ######## Global feature set settings ########
+#
+# !!!! Keep in sync with blender_full.cmake !!!!
+#
+set(WITH_BUILDINFO           ON  CACHE BOOL "" FORCE)
+set(WITH_BULLET              ON  CACHE BOOL "" FORCE)
+set(WITH_CODEC_AVI           ON  CACHE BOOL "" FORCE)
+set(WITH_CODEC_FFMPEG        ON  CACHE BOOL "" FORCE)
+set(WITH_CODEC_SNDFILE       ON  CACHE BOOL "" FORCE)
+set(WITH_CYCLES              ON  CACHE BOOL "" FORCE)
+set(WITH_CYCLES_OSL          ON  CACHE BOOL "" FORCE)
+set(WITH_FFTW3               ON  CACHE BOOL "" FORCE)
+set(WITH_LIBMV               ON  CACHE BOOL "" FORCE)
+set(WITH_LIBMV_SCHUR_SPECIALIZATIONS ON CACHE BOOL "" FORCE)
+set(WITH_GAMEENGINE          ON  CACHE BOOL "" FORCE)
+set(WITH_COMPOSITOR          ON  CACHE BOOL "" FORCE)
+set(WITH_FREESTYLE           ON  CACHE BOOL "" FORCE)
+set(WITH_GHOST_XDND          ON  CACHE BOOL "" FORCE)
+set(WITH_IK_SOLVER           ON  CACHE BOOL "" FORCE)
+set(WITH_IK_ITASC            ON  CACHE BOOL "" FORCE)
+set(WITH_IMAGE_CINEON        ON  CACHE BOOL "" FORCE)
+set(WITH_IMAGE_DDS           ON  CACHE BOOL "" FORCE)
+set(WITH_IMAGE_FRAMESERVER   ON  CACHE BOOL "" FORCE)
+set(WITH_IMAGE_HDR           ON  CACHE BOOL "" FORCE)
+set(WITH_IMAGE_OPENEXR       ON  CACHE BOOL "" FORCE)
+set(WITH_IMAGE_OPENJPEG      ON  CACHE BOOL "" FORCE)
+set(WITH_IMAGE_REDCODE       ON  CACHE BOOL "" FORCE)
+set(WITH_IMAGE_TIFF          ON  CACHE BOOL "" FORCE)
+set(WITH_INPUT_NDOF          ON  CACHE BOOL "" FORCE)
+set(WITH_INTERNATIONAL       ON  CACHE BOOL "" FORCE)
+set(WITH_JACK                ON  CACHE BOOL "" FORCE)
+set(WITH_LLVM                ON  CACHE BOOL "" FORCE)
+set(WITH_LZMA                ON  CACHE BOOL "" FORCE)
+set(WITH_LZO                 ON  CACHE BOOL "" FORCE)
+set(WITH_MOD_BOOLEAN         ON  CACHE BOOL "" FORCE)
+set(WITH_MOD_FLUID           ON  CACHE BOOL "" FORCE)
+set(WITH_MOD_REMESH          ON  CACHE BOOL "" FORCE)
+set(WITH_MOD_SMOKE           ON  CACHE BOOL "" FORCE)
+set(WITH_MOD_OCEANSIM        ON  CACHE BOOL "" FORCE)
+set(WITH_AUDASPACE           ON  CACHE BOOL "" FORCE)
+set(WITH_OPENAL              ON  CACHE BOOL "" FORCE)
+set(WITH_OPENCOLLADA         ON  CACHE BOOL "" FORCE)
+set(WITH_OPENCOLORIO         ON  CACHE BOOL "" FORCE)
+set(WITH_OPENMP              ON  CACHE BOOL "" FORCE)
+set(WITH_OPENNL              ON  CACHE BOOL "" FORCE)
+set(WITH_OPENSUBDIV          ON  CACHE BOOL "" FORCE)
+set(WITH_PLAYER              OFF CACHE BOOL "" FORCE)
+set(WITH_PYTHON_INSTALL      ON  CACHE BOOL "" FORCE)
+set(WITH_RAYOPTIMIZATION     ON  CACHE BOOL "" FORCE)
+set(WITH_SDL                 ON  CACHE BOOL "" FORCE)
+set(WITH_X11_XINPUT          ON  CACHE BOOL "" FORCE)
+set(WITH_X11_XF86VMODE       ON  CACHE BOOL "" FORCE)
+set(WITH_MEM_JEMALLOC        ON  CACHE BOOL "" FORCE)
+
+# ######## Linux-specific build options ########
+# Options which are specific to Linux-only platforms
+set(WITH_DOC_MANPAGE         OFF CACHE BOOL "" FORCE)
+
+# ######## Official release-specific build options ########
+# Options which are specific to Linux release builds only
+set(WITH_JACK_DYNLOAD        ON  CACHE BOOL "" FORCE)
+set(WITH_SDL_DYNLOAD         ON  CACHE BOOL "" FORCE)
+set(WITH_SYSTEM_GLEW         OFF CACHE BOOL "" FORCE)
+
+set(WITH_PYTHON_INSTALL_NUMPY    ON CACHE BOOL "" FORCE)
+set(WITH_PYTHON_INSTALL_REQUESTS ON CACHE BOOL "" FORCE)
+
+# ######## Release environment specific settings ########
+# All the hardcoded libraru paths and such
+
+# LLVM libraries
+set(LLVM_VERSION             "3.4"  CACHE STRING "" FORCE)
+set(LLVM_ROOT_DIR            "/opt/lib/llvm-${LLVM_VERSION}"  CACHE STRING "" FORCE)
+set(LLVM_STATIC              ON  CACHE BOOL "" FORCE)
+
+# BOOST libraries
+set(BOOST_ROOT               "/opt/lib/boost" CACHE STRING "" FORCE)
+set(Boost_USE_STATIC_LIBS    ON CACHE BOOL "" FORCE)
+
+# FFmpeg libraries
+set(FFMPEG                   "/opt/lib/ffmpeg" CACHE STRING "" FORCE)
+set(FFMPEG_LIBRARIES
+    avdevice avformat avcodec avutil avfilter swscale swresample
+    /usr/lib/libxvidcore.a
+    /usr/lib/libx264.a
+    /usr/lib/libmp3lame.a
+    /usr/lib/libvpx.a
+    /usr/lib/libvorbis.a
+    /usr/lib/libogg.a
+    /usr/lib/libvorbisenc.a
+    /usr/lib/libtheora.a
+    /usr/lib/libschroedinger-1.0.a
+    /usr/lib/liborc-0.4.a
+    CACHE STRING "" FORCE
+)
+
+# SndFile libraries
+set(SNDFILE_LIBRARY          "/usr/lib/libsndfile.a;/usr/lib/libFLAC.a" CACHE STRING "" FORCE)
+
+# OpenAL libraries
+set(OPENAL_ROOT_DIR           "/opt/lib/openal" CACHE STRING "" FORCE)
+set(OPENAL_INCLUDE_DIR        "${OPENAL_ROOT_DIR}/include" CACHE STRING "" FORCE)
+set(OPENAL_LIBRARY
+    ${OPENAL_ROOT_DIR}/lib/libopenal.a
+    ${OPENAL_ROOT_DIR}/lib/libcommon.a
+    CACHE STRING "" FORCE
+)
+
+# OpenCollada libraries
+set(OPENCOLLADA_UTF_LIBRARY   "" CACHE STRING "" FORCE)
+
+# OpenColorIO libraries
+set(OPENCOLORIO_ROOT_DIR      "/opt/lib/ocio" CACHE STRING "" FORCE)
+set(OPENCOLORIO_OPENCOLORIO_LIBRARY "${OPENCOLORIO_ROOT_DIR}/lib/libOpenColorIO.a" CACHE STRING "" FORCE)
+set(OPENCOLORIO_TINYXML_LIBRARY "${OPENCOLORIO_ROOT_DIR}/lib/libtinyxml.a"         CACHE STRING "" FORCE)
+set(OPENCOLORIO_YAML-CPP_LIBRARY "${OPENCOLORIO_ROOT_DIR}/lib/libyaml-cpp.a"       CACHE STRING "" FORCE)
+
+# OpenSubdiv libraries
+set(OPENSUBDIV_ROOT_DIR "/opt/lib/opensubdiv" CACHE STRING "" FORCE)
+set(OPENSUBDIV_OSDCPU_LIBRARY "${OPENSUBDIV_ROOT_DIR}/lib/libosdCPU.a" CACHE STRING "" FORCE)
+set(OPENSUBDIV_OSDGPU_LIBRARY "${OPENSUBDIV_ROOT_DIR}/lib/libosdGPU.a" CACHE STRING "" FORCE)
+
+# OpenEXR libraries
+set(OPENEXR_ROOT_DIR          "/opt/lib/openexr"                    CACHE STRING "" FORCE)
+set(OPENEXR_HALF_LIBRARY      "/opt/lib/openexr/lib/libHalf.a"      CACHE STRING "" FORCE)
+set(OPENEXR_IEX_LIBRARY       "/opt/lib/openexr/lib/libIex.a"       CACHE STRING "" FORCE)
+set(OPENEXR_ILMIMF_LIBRARY    "/opt/lib/openexr/lib/libIlmImf.a"    CACHE STRING "" FORCE)
+set(OPENEXR_ILMTHREAD_LIBRARY "/opt/lib/openexr/lib/libIlmThread.a" CACHE STRING "" FORCE)
+set(OPENEXR_IMATH_LIBRARY     "/opt/lib/openexr/lib/libImath.a"     CACHE STRING "" FORCE)
+
+# JeMalloc library
+set(JEMALLOC_LIBRARY    "/opt/lib/jemalloc/lib/libjemalloc.a" CACHE STRING "" FORCE)
+
+# Foce some system libraries to be static
+set(FFTW3_LIBRARY       "/usr/lib/libfftw3.a" CACHE STRING "" FORCE)
+set(JPEG_LIBRARY        "/usr/lib/libjpeg.a"  CACHE STRING "" FORCE)
+set(PNG_LIBRARY         "/usr/lib/libpng.a"   CACHE STRING "" FORCE)
+set(TIFF_LIBRARY        "/usr/lib/libtiff.a"  CACHE STRING "" FORCE)
+set(ZLIB_LIBRARY        "/usr/lib/libz.a"     CACHE STRING "" FORCE)
+
+# Additional linking libraries
+set(CMAKE_EXE_LINKER_FLAGS   "-lrt"  CACHE STRING "" FORCE)
diff --git a/build_files/buildbot/config/blender_player_linux.cmake b/build_files/buildbot/config/blender_player_linux.cmake
new file mode 100644
index 0000000..2fb3119
--- /dev/null
+++ b/build_files/buildbot/config/blender_player_linux.cmake
@@ -0,0 +1,12 @@
+# This is applied as an ovveride on top of blender_linux.config
+# Disables all the areas which are not needed for the player.
+set(WITH_COMPOSITOR          OFF CACHE BOOL "" FORCE)
+set(WITH_CYCLES              OFF CACHE BOOL "" FORCE)
+set(WITH_FREESTYLE           OFF CACHE BOOL "" FORCE)
+set(WITH_GHOST_XDND          OFF CACHE BOOL "" FORCE)
+set(WITH_OPENCOLLADA         OFF CACHE BOOL "" FORCE)
+set(WITH_OPENSUBDIV          OFF CACHE BOOL "" FORCE)
+set(WITH_LIBMV               OFF CACHE BOOL "" FORCE)
+
+set(WITH_BLENDER             OFF CACHE BOOL "" FORCE)
+set(WITH_PLAYER              ON  CACHE BOOL "" FORCE)
diff --git a/build_files/buildbot/slave_compile.py b/build_files/buildbot/slave_compile.py
index ee89bc9..f9cdd91 100644
--- a/build_files/buildbot/slave_compile.py
+++ b/build_files/buildbot/slave_compile.py
@@ -31,43 +31,121 @@ if len(sys.argv) < 2:
 builder = sys.argv[1]
 
 # we run from build/ directory
-blender_dir = '../blender.git'
+blender_dir = os.path.join('..', 'blender.git')
 
 if 'cmake' in builder:
     # cmake
 
-    # set build options
+    # Some fine-tuning configuration
+    blender_dir = os.path.join('..', blender_dir)
+    build_dir = os.path.abspath(os.path.join('..', 'build', builder))
+    install_dir = os.path.abspath(os.path.join('..', 'install', builder))
+    targets = ['blender']
+
+    chroot_name = None  # If not None command will be deligated to that chroot
+    build_cubins = True  # Whether to build Cycles CUDA kernels
+    remove_cache = False  # Remove CMAke cache to be sure config is totally up-to-date
+    remove_install_dir = False  # Remove installation folder before building
+
+    # Config file to be used (relative to blender's sources root)
+    cmake_config_file = "build_files/cmake/config/blender_full.cmake"
+    cmake_player_config_file = None
+    cmake_cuda_config_file = None
+
+    # Set build options.
     cmake_options = ['-DCMAKE_BUILD_TYPE:STRING=Release']
 
-    if builder.endswith('mac_x86_64_cmake'):
-        cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=x86_64')
-    elif builder.endswith('mac_i386_cmake'):
-        cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=i386')
-    elif builder.endswith('mac_ppc_cmake'):
-        cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=ppc')
-
-    if 'win64' in builder:
-        cmake_options.append(['-G', '"Visual Studio 12 2013 Win64"'])
-    elif 'win32' in builder:
-        cmake_options.append(['-G', '"Visual Studio 12 2013"'])
-
-    cmake_options.append("-C../blender.git/build_files/cmake/config/blender_full.cmake")
-    if 'win32' not in builder:
-        cmake_options.append("-DWITH_CYCLES_CUDA_BINARIES=1")
-    else:
-        cmake_options.append("-DWITH_CYCLES_CUDA_BINARIES=0")
-    # configure and make
-    retcode = subprocess.call(['cmake', blender_dir] + cmake_options)
-    if retcode != 0:
-        sys.exit(retcode)
+    if builder.startswith('mac'):
+        # Set up OSX architecture
+        if builder.endswith('x86_64_cmake'):


@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list