CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT)
IF(NOT HAVE_GETOPT)
  SET(SRC_EXTRA_FILES ../src/getopt.c)
ENDIF()

SET(TEST_PROGRAMS
  add_from_filep
  fopen_unchanged
  fseek
  nonrandomopentest
)

SET(GETOPT_USERS
  fread
  tryopen
)

ADD_EXECUTABLE(can_clone_file can_clone_file.c)

SET(ENV{srcdir} ${CMAKE_CURRENT_SOURCE_DIR})
FOREACH(PROGRAM ${TEST_PROGRAMS})
  ADD_EXECUTABLE(${PROGRAM} ${PROGRAM}.c)
  TARGET_LINK_LIBRARIES(${PROGRAM} zip)
ENDFOREACH()

ADD_EXECUTABLE(hole hole.c ${SRC_EXTRA_FILES} source_hole.c)
TARGET_LINK_LIBRARIES(hole zip)

ADD_EXECUTABLE(ziptool_regress ziptool_regress.c ${SRC_EXTRA_FILES} source_hole.c)
TARGET_LINK_LIBRARIES(ziptool_regress zip)

#ADD_LIBRARY(malloc MODULE malloc.c)
#TARGET_LINK_LIBRARIES(malloc ${CMAKE_DL_LIBS})
ADD_LIBRARY(nonrandomopen MODULE nonrandomopen.c)
TARGET_LINK_LIBRARIES(nonrandomopen ${CMAKE_DL_LIBS})

FOREACH(PROGRAM ${GETOPT_USERS})
  ADD_EXECUTABLE(${PROGRAM} ${PROGRAM}.c ${SRC_EXTRA_FILES})
  TARGET_LINK_LIBRARIES(${PROGRAM} zip)
ENDFOREACH()

# for appveyor builds
#SET(CMAKE_MSVCIDE_RUN_PATH C:/projects/libzip/vstudio/zlib/installed/bin;C:/projects/libzip/vstudio/zlib/installed/lib;C:/projects/libzip/build/lib/Release)

ADD_CUSTOM_TARGET(cleanup
    COMMAND ${CMAKE_COMMAND} -DDIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/cleanup.cmake
    )

ADD_CUSTOM_TARGET(testinput
  ALL
  VERBATIM
  COMMAND cmake -E tar x ${CMAKE_CURRENT_SOURCE_DIR}/manyfiles-zip.zip
  COMMAND cmake -E tar x ${CMAKE_CURRENT_SOURCE_DIR}/bigzero-zip.zip
  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/manyfiles-zip.zip ${CMAKE_CURRENT_SOURCE_DIR}/bigzero-zip.zip
)

SET_PROPERTY(DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
  bigzero.zip
  manyfiles-133000.zip
  manyfiles-65536.zip
  manyfiles-fewer.zip
  manyfiles-more.zip
  manyfiles-zip64-modulo.zip
  manyfiles-zip64.zip
  manyfiles.zip
)

