use larger string heap
[rrq/fuse_xattrs.git] / CMakeLists.txt
index 4b4f27fb78b51aa135162de3e6348bc84557e034..18bcb282797e29258884951a3323e63efd7c791b 100644 (file)
@@ -1,6 +1,29 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
 project(fuse_xattrs C)
 
+set(FUSE_XATTRS_VERSION_MAJOR 0)
+set(FUSE_XATTRS_VERSION_MINOR 5)
+
+set(BINARY_SIDECAR_EXT \".xattr\")
+
+set(MAX_METADATA_SIZE "8*1024*1024")  # 8 MiB
+set(XATTR_NAME_MAX 255)               # chars in an extended attribute name
+set(XATTR_SIZE_MAX 65536)             # size of an extended attribute value (64k)
+set(XATTR_LIST_MAX 65536)             # size of extended attribute namelist (64k)
+
+configure_file (
+        "${PROJECT_SOURCE_DIR}/fuse_xattrs_config.h.in"
+        "${PROJECT_BINARY_DIR}/fuse_xattrs_config.h"
+)
+include_directories(
+        "${PROJECT_BINARY_DIR}"
+)
+
+configure_file (
+        "${PROJECT_SOURCE_DIR}/fuse_xattrs.1.in"
+        "${PROJECT_BINARY_DIR}/fuse_xattrs.1"
+)
+
 # Check xattr headers
 include (CheckIncludeFile)
 check_include_file (sys/xattr.h HAVE_SYS_XATTR_H)
@@ -11,18 +34,23 @@ endif()
 include (CheckCSourceCompiles)
 check_c_source_compiles ("
   #include <sys/types.h>
-  #include <attr/xattr.h>
+  #include <sys/xattr.h>
   int main() { return 1; }
-  " HAVE_ATTR_XATTR_H)
-if(NOT HAVE_ATTR_XATTR_H)
-    message(FATAL_ERROR "attr/xattr.h not found")
+  " HAVE_SYS_XATTR_H)
+if(NOT HAVE_SYS_XATTR_H)
+    message(FATAL_ERROR "sys/xattr.h not found")
 endif()
 
 # set required definitions
 add_definitions (-D_FILE_OFFSET_BITS=64)
+add_definitions (-D HAVE_UTIMENSAT=1)
+#add_definitions (-D DEBUG=1)
 
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/")
 
+set(CMAKE_C_FLAGS "-O3")
+#set(CMAKE_C_FLAGS "-g -Wall")
+
 option(ENABLE_CODECOVERAGE "Enable code coverage testing support" )
 if(ENABLE_CODECOVERAGE)
     include (CodeCoverage)
@@ -35,26 +63,34 @@ if(ENABLE_CODECOVERAGE)
 endif(ENABLE_CODECOVERAGE)
 
 set(SOURCE_FILES
-        compat/fuse_opt.c
-        compat/fuse_opt.h
+        stringmem.c
         fuse_xattrs.c
         passthrough.c
-        passthrough.h
         binary_storage.c
-        binary_storage.h
         utils.c
-        utils.h
-        const.h
-        fuse_xattrs_config.h)
+)
 
 add_executable(fuse_xattrs ${SOURCE_FILES})
 
-target_link_libraries (
-        fuse_xattrs
-        fuse
-)
+if(APPLE)
+    target_link_libraries (
+            fuse_xattrs
+            osxfuse
+    )
+else()
+    target_link_libraries (
+            fuse_xattrs
+            fuse
+    )
+endif()
+
 
 install (TARGETS fuse_xattrs DESTINATION bin)
+install (
+        FILES ${CMAKE_CURRENT_BINARY_DIR}/fuse_xattrs.1
+        DESTINATION share/man/man1
+        COMPONENT doc
+)
 
 enable_testing()
 configure_file(run_tests.sh run_tests.sh COPYONLY)