CMakeLists.txt 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. project (dmmlib-library C)
  2. if(NOT CMAKE_BUILD_TYPE)
  3. set(CMAKE_BUILD_TYPE Debug)
  4. endif(NOT CMAKE_BUILD_TYPE)
  5. set(DMMLIB_PUBLIC_INCLUDE_DIRS
  6. ${CMAKE_SOURCE_DIR}/include
  7. CACHE INTERNAL "dmmlib public include directories"
  8. )
  9. set(DMMLIB_PRIVATE_INCLUDE_DIRS
  10. ${CMAKE_SOURCE_DIR}/private-include
  11. ${CMAKE_BINARY_DIR}
  12. )
  13. if (WITH_SHARED_LIB)
  14. set(DMMLIB_SHARED_LIBRARY
  15. dmm_shared
  16. CACHE INTERNAL "dmmlib shared library"
  17. )
  18. endif (WITH_SHARED_LIB)
  19. if (WITH_STATIC_LIB)
  20. set(DMMLIB_STATIC_LIBRARY
  21. dmm_static
  22. CACHE INTERNAL "dmmlib static library"
  23. )
  24. endif (WITH_STATIC_LIB)
  25. set(dmmlib_SRCS
  26. malloc.c
  27. free.c
  28. realloc.c
  29. calloc.c
  30. raw_block.c
  31. release_memory.c
  32. )
  33. if(RAW_BLOCKS_TYPE STREQUAL "freelist")
  34. set(dmmlib_SRCS
  35. ${dmmlib_SRCS}
  36. freelist/block_header_funcs.c
  37. freelist/linked_lists/linked_lists.c
  38. freelist/linked_lists/search_algorithms.c
  39. freelist/freelist_malloc.c
  40. freelist/freelist_free.c
  41. freelist/freelist_realloc.c
  42. )
  43. if(SORT_POLICY STREQUAL "lifo")
  44. set(dmmlib_SRCS
  45. ${dmmlib_SRCS}
  46. freelist/linked_lists/lifo_order.c
  47. )
  48. elseif(SORT_POLICY STREQUAL "fifo")
  49. set(dmmlib_SRCS
  50. ${dmmlib_SRCS}
  51. freelist/linked_lists/fifo_order.c
  52. )
  53. elseif(SORT_POLICY STREQUAL "size")
  54. set(dmmlib_SRCS
  55. ${dmmlib_SRCS}
  56. freelist/linked_lists/add_block_in_order.c
  57. freelist/linked_lists/size_order.c
  58. )
  59. elseif(SORT_POLICY STREQUAL "address")
  60. set(dmmlib_SRCS
  61. ${dmmlib_SRCS}
  62. freelist/linked_lists/add_block_in_order.c
  63. freelist/linked_lists/address_order.c
  64. )
  65. endif(SORT_POLICY STREQUAL "lifo")
  66. if(COALESCING_FIXED OR COALESCING_VARIABLE)
  67. set(dmmlib_SRCS
  68. ${dmmlib_SRCS}
  69. freelist/coalesce.c
  70. )
  71. endif(COALESCING_FIXED OR COALESCING_VARIABLE)
  72. if(SPLITTING_FIXED OR SPLITTING_VARIABLE)
  73. set(dmmlib_SRCS
  74. ${dmmlib_SRCS}
  75. freelist/split.c
  76. )
  77. endif(SPLITTING_FIXED OR SPLITTING_VARIABLE)
  78. if(WITH_DEBUG)
  79. set(dmmlib_SRCS
  80. ${dmmlib_SRCS}
  81. freelist/freelist_debug.c
  82. )
  83. endif(WITH_DEBUG)
  84. elseif(RAW_BLOCKS_TYPE STREQUAL "bitmap")
  85. set(dmmlib_SRCS
  86. ${dmmlib_SRCS}
  87. bitmap/bitmap_other.c
  88. bitmap/bitmap_malloc.c
  89. bitmap/bitmap_free.c
  90. bitmap/bitmap_realloc.c
  91. )
  92. endif(RAW_BLOCKS_TYPE STREQUAL "freelist")
  93. if(WITH_SYSTEM_CALLS STREQUAL "none")
  94. set(NO_SYSTEM_CALLS ON)
  95. elseif(WITH_SYSTEM_CALLS STREQUAL "sbrk")
  96. set(dmmlib_SRCS
  97. ${dmmlib_SRCS}
  98. request_memory_sbrk.c
  99. )
  100. elseif(WITH_SYSTEM_CALLS STREQUAL "mmap")
  101. if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
  102. set(dmmlib_SRCS
  103. ${dmmlib_SRCS}
  104. request_memory_mmap_linux.c
  105. )
  106. elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
  107. set(dmmlib_SRCS
  108. ${dmmlib_SRCS}
  109. request_memory_mmap_osx.c
  110. )
  111. endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
  112. endif(WITH_SYSTEM_CALLS STREQUAL "none")
  113. if(WITH_DEBUG)
  114. set(dmmlib_SRCS
  115. ${dmmlib_SRCS}
  116. debug.c
  117. )
  118. endif(WITH_DEBUG)
  119. if (WITH_REALLOC)
  120. set(dmmlib_SRCS
  121. ${dmmlib_SRCS}
  122. # custom_realloc.c
  123. )
  124. endif (WITH_REALLOC)
  125. if (WITH_ADAPTIVITY)
  126. set(dmmlib_SRCS
  127. ${dmmlib_SRCS}
  128. dmm_adaptor.c
  129. )
  130. endif (WITH_ADAPTIVITY)
  131. include_directories(
  132. ${DMMLIB_PUBLIC_INCLUDE_DIRS}
  133. ${DMMLIB_PRIVATE_INCLUDE_DIRS}
  134. )
  135. if (WITH_SHARED_LIB)
  136. add_library(${DMMLIB_SHARED_LIBRARY} SHARED ${dmmlib_SRCS})
  137. endif (WITH_SHARED_LIB)
  138. if (WITH_STATIC_LIB)
  139. add_library(${DMMLIB_STATIC_LIBRARY} STATIC ${dmmlib_SRCS})
  140. endif (WITH_STATIC_LIB)