blob: 032e980d74ee323b5b10ce5a0e70260cc5b1431f (
plain)
1 # Description: Open Source H265/HEVC video encoder.
2 # URL: https://bitbucket.org/multicoreware/x265_git/wiki/Home
3 # Maintainer: Danny Rawlins, crux at romster dot me
4 # Depends on: cmake
5
6 name=x265
7 version=3.4
8 release=1
9 source=(#https://bitbucket.org/multicoreware/$name/downloads/${name}_$version.tar.gz
10 https://crux.ster.zone/downloads/$name/${name}_$version.tar.gz)
11
12 build() {
13 [[ -e '/usr/bin/ninja' ]] && PKGMK_X265+=' -G Ninja'
14
15 # common args
16 local common_args=(
17 -D CMAKE_INSTALL_PREFIX=/usr
18 -D CMAKE_BUILD_TYPE=Release
19 -D CMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS -Wno-restrict -Wno-format-overflow"
20 -D CMAKE_ASM_NASM_FLAGS_RELEASE=' -wno-macro-params-legacy'
21 -D HIGH_BIT_DEPTH=TRUE
22 -D EXPORT_C_API=FALSE
23 -D ENABLE_CLI=FALSE
24 -D ENABLE_SHARED=FALSE
25 )
26
27 # build 12
28 cmake -S $SRC/${name}_$version/source -B build-12 $PKGMK_X265 \
29 -D MAIN12=TRUE \
30 "${common_args[@]}" \
31 -Wno-dev
32 cmake --build build-12
33
34 # build 10
35 cmake -S $SRC/${name}_$version/source -B build-10 $PKGMK_X265 \
36 "${common_args[@]}" \
37 -Wno-dev
38 cmake --build build-10
39
40 # build 8
41 mkdir build-8
42 ln -s $SRC/build-12/libx265.a $SRC/build-8/libx265_main12.a
43 ln -s $SRC/build-10/libx265.a $SRC/build-8/libx265_main10.a
44
45 cmake -S $SRC/${name}_$version/source -B build-8 $PKGMK_X265 \
46 "${common_args[@]:0:10}" \
47 -D ENABLE_SHARED=TRUE \
48 -D EXTRA_LIB='x265_main10.a;x265_main12.a' \
49 -D EXTRA_LINK_FLAGS='-L.' \
50 -D LINKED_10BIT=TRUE \
51 -D LINKED_12BIT=TRUE \
52 -Wno-dev
53 cmake --build build-8
54 DESTDIR=$PKG cmake --install build-8
55 }
|