Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set some dependency options to be multi-choice. #1758

Merged
merged 8 commits into from
Nov 21, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix Android CI and libsharpyuv
  • Loading branch information
vrabaud committed Nov 21, 2023
commit 8cb12a18ee7460091a902f85a511d91feac85ee8
3 changes: 1 addition & 2 deletions .github/workflows/ci-disable-gtest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,7 @@ jobs:
-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF
-DAVIF_CODEC_AOM=LOCAL -DAVIF_CODEC_DAV1D=LOCAL
-DAVIF_CODEC_RAV1E=LOCAL -DAVIF_CODEC_SVT=LOCAL
-DAVIF_LIBYUV=LOCAL
-DAVIF_LOCAL_LIBSHARPYUV=ON
-DAVIF_LIBYUV=LOCAL -DAVIF_LIBSHARPYUV=LOCAL
-DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
-DAVIF_BUILD_TESTS=ON -DAVIF_ENABLE_GTEST=OFF
- name: Build libavif (ninja)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-unix-shared-local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:
-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON
-DAVIF_CODEC_AOM=LOCAL -DAVIF_CODEC_DAV1D=LOCAL
-DAVIF_LIBYUV=${{ matrix.libyuv }}
-DAVIF_LOCAL_LIBSHARPYUV=ON
-DAVIF_LIBSHARPYUV=LOCAL
-DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
-DAVIF_BUILD_TESTS=ON -DAVIF_ENABLE_GTEST=ON -DAVIF_LOCAL_GTEST=ON
- name: Build libavif (ninja)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-unix-static-av2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
-DAVIF_CODEC_RAV1E=${{ matrix.also-enable-av1-codecs }}
-DAVIF_CODEC_SVT=${{ matrix.also-enable-av1-codecs }}
-DAVIF_LIBYUV=LOCAL
-DAVIF_LOCAL_LIBSHARPYUV=ON
-DAVIF_LIBSHARPYUV=LOCAL
-DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
-DAVIF_BUILD_TESTS=ON -DAVIF_ENABLE_GTEST=ON -DAVIF_LOCAL_GTEST=ON
- name: Build libavif (ninja)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-unix-static.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:
-DAVIF_CODEC_AOM=LOCAL -DAVIF_CODEC_DAV1D=LOCAL
-DAVIF_CODEC_RAV1E=LOCAL -DAVIF_CODEC_SVT=LOCAL
-DAVIF_CODEC_LIBGAV1=LOCAL -DAVIF_LIBYUV=LOCAL
-DAVIF_LOCAL_LIBSHARPYUV=ON
-DAVIF_LIBSHARPYUV=LOCAL
-DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
-DAVIF_BUILD_TESTS=ON -DAVIF_ENABLE_GTEST=ON -DAVIF_LOCAL_GTEST=ON
-DAVIF_ENABLE_EXPERIMENTAL_YCGCO_R=ON
Expand Down
9 changes: 4 additions & 5 deletions .github/workflows/ci-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,11 +105,10 @@ jobs:

cmake .. -G Ninja
-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF
-DAVIF_CODEC_AOM=LOCAL
-DAVIF_CODEC_DAV1D=LOCAL -DAVIF_CODEC_RAV1E=LOCAL
-DAVIF_CODEC_SVT=LOCAL -DAVIF_CODEC_LIBGAV1=LOCAL
-DAVIF_LIBYUV=LOCAL -DAVIF_LOCAL_JPEG=ON
-DAVIF_LOCAL_LIBSHARPYUV=ON
-DAVIF_CODEC_AOM=LOCAL -DAVIF_CODEC_DAV1D=LOCAL
-DAVIF_CODEC_RAV1E=LOCAL -DAVIF_CODEC_SVT=LOCAL
-DAVIF_CODEC_LIBGAV1=LOCAL -DAVIF_LIBYUV=LOCAL
-DAVIF_LOCAL_JPEG=ON -DAVIF_LIBSHARPYUV=LOCAL
-DAVIF_LOCAL_ZLIBPNG=ON
-DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
-DAVIF_BUILD_TESTS=ON -DAVIF_ENABLE_GTEST=ON -DAVIF_LOCAL_GTEST=ON
Expand Down
18 changes: 9 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,12 @@ option(AVIF_ENABLE_EXPERIMENTAL_GAIN_MAP
)
option(AVIF_ENABLE_EXPERIMENTAL_AVIR "Enable experimental reduced header" OFF)

macro(set_local_system_option VAR DEFAULT TEXT)
macro(set_local_or_system_option VAR DEFAULT TEXT)
# Deal with the older way of setting options.
if(DEFINED AVIF_LOCAL_${VAR})
set(DEFAULT ${AVIF_LOCAL_${VAR}})
elseif(DEFINED AVIF_${VAR})
set(DEFAULT ${AVIF_${VAR}})
endif()
set(AVIF_${VAR} ${DEFAULT} CACHE STRING ${TEXT} FORCE)
set_property(CACHE AVIF_${VAR} PROPERTY STRINGS OFF LOCAL SYSTEM)
Expand All @@ -62,7 +64,7 @@ macro(set_codec_option CODEC NAME ENCDEC EXTRA)
else()
set(AOM_CODEC_DEFAULT "OFF")
endif()
set_local_system_option("CODEC_${CODEC}" ${AOM_CODEC_DEFAULT} "Use the ${NAME} codec for ${ENCDEC}${EXTRA}")
set_local_or_system_option("CODEC_${CODEC}" ${AOM_CODEC_DEFAULT} "Use the ${NAME} codec for ${ENCDEC}${EXTRA}")
endmacro()
set_codec_option(AOM "AOM" "encoding/decoding" " (see AVIF_CODEC_AOM_DECODE/AVIF_CODEC_AOM_ENCODE)")
set_codec_option(DAV1D "dav1d" "decoding" "")
Expand Down Expand Up @@ -186,7 +188,7 @@ if(AVIF_LOCAL_JPEG)
endif()
endif()

