X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=CMakeLists.txt;h=9f2d870c2ebc54719578cdaf18addb5deaf36d29;hb=21ea68ce16d0d7e0b7ea5bc0c688e3e0a2c9a357;hp=fa26eb935d46ccdef41f17c633578449d462ef55;hpb=0cd59294fd145d834cf0f5f02f0e060bf43aa85b;p=rrq%2Ffuse_xattrs.git diff --git a/CMakeLists.txt b/CMakeLists.txt index fa26eb9..9f2d870 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,31 +1,67 @@ -cmake_minimum_required(VERSION 2.8) -project(fuse_xattrs) +cmake_minimum_required(VERSION 2.8 FATAL_ERROR) +project(fuse_xattrs C) -include (CheckIncludeFileCXX) -check_include_file_cxx (attr/xattr.h HAVE_ATTR_XATTR_H) -check_include_file_cxx (sys/xattr.h HAVE_SYS_XATTR_H) +set(FUSE_XATTRS_VERSION_MAJOR 0) +set(FUSE_XATTRS_VERSION_MINOR 2) -# Check if xattr functions take extra argument. -include (CheckCXXSourceCompiles) -CHECK_CXX_SOURCE_COMPILES ("#include - #include - int main() { getxattr(0,0,0,0,0,0); return 1; } " XATTR_ADD_OPT) +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) +if(NOT HAVE_SYS_XATTR_H) + message(FATAL_ERROR "sys/xattr.h not found") +endif() + +include (CheckCSourceCompiles) +check_c_source_compiles (" + #include + #include + int main() { return 1; } + " HAVE_ATTR_XATTR_H) +if(NOT HAVE_ATTR_XATTR_H) + message(FATAL_ERROR "attr/xattr.h not found") +endif() + +# set required definitions add_definitions (-D_FILE_OFFSET_BITS=64) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeModules/") + +option(ENABLE_CODECOVERAGE "Enable code coverage testing support" ) +if(ENABLE_CODECOVERAGE) + include (CodeCoverage) + set(CMAKE_C_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage") + setup_target_for_coverage( + fuse_xattrs_coverage + ./run_tests.sh + coverage + ) +endif(ENABLE_CODECOVERAGE) set(SOURCE_FILES - compat/fuse_opt.c - compat/fuse_opt.h fuse_xattrs.c passthrough.c - passthrough.h binary_storage.c - binary_storage.h utils.c - utils.h - const.h ) add_executable(fuse_xattrs ${SOURCE_FILES}) @@ -36,6 +72,11 @@ target_link_libraries ( ) install (TARGETS fuse_xattrs DESTINATION bin) +install ( + FILES ${CMAKE_CURRENT_BINARY_DIR}/fuse_xattrs.1 + DESTINATION man/man1 + COMPONENT doc +) enable_testing() configure_file(run_tests.sh run_tests.sh COPYONLY)