@@ -16,6 +16,34 @@ file(GLOB_RECURSE testing_utils "testing-utils/*.cpp" "testing-utils/*.h")
1616if (NOT WITH_MEMORY_ANALYZER)
1717 file (GLOB_RECURSE memory_analyzer_sources "memory-analyzer/*.cpp" )
1818 list (REMOVE_ITEM sources ${memory_analyzer_sources} )
19+ else ()
20+ add_custom_command (OUTPUT "${CMAKE_CURRENT_BINARY_DIR} /memory-analyzer"
21+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR} /memory-analyzer
22+ )
23+ function (make_mm_inc input output )
24+ add_custom_command (OUTPUT "${CMAKE_CURRENT_BINARY_DIR} /memory-analyzer/${output} "
25+ COMMAND $<TARGET_FILE:file_converter>
26+ "${CMAKE_CURRENT_SOURCE_DIR} /memory-analyzer/${input} " >
27+ "${CMAKE_CURRENT_BINARY_DIR} /memory-analyzer/${output} "
28+ DEPENDS
29+ "${CMAKE_CURRENT_SOURCE_DIR} /memory-analyzer/${input} "
30+ "${CMAKE_CURRENT_BINARY_DIR} /memory-analyzer"
31+ $<TARGET_FILE:file_converter>
32+ )
33+ endfunction (make_mm_inc)
34+
35+ make_mm_inc(input .txt input .inc)
36+ make_mm_inc(test .c test .inc)
37+
38+ set (generated_mm_files
39+ "${CMAKE_CURRENT_BINARY_DIR} /memory-analyzer/input.inc"
40+ "${CMAKE_CURRENT_BINARY_DIR} /memory-analyzer/test.inc"
41+ )
42+ set_source_files_properties (
43+ "${CMAKE_CURRENT_SOURCE_DIR} /memory-analyzer/gdb_api.cpp"
44+ PROPERTIES
45+ OBJECT_DEPENDS "${generated_mm_files} "
46+ )
1947endif ()
2048
2149list (REMOVE_ITEM sources
@@ -44,6 +72,7 @@ target_include_directories(unit
4472 ${CBMC_BINARY_DIR}
4573 ${CBMC_SOURCE_DIR}
4674 ${CMAKE_CURRENT_SOURCE_DIR}
75+ ${CMAKE_CURRENT_BINARY_DIR}
4776 ${CUDD_INCLUDE}
4877)
4978target_link_libraries (
0 commit comments