diff --git a/CHANGES b/CHANGES index eaa95cbb5..1ef7ad1d8 100644 --- a/CHANGES +++ b/CHANGES @@ -10,6 +10,7 @@ Emulation fixes: Other fixes: - All: Correct format strings for some numbers on Windows (fixes mgba.io/i/1794) - All: Correct more format strings on Windows (fixes mgba.io/i/1817) + - CMake: Fix build with libzip 1.7 - GB Core: Fix extracting SRAM when none is present - GBA Savedata: Fix extracting save when not yet configured in-game - Qt: Fix file handle leak on opening an invalid ROM diff --git a/CMakeLists.txt b/CMakeLists.txt index a81a763d4..95f055a1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -613,15 +613,19 @@ if(WANT_SQLITE3 AND NOT USE_SQLITE3) endif() if(USE_LIBZIP) - include_directories(AFTER ${LIBZIP_INCLUDE_DIRS}) - link_directories(${LIBZIP_LIBRARY_DIRS}) - list(APPEND DEPENDENCY_LIB ${LIBZIP_LIBRARIES}) + if(TARGET libzip::zip) + list(APPEND DEPENDENCY_LIB libzip::zip) + else() + include_directories(AFTER ${LIBZIP_INCLUDE_DIRS}) + link_directories(${LIBZIP_LIBRARY_DIRS}) + list(APPEND DEPENDENCY_LIB ${LIBZIP_LIBRARIES}) + endif() list(APPEND FEATURES LIBZIP) list(APPEND VFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-zip.c) string(REGEX MATCH "^[0-9]+" LIBZIP_VERSION_MAJOR "${libzip_VERSION}") if (LIBZIP_VERSION_MAJOR LESS 1) set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS},libzip2") - elseif(LIBZIP_VERSION_MAJOR EQUAL 1) + elseif(LIBZIP_VERSION_MAJOR EQUAL 1 OR NOT LIBZIP_VERSION_MAJOR) set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS},libzip4|libzip5") else() message(AUTHOR_WARNING "Unknown version of libzip detected: ${libzip_VERSION}")