annotate cmake/FindZIP.cmake @ 641:fcd124e513ea

core: reintroduce VFS
author David Demelier <markand@malikania.fr>
date Sun, 01 Oct 2023 09:18:01 +0200
parents 9850089c9671
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
640
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 # FindZIP
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # -------
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Find libzip library, this modules defines:
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # ZIP_INCLUDE_DIRS, where to find zip.h
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # ZIP_LIBRARIES, where to find library
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # ZIP_FOUND, if it is found
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 #
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # The following imported targets will be available:
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 #
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # ZIP::ZIP, if found.
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
13
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 find_package(ZLIB QUIET)
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
15
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 find_path(
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 ZIP_INCLUDE_DIR
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 NAMES zip.h
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 )
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 find_library(
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 ZIP_LIBRARY
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 NAMES zip libzip
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 )
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 find_path(
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 ZIPCONF_INCLUDE_DIR
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 NAMES zipconf.h
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 )
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 if (NOT ZIPCONF_INCLUDE_DIR)
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 # zipconf.h is sometimes directly in the include/ folder but on some systems
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 # like Windows, it is installed in the lib/ directory.
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 get_filename_component(_ZIP_PRIVATE_LIBRARY "${ZIP_LIBRARY}" DIRECTORY)
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 find_path(
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 ZIPCONF_INCLUDE_DIR
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 NAMES zipconf.h
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 PATHS "${_ZIP_PRIVATE_LIBRARY}/libzip/include"
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 )
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 endif ()
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 include(FindPackageHandleStandardArgs)
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 find_package_handle_standard_args(
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 ZIP
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 REQUIRED_VARS ZLIB_LIBRARIES ZLIB_INCLUDE_DIRS ZIP_LIBRARY ZIP_INCLUDE_DIR ZIPCONF_INCLUDE_DIR
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 )
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
49
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 if (ZIP_FOUND)
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 set(ZIP_LIBRARIES ${ZIP_LIBRARY} ${ZLIB_LIBRARIES})
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 set(ZIP_INCLUDE_DIRS ${ZIP_INCLUDE_DIR} ${ZIPCONF_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS})
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 if (NOT TARGET ZIP::ZIP)
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 add_library(ZIP::ZIP UNKNOWN IMPORTED)
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 set_target_properties(
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 ZIP::ZIP
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 PROPERTIES
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 IMPORTED_LOCATION "${ZIP_LIBRARY}"
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 INTERFACE_INCLUDE_DIRECTORIES "${ZIP_INCLUDE_DIRS}"
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 )
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 endif ()
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 endif ()
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
65
9850089c9671 core: resurrect VFS
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 mark_as_advanced(ZIP_LIBRARY ZIP_INCLUDE_DIR ZIPCONF_INCLUDE_DIR)