cmake: modernize usage more
remove include_directories, use foreach(... IN LISTS ...)
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 0b8b8ec..9a6a677 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -208,6 +208,7 @@
endif()
add_library(zip ${LIBZIP_SOURCES} ${LIBZIP_EXTRA_FILES} ${LIBZIP_OPTIONAL_FILES} ${LIBZIP_OPSYS_FILES})
+add_library(libzip::zip ALIAS zip)
if(SHARED_LIB_VERSIONNING)
set_target_properties(zip PROPERTIES VERSION 5.3 SOVERSION 5)
diff --git a/regress/CMakeLists.txt b/regress/CMakeLists.txt
index 0c31117..d5a263c 100644
--- a/regress/CMakeLists.txt
+++ b/regress/CMakeLists.txt
@@ -7,40 +7,52 @@
add_from_filep
fopen_unchanged
fseek
+ fuzz_main
nonrandomopentest
)
+set(DL_USERS
+ # malloc
+ nonrandomopen
+)
+
set(GETOPT_USERS
fread
tryopen
)
+set(HOLE_USERS
+ hole
+ ziptool_regress
+)
+
+set(ALL_PROGRAMS ${TEST_PROGRAMS} ${DL_USERS} ${GETOPT_USERS} ${HOLE_USERS})
add_executable(can_clone_file can_clone_file.c)
set(ENV{srcdir} ${PROJECT_SOURCE_DIR}/regress)
-foreach(PROGRAM ${TEST_PROGRAMS})
+foreach(PROGRAM IN LISTS 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)
+foreach(PROGRAM IN LISTS DL_USERS)
+ add_library(${PROGRAM} MODULE ${PROGRAM}.c)
+ target_link_libraries(${PROGRAM} ${CMAKE_DL_LIBS})
+endforeach()
-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})
+foreach(PROGRAM IN LISTS 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)
+foreach(PROGRAM IN LISTS HOLE_USERS)
+ add_executable(${PROGRAM} ${PROGRAM}.c ${SRC_EXTRA_FILES} source_hole.c)
+ target_link_libraries(${PROGRAM} zip)
+endforeach()
+
+foreach(PROGRAM IN LISTS ALL_PROGRAMS)
+ include_directories(${PROGRAM} PRIVATE BEFORE ${PROJECT_SOURCE_DIR}/lib ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR})
+endforeach()
add_custom_target(cleanup
COMMAND ${CMAKE_COMMAND} -DDIR=${PROJECT_BINARY_DIR}/regress -P ${PROJECT_SOURCE_DIR}/regress/cleanup.cmake
@@ -209,15 +221,10 @@
endif()
string(REPLACE ";" "\\;" path "${path}")
-foreach(CASE ${EXTRA_TESTS})
+foreach(CASE IN LISTS EXTRA_TESTS)
add_test(NAME ${CASE} COMMAND ${PERL_EXECUTABLE} ${PROJECT_BINARY_DIR}/regress/runtest --bin-sub-directory $<CONFIG> ${PROJECT_SOURCE_DIR}/regress/${CASE})
set_tests_properties(${CASE} PROPERTIES SKIP_RETURN_CODE 77)
set_tests_properties(${CASE} PROPERTIES ENVIRONMENT "PATH=${path}")
endforeach()
-include_directories(BEFORE ${PROJECT_SOURCE_DIR}/lib ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR})
-
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})
-
-add_executable(fuzz_main fuzz_main.c)
-target_link_libraries(fuzz_main zip)