CMakeLists.txt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. project (dmmlib C)
  2. cmake_minimum_required (VERSION 2.6)
  3. set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
  4. include(DefineOptions.cmake)
  5. include(MacroEnsureOutOfSourceBuild)
  6. macro_ensure_out_of_source_build("${PROJECT_NAME} requires an out of source build. Please create a separate build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there.")
  7. configure_file (
  8. "${PROJECT_SOURCE_DIR}/dmm_config.h.in"
  9. "${PROJECT_BINARY_DIR}/dmm_config.h"
  10. )
  11. include_directories("${PROJECT_BINARY_DIR}")
  12. add_subdirectory(include)
  13. #add_subdirectory(src)
  14. set(DMMLIB_PUBLIC_INCLUDE_DIRS
  15. ${CMAKE_SOURCE_DIR}/include
  16. CACHE INTERNAL "dmmlib public include directories"
  17. )
  18. set(DMMLIB_PRIVATE_INCLUDE_DIRS
  19. ${CMAKE_SOURCE_DIR}/private-include
  20. ${CMAKE_BINARY_DIR}
  21. )
  22. set(DMMLIB_SHARED_LIBRARY
  23. dmm_shared
  24. CACHE INTERNAL "dmmlib shared library"
  25. )
  26. set(dmmlib_SRCS
  27. block_header.c
  28. coalesce.c
  29. custom_free.c
  30. custom_malloc.c
  31. dmm_adaptor.c
  32. dmm_init.c
  33. other.c
  34. sys_alloc.c
  35. )
  36. if (HAVE_LOCKS)
  37. find_package (Threads)
  38. set(dmmlib_SRCS
  39. ${dmmlib_SRCS}
  40. posix_lock.c
  41. )
  42. endif (HAVE_LOCKS)
  43. include_directories(
  44. ${DMMLIB_PUBLIC_INCLUDE_DIRS}
  45. ${DMMLIB_PRIVATE_INCLUDE_DIRS}
  46. )
  47. add_library(${DMMLIB_SHARED_LIBRARY} SHARED ${dmmlib_SRCS})
  48. add_subdirectory(examples)