CMakeLists.txt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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(src)
  13. set(DMMLIB_PUBLIC_INCLUDE_DIRS
  14. ${CMAKE_SOURCE_DIR}/include
  15. CACHE INTERNAL "dmmlib public include directories"
  16. )
  17. set(DMMLIB_PRIVATE_INCLUDE_DIRS
  18. ${CMAKE_SOURCE_DIR}/private-include
  19. ${CMAKE_BINARY_DIR}
  20. )
  21. set(DMMLIB_SHARED_LIBRARY
  22. dmm_shared
  23. CACHE INTERNAL "dmmlib shared library"
  24. )
  25. set(dmmlib_SRCS
  26. block_header.c
  27. coalesce.c
  28. custom_free.c
  29. custom_malloc.c
  30. dmm_adaptor.c
  31. dmm_init.c
  32. other.c
  33. sys_alloc.c
  34. )
  35. if (HAVE_LOCKS)
  36. find_package (Threads)
  37. set(dmmlib_SRCS
  38. ${dmmlib_SRCS}
  39. posix_lock.c
  40. )
  41. endif (HAVE_LOCKS)
  42. include_directories(
  43. ${DMMLIB_PUBLIC_INCLUDE_DIRS}
  44. ${DMMLIB_PRIVATE_INCLUDE_DIRS}
  45. )
  46. add_library(${DMMLIB_SHARED_LIBRARY} SHARED ${dmmlib_SRCS})
  47. add_subdirectory(examples)