diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-12-02 16:09:06 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-12-02 16:11:58 +0300 |
commit | 956bd92a6036ce3e47047dfdbee68f447c23b61d (patch) | |
tree | c1d6508d1bc2247d0e18658ad519fd26757532d9 /build_files/buildbot/config | |
parent | ca3d014bd1358abfb2708bf33742f70ab26d7b96 (diff) |
Buildbot: Initial work to move linux build environment to CMake
This is so called "seems to work in dry tests" commit which is aimed to switch
linux release environment to CMake.
Some notes:
- There's no special handle of libstdc++, but it wasn't really static for quite
some time in SCons configuration and nobody really complained.
- It was quite tricky to get OpenMP linked statically with just using some
configuration so we went ahead and added a special option to CMake now which is
only exist on Linux and advertised as shouldn't be used.
- Packing is happening manually in slave_pack.py. This is because we have to add
some really special files to the archive (mesa libraries for example) which we
can't really handle from CMake/CPack in a nice generic way.
Don't think it's bad approach, at least crappynness is localized and it's not
_that_ crappy anyway.
- Windows buildbot should keep working, but needs doublechecing. It's just a
build folder changed, but you never know what it might imply.
- Some further tweaks are likely needed to ensure all builders are working.
Thanks Campbell for assistance in this patch!
Diffstat (limited to 'build_files/buildbot/config')
-rw-r--r-- | build_files/buildbot/config/blender_linux.cmake | 94 | ||||
-rw-r--r-- | build_files/buildbot/config/blender_player_linux.cmake | 12 |
2 files changed, 106 insertions, 0 deletions
diff --git a/build_files/buildbot/config/blender_linux.cmake b/build_files/buildbot/config/blender_linux.cmake new file mode 100644 index 00000000000..e88896628a8 --- /dev/null +++ b/build_files/buildbot/config/blender_linux.cmake @@ -0,0 +1,94 @@ +# ######## Global feature set settings ######## + +include("${CMAKE_CURRENT_LIST_DIR}/../../cmake/config/blender_full.cmake") + +# ######## 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_OPENMP_STATIC ON 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 00000000000..2fb31192002 --- /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) |