diff --git a/multimedia/x265/Makefile b/multimedia/x265/Makefile index d2a0b8dd52b0..712a954ff091 100644 --- a/multimedia/x265/Makefile +++ b/multimedia/x265/Makefile @@ -1,131 +1,167 @@ # Created by: adamw PORTNAME= x265 PORTVERSION= 3.4 PORTREVISION= 2 CATEGORIES= multimedia MASTER_SITES= https://bitbucket.org/multicoreware/x265_git/get/${BB_TAG}.tar.gz?meow=/ MAINTAINER= mi@aldan.algebra.com COMMENT= H.265/High Efficiency Video Coding (HEVC) format LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC:H}/COPYING USES= cmake compiler:c++14-lang cpe pathfix dos2unix CPE_VENDOR= multicorewareinc BB_TAG= 25b2c07035ff # Top of the Release_3.4 branch at this time OPTIONS_DEFINE= DEBUG OPTIMIZED_FLAGS VMAF OPTIONS_DEFAULT= OPTIMIZED_FLAGS HI8P HI10P HI12P OPTIONS_DEFINE_aarch64= ASM OPTIONS_DEFINE_amd64= ASM SVTHEVC OPTIONS_DEFINE_i386= ASM +OPTIONS_DEFINE_powerpc64= ASM OPTIONS_DEFAULT_amd64= ASM OPTIONS_MULTI= PixelWidth OPTIONS_MULTI_PixelWidth=HI8P HI10P HI12P DOS2UNIX_FILES= abrEncApp.cpp DEBUG_PREVENTS= OPTIMIZED_FLAGS DEBUG_PREVENTS_MSG= Optimizations are incompatible with debugging code DEBUG_VARS_OFF= CFLAGS+=-DNDEBUG DEBUG_CMAKE_ON= -DCMAKE_ASM_NASM_FLAGS:STRING="-g -O0" OPTIMIZED_FLAGS_VARS= CFLAGS+=-O3 SVTHEVC_LIB_DEPENDS= libSvtHevcEnc.so:multimedia/svt-hevc SVTHEVC_CMAKE_BOOL= ENABLE_SVT_HEVC SVTHEVC_CMAKE_ON= -DSVT_HEVC_INCLUDE_DIR:PATH="${LOCALBASE}/include/svt-hevc" VMAF_LIB_DEPENDS= libvmaf.so:multimedia/vmaf VMAF_USES= localbase:ldflags VMAF_CMAKE_BOOL= ENABLE_LIBVMAF VMAF_CMAKE_ON= -DVMAF_INCLUDE_DIR:PATH="${LOCALBASE}/include/libvmaf" DEBUG_DESC= Enable debugging HI8P_DESC= Enable 8-bit pixel-width (you, probably, want this) HI10P_DESC= Enable 10-bit pixels (may break on i386) HI12P_DESC= Enable 12-bit pixels (may break on i386) OPTIMIZED_FLAGS_DESC= Enable O3 optimization SVTHEVC_DESC= HEVC encoding via SVT-HEVC VMAF_DESC= Per frame and aggregate VMAF score USE_LDCONFIG= yes CMAKE_ARGS= -DENABLE_TESTS=on -DENABLE_HDR10_PLUS:BOOL=true LDFLAGS_i386= -Wl,-znotext EXTRACT_AFTER_ARGS+= --exclude compat --strip-components=1 PATCH_WRKSRC= ${WRKSRC:H} WRKSRC= ${WRKDIR}/source .include .if ${ARCH} == aarch64 && ${PORT_OPTIONS:MASM} BUILD_DEPENDS= as:devel/binutils USE_GCC= yes -ASM_PREVENTS= HI10P HI12P -ASM_PREVENTS_MSG= Currently HI10P and HI12P doesn't build with assembly .endif -.if ${ARCH} != aarch64 && ${PORT_OPTIONS:MASM} +.if ${ARCH} == powerpc64 && ${PORT_OPTIONS:MASM} +CMAKE_ARGS+= -DCPU_POWER8=ON \ + -DENABLE_ALTIVEC=ON +.endif + +.if ${ARCH} != aarch64 && ${ARCH} != powerpc64 && ${PORT_OPTIONS:MASM} BUILD_DEPENDS= nasm:devel/nasm .endif DEFAULT_DEPTH= ${PORT_OPTIONS:MHI*P:O:ts/:T} OTHER_DEPTHS= ${PORT_OPTIONS:MHI*P:N${DEFAULT_DEPTH}} .if "${DEFAULT_DEPTH}" == "HI12P" CMAKE_ARGS+= -DMAIN12:BOOL=true .endif .if "${DEFAULT_DEPTH}" != "HI8P" CMAKE_ARGS+= -DHIGH_BIT_DEPTH:BOOL=true .endif CMAKE_OTHER_ARGS=${CMAKE_ARGS:C/.*-D_END_CUSTOM_OPTIONS=1 +//W} .if ${PORT_OPTIONS:MDEBUG} CFLAGS:= ${CFLAGS:N-O*} -O0 -g .endif .for b in ${OTHER_DEPTHS:C/HI([0-9]+)P/\1/} EXTRA_LINK_FLAGS+=-L${WRKSRC:H}/$bbit +.if ${ARCH} == powerpc64 + +.if $b != 8 || ! ${PORT_OPTIONS:MASM} +ASSEMBLY=false +.else +ASSEMBLY=true +.endif + +.if ${PORT_OPTIONS:MASM} +POWER8= true +.else +POWER8= false +.endif + +pre-build:: + @${ECHO_MSG} "---> Building the $b-bit library ---" + ${MKDIR} ${WRKSRC:H}/$bbit + ${CMAKE_BIN} -S ${WRKSRC} -B ${WRKSRC:H}/$bbit \ + ${CMAKE_OTHER_ARGS} ${b:C/1./-DHIGH_BIT_DEPTH:BOOL=true/} \ + -DMAIN$b:BOOL=true -DENABLE_ALTIVEC=${ASSEMBLY} -DCPU_POWER8=${POWER8} \ + -DEXPORT_C_API:BOOL=false -DENABLE_CLI=false + ${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC:H}/$bbit ${MAKE_ARGS} + ${LN} -f ${WRKSRC:H}/$bbit/libx265.a ${WRKSRC:H}/$bbit/libx265_$bbit.a + ${ECHO_MSG} "---> Built the $b-bit library ---" + +.else .if ${ARCH} == i386 && $b != 8 || ! ${PORT_OPTIONS:MASM} ASSEMBLY=false .else ASSEMBLY=true .endif pre-build:: @${ECHO_MSG} "---> Building the $b-bit library ---" ${MKDIR} ${WRKSRC:H}/$bbit ${CMAKE_BIN} -S ${WRKSRC} -B ${WRKSRC:H}/$bbit \ ${CMAKE_OTHER_ARGS} ${b:C/1./-DHIGH_BIT_DEPTH:BOOL=true/} \ -DMAIN$b:BOOL=true -DENABLE_ASSEMBLY:BOOL=${ASSEMBLY} \ -DEXPORT_C_API:BOOL=false -DENABLE_CLI=false ${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC:H}/$bbit ${MAKE_ARGS} ${LN} -f ${WRKSRC:H}/$bbit/libx265.a ${WRKSRC:H}/$bbit/libx265_$bbit.a ${ECHO_MSG} "---> Built the $b-bit library ---" +.endif .endfor .if "${EXTRA_LINK_FLAGS}" CMAKE_ARGS+= -DEXTRA_LINK_FLAGS:STRING="${EXTRA_LINK_FLAGS}" CMAKE_ARGS+= -DEXTRA_LIB="${OTHER_DEPTHS:C/HI([0-9]+)P/x265_\1bit/:C/ /;/gW}" CMAKE_ARGS+= ${OTHER_DEPTHS:C/HI([0-9]+)P/-DLINKED_\1BIT:BOOL=true/} .endif CMAKE_ARGS+= -DENABLE_SHARED:BOOL=true .if ${ARCH} == i386 && ${DEFAULT_DEPTH} != "HI8P" || ! ${PORT_OPTIONS:MASM} CMAKE_ARGS+= -DENABLE_ASSEMBLY:BOOL=false .else +.if ${ARCH} != powerpc64 CMAKE_ARGS+= -DENABLE_ASSEMBLY:BOOL=true +.else +CMAKE_ARGS+= -DCPU_POWER8=ON \ + -DENABLE_ALTIVEC=ON +.endif do-test: ${WRKDIR}/.build/test/TestBench .endif CMAKE_ARGS+= -D_END_CUSTOM_OPTIONS=1 CMAKE_ARGS+= -DENABLE_PIC:BOOL=true .include diff --git a/multimedia/x265/files/patch-source_CMakeLists.txt b/multimedia/x265/files/patch-source_CMakeLists.txt index 8758bc33e723..19fa130e3b0e 100644 --- a/multimedia/x265/files/patch-source_CMakeLists.txt +++ b/multimedia/x265/files/patch-source_CMakeLists.txt @@ -1,32 +1,44 @@ ---- source/CMakeLists.txt.orig 2020-06-06 08:18:40 UTC +--- source/CMakeLists.txt.orig 2021-10-31 01:46:10 UTC +++ source/CMakeLists.txt -@@ -122,3 +122,4 @@ +@@ -43,7 +43,7 @@ set(X86_ALIASES x86 i386 i686 x86_64 amd64) + set(ARM_ALIASES armv6l armv7l aarch64) + list(FIND X86_ALIASES "${SYSPROC}" X86MATCH) + list(FIND ARM_ALIASES "${SYSPROC}" ARMMATCH) +-set(POWER_ALIASES ppc64 ppc64le) ++set(POWER_ALIASES powerpc64 powerpc64le ppc64 ppc64le) + list(FIND POWER_ALIASES "${SYSPROC}" POWERMATCH) + if("${SYSPROC}" STREQUAL "" OR X86MATCH GREATER "-1") + set(X86 1) +@@ -121,6 +121,7 @@ if(UNIX) + option(ENABLE_LIBVMAF "Enable VMAF" OFF) if(ENABLE_LIBVMAF) add_definitions(-DENABLE_LIBVMAF) + include_directories(${VMAF_INCLUDE_DIR}) endif() -@@ -592,12 +592,6 @@ if(ENABLE_HDR10_PLUS) + endif(UNIX) + +@@ -592,12 +593,6 @@ if(ENABLE_HDR10_PLUS) ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) endif() -if(SVTHEVC_FOUND) - install(FILES "${SVT_HEVC_INCLUDE_DIR}/EbApi.h" DESTINATION include) - install(FILES "${SVT_HEVC_INCLUDE_DIR}/EbErrorCodes.h" DESTINATION include) - install(FILES "${SVT_HEVC_LIBRARY}" DESTINATION ${LIB_INSTALL_DIR}) -endif() - install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include) if((WIN32 AND ENABLE_CLI) OR (WIN32 AND ENABLE_SHARED)) if(MSVC_IDE) -@@ -649,7 +643,10 @@ if(ENABLE_SHARED) +@@ -649,7 +644,10 @@ if(ENABLE_SHARED) if(EXTRA_LIB) target_link_libraries(x265-shared ${EXTRA_LIB}) endif() - target_link_libraries(x265-shared ${PLATFORM_LIBS}) + if(ENABLE_LIBVMAF) + target_link_libraries(x265-shared ${VMAF}) + endif() + target_link_libraries(x265-shared ${PLATFORM_LIBS}) if(SVTHEVC_FOUND) target_link_libraries(x265-shared ${SVT_HEVC_LIBRARY}) endif(SVTHEVC_FOUND)