From f57d129d828f411d6f1eb81ca51dfd9e1fead353 Mon Sep 17 00:00:00 2001 From: Martin Matuska Date: Mon, 13 Mar 2017 15:49:38 +0100 Subject: Move platform-specific ACL code to individual source files. This makes the code much more readable and eases the addition of new ACL implementatons in the future. Additional changes: - most of ACL detection is now done at configure stage - configuration now reports what ACL was detected - NFSv4 ACL tests now test INHERIT_ONLY and NO_PROPAGATE_INHERIT --- libarchive/CMakeLists.txt | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'libarchive/CMakeLists.txt') diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt index d55fa2d8..0ed3fa48 100644 --- a/libarchive/CMakeLists.txt +++ b/libarchive/CMakeLists.txt @@ -14,6 +14,7 @@ SET(include_HEADERS # Sources and private headers SET(libarchive_SOURCES archive_acl.c + archive_acl_private.h archive_check_magic.c archive_cmdline.c archive_cmdline_private.h @@ -47,6 +48,7 @@ SET(libarchive_SOURCES archive_pathmatch.c archive_pathmatch.h archive_platform.h + archive_platform_acl.h archive_ppmd_private.h archive_ppmd7.c archive_ppmd7_private.h @@ -109,7 +111,6 @@ SET(libarchive_SOURCES archive_version_details.c archive_virtual.c archive_write.c - archive_write_disk_acl.c archive_write_disk_posix.c archive_write_disk_private.h archive_write_disk_set_standard_lookup.c @@ -211,6 +212,28 @@ IF(WIN32 AND NOT CYGWIN) LIST(APPEND libarchive_SOURCES filter_fork_windows.c) ENDIF(WIN32 AND NOT CYGWIN) +IF(ARCHIVE_ACL_DARWIN) + LIST(APPEND libarchive_SOURCES archive_acl_maps.h) + LIST(APPEND libarchive_SOURCES archive_acl_maps_darwin.c) + LIST(APPEND libarchive_SOURCES archive_read_disk_acl_darwin.c) + LIST(APPEND libarchive_SOURCES archive_write_disk_acl_darwin.c) +ELSEIF(ARCHIVE_ACL_FREEBSD) + LIST(APPEND libarchive_SOURCES archive_acl_maps.h) + LIST(APPEND libarchive_SOURCES archive_acl_maps_freebsd.c) + LIST(APPEND libarchive_SOURCES archive_read_disk_acl_freebsd.c) + LIST(APPEND libarchive_SOURCES archive_write_disk_acl_freebsd.c) +ELSEIF(ARCHIVE_ACL_LIBACL) + LIST(APPEND libarchive_SOURCES archive_acl_maps.h) + LIST(APPEND libarchive_SOURCES archive_acl_maps_linux.c) + LIST(APPEND libarchive_SOURCES archive_read_disk_acl_linux.c) + LIST(APPEND libarchive_SOURCES archive_write_disk_acl_linux.c) +ELSEIF(ARCHIVE_ACL_SUNOS) + LIST(APPEND libarchive_SOURCES archive_acl_maps.h) + LIST(APPEND libarchive_SOURCES archive_acl_maps_sunos.c) + LIST(APPEND libarchive_SOURCES archive_read_disk_acl_sunos.c) + LIST(APPEND libarchive_SOURCES archive_write_disk_acl_sunos.c) +ENDIF() + # Libarchive is a shared library ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS}) TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS}) -- cgit v1.2.1