--- Makefile (revision 523387) +++ Makefile (working copy) @@ -3,6 +3,7 @@ PORTNAME= x265 PORTVERSION= 3.2.1 +PORTREVISION= 1 CATEGORIES= multimedia MASTER_SITES= https://bitbucket.org/multicoreware/x265/downloads/ \ https://downloads.videolan.org/pub/videolan/x265/ \ @@ -17,20 +18,24 @@ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC:H}/COPYING -BUILD_DEPENDS= nasm:devel/nasm +BUILD_DEPENDS= ${BUILD_DEPENDS_${ARCH}} +BUILD_DEPENDS_amd64= nasm:devel/nasm +BUILD_DEPENDS_i386= nasm:devel/nasm USES= cmake compiler:c++14-lang pathfix OPTIONS_DEFINE= DEBUG OPTIMIZED_FLAGS VMAF -OPTIONS_DEFINE_amd64= HI10P HI12P SVTHEVC +OPTIONS_DEFAULT= OPTIMIZED_FLAGS HI8P HI10P HI12P +OPTIONS_DEFINE_amd64= SVTHEVC +OPTIONS_MULTI= PixelWidth +OPTIONS_MULTI_PixelWidth=HI8P HI10P HI12P + DEBUG_PREVENTS= OPTIMIZED_FLAGS DEBUG_PREVENTS_MSG= Optimizations are incompatible with debugging code -DEBUG_VARS_OFF= CFLAGS+=-DNDEBUG CPPFLAGS+=-DNDEBUG -HI10P_CMAKE_BOOL= HIGH_BIT_DEPTH -HI12P_CMAKE_BOOL= MAIN12 -HI12P_IMPLIES= HI10P -OPTIMIZED_FLAGS_VARS= CFLAGS+=-O3 CXXFLAGS+=-O3 +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" @@ -39,20 +44,62 @@ VMAF_CMAKE_BOOL= ENABLE_LIBVMAF DEBUG_DESC= Enable debugging -HI10P_DESC= Enable HI10P Support (64-bit only) -HI12P_DESC= Enable HI12P Support (64-bit only) +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 +OPTIONS_SUB= yes USE_LDCONFIG= yes -CMAKE_ARGS= -DENABLE_PIC=on -DENABLE_TESTS=on +CMAKE_ARGS= -DENABLE_PIC=on -DENABLE_TESTS=on \ + -DENABLE_HDR10_PLUS:BOOL=true LDFLAGS_i386= -Wl,-znotext EXTRACT_AFTER_ARGS+= --exclude compat PATCH_WRKSRC= ${WRKSRC:H} WRKSRC= ${WRKDIR}/${PORTNAME}_${PORTVERSION}/source +.include + +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 + +CFLAGS+= ${OTHER_DEPTHS:C/HI([0-9]+)P/-DLINKED_\1BIT/} +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+=${WRKSRC:H}/$bbit/libx265.a +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_SHARED:BOOL=false \ + -DEXPORT_C_API:BOOL=false -DENABLE_CLI=false + ${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC:H}/$bbit ${MAKE_ARGS} + ${ECHO_MSG} "---> Built the $b-bit library ---" +.endfor + +.if "${EXTRA_LINK_FLAGS}" +CMAKE_ARGS+= -DEXTRA_LINK_FLAGS=${EXTRA_LINK_FLAGS:Q} +.endif + +CMAKE_ARGS+= -D_END_CUSTOM_OPTIONS=1 + do-test: - ${WRKSRC}/test/TestBench + ${WRKDIR}/.build/test/TestBench .include --- pkg-plist (revision 523387) +++ pkg-plist (working copy) @@ -1,6 +1,9 @@ bin/x265 +include/hdr10plus.h include/x265.h include/x265_config.h +lib/libhdr10plus.a +lib/libhdr10plus.so lib/libx265.a lib/libx265.so lib/libx265.so.179