[Bf-blender-cvs] [824e18adb1b] tmp-vfx-platform-2023: Merge remote-tracking branch 'origin/master' into tmp-vfx-platform-2023

Ray Molenkamp noreply at git.blender.org
Tue Oct 11 21:39:42 CEST 2022


Commit: 824e18adb1bb558e727d3b5308a0730c3285742b
Author: Ray Molenkamp
Date:   Tue Oct 11 13:30:30 2022 -0700
Branches: tmp-vfx-platform-2023
https://developer.blender.org/rB824e18adb1bb558e727d3b5308a0730c3285742b

Merge remote-tracking branch 'origin/master' into tmp-vfx-platform-2023

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



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

diff --cc build_files/build_environment/cmake/check_software.cmake
index a72f12bbfc3,bdb9036e3f9..903c2c3022f
--- a/build_files/build_environment/cmake/check_software.cmake
+++ b/build_files/build_environment/cmake/check_software.cmake
@@@ -50,7 -46,7 +50,7 @@@ if(UNIX
        "  ${_software_missing}\n"
        "\n"
        "On Debian and Ubuntu:\n"
-       "  apt install autoconf automake libtool yasm tcl ninja-build meson python3-mako patchelf\n"
 -      "  apt install autoconf automake bison libtool yasm tcl ninja-build meson python3-mako\n"
++      "  apt install autoconf automake bison libtool yasm tcl ninja-build meson python3-mako patchelf\n"
        "\n"
        "On macOS (with homebrew):\n"
        "  brew install autoconf automake bison flex libtool meson ninja pkg-config yasm\n"
diff --cc build_files/build_environment/cmake/harvest.cmake
index 8f38f0b79bd,9afc1974677..2714979d869
--- a/build_files/build_environment/cmake/harvest.cmake
+++ b/build_files/build_environment/cmake/harvest.cmake
@@@ -11,241 -11,194 +11,245 @@@ message("HARVEST_TARGET = ${HARVEST_TAR
  
  if(WIN32)
  
 -  if(BUILD_MODE STREQUAL Release)
 -    add_custom_target(Harvest_Release_Results
 -      COMMAND # jpeg rename libfile + copy include
 -      ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpeg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
 -      ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpeg/include/ ${HARVEST_TARGET}/jpeg/include/ &&
 -      # png
 -      ${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static.lib ${HARVEST_TARGET}/png/lib/libpng.lib &&
 -      ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/ &&
 -      # freeglut-> opengl
 -      ${CMAKE_COMMAND} -E copy ${LIBDIR}/freeglut/lib/freeglut_static.lib ${HARVEST_TARGET}/opengl/lib/freeglut_static.lib &&
 -      ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freeglut/include/ ${HARVEST_TARGET}/opengl/include/ &&
 -      DEPENDS
 +if(BUILD_MODE STREQUAL Release)
 +  add_custom_target(Harvest_Release_Results
 +    COMMAND # jpeg rename libfile + copy include
 +        ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpeg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
 +        ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpeg/include/ ${HARVEST_TARGET}/jpeg/include/ &&
 +        # png
 +        ${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static.lib ${HARVEST_TARGET}/png/lib/libpng.lib &&
 +        ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/ &&
 +        # freeglut-> opengl
 +        ${CMAKE_COMMAND} -E copy ${LIBDIR}/freeglut/lib/freeglut_static.lib ${HARVEST_TARGET}/opengl/lib/freeglut_static.lib &&
 +        ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freeglut/include/ ${HARVEST_TARGET}/opengl/include/ &&
 +    DEPENDS
 +  )
 +endif()
 +
 +else(WIN32)
 +
 +function(harvest from to)
 +  set(pattern "")
 +  foreach(f ${ARGN})
 +    set(pattern ${f})
 +  endforeach()
 +
 +  if(pattern STREQUAL "")
 +    get_filename_component(dirpath ${to} DIRECTORY)
 +    get_filename_component(filename ${to} NAME)
 +    install(
 +      FILES ${LIBDIR}/${from}
 +      DESTINATION ${HARVEST_TARGET}/${dirpath}
 +      RENAME ${filename}
 +    )
 +  else()
 +    install(
 +      DIRECTORY ${LIBDIR}/${from}/
 +      DESTINATION ${HARVEST_TARGET}/${to}
 +      USE_SOURCE_PERMISSIONS
 +      FILES_MATCHING PATTERN ${pattern}
 +      PATTERN "pkgconfig" EXCLUDE
 +      PATTERN "cmake" EXCLUDE
 +      PATTERN "__pycache__" EXCLUDE
 +      PATTERN "tests" EXCLUDE
 +      PATTERN "meson*" EXCLUDE
      )
    endif()
 +endfunction()
  
 +# Set rpath on shared libraries to $ORIGIN since all will be installed in the same
 +# lib folder, and remove any absolute paths.
 +#
 +# Ideally this would be done as part of the Blender build since it makes assumptions
 +# about where the files will be installed. However it would add patchelf as a new
 +# dependency for building.
 +if(APPLE)
 +  set(set_rpath_cmd python3 ${CMAKE_CURRENT_SOURCE_DIR}/darwin/set_rpath.py @loader_path)
  else()
 +  set(set_rpath_cmd patchelf --set-rpath $ORIGIN)
 +endif()
  
 -  function(harvest from to)
 -    set(pattern "")
 -    foreach(f ${ARGN})
 -      set(pattern ${f})
 -    endforeach()
 -
 -    if(pattern STREQUAL "")
 -      get_filename_component(dirpath ${to} DIRECTORY)
 -      get_filename_component(filename ${to} NAME)
 -      install(
 -        FILES ${LIBDIR}/${from}
 -        DESTINATION ${HARVEST_TARGET}/${dirpath}
 -        RENAME ${filename}
 -      )
 -    else()
 -      install(
 -        DIRECTORY ${LIBDIR}/${from}/
 -        DESTINATION ${HARVEST_TARGET}/${to}
 -        USE_SOURCE_PERMISSIONS
 -        FILES_MATCHING PATTERN ${pattern}
 -        PATTERN "pkgconfig" EXCLUDE
 -        PATTERN "cmake" EXCLUDE
 -        PATTERN "__pycache__" EXCLUDE
 -        PATTERN "tests" EXCLUDE
 -      )
 -    endif()
 -  endfunction()
 -
 -  harvest(alembic/include alembic/include "*.h")
 -  harvest(alembic/lib/libAlembic.a alembic/lib/libAlembic.a)
 -  harvest(alembic/bin alembic/bin "*")
 -  harvest(brotli/include brotli/include "*.h")
 -  harvest(brotli/lib brotli/lib "*.a")
 -  harvest(boost/include boost/include "*")
 -  harvest(boost/lib boost/lib "*.a")
 -  harvest(imath/include imath/include "*.h")
 -  harvest(imath/lib imath/lib "*.a")
 -  harvest(ffmpeg/include ffmpeg/include "*.h")
 -  harvest(ffmpeg/lib ffmpeg/lib "*.a")
 -  harvest(fftw3/include fftw3/include "*.h")
 -  harvest(fftw3/lib fftw3/lib "*.a")
 -  harvest(flac/lib sndfile/lib "libFLAC.a")
 -  harvest(freetype/include freetype/include "*.h")
 -  harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
 -  harvest(epoxy/include epoxy/include "*.h")
 -  harvest(epoxy/lib epoxy/lib "*.a")
 -  harvest(gmp/include gmp/include "*.h")
 -  harvest(gmp/lib gmp/lib "*.a")
 -  harvest(jemalloc/include jemalloc/include "*.h")
 -  harvest(jemalloc/lib jemalloc/lib "*.a")
 -  harvest(jpeg/include jpeg/include "*.h")
 -  harvest(jpeg/lib jpeg/lib "libjpeg.a")
 -  harvest(lame/lib ffmpeg/lib "*.a")
 -  if(NOT APPLE)
 -    harvest(level-zero/include/level_zero level-zero/include/level_zero "*.h")
 -    harvest(level-zero/lib level-zero/lib "*.so*")
 -  endif()
 -  harvest(llvm/bin llvm/bin "clang-format")
 -  if(BUILD_CLANG_TOOLS)
 -    harvest(llvm/bin llvm/bin "clang-tidy")
 -    harvest(llvm/share/clang llvm/share "run-clang-tidy.py")
 -  endif()
 -  harvest(llvm/include llvm/include "*")
 -  harvest(llvm/bin llvm/bin "llvm-config")
 -  harvest(llvm/lib llvm/lib "libLLVM*.a")
 -  harvest(llvm/lib llvm/lib "libclang*.a")
 -  harvest(llvm/lib/clang llvm/lib/clang "*.h")
 -  if(APPLE)
 -    harvest(openmp/lib openmp/lib "*")
 -    harvest(openmp/include openmp/include "*.h")
 -  endif()
 -  if(BLENDER_PLATFORM_ARM)
 -    harvest(sse2neon sse2neon "*.h")
 -  endif()
 -  harvest(ogg/lib ffmpeg/lib "*.a")
 -  harvest(openal/include openal/include "*.h")
 -  if(UNIX AND NOT APPLE)
 -    harvest(openal/lib openal/lib "*.a")
 +function(harvest_rpath_lib from to pattern)
 +  harvest(${from} ${to} ${pattern})
 +
 +  install(CODE "\
 +    cmake_policy(SET CMP0009 NEW)\n
 +    file(GLOB_RECURSE shared_libs ${HARVEST_TARGET}/${to}/${pattern}) \n
 +    foreach(f \${shared_libs}) \n
 +      if(NOT IS_SYMLINK \${f})\n
 +        execute_process(COMMAND ${set_rpath_cmd} \${f}) \n
 +      endif()\n
 +    endforeach()")
 +endfunction()
 +
 +# Set rpath on utility binaries assuming they are run from their install location.
 +function(harvest_rpath_bin from to pattern)
 +  harvest(${from} ${to} ${pattern})
  
 -    harvest(blosc/include blosc/include "*.h")
 -    harvest(blosc/lib blosc/lib "*.a")
 +  install(CODE "\
 +    file(GLOB_RECURSE shared_libs ${HARVEST_TARGET}/${to}/${pattern}) \n
 +    foreach(f \${shared_libs}) \n
 +      execute_process(COMMAND ${set_rpath_cmd}/../lib; \${f}) \n
 +    endforeach()")
 +endfunction()
  
 -    harvest(zlib/include zlib/include "*.h")
 -    harvest(zlib/lib zlib/lib "*.a")
 +# Set rpath on Python module to point to the shared libraries folder in the Blender
 +# installation.
 +function(harvest_rpath_python from to pattern)
 +  harvest(${from} ${to} ${pattern})
  
 -    harvest(xml2/include xml2/include "*.h")
 -    harvest(xml2/lib xml2/lib "*.a")
 +  install(CODE "\
 +    file(GLOB_RECURSE shared_libs ${HARVEST_TARGET}/${to}/${pattern}\.so*) \n
 +    foreach(f \${shared_libs}) \n
 +      get_filename_component(f_dir \${f} DIRECTORY) \n
 +      file(RELATIVE_PATH relative_dir \${f_dir} ${HARVEST_TARGET}) \n
 +      execute_process(COMMAND ${set_rpath_cmd}/\${relative_dir}../lib \${f}) \n
 +    endforeach()")
 +endfunction()
  
 -    harvest(wayland-protocols/share/wayland-protocols wayland-protocols/share/wayland-protocols/ "*.xml")
 +harvest(alembic/include alembic/include "*.h")
 +harvest(alembic/lib/libAlembic.a alembic/lib/libAlembic.a)
 +harvest(alembic/bin alembic/bin "*")
 +harvest(brotli/include brotli/include "*.h")
 +harvest(brotli/lib brotli/lib "*.a")
 +harvest(boost/include boost/include "*")
 +harvest_rpath_lib(boost/lib boost/lib "*${SHAREDLIBEXT}*")
 +harvest(imath/include imath/include "*.h")
 +harvest_rpath_lib(imath/lib imath/lib "*${SHAREDLIBEXT}*")
 +harvest(ffmpeg/include ffmpeg/include "*.h")
 +harvest(ffmpeg/lib ffmpeg/lib "*.a")
 +harvest(fftw3/include fftw3/include "*.h")
 +harvest(fftw3/lib fftw3/lib "*.a")
 +harvest(flac/lib sndfile/lib "libFLAC.a")
 +harvest(freetype/include freetype/include "*.h")
 +harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
 +harvest(fribidi/include fribidi/include "*.h")
 +harvest(fribidi/lib fribidi/lib "*.a")
 +harvest(epoxy/include epoxy/include "*.h")
 +harvest(epoxy/lib epoxy/lib "*.a")
 +harvest(gmp/include gmp/include "*.h")
 +harvest(gmp/lib gmp/lib "*.a")
 +harvest(harfbuzz/include harfbuzz/include "*.h")
 +harvest(harfbuzz/lib harfbuzz/lib "*.a")
 +harvest(jemalloc/include jemalloc/include "*.h")
 +harvest(jemalloc/lib jemalloc/lib "*.a")
 +harvest(jpeg/include jpeg/include "*.h")
 +harvest(jpeg/lib jpeg/lib "libjpeg.a")
 +harvest(lame/lib ffmpeg/lib "*.a")
 +if(NOT APPLE)
 +  harvest(level-zero/include/level_zero level-zero/include/level_zero "*.h")
 +  harvest(level-zero/lib le

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list