[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