summaryrefslogtreecommitdiff
path: root/libarchive/CMakeLists.txt
diff options
context:
space:
mode:
authorMartin Matuska <martin@matuska.org>2017-03-13 15:49:38 +0100
committerMartin Matuska <martin@matuska.org>2017-03-14 12:48:53 +0100
commitf57d129d828f411d6f1eb81ca51dfd9e1fead353 (patch)
tree2683fbe533ae01206a3e0a2365ae2d263eb5e697 /libarchive/CMakeLists.txt
parent500b90526996eb64b9cb5a02ac9de61f0a2ec14f (diff)
downloadlibarchive-f57d129d828f411d6f1eb81ca51dfd9e1fead353.tar.gz
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
Diffstat (limited to 'libarchive/CMakeLists.txt')
-rw-r--r--libarchive/CMakeLists.txt25
1 files changed, 24 insertions, 1 deletions
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})