2023-06-14 22:49:59 +10:00
|
|
|
# SPDX-FileCopyrightText: 2017-2023 Blender Foundation
|
|
|
|
|
#
|
2022-02-11 09:07:11 +11:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
2017-07-25 16:37:55 +02:00
|
|
|
|
|
|
|
|
if(WIN32)
|
2022-07-26 13:17:23 +02:00
|
|
|
# VPX is determined to use pthreads which it will tell ffmpeg to dynamically
|
|
|
|
|
# link, which is not something we're super into distribution wise. However
|
|
|
|
|
# if it cannot find pthread.h it'll happily provide a pthread emulation
|
|
|
|
|
# layer using win32 threads. So all this patch does is make it not find
|
|
|
|
|
# pthead.h
|
|
|
|
|
set(VPX_PATCH ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/vpx/src/external_vpx < ${PATCH_DIR}/vpx_windows.diff)
|
2023-06-10 16:24:17 -06:00
|
|
|
set(VPX_EXTRA_FLAGS --target=x86_64-win64-gcc )
|
2017-07-25 16:37:55 +02:00
|
|
|
else()
|
2017-08-15 12:26:33 +03:00
|
|
|
if(APPLE)
|
2020-07-16 09:25:55 +02:00
|
|
|
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
|
|
|
|
set(VPX_EXTRA_FLAGS --target=generic-gnu)
|
|
|
|
|
else()
|
|
|
|
|
set(VPX_EXTRA_FLAGS --target=x86_64-darwin17-gcc)
|
|
|
|
|
endif()
|
2017-08-15 12:26:33 +03:00
|
|
|
else()
|
|
|
|
|
set(VPX_EXTRA_FLAGS --target=generic-gnu)
|
|
|
|
|
endif()
|
2017-07-25 16:37:55 +02:00
|
|
|
endif()
|
|
|
|
|
|
2022-07-26 13:17:23 +02:00
|
|
|
if(NOT BLENDER_PLATFORM_ARM)
|
|
|
|
|
list(APPEND VPX_EXTRA_FLAGS
|
|
|
|
|
--enable-sse4_1
|
|
|
|
|
--enable-sse3
|
|
|
|
|
--enable-ssse3
|
|
|
|
|
--enable-avx
|
|
|
|
|
--enable-avx2
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
2017-07-25 16:37:55 +02:00
|
|
|
ExternalProject_Add(external_vpx
|
2021-03-16 14:10:30 +01:00
|
|
|
URL file://${PACKAGE_DIR}/${VPX_FILE}
|
2017-07-25 16:37:55 +02:00
|
|
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
2021-03-16 14:10:30 +01:00
|
|
|
URL_HASH ${VPX_HASH_TYPE}=${VPX_HASH}
|
2017-07-25 16:37:55 +02:00
|
|
|
PREFIX ${BUILD_DIR}/vpx
|
2023-06-10 16:24:17 -06:00
|
|
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
2017-07-25 16:37:55 +02:00
|
|
|
cd ${BUILD_DIR}/vpx/src/external_vpx/ &&
|
2017-08-15 12:26:33 +03:00
|
|
|
${CONFIGURE_COMMAND_NO_TARGET} --prefix=${LIBDIR}/vpx
|
2017-07-25 16:37:55 +02:00
|
|
|
--disable-shared
|
|
|
|
|
--enable-static
|
|
|
|
|
--disable-install-bins
|
|
|
|
|
--disable-install-srcs
|
|
|
|
|
--disable-unit-tests
|
|
|
|
|
--disable-examples
|
2019-10-04 14:24:55 +02:00
|
|
|
--enable-vp8
|
|
|
|
|
--enable-vp9
|
2017-07-25 16:37:55 +02:00
|
|
|
${VPX_EXTRA_FLAGS}
|
2023-06-10 16:24:17 -06:00
|
|
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vpx/src/external_vpx/ && make -j${MAKE_THREADS}
|
|
|
|
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/vpx/src/external_vpx/ && make install
|
2022-07-26 13:17:23 +02:00
|
|
|
PATCH_COMMAND ${VPX_PATCH}
|
2017-07-25 16:37:55 +02:00
|
|
|
INSTALL_DIR ${LIBDIR}/vpx
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if(MSVC)
|
|
|
|
|
set_target_properties(external_vpx PROPERTIES FOLDER Mingw)
|
|
|
|
|
endif()
|