50-x265.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/bin/bash
  2. SCRIPT_REPO="https://bitbucket.org/multicoreware/x265_git.git"
  3. SCRIPT_COMMIT="5de5f5646689983578cd1bd19c7c6faacf12e746"
  4. ffbuild_enabled() {
  5. [[ $VARIANT == lgpl* ]] && return -1
  6. return 0
  7. }
  8. ffbuild_dockerdl() {
  9. echo "git clone --filter=blob:none \"$SCRIPT_REPO\" . && git checkout \"$SCRIPT_COMMIT\""
  10. }
  11. ffbuild_dockerbuild() {
  12. local common_config=(
  13. -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX"
  14. -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN"
  15. -DCMAKE_BUILD_TYPE=Release
  16. -DENABLE_SHARED=OFF
  17. -DENABLE_CLI=OFF
  18. -DCMAKE_ASM_NASM_FLAGS=-w-macro-params-legacy
  19. -DENABLE_ALPHA=ON
  20. )
  21. if [[ $TARGET != *32 ]]; then
  22. mkdir 8bit 10bit 12bit
  23. cmake "${common_config[@]}" -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_HDR10_PLUS=ON -DMAIN12=ON -S source -B 12bit &
  24. cmake "${common_config[@]}" -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_HDR10_PLUS=ON -S source -B 10bit &
  25. cmake "${common_config[@]}" -DEXTRA_LIB="x265_main10.a;x265_main12.a" -DEXTRA_LINK_FLAGS=-L. -DLINKED_10BIT=ON -DLINKED_12BIT=ON -S source -B 8bit &
  26. wait
  27. cat >Makefile <<"EOF"
  28. all: 12bit/libx265.a 10bit/libx265.a 8bit/libx265.a
  29. %/libx265.a:
  30. $(MAKE) -C $(subst /libx265.a,,$@)
  31. .PHONY: all
  32. EOF
  33. make -j$(nproc)
  34. cd 8bit
  35. mv ../12bit/libx265.a ../8bit/libx265_main12.a
  36. mv ../10bit/libx265.a ../8bit/libx265_main10.a
  37. mv libx265.a libx265_main.a
  38. ${AR} -M <<EOF
  39. CREATE libx265.a
  40. ADDLIB libx265_main.a
  41. ADDLIB libx265_main10.a
  42. ADDLIB libx265_main12.a
  43. SAVE
  44. END
  45. EOF
  46. else
  47. mkdir 8bit
  48. cd 8bit
  49. cmake "${common_config[@]}" ../source
  50. make -j$(nproc)
  51. fi
  52. make install
  53. echo "Libs.private: -lstdc++" >> "$FFBUILD_PREFIX"/lib/pkgconfig/x265.pc
  54. }
  55. ffbuild_configure() {
  56. echo --enable-libx265
  57. }
  58. ffbuild_unconfigure() {
  59. echo --disable-libx265
  60. }
  61. ffbuild_cflags() {
  62. return 0
  63. }
  64. ffbuild_ldflags() {
  65. return 0
  66. }