Build: fix linking FFMPEG & x265 on Linux

This commit is contained in:
Campbell Barton 2024-06-15 14:15:53 +10:00
parent 9266fbab02
commit 8ab246ddde
4 changed files with 22 additions and 5 deletions

@ -277,6 +277,7 @@ else()
harvest(opus/lib ffmpeg/lib "*.a")
harvest(vpx/lib ffmpeg/lib "*.a")
harvest(x264/lib ffmpeg/lib "*.a")
harvest(x265/lib ffmpeg/lib "*.a")
harvest(aom/lib ffmpeg/lib "*.a")
harvest(webp/lib webp/lib "*.a")
harvest(webp/include webp/include "*.h")

@ -55,9 +55,11 @@ set(X265_EXTRA_ARGS
)
if(UNIX)
# Use the suffix `.part` so this library isn't included when installing,
# as the library which is merged is used instead.
list(APPEND X265_EXTRA_ARGS
-DCMAKE_STATIC_LIBRARY_SUFFIX_C=_unmerged${LIB_SUFFIX}${LIBEXT}
-DCMAKE_STATIC_LIBRARY_SUFFIX_CXX=_unmerged${LIB_SUFFIX}${LIBEXT}
-DCMAKE_STATIC_LIBRARY_SUFFIX_C=_unmerged${LIB_SUFFIX}${LIBEXT}.part
-DCMAKE_STATIC_LIBRARY_SUFFIX_CXX=_unmerged${LIB_SUFFIX}${LIBEXT}.part
)
endif()
@ -130,7 +132,7 @@ if(UNIX)
set(_ar_cmake "${BUILD_DIR}/x265/tmp/x265_ar_script.cmake")
file(WRITE ${_ar_stdin} "\
CREATE ${LIBDIR}/x265/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT}
ADDLIB ${LIBDIR}/x265/lib/${LIB_PREFIX}x265${LIB_SUFFIX}_unmerged${LIBEXT}
ADDLIB ${LIBDIR}/x265/lib/${LIB_PREFIX}x265${LIB_SUFFIX}_unmerged${LIBEXT}.part
ADDLIB ${LIBDIR}/x265_10/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT}
ADDLIB ${LIBDIR}/x265_12/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT}
SAVE
@ -159,7 +161,7 @@ execute_process(
ExternalProject_Add_Step(external_x265 after_install
COMMAND libtool -static -o
${LIBDIR}/x265/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT}
${LIBDIR}/x265/lib/${LIB_PREFIX}x265${LIB_SUFFIX}_unmerged${LIBEXT}
${LIBDIR}/x265/lib/${LIB_PREFIX}x265${LIB_SUFFIX}_unmerged${LIBEXT}.part
${LIBDIR}/x265_10/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT}
${LIBDIR}/x265_12/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT}
DEPENDEES install

@ -312,7 +312,9 @@ if(WITH_CODEC_FFMPEG)
theora theoradec theoraenc
vorbis vorbisenc vorbisfile ogg
vpx
x264)
x264
x265
)
if(DEFINED LIBDIR)
if(EXISTS ${LIBDIR}/ffmpeg/lib/libaom.a)
list(APPEND FFMPEG_FIND_COMPONENTS aom)

@ -26,6 +26,7 @@ double __log2_finite(double x);
double __log10_finite(double x);
double __log_finite(double x);
double __pow_finite(double x, double y);
double __atan2_finite(double x, double y);
float __expf_finite(float x);
float __exp2f_finite(float x);
float __acosf_finite(float x);
@ -34,6 +35,7 @@ float __log2f_finite(float x);
float __log10f_finite(float x);
float __logf_finite(float x);
float __powf_finite(float x, float y);
float __atan2f_finite(float x, float y);
double __exp_finite(double x)
{
@ -75,6 +77,11 @@ double __pow_finite(double x, double y)
return pow(x, y);
}
double __atan2_finite(double x, double y)
{
return atan2(x, y);
}
float __expf_finite(float x)
{
return expf(x);
@ -115,6 +122,11 @@ float __powf_finite(float x, float y)
return powf(x, y);
}
float __atan2f_finite(float x, float y)
{
return atan2f(x, y);
}
# endif /* __GLIBC_PREREQ(2, 31) */
# if __GLIBC_PREREQ(2, 34) && defined(WITH_LIBC_MALLOC_HOOK_WORKAROUND)