@@ -11,54 +11,44 @@ set(LINUX_SOURCE /lib/modules/${arch}/build/)
1111
1212set (CMAKE_CXX_STANDARD 20)
1313
14- # Add option for server mode (disables bpftime dependencies)
15- option (SERVER_MODE "Build in server mode without bpftime dependencies" OFF )
14+ # Always build in SERVER_MODE ( bpftime dependencies removed )
15+ add_compile_definitions (SERVER_MODE )
1616
17- if (NOT SERVER_MODE)
18- # add_subdirectory(lib/bpftime)
19- # add_subdirectory(workloads)
20- endif ()
17+ # Use std::format instead of fmt for spdlog (C++20)
18+ add_compile_definitions (SPDLOG_USE_STD_FORMAT )
19+
20+ # Use header-only spdlog to avoid library mismatch
21+ add_compile_definitions (SPDLOG_HEADER_ONLY )
2122
2223add_subdirectory (microbench )
2324
2425list (APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR } )
2526
2627find_package (cxxopts REQUIRED )
2728find_package (spdlog REQUIRED )
28- file (GLOB_RECURSE SOURCE_FILES src/cxl*.cpp src/policy.cpp src/helper.cpp src/incore.cpp src/uncore.cpp src/perf.cpp )
29+ file (GLOB_RECURSE SOURCE_FILES src/cxl*.cpp src/policy.cpp src/helper.cpp src/incore.cpp src/uncore.cpp src/perf.cpp src/monitor.cpp )
2930set (SERVER_SOURCES src/main_server.cc src/shared_memory_manager.cc src/shm_communication.cpp)
3031
3132execute_process (COMMAND uname -r OUTPUT_VARIABLE arch OUTPUT_STRIP_TRAILING_WHITESPACE )
3233set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -Wall -fPIC -pthread" )
3334set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS } -latomic" )
3435
35- # Add compile definition for server mode
36- if (SERVER_MODE)
37- add_compile_definitions (SERVER_MODE )
38- else ()
39- # add_subdirectory(qemu_integration)
40- endif ()
4136
4237# Create a static library of CXL core functionality
4338add_library (cxlmemsim STATIC ${SOURCE_FILES} )
4439target_include_directories (cxlmemsim PUBLIC include ${cxxopts_INCLUDE_DIR} ${spdlog_INCLUDE_DIR} )
45- target_link_libraries (cxlmemsim cxxopts::cxxopts spdlog::spdlog )
46-
47- if (SERVER_MODE)
48- # Build simple latency calculator for server mode
49- add_executable (cxlmemsim_latency src/calculateLatency.cc )
50- set_target_properties (cxlmemsim_latency PROPERTIES
51- RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR }
52- )
53- add_executable (cxlmemsim_server ${SERVER_SOURCES} )
54- target_include_directories (cxlmemsim_server PRIVATE include ${cxxopts_INCLUDE_DIR} ${spdlog_INCLUDE_DIR} )
55- target_link_libraries (cxlmemsim_server cxlmemsim cxxopts::cxxopts spdlog::spdlog rt )
56- else ()
57- # Build full version with monitor support
58- add_executable (cxlmemsim_server ${SERVER_SOURCES} )
59- target_include_directories (cxlmemsim_server PRIVATE include ${cxxopts_INCLUDE_DIR} ${spdlog_INCLUDE_DIR} )
60- target_link_libraries (cxlmemsim_server cxlmemsim cxxopts::cxxopts spdlog::spdlog rt )
61- endif ()
40+ target_link_libraries (cxlmemsim cxxopts::cxxopts spdlog::spdlog_header_only )
41+
42+ # Build latency calculator
43+ add_executable (cxlmemsim_latency src/calculateLatency.cc )
44+ set_target_properties (cxlmemsim_latency PROPERTIES
45+ RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR }
46+ )
47+
48+ # Build server
49+ add_executable (cxlmemsim_server ${SERVER_SOURCES} )
50+ target_include_directories (cxlmemsim_server PRIVATE include ${cxxopts_INCLUDE_DIR} ${spdlog_INCLUDE_DIR} )
51+ target_link_libraries (cxlmemsim_server cxlmemsim cxxopts::cxxopts spdlog::spdlog_header_only rt )
6252# Find RDMA libraries
6353find_package (PkgConfig REQUIRED )
6454pkg_check_modules (RDMACM REQUIRED librdmacm )
0 commit comments