LocalLibXml2.cmake: Avoid duplicates in PREFIXES

If ${AVIF_LIBRARY_PREFIX} is equal to lib, PREFIXES will check for the
prefix "lib" twice. If a compiled libxml2 library exists, we will call
add_library() twice. The second add_library() call will fail.

As a second fix, add an early return after finding a compiled libxml2
library.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 649c6f6..c351c62 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -31,6 +31,8 @@
 * avifdec: The message "[--ignore-icc] Discarding ICC profile.\n" won't be
   printed if the --ignore-icc or --icc option is specified and the image has an
   ICC profile.
+* LocalLibXml2.cmake: Properly handle a libxml2 library compiled by
+  ext/libxml2.cmd.
 
 ## [1.4.2] - 2026-05-26
 
diff --git a/cmake/Modules/LocalLibXml2.cmake b/cmake/Modules/LocalLibXml2.cmake
index e83482f..1af86f0 100644
--- a/cmake/Modules/LocalLibXml2.cmake
+++ b/cmake/Modules/LocalLibXml2.cmake
@@ -1,7 +1,10 @@
 set(AVIF_LIBXML_GIT_TAG "v2.15.3")
 
 # First, whether the library exists.
-set(PREFIXES lib ${AVIF_LIBRARY_PREFIX})
+set(PREFIXES "lib")
+if(NOT AVIF_LIBRARY_PREFIX STREQUAL "lib")
+    list(APPEND PREFIXES ${AVIF_LIBRARY_PREFIX})
+endif()
 set(SUFFIXES "s" "sd" "")
 foreach(PREFIX IN LISTS PREFIXES)
     foreach(SUFFIX IN LISTS SUFFIXES)
@@ -19,14 +22,11 @@
             target_compile_definitions(LibXml2 INTERFACE LIBXML_STATIC)
             target_include_directories(LibXml2 INTERFACE "${AVIF_SOURCE_DIR}/ext/libxml2/install.libavif/include/libxml2")
             add_library(LibXml2::LibXml2 ALIAS LibXml2)
+            return()
         endif()
     endforeach()
 endforeach()
 
-if(TARGET LibXml2::LibXml2)
-    return()
-endif()
-
 message(STATUS "libavif(AVIF_LIBXML2=LOCAL): compiled library not found at ${LIB_FILENAME}; using FetchContent")
 if(EXISTS "${AVIF_SOURCE_DIR}/ext/libxml2")
     message(STATUS "libavif(AVIF_LIBXML2=LOCAL): ext/libxml2 found; using as FetchContent SOURCE_DIR")