CMakeLists.txt 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. project(minizip C)
  2. add_library(minizip STATIC
  3. minizip-ng/mz.h
  4. # minizip-ng/compat/crypt.h
  5. minizip-ng/compat/ioapi.c
  6. minizip-ng/compat/ioapi.h
  7. minizip-ng/compat/unzip.c
  8. minizip-ng/compat/unzip.h
  9. # minizip-ng/compat/zip.c
  10. # minizip-ng/compat/zip.h
  11. minizip-ng/mz_crypt.c
  12. minizip-ng/mz_crypt.h
  13. minizip-ng/mz_os.c
  14. minizip-ng/mz_os.h
  15. minizip-ng/mz_strm.c
  16. minizip-ng/mz_strm.h
  17. minizip-ng/mz_strm_buf.c
  18. minizip-ng/mz_strm_buf.h
  19. # minizip-ng/mz_strm_bzip.c
  20. # minizip-ng/mz_strm_bzip.h
  21. # minizip-ng/mz_strm_libcomp.c
  22. # minizip-ng/mz_strm_libcomp.h
  23. # minizip-ng/mz_strm_lzma.c
  24. # minizip-ng/mz_strm_lzma.h
  25. minizip-ng/mz_strm_mem.c
  26. minizip-ng/mz_strm_mem.h
  27. minizip-ng/mz_strm_os.h
  28. # minizip-ng/mz_strm_pkcrypt.c
  29. # minizip-ng/mz_strm_pkcrypt.h
  30. minizip-ng/mz_strm_split.c
  31. minizip-ng/mz_strm_split.h
  32. # minizip-ng/mz_strm_wzaes.c
  33. # minizip-ng/mz_strm_wzaes.h
  34. minizip-ng/mz_strm_zlib.c
  35. minizip-ng/mz_strm_zlib.h
  36. # minizip-ng/mz_strm_zstd.c
  37. # minizip-ng/mz_strm_zstd.h
  38. minizip-ng/mz_zip.c
  39. minizip-ng/mz_zip.h
  40. minizip-ng/mz_zip_rw.c
  41. minizip-ng/mz_zip_rw.h
  42. )
  43. dolphin_disable_warnings(minizip)
  44. if (UNIX)
  45. target_sources(minizip PRIVATE
  46. minizip-ng/mz_os_posix.c
  47. minizip-ng/mz_strm_os_posix.c
  48. )
  49. endif()
  50. if (WIN32)
  51. target_sources(minizip PRIVATE
  52. minizip-ng/mz_os_win32.c
  53. minizip-ng/mz_strm_os_win32.c
  54. )
  55. endif()
  56. # Unused files
  57. # minizip-ng/minigzip.c
  58. # minizip-ng/minizip.c
  59. # minizip-ng/mz_crypt_apple.c
  60. # minizip-ng/mz_crypt_openssl.c
  61. # minizip-ng/mz_crypt_winvista.c
  62. # minizip-ng/mz_crypt_winxp.c
  63. target_include_directories(minizip PUBLIC minizip-ng minizip-ng/compat)
  64. target_compile_definitions(minizip PRIVATE HAVE_ZLIB ZLIB_COMPAT MZ_ZIP_NO_CRYPTO MZ_ZIP_NO_ENCRYPTION)
  65. if (UNIX)
  66. target_compile_definitions(minizip PRIVATE _POSIX_C_SOURCE=200112L)
  67. target_compile_definitions(minizip PRIVATE __USE_LARGEFILE64 _LARGEFILE64_SOURCE)
  68. endif()
  69. check_include_file(stdint.h HAVE_STDINT_H)
  70. if (HAVE_STDINT_H)
  71. target_compile_definitions(minizip PRIVATE HAVE_STDINT_H)
  72. endif()
  73. check_include_file(inttypes.h HAVE_INTTYPES_H)
  74. if (HAVE_INTTYPES_H)
  75. target_compile_definitions(minizip PRIVATE HAVE_INTTYPES_H)
  76. endif()
  77. check_function_exists(fseeko HAVE_FSEEKO)
  78. if (NOT HAVE_FSEEKO)
  79. target_compile_definitions(minizip PRIVATE NO_FSEEKO)
  80. endif()
  81. target_link_libraries(minizip PUBLIC ZLIB::ZLIB)
  82. add_library(minizip::minizip ALIAS minizip)