set_local_system_option("LIBYUV" "OFF" "Use libyuv.")
set_local_or_system_option("LIBYUV" "OFF" "Use libyuv.")
if(AVIF_LIBYUV STREQUAL "LOCAL")
set(AVIF_LIBYUV_BUILD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ext/libyuv/build")

Expand All @@ -197,7 +199,7 @@ if(AVIF_LIBYUV STREQUAL "LOCAL")
set(LIB_FILENAME "${AVIF_LIBYUV_BUILD_DIR}/${AVIF_LIBRARY_PREFIX}yuv${CMAKE_STATIC_LIBRARY_SUFFIX}")

if(NOT EXISTS "${LIB_FILENAME}")
message(FATAL_ERROR "libavif(AVIF_LOCAL_LIBYUV): ${LIB_FILENAME} is missing, bailing out")
message(FATAL_ERROR "libavif(AVIF_LIBYUV): ${LIB_FILENAME} is missing, bailing out")
vrabaud marked this conversation as resolved.
Show resolved Hide resolved
endif()
if(("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") OR (DEFINED ANDROID_ABI))
set(LIBYUV_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ext/libyuv/include")
Expand Down Expand Up @@ -234,11 +236,11 @@ if(libyuv_FOUND)
set(AVIF_PLATFORM_LIBRARIES ${AVIF_PLATFORM_LIBRARIES} ${LIBYUV_LIBRARY})
endif(libyuv_FOUND)

set_local_system_option("LIBSHARPYUV" "OFF" "Use libsharpyuv.")
set_local_or_system_option("LIBSHARPYUV" "OFF" "Use libsharpyuv.")
if(AVIF_LIBSHARPYUV STREQUAL "LOCAL")
set(LIB_FILENAME "${CMAKE_CURRENT_SOURCE_DIR}/ext/libwebp/build/libsharpyuv${CMAKE_STATIC_LIBRARY_SUFFIX}")
if(NOT EXISTS "${LIB_FILENAME}")
message(FATAL_ERROR "libavif(AVIF_LOCAL_LIBSHARPYUV): ${LIB_FILENAME} is missing, bailing out")
message(FATAL_ERROR "libavif(AVIF_LIBSHARPYUV): ${LIB_FILENAME} is missing, bailing out")
vrabaud marked this conversation as resolved.
Show resolved Hide resolved
endif()
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
set(LIBSHARPYUV_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ext/libwebp")
Expand All @@ -254,14 +256,12 @@ endif()
if(libsharpyuv_FOUND)
message(STATUS "libavif: libsharpyuv found; sharp rgb to yuv conversion enabled.")
set(AVIF_PLATFORM_DEFINITIONS ${AVIF_PLATFORM_DEFINITIONS} -DAVIF_LIBSHARPYUV_ENABLED=1)
if(AVIF_LOCAL_LIBSHARPYUV)
if(AVIF_LIBSHARPYUV STREQUAL "LOCAL")
set(AVIF_PLATFORM_INCLUDES ${AVIF_PLATFORM_INCLUDES} ${LIBSHARPYUV_INCLUDE_DIR})
else()
set(AVIF_PLATFORM_SYSTEM_INCLUDES ${AVIF_PLATFORM_SYSTEM_INCLUDES} ${LIBSHARPYUV_INCLUDE_DIR})
endif()
set(AVIF_PLATFORM_LIBRARIES ${AVIF_PLATFORM_LIBRARIES} ${LIBSHARPYUV_LIBRARY})
else(libsharpyuv_FOUND)
message(STATUS "libavif: libsharpyuv not found")
endif(libsharpyuv_FOUND)

option(AVIF_LOCAL_LIBXML2 "Build libxml2 by providing your own copy inside the ext subdir. \
Expand Down
2 changes: 1 addition & 1 deletion android_jni/avifandroidjni/src/main/jni/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ project(avif_android_jni)
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)

# To disable dav1d, change the following two variables to OFF.
set(AVIF_CODEC_DAV1D "LOCAL" CACHE BOOL "" FORCE)
set(AVIF_CODEC_DAV1D "LOCAL" CACHE STRING "" FORCE)

# To disable libyuv, change this variable to OFF.
set(AVIF_LIBYUV "LOCAL" CACHE STRING "" FORCE)
Expand Down
2 changes: 1 addition & 1 deletion ext/libsharpyuv.cmd
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
: # If you want to use a local build of libsharpyuv, you must clone the libwebp repo in this directory first,
: # then enable CMake's AVIF_LOCAL_LIBSHARPYUV option.
: # then set CMake's AVIF_LIBSHARPYUV to LOCAL.

: # The odd choice of comment style in this file is to try to share this script between *nix and win32.

Expand Down