From 45102247a82396fabac5241c64305b13ed711335 Mon Sep 17 00:00:00 2001 From: Vincent Rabaud Date: Tue, 23 Dec 2025 17:09:14 +0100 Subject: [PATCH] Use proper image dependency targets now that CMake >= 3.16 This removes some include_directories that can create confusion on OSX. BUG: 470992419 Change-Id: I213c8b0482be6bce845852773557f92821e897d3 --- CMakeLists.txt | 27 +++++++-------------------- cmake/deps.cmake | 35 +---------------------------------- 2 files changed, 8 insertions(+), 54 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d9d4105..c4db2b3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,7 +102,6 @@ endif() set(SHARPYUV_DEP_LIBRARIES) set(SHARPYUV_DEP_INCLUDE_DIRS) set(WEBP_DEP_LIBRARIES) -set(WEBP_DEP_INCLUDE_DIRS) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release" @@ -211,7 +210,7 @@ if(ANDROID) set(cpufeatures_include_dir ${ANDROID_NDK}/sources/android/cpufeatures) set(SHARPYUV_DEP_INCLUDE_DIRS ${SHARPYUV_DEP_INCLUDE_DIRS} ${cpufeatures_include_dir}) - set(WEBP_DEP_INCLUDE_DIRS ${WEBP_DEP_INCLUDE_DIRS} ${cpufeatures_include_dir}) + include_directories(AFTER SYSTEM ${cpufeatures_include_dir}) add_definitions(-DHAVE_CPU_FEATURES_H=1) set(HAVE_CPU_FEATURES_H 1) else() @@ -379,7 +378,6 @@ if(MSVC) else() add_compile_options(-Wall) endif() -include_directories(${WEBP_DEP_INCLUDE_DIRS}) add_library(webpdspdecode OBJECT ${WEBP_DSP_COMMON_SRCS} ${WEBP_DSP_DEC_SRCS}) target_include_directories(webpdspdecode PUBLIC ${CMAKE_CURRENT_BINARY_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) @@ -498,12 +496,9 @@ if(NOT WEBP_BUILD_LIBWEBPMUX) set(WEBP_BUILD_WEBPMUX OFF) endif() -if(WEBP_BUILD_GIF2WEBP AND NOT GIF_FOUND) - set(WEBP_BUILD_GIF2WEBP OFF) -endif() - -if(WEBP_BUILD_ANIM_UTILS AND NOT GIF_FOUND) +if(NOT GIF_FOUND) set(WEBP_BUILD_ANIM_UTILS OFF) + set(WEBP_BUILD_GIF2WEBP OFF) endif() # Build the executables if asked for. @@ -542,14 +537,12 @@ if(WEBP_BUILD_ANIM_UTILS parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/imageio "IMAGEENC_SRCS" "imageenc_[^ ]*") add_library(imageenc STATIC ${IMAGEENC_SRCS}) - target_link_libraries(imageenc imageioutil webp) + target_link_libraries(imageenc imageioutil webp ${WEBP_DEP_IMG_LIBRARIES}) set_property( TARGET exampleutil imageioutil imagedec imageenc PROPERTY INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src) - target_include_directories(imagedec PRIVATE ${WEBP_DEP_IMG_INCLUDE_DIRS}) - target_include_directories(imageenc PRIVATE ${WEBP_DEP_IMG_INCLUDE_DIRS}) endif() if(WEBP_BUILD_DWEBP) @@ -589,19 +582,17 @@ endif() if(WEBP_BUILD_GIF2WEBP) # gif2webp - include_directories(${WEBP_DEP_GIF_INCLUDE_DIRS}) parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "GIF2WEBP_SRCS" "gif2webp") add_executable(gif2webp ${GIF2WEBP_SRCS}) target_link_libraries(gif2webp exampleutil imageioutil webp libwebpmux - ${WEBP_DEP_GIF_LIBRARIES}) + GIF::GIF) target_include_directories(gif2webp PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src) install(TARGETS gif2webp RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() if(WEBP_BUILD_IMG2WEBP) # img2webp - include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "IMG2WEBP_SRCS" "img2webp") add_executable(img2webp ${IMG2WEBP_SRCS}) @@ -615,7 +606,6 @@ if(WEBP_BUILD_VWEBP) # vwebp find_package(GLUT) if(GLUT_FOUND) - include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "VWEBP_SRCS" "vwebp") add_executable(vwebp ${VWEBP_SRCS}) target_link_libraries( @@ -641,7 +631,6 @@ endif() if(WEBP_BUILD_WEBPINFO) # webpinfo - include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "WEBPINFO_SRCS" "webpinfo") add_executable(webpinfo ${WEBPINFO_SRCS}) @@ -764,7 +753,6 @@ endif() if(WEBP_BUILD_ANIM_UTILS) # anim_diff - include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS} ${WEBP_DEP_GIF_INCLUDE_DIRS}) parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "ANIM_DIFF_SRCS" "anim_diff") add_executable(anim_diff ${ANIM_DIFF_SRCS}) @@ -776,11 +764,10 @@ if(WEBP_BUILD_ANIM_UTILS) imageioutil webp webpdemux - ${WEBP_DEP_GIF_LIBRARIES}) + GIF::GIF) target_include_directories(anim_diff PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src) # anim_dump - include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS} ${WEBP_DEP_GIF_INCLUDE_DIRS}) parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "ANIM_DUMP_SRCS" "anim_dump") add_executable(anim_dump ${ANIM_DUMP_SRCS}) @@ -792,7 +779,7 @@ if(WEBP_BUILD_ANIM_UTILS) imageioutil webp webpdemux - ${WEBP_DEP_GIF_LIBRARIES}) + GIF::GIF) target_include_directories(anim_dump PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src) endif() diff --git a/cmake/deps.cmake b/cmake/deps.cmake index 0760ba92..3c6537b0 100644 --- a/cmake/deps.cmake +++ b/cmake/deps.cmake @@ -73,7 +73,6 @@ endif() # Find the standard image libraries. set(WEBP_DEP_IMG_LIBRARIES) -set(WEBP_DEP_IMG_INCLUDE_DIRS) if(WEBP_FIND_IMG_LIBS) foreach(I_LIB PNG JPEG TIFF) # Disable tiff when compiling in static mode as it is failing on Ubuntu. @@ -84,46 +83,14 @@ if(WEBP_FIND_IMG_LIBS) find_package(${I_LIB}) set(WEBP_HAVE_${I_LIB} ${${I_LIB}_FOUND}) if(${I_LIB}_FOUND) - list(APPEND WEBP_DEP_IMG_LIBRARIES ${${I_LIB}_LIBRARIES}) - list(APPEND WEBP_DEP_IMG_INCLUDE_DIRS ${${I_LIB}_INCLUDE_DIR} - ${${I_LIB}_INCLUDE_DIRS}) + list(APPEND WEBP_DEP_IMG_LIBRARIES ${I_LIB}::${I_LIB}) endif() endforeach() - if(WEBP_DEP_IMG_INCLUDE_DIRS) - list(REMOVE_DUPLICATES WEBP_DEP_IMG_INCLUDE_DIRS) - endif() # GIF detection, gifdec isn't part of the imageio lib. include(CMakePushCheckState) - set(WEBP_DEP_GIF_LIBRARIES) - set(WEBP_DEP_GIF_INCLUDE_DIRS) find_package(GIF) set(WEBP_HAVE_GIF ${GIF_FOUND}) - if(GIF_FOUND) - # GIF find_package only locates the header and library, it doesn't fail - # compile tests when detecting the version, but falls back to 3 (as of at - # least cmake 3.7.2). Make sure the library links to avoid incorrect - # detection when cross compiling. - cmake_push_check_state() - set(CMAKE_REQUIRED_LIBRARIES ${GIF_LIBRARIES}) - set(CMAKE_REQUIRED_INCLUDES ${GIF_INCLUDE_DIR}) - check_c_source_compiles( - " - #include - int main(void) { - (void)DGifOpenFileHandle; - return 0; - } - " - GIF_COMPILES) - cmake_pop_check_state() - if(GIF_COMPILES) - list(APPEND WEBP_DEP_GIF_LIBRARIES ${GIF_LIBRARIES}) - list(APPEND WEBP_DEP_GIF_INCLUDE_DIRS ${GIF_INCLUDE_DIR}) - else() - unset(GIF_FOUND) - endif() - endif() endif() # Check for specific headers.