SET(EXTRA_TESTS
	add_dir.test
	add_from_buffer.test
	add_from_file.test
	add_from_file_duplicate.test
	add_from_file_twice_duplicate.test
	add_from_filep.test
	add_from_stdin.test
	add_from_zip_closed.test
	add_from_zip_deflated.test
	add_from_zip_deflated2.test
	add_from_zip_partial_deflated.test
	add_from_zip_partial_stored.test
	add_from_zip_stored.test
	add_stored.test
	add_stored_in_memory.test
	buffer-fragment-read.test
	buffer-fragment-write.test
	clone-buffer-add.test
	clone-buffer-delete.test
	clone-buffer-replace.test
	clone-fs-add.test
	clone-fs-delete.test
	clone-fs-replace.test
	cm-default.test
	count_entries.test
	decrypt-correct-password-aes128.test
	decrypt-correct-password-aes192.test
	decrypt-correct-password-aes256.test
	decrypt-correct-password-pkware.test
	decrypt-no-password-aes256.test
	decrypt-wrong-password-aes128.test
	decrypt-wrong-password-aes192.test
	decrypt-wrong-password-aes256.test
	decrypt-wrong-password-pkware.test
	delete_add_same.test
	delete_invalid.test
	delete_last.test
	delete_multiple_last.test
	delete_multiple_partial.test
	delete_renamed_rename.test
	encrypt.test
	encryption-nonrandom-aes128.test
	encryption-nonrandom-aes192.test
	encryption-nonrandom-aes256.test
	encryption-remove.test
	extra_add.test
	extra_add_multiple.test
	extra_count.test
	extra_count_by_id.test
	extra_count_ignore_zip64.test
	extra_delete.test
	extra_delete_by_id.test
	extra_field_align.test
	extra_get.test
	extra_get_by_id.test
	extra_set.test
	extra_set_modify_c.test
	extra_set_modify_l.test
	fdopen_ok.test
	file_comment_encmismatch.test
	fopen_unchanged.test
	fread.test
	fseek_deflated.test
	fseek_fail.test
	fseek_ok.test
	get_comment.test
	junk_at_end.test
	junk_at_start.test
	name_locate.test
	open_cons_extrabytes.test
	open_empty.test
	open_empty_2.test
	open_extrabytes.test
	open_file_count.test
	open_filename_duplicate.test
	open_filename_duplicate_consistency.test
	open_filename_duplicate_empty.test
	open_filename_duplicate_empty_consistency.test
	open_filename_empty.test
	open_incons.test
	open_many_fail.test
	open_many_ok.test
	open_multidisk.test
	open_new_but_exists.test
	open_new_ok.test
	open_nonarchive.test
	open_nosuchfile.test
	open_ok.test
	open_too_short.test
	open_truncate.test
	open_zip64_3mf.test
	open_zip64_ok.test
	preload.test
	progress.test
	rename_ascii.test
	rename_cp437.test
	rename_deleted.test
	rename_fail.test
	rename_ok.test
	rename_utf8.test
	rename_utf8_encmismatch.test
	set_comment_all.test
	set_comment_localonly.test
	set_comment_removeglobal.test
	set_comment_revert.test
	set_compression_bzip2_to_deflate.test
	set_compression_deflate_to_bzip2.test
	set_compression_deflate_to_deflate.test
	set_compression_deflate_to_store.test
	set_compression_store_to_bzip2.test
	set_compression_store_to_deflate.test
	set_compression_store_to_store.test
	set_compression_store_to_xz.test
	set_compression_unknown.test
	set_compression_xz_to_store.test
	stat_index_cp437_guess.test
	stat_index_cp437_raw.test
	stat_index_cp437_strict.test
	stat_index_fileorder.test
	stat_index_streamed.test
	stat_index_streamed_zip64.test
	stat_index_utf8_guess.test
	stat_index_utf8_raw.test
	stat_index_utf8_strict.test
	stat_index_utf8_unmarked_strict.test
	stat_index_zip64.test
	utf-8-standardization.test
	zip-in-archive-comment.test
	zip64_creation.test
	zip64_stored_creation.test
)


set(path "$<TARGET_FILE_DIR:zip>;$ENV{PATH}")
if (TARGET zlib)
  set(path "$<TARGET_FILE_DIR:zlib>;${path}")
endif()
string(REPLACE ";" "\\;" path "${path}")

FOREACH(CASE ${EXTRA_TESTS})
  ADD_TEST(NAME ${CASE} COMMAND perl ${CMAKE_CURRENT_BINARY_DIR}/runtest ${CMAKE_CURRENT_SOURCE_DIR}/${CASE})
  SET_TESTS_PROPERTIES(${CASE} PROPERTIES SKIP_RETURN_CODE 77)
  SET_TESTS_PROPERTIES(${CASE} PROPERTIES ENVIRONMENT "PATH=${path}")
ENDFOREACH()

INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/../lib ${CMAKE_CURRENT_SOURCE_DIR}/../src ${CMAKE_CURRENT_BINARY_DIR}/..)

ADD_CUSTOM_TARGET(check COMMAND ${CMAKE_CTEST_COMMAND})

ADD_EXECUTABLE(fuzz_main fuzz_main.c)
TARGET_LINK_LIBRARIES(fuzz_main zip)
