| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- project (dmmlib-library C)
- if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE Debug)
- endif(NOT CMAKE_BUILD_TYPE)
- set(DMMLIB_PUBLIC_INCLUDE_DIRS
- ${CMAKE_SOURCE_DIR}/include
- CACHE INTERNAL "dmmlib public include directories"
- )
- set(DMMLIB_PRIVATE_INCLUDE_DIRS
- ${CMAKE_SOURCE_DIR}/private-include
- ${CMAKE_BINARY_DIR}
- )
- if (WITH_SHARED_LIB)
- set(DMMLIB_SHARED_LIBRARY
- dmm_shared
- CACHE INTERNAL "dmmlib shared library"
- )
- endif (WITH_SHARED_LIB)
- if (WITH_STATIC_LIB)
- set(DMMLIB_STATIC_LIBRARY
- dmm_static
- CACHE INTERNAL "dmmlib static library"
- )
- endif (WITH_STATIC_LIB)
- set(dmmlib_SRCS
- malloc.c
- free.c
- realloc.c
- calloc.c
- raw_block.c
- release_memory.c
- )
- if(RAW_BLOCKS_TYPE STREQUAL "freelist")
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- freelist/block_header_funcs.c
- freelist/linked_lists/linked_lists.c
- freelist/linked_lists/search_algorithms.c
- freelist/freelist_malloc.c
- freelist/freelist_free.c
- freelist/freelist_realloc.c
- )
- if(SORT_POLICY STREQUAL "lifo")
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- freelist/linked_lists/lifo_order.c
- )
- elseif(SORT_POLICY STREQUAL "fifo")
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- freelist/linked_lists/fifo_order.c
- )
- elseif(SORT_POLICY STREQUAL "size")
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- freelist/linked_lists/add_block_in_order.c
- freelist/linked_lists/size_order.c
- )
- elseif(SORT_POLICY STREQUAL "address")
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- freelist/linked_lists/add_block_in_order.c
- freelist/linked_lists/address_order.c
- )
- endif(SORT_POLICY STREQUAL "lifo")
- if(COALESCING_FIXED OR COALESCING_VARIABLE)
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- freelist/coalesce.c
- )
- endif(COALESCING_FIXED OR COALESCING_VARIABLE)
- if(SPLITTING_FIXED OR SPLITTING_VARIABLE)
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- freelist/split.c
- )
- endif(SPLITTING_FIXED OR SPLITTING_VARIABLE)
- if(WITH_DEBUG)
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- freelist/freelist_debug.c
- )
- endif(WITH_DEBUG)
- elseif(RAW_BLOCKS_TYPE STREQUAL "bitmap")
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- bitmap/bitmap_other.c
- bitmap/bitmap_malloc.c
- bitmap/bitmap_free.c
- bitmap/bitmap_realloc.c
- )
- endif(RAW_BLOCKS_TYPE STREQUAL "freelist")
- if(WITH_SYSTEM_CALLS STREQUAL "none")
- set(NO_SYSTEM_CALLS ON)
- elseif(WITH_SYSTEM_CALLS STREQUAL "sbrk")
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- request_memory_sbrk.c
- )
- elseif(WITH_SYSTEM_CALLS STREQUAL "mmap")
- if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- request_memory_mmap_linux.c
- )
- elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- request_memory_mmap_osx.c
- )
- endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
- endif(WITH_SYSTEM_CALLS STREQUAL "none")
- if(WITH_DEBUG)
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- debug.c
- )
- endif(WITH_DEBUG)
- if (WITH_REALLOC)
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- # custom_realloc.c
- )
- endif (WITH_REALLOC)
- if (WITH_ADAPTIVITY)
- set(dmmlib_SRCS
- ${dmmlib_SRCS}
- dmm_adaptor.c
- )
- endif (WITH_ADAPTIVITY)
- include_directories(
- ${DMMLIB_PUBLIC_INCLUDE_DIRS}
- ${DMMLIB_PRIVATE_INCLUDE_DIRS}
- )
- if (WITH_SHARED_LIB)
- add_library(${DMMLIB_SHARED_LIBRARY} SHARED ${dmmlib_SRCS})
- endif (WITH_SHARED_LIB)
- if (WITH_STATIC_LIB)
- add_library(${DMMLIB_STATIC_LIBRARY} STATIC ${dmmlib_SRCS})
- endif (WITH_STATIC_LIB)
|