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

View File

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

View File

@@ -55,9 +55,11 @@ set(X265_EXTRA_ARGS
) )
if(UNIX) 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 list(APPEND X265_EXTRA_ARGS
-DCMAKE_STATIC_LIBRARY_SUFFIX_C=_unmerged${LIB_SUFFIX}${LIBEXT} -DCMAKE_STATIC_LIBRARY_SUFFIX_C=_unmerged${LIB_SUFFIX}${LIBEXT}.part
-DCMAKE_STATIC_LIBRARY_SUFFIX_CXX=_unmerged${LIB_SUFFIX}${LIBEXT} -DCMAKE_STATIC_LIBRARY_SUFFIX_CXX=_unmerged${LIB_SUFFIX}${LIBEXT}.part
) )
endif() endif()
@@ -130,7 +132,7 @@ if(UNIX)
set(_ar_cmake "${BUILD_DIR}/x265/tmp/x265_ar_script.cmake") set(_ar_cmake "${BUILD_DIR}/x265/tmp/x265_ar_script.cmake")
file(WRITE ${_ar_stdin} "\ file(WRITE ${_ar_stdin} "\
CREATE ${LIBDIR}/x265/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT} 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_10/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT}
ADDLIB ${LIBDIR}/x265_12/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT} ADDLIB ${LIBDIR}/x265_12/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT}
SAVE SAVE
@@ -159,7 +161,7 @@ execute_process(
ExternalProject_Add_Step(external_x265 after_install ExternalProject_Add_Step(external_x265 after_install
COMMAND libtool -static -o COMMAND libtool -static -o
${LIBDIR}/x265/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT} ${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_10/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT}
${LIBDIR}/x265_12/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT} ${LIBDIR}/x265_12/lib/${LIB_PREFIX}x265${LIB_SUFFIX}${LIBEXT}
DEPENDEES install DEPENDEES install

View File

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

View File

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