summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2015-06-11 02:43:21 +0200
committerSlávek Banko <slavek.banko@axis.cz>2015-06-11 02:43:21 +0200
commit6ebff397515bf153ea95d7e80d21ca9a0f97708d (patch)
treece0bd58719ec5f100d262cd13b444e7376351e1a
parentdfd680030c18adaa4f299a4092d9ac6d5945cadc (diff)
downloadtdelibs-6ebff397515bf153ea95d7e80d21ca9a0f97708d.tar.gz
tdelibs-6ebff397515bf153ea95d7e80d21ca9a0f97708d.zip
Improve ACL detection for CMake build
Fix hidden visibility in posixacladdons Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
-rw-r--r--CMakeLists.txt18
-rw-r--r--tdeio/CMakeLists.txt4
-rw-r--r--tdeio/tdeio/CMakeLists.txt10
-rw-r--r--tdeio/tdeio/posixacladdons.cpp8
4 files changed, 24 insertions, 16 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a0184166..84ceb566d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -243,11 +243,23 @@ if( HAVE_SYS_TIME_H AND HAVE_TIME_H )
endif( HAVE_SYS_TIME_H AND HAVE_TIME_H )
if( HAVE_SYS_ACL_H )
- set( USE_POSIX_ACL 1 )
+ check_include_file( "acl/libacl.h" HAVE_ACL_LIBACL_H )
+ if( HAVE_ACL_LIBACL_H )
+ check_library_exists( acl acl_init "" HAVE_ACL_INIT )
+ if( HAVE_ACL_INIT AND HAVE_SYS_XATTR_H )
+ set( USE_POSIX_ACL 1 )
+ set( HAVE_NON_POSIX_ACL_EXTENSIONS 1 )
+ set( ACL_LIBRARIES acl attr )
+ endif( HAVE_ACL_INIT AND HAVE_SYS_XATTR_H )
+ else( HAVE_ACL_LIBACL_H )
+ check_library_exists( c acl_init "" HAVE_ACL_INIT )
+ if( HAVE_ACL_INIT )
+ set( USE_POSIX_ACL 1 )
+ set( ACL_LIBRARIES c )
+ endif( HAVE_ACL_INIT )
+ endif( HAVE_ACL_LIBACL_H )
endif( HAVE_SYS_ACL_H )
-check_include_file( "acl/libacl.h" HAVE_NON_POSIX_ACL_EXTENSIONS )
-
check_include_file( "valgrind/memcheck.h" HAVE_VALGRIND_MEMCHECK_H )
check_include_file( "values.h" HAVE_VALUES_H )
check_include_file( "X11/extensions/shape.h" HAVE_X11_EXTENSIONS_SHAPE_H )
diff --git a/tdeio/CMakeLists.txt b/tdeio/CMakeLists.txt
index 5fa0ded6d..c561e8294 100644
--- a/tdeio/CMakeLists.txt
+++ b/tdeio/CMakeLists.txt
@@ -55,10 +55,6 @@ if( HAVE_ELFICON )
set( ELFICON_STATIC_LIB tdelficon-static )
endif( HAVE_ELFICON )
-if( HAVE_NON_POSIX_ACL_EXTENSIONS )
- set( ACL_LIBRARIES acl )
-endif( HAVE_NON_POSIX_ACL_EXTENSIONS )
-
##### libtdeio ####################################
diff --git a/tdeio/tdeio/CMakeLists.txt b/tdeio/tdeio/CMakeLists.txt
index b4487db7f..77e122725 100644
--- a/tdeio/tdeio/CMakeLists.txt
+++ b/tdeio/tdeio/CMakeLists.txt
@@ -49,10 +49,9 @@ install( FILES
kremoteencoding.h kmimetypechooser.h
DESTINATION ${INCLUDE_INSTALL_DIR} )
-# FIXME seems that ACL is no longer optional
-#if( USE_POSIX_ACL )
+if( USE_POSIX_ACL )
install( FILES kacl.h DESTINATION ${INCLUDE_INSTALL_DIR} )
-#endif( USE_POSIX_ACL )
+endif( USE_POSIX_ACL )
install( FILES
connection.h slaveinterface.h slave.h slaveconfig.h
@@ -111,10 +110,9 @@ set( ${target}_SRCS
dataprotocol.cpp
)
-# FIXME seems that ACL is no longer optional
-#if( USE_POSIX_ACL )
+if( USE_POSIX_ACL )
set( ${target}_SRCS ${${target}_SRCS} kacl.cpp posixacladdons.cpp )
-#endif( USE_POSIX_ACL )
+endif( USE_POSIX_ACL )
tde_add_library( ${target} STATIC_PIC AUTOMOC
SOURCES ${${target}_SRCS}
diff --git a/tdeio/tdeio/posixacladdons.cpp b/tdeio/tdeio/posixacladdons.cpp
index bae51592b..873f1a81e 100644
--- a/tdeio/tdeio/posixacladdons.cpp
+++ b/tdeio/tdeio/posixacladdons.cpp
@@ -21,6 +21,8 @@
#if defined(USE_POSIX_ACL) && !defined(HAVE_NON_POSIX_ACL_EXTENSIONS)
+#include <kdemacros.h>
+
#include <errno.h>
#include <sys/stat.h>
@@ -61,7 +63,7 @@ protected:
}
};
-int acl_cmp(acl_t acl1, acl_t acl2)
+KDE_EXPORT int acl_cmp(acl_t acl1, acl_t acl2)
{
if ( !acl1 || !acl2 )
return -1;
@@ -127,7 +129,7 @@ int acl_cmp(acl_t acl1, acl_t acl2)
return 0;
}
-acl_t acl_from_mode(mode_t mode)
+KDE_EXPORT acl_t acl_from_mode(mode_t mode)
{
acl_t newACL = acl_init( 3 );
acl_entry_t entry;
@@ -178,7 +180,7 @@ acl_t acl_from_mode(mode_t mode)
return newACL;
}
-int acl_equiv_mode(acl_t acl, mode_t *mode_p)
+KDE_EXPORT int acl_equiv_mode(acl_t acl, mode_t *mode_p)
{
acl_entry_t entry;
acl_tag_t tag;