CMakeLists.txt 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. project(fastwriter)
  2. set(FASTWRITER_VERSION "0.0.2")
  3. set(FASTWRITER_ABI_VERSION "0")
  4. cmake_minimum_required(VERSION 2.8)
  5. set(DISABLE_XFS_REALTIME FALSE CACHE BOOL "Disable support of RealTime XFS partition")
  6. set(USE_CUSTOM_MEMCPY FALSE CACHE BOOL "Use custom memcpy routine instead of stanadrd")
  7. include(CheckIncludeFiles)
  8. check_include_files("linux/falloc.h" HAVE_LINUX_FALLOC_H)
  9. if (NOT DISABLE_XFS_REALTIME)
  10. check_include_files("xfs/xfs.h" HAVE_XFS_H)
  11. if (NOT HAVE_XFS_H)
  12. message(FATAL_ERROR "error: xfs/xfs.h is not found...")
  13. endif (NOT HAVE_XFS_H)
  14. endif (NOT DISABLE_XFS_REALTIME)
  15. include_directories(
  16. ${CMAKE_SOURCE_DIR}/src
  17. ${CMAKE_CURRENT_BINARY_DIR}
  18. )
  19. add_definitions("-fPIC --std=c99 -Wall -O2 -pthread")
  20. if (USE_CUSTOM_MEMCPY)
  21. set(HEADERS fastwriter.h sysinfo.h default.h private.h memcpy.h)
  22. add_library(fastwriter SHARED fastwriter.c sysinfo.c default.c memcpy.c)
  23. else (USE_CUSTOM_MEMCPY)
  24. set(HEADERS fastwriter.h sysinfo.h default.h private.h)
  25. add_library(fastwriter SHARED fastwriter.c sysinfo.c default.c)
  26. endif (USE_CUSTOM_MEMCPY)
  27. set_target_properties(fastwriter PROPERTIES
  28. VERSION ${FASTWRITER_VERSION}
  29. SOVERSION ${FASTWRITER_ABI_VERSION}
  30. LINK_FLAGS "-pthread"
  31. )
  32. set(TARNAME "fastwriter")
  33. set(PACKAGE_VERSION ${FASTWRITER_VERSION})
  34. set(PACKAGE_NAME "${TARNAME}")
  35. set(PACKAGE_TARNAME "${TARNAME}")
  36. set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
  37. set(PACKAGE_BUGREPORT "http://ufo.kit.edu/ufo/newticket")
  38. if(NOT DEFINED BIN_INSTALL_DIR)
  39. set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
  40. endif(NOT DEFINED BIN_INSTALL_DIR)
  41. if(NOT DEFINED LIB_INSTALL_DIR)
  42. set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
  43. endif(NOT DEFINED LIB_INSTALL_DIR)
  44. if(NOT DEFINED INCLUDE_INSTALL_DIR)
  45. set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include")
  46. endif(NOT DEFINED INCLUDE_INSTALL_DIR)
  47. if(NOT DEFINED LOCALE_INSTALL_DIR)
  48. set(LOCALE_INSTALL_DIR "${DATA_INSTALL_DIR}/locale/")
  49. endif(NOT DEFINED LOCALE_INSTALL_DIR)
  50. configure_file(fastwriter.pc.in ${CMAKE_CURRENT_BINARY_DIR}/fastwriter.pc)
  51. configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
  52. install(TARGETS fastwriter
  53. LIBRARY DESTINATION lib${LIB_SUFFIX}
  54. )
  55. install(FILES fastwriter.h
  56. DESTINATION include
  57. )
  58. install(FILES
  59. ${CMAKE_CURRENT_BINARY_DIR}/fastwriter.pc
  60. DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
  61